www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - dmd 1.066 and 2.051 release

reply Walter Bright <newshound2 digitalmars.com> writes:
This is another bug fix release.

http://www.digitalmars.com/d/1.0/changelog.html
http://ftp.digitalmars.com/dmd.1.066.zip

http://www.digitalmars.com/d/2.0/changelog.html
http://ftp.digitalmars.com/dmd.2.051.zip
Dec 21 2010
next sibling parent reply "Lars T. Kyllingstad" <public kyllingen.NOSPAMnet> writes:
On Tue, 21 Dec 2010 00:38:17 -0800, Walter Bright wrote:

 This is another bug fix release.
 
 http://www.digitalmars.com/d/1.0/changelog.html
 http://ftp.digitalmars.com/dmd.1.066.zip
 
 http://www.digitalmars.com/d/2.0/changelog.html
 http://ftp.digitalmars.com/dmd.2.051.zip
Awesome! :) This is the release that finally makes pure and nothrow usable! Also, I'm very thrilled about the changes to the math stuff, in particular the addition of std.mathspecial. ...for which the documentation seems to be missing, by the way. -Lars
Dec 21 2010
parent reply Walter Bright <newshound2 digitalmars.com> writes:
Lars T. Kyllingstad wrote:
 This is the release that finally makes pure and nothrow usable!  Also, 
 I'm very thrilled about the changes to the math stuff, in particular the 
 addition of std.mathspecial.
 
 ...for which the documentation seems to be missing, by the way.
Should be up now.
Dec 21 2010
parent reply Walter Bright <newshound2 digitalmars.com> writes:
Linky:

http://www.digitalmars.com/d/2.0/phobos/std_mathspecial.html
Dec 21 2010
parent reply Jimmy Cao <jcao219 gmail.com> writes:
Thanks for all the hard work.
Perhaps take a break to see the eclipse?

On Tue, Dec 21, 2010 at 2:59 AM, Walter Bright
<newshound2 digitalmars.com>wrote:

 Linky:

 http://www.digitalmars.com/d/2.0/phobos/std_mathspecial.html
Dec 21 2010
parent Walter Bright <newshound2 digitalmars.com> writes:
Jimmy Cao wrote:
 Thanks for all the hard work.
A lot of people contributed to this release, in the form of new library modules, patches, bug reports & fixes, and testing. Pretty much every release is more and more of a community effort.
Dec 21 2010
prev sibling next sibling parent bearophile <bearophileHUGS lycos.com> writes:
I see several little steps forward for D/DMD in this release :-)
For the next few releases I suggest to focus the efforts on the bug-fixing
efforts that may break future D2 code a little. It's _much_ better to break it
now that later.

Some comments:
- dmd2\windows\bin contains an almost empty .exe file.
- Issue 2751: wasn't it fixed in 2.027?
- Issue 3112: even associative array lookups and failed asserts... I didn't
know this.
- I have closed bug 5020. 4773 depends on it.

Regarding Issue 3554, this program, compiled with -w:

/// Return a random number in [0, 10)
void foo() {}
void main() {}


Prints:
test3.d(2): Warning: Ddoc: Stray ')'. This may cause incorrect Ddoc output. Use
$(RPAREN) instead for unpaired right parentheses.

But the generated HTML is correct. So is the warning necessary still?

Bye,
bearophile
Dec 21 2010
prev sibling next sibling parent reply Steven Schveighoffer <schveiguy yahoo.com> writes:
Walter Bright Wrote:

 This is another bug fix release.
 
 http://www.digitalmars.com/d/1.0/changelog.html
 http://ftp.digitalmars.com/dmd.1.066.zip
 
 http://www.digitalmars.com/d/2.0/changelog.html
 http://ftp.digitalmars.com/dmd.2.051.zip
I think it was overlooked on the changelog but red black tree has finally made it into std.container. See announcement here: http://lists.puremagic.com/pipermail/phobos/2010-December/003619.html -Steve
Dec 23 2010
parent reply Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> writes:
On 12/23/10 10:27 PM, Steven Schveighoffer wrote:
 Walter Bright Wrote:

 This is another bug fix release.

 http://www.digitalmars.com/d/1.0/changelog.html
 http://ftp.digitalmars.com/dmd.1.066.zip

 http://www.digitalmars.com/d/2.0/changelog.html
 http://ftp.digitalmars.com/dmd.2.051.zip
I think it was overlooked on the changelog but red black tree has finally made it into std.container. See announcement here: http://lists.puremagic.com/pipermail/phobos/2010-December/003619.html -Steve
Apologies for that. This is a major addition! Walter, I just updated the changelog, would you mind updating the website? Thanks, and many thanks to Steve who contributed the most complex container yet to std.container! Andrei
Dec 23 2010
next sibling parent Walter Bright <newshound2 digitalmars.com> writes:
Andrei Alexandrescu wrote:
 On 12/23/10 10:27 PM, Steven Schveighoffer wrote:
 Walter Bright Wrote:

 This is another bug fix release.

 http://www.digitalmars.com/d/1.0/changelog.html
 http://ftp.digitalmars.com/dmd.1.066.zip

 http://www.digitalmars.com/d/2.0/changelog.html
 http://ftp.digitalmars.com/dmd.2.051.zip
I think it was overlooked on the changelog but red black tree has finally made it into std.container. See announcement here: http://lists.puremagic.com/pipermail/phobos/2010-December/003619.html -Steve
Apologies for that. This is a major addition! Walter, I just updated the changelog, would you mind updating the website? Thanks, and many thanks to Steve who contributed the most complex container yet to std.container!
Done! Thanks, Steve!
Dec 23 2010
prev sibling parent reply bearophile <bearophileHUGS lycos.com> writes:
Andrei:

 Apologies for that. This is a major addition! Walter, I just updated the 
 changelog, would you mind updating the website? Thanks, and many thanks 
 to Steve who contributed the most complex container yet to std.container!
I suggest to add a RedBlackTree example usage (a little program) in the docs. Bye, bearophile
Dec 23 2010
next sibling parent reply Caligo <iteronvexor gmail.com> writes:
Why are they calling it RedBlackTree? why not Set?  C++ std::set is a
red-black tree as far as I know, but they named it set.

On Fri, Dec 24, 2010 at 1:25 AM, bearophile <bearophileHUGS lycos.com>wrote:

 Andrei:

 Apologies for that. This is a major addition! Walter, I just updated the
 changelog, would you mind updating the website? Thanks, and many thanks
 to Steve who contributed the most complex container yet to std.container!
I suggest to add a RedBlackTree example usage (a little program) in the docs. Bye, bearophile
Dec 24 2010
parent =?UTF-8?B?QWxpIMOHZWhyZWxp?= <acehreli yahoo.com> writes:
Caligo wrote:
 Why are they calling it RedBlackTree? why not Set?  C++ std::set is a
 red-black tree as far as I know, but they named it set.
std::set uses a red-black tree in most (all?) C++ standard library implementations; so does std::map. Neither "is a" red-black tree. They use red-black trees in their implementations. They could very well be implemented as a simple binary tree as well. The C++ standard spells out algorithmic complexities of operations on standard containers, but not actual implementations. Ali
 On Fri, Dec 24, 2010 at 1:25 AM, bearophile 
<bearophileHUGS lycos.com>wrote:
 Andrei:

 Apologies for that. This is a major addition! Walter, I just 
updated the
 changelog, would you mind updating the website? Thanks, and many thanks
 to Steve who contributed the most complex container yet to 
std.container!
 I suggest to add a RedBlackTree example usage (a little program) in the
 docs.

 Bye,
 bearophile
Dec 24 2010
prev sibling next sibling parent reply Jonathan M Davis <jmdavisProg gmx.com> writes:
On Friday 24 December 2010 00:02:06 Caligo wrote:
 Why are they calling it RedBlackTree? why not Set?  C++ std::set is a
 red-black tree as far as I know, but they named it set.
Andrei decided that the containers in Phobos will named after what they actually are instead of what they're used for. A prime example of this is a red-black tree. It can be used as a set. Depending on the implementation (I haven't look at the Phobos one yet), it can also be used as a map (it's used for both set and map in C++'s STL). But a set could be implemented in many different ways. A red- black tree is only one of them. It could be implemented with a hash instead. But that would give it very different performance characteristics. Phobos is taking the approach that a container is labeled for the data structure that it is rather than what it's used for. That way it's very clear what it's performance characteristics are. If you want to use the term Set in your code, then simply alias RedBlackTree to Set. - Jonathan M Davis
Dec 24 2010
parent reply =?UTF-8?B?QWxpIMOHZWhyZWxp?= <acehreli yahoo.com> writes:
Jonathan M Davis wrote:
 On Friday 24 December 2010 00:02:06 Caligo wrote:
 Why are they calling it RedBlackTree? why not Set?  C++ std::set is a
 red-black tree as far as I know, but they named it set.
Andrei decided that the containers in Phobos will named after what
they actually
 are instead of what they're used for. A prime example of this is a 
red-black
 tree. It can be used as a set. Depending on the implementation (I 
haven't look
 at the Phobos one yet), it can also be used as a map (it's used for 
both set and
 map in C++'s STL). But a set could be implemented in many different 
ways. A red-
 black tree is only one of them. It could be implemented with a hash 
instead. But
 that would give it very different performance characteristics.
Yes, having different performance characteristics, hash table does not satisfy the requirements of the standard though: std::set is an ordered container. Table 99 in "23.2.4 Associative containers" of the standard lists the requirements for associative containers. Here is a link to the draft: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3126.pdf I guess an implementation could maintain a hash table as well, for better-than-required access.
 Phobos is taking the approach that a container is labeled for the 
data structure
 that it is rather than what it's used for. That way it's very clear 
what it's
 performance characteristics are. If you want to use the term Set in 
your code,
 then simply alias RedBlackTree to Set.

 - Jonathan M Davis
Ali
Dec 24 2010
parent Jonathan M Davis <jmdavisProg gmx.com> writes:
On Friday 24 December 2010 17:48:46 Ali =C3=87ehreli wrote:
 Jonathan M Davis wrote:
  > On Friday 24 December 2010 00:02:06 Caligo wrote:
  >> Why are they calling it RedBlackTree? why not Set?  C++ std::set is a
  >> red-black tree as far as I know, but they named it set.
  >=20
  > Andrei decided that the containers in Phobos will named after what
=20
 they actually
=20
  > are instead of what they're used for. A prime example of this is a
=20
 red-black
=20
  > tree. It can be used as a set. Depending on the implementation (I
=20
 haven't look
=20
  > at the Phobos one yet), it can also be used as a map (it's used for
=20
 both set and
=20
  > map in C++'s STL). But a set could be implemented in many different
=20
 ways. A red-
=20
  > black tree is only one of them. It could be implemented with a hash
=20
 instead. But
=20
  > that would give it very different performance characteristics.
=20
 Yes, having different performance characteristics, hash table does not
 satisfy the requirements of the standard though: std::set is an ordered
 container.
=20
 Table 99 in "23.2.4 Associative containers" of the standard lists the
 requirements for associative containers. Here is a link to the draft:
=20
    http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3126.pdf
=20
 I guess an implementation could maintain a hash table as well, for
 better-than-required access.
Yes, the C++ standard has performance requirements that pretty much restric= t=20 each container type to a particular implementation but leave it open to oth= er=20 implementations if they can meet the performance requirements. However, set= s in=20 general do not have to have any particular implementation. The same goes fo= r=20 maps. In Java, you HashSet and TreeSet, both of which implement the Set=20 interface. So, if you use Set, you don't know what the implementation is. Andrei chose to have Phobos select particular data structures for container= s=20 rather than their concepts. So, you have a red-black tree and you can use i= t for=20 whatever makes sense to use a red-black tree for. If that's a set, then it'= s a=20 set. But each container is defined as a particular data structure rather th= an=20 what it's going to be used for. Whether that is the best decision is obviously debatable, since other langu= ages=20 have taken other approaches. But that's what we're doing in D. Personally, = I=20 think that it makes good sense. In particular, I do _not_ like Java's appro= ach=20 where you have interfaces with implementations with very different performa= nce=20 characteristics. With std.container, the performance characteristics will b= e=20 clear. =2D Jonathan M Davis
Dec 24 2010
prev sibling parent reply Caligo <iteronvexor gmail.com> writes:
So what does one use in D if something like std::unordered_set is needed?
RedBlackTree is ordered as far as I can tell.

On Fri, Dec 24, 2010 at 6:08 PM, Jonathan M Davis <jmdavisProg gmx.com>wrote:

 On Friday 24 December 2010 00:02:06 Caligo wrote:
 Why are they calling it RedBlackTree? why not Set?  C++ std::set is a
 red-black tree as far as I know, but they named it set.
Andrei decided that the containers in Phobos will named after what they actually are instead of what they're used for. A prime example of this is a red-black tree. It can be used as a set. Depending on the implementation (I haven't look at the Phobos one yet), it can also be used as a map (it's used for both set and map in C++'s STL). But a set could be implemented in many different ways. A red- black tree is only one of them. It could be implemented with a hash instead. But that would give it very different performance characteristics. Phobos is taking the approach that a container is labeled for the data structure that it is rather than what it's used for. That way it's very clear what it's performance characteristics are. If you want to use the term Set in your code, then simply alias RedBlackTree to Set. - Jonathan M Davis
Dec 24 2010
parent =?UTF-8?B?QWxpIMOHZWhyZWxp?= <acehreli yahoo.com> writes:
Caligo wrote:
 So what does one use in D if something like std::unordered_set is needed?
Like std::unordered_sets, D's associative arrays are hash tables. A table of doubles indexed with string keys: double[string] my_table; Ali
 RedBlackTree is ordered as far as I can tell.
 
 On Fri, Dec 24, 2010 at 6:08 PM, Jonathan M Davis <jmdavisProg gmx.com>wrote:
 
 On Friday 24 December 2010 00:02:06 Caligo wrote:
 Why are they calling it RedBlackTree? why not Set?  C++ std::set is a
 red-black tree as far as I know, but they named it set.
Andrei decided that the containers in Phobos will named after what they actually are instead of what they're used for. A prime example of this is a red-black tree. It can be used as a set. Depending on the implementation (I haven't look at the Phobos one yet), it can also be used as a map (it's used for both set and map in C++'s STL). But a set could be implemented in many different ways. A red- black tree is only one of them. It could be implemented with a hash instead. But that would give it very different performance characteristics. Phobos is taking the approach that a container is labeled for the data structure that it is rather than what it's used for. That way it's very clear what it's performance characteristics are. If you want to use the term Set in your code, then simply alias RedBlackTree to Set. - Jonathan M Davis
Dec 24 2010
prev sibling parent Thomas Mader <thomas.mader gmail.com> writes:
Am 2010-12-21 09:38, schrieb Walter Bright:
 This is another bug fix release.

 http://www.digitalmars.com/d/1.0/changelog.html
 http://ftp.digitalmars.com/dmd.1.066.zip

 http://www.digitalmars.com/d/2.0/changelog.html
 http://ftp.digitalmars.com/dmd.2.051.zip
Is it possible that someone creates tags for every release in the svn repos for dmd, phobos and druntime? It should be common use.
Dec 31 2010