digitalmars.D.announce - dmd 1.066 and 2.051 release
- Walter Bright (5/5) Dec 21 2010 This is another bug fix release.
- Lars T. Kyllingstad (7/14) Dec 21 2010 Awesome! :)
- Walter Bright (2/7) Dec 21 2010 Should be up now.
- Walter Bright (2/2) Dec 21 2010 Linky:
- Jimmy Cao (4/6) Dec 21 2010 Thanks for all the hard work.
- Walter Bright (4/5) Dec 21 2010 A lot of people contributed to this release, in the form of new library ...
- bearophile (16/16) Dec 21 2010 I see several little steps forward for D/DMD in this release :-)
- Steven Schveighoffer (3/10) Dec 23 2010 I think it was overlooked on the changelog but red black tree has finall...
- Andrei Alexandrescu (5/15) Dec 23 2010 Apologies for that. This is a major addition! Walter, I just updated the...
- Walter Bright (2/22) Dec 23 2010 Done! Thanks, Steve!
- bearophile (4/7) Dec 23 2010 I suggest to add a RedBlackTree example usage (a little program) in the ...
- Caligo (3/11) Dec 24 2010 Why are they calling it RedBlackTree? why not Set? C++ std::set is a
- =?UTF-8?B?QWxpIMOHZWhyZWxp?= (11/25) Dec 24 2010 std::set uses a red-black tree in most (all?) C++ standard library
- Jonathan M Davis (13/15) Dec 24 2010 Andrei decided that the containers in Phobos will named after what they ...
- =?UTF-8?B?QWxpIMOHZWhyZWxp?= (19/34) Dec 24 2010 red-black
- Jonathan M Davis (32/74) Dec 24 2010 Yes, the C++ standard has performance requirements that pretty much rest...
- Caligo (3/27) Dec 24 2010 So what does one use in D if something like std::unordered_set is needed...
- =?UTF-8?B?QWxpIMOHZWhyZWxp?= (5/38) Dec 24 2010 Like std::unordered_sets, D's associative arrays are hash tables.
- Thomas Mader (4/9) Dec 31 2010 Is it possible that someone creates tags for every release in the svn
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
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.zipAwesome! :) 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
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
Linky: http://www.digitalmars.com/d/2.0/phobos/std_mathspecial.html
Dec 21 2010
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
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
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
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.zipI 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
On 12/23/10 10:27 PM, Steven Schveighoffer wrote:Walter Bright Wrote: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! AndreiThis 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.zipI 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
Andrei Alexandrescu wrote:On 12/23/10 10:27 PM, Steven Schveighoffer wrote:Done! Thanks, Steve!Walter Bright Wrote: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!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.zipI 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
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
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
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. AliOn Fri, Dec 24, 2010 at 1:25 AM, bearophile<bearophileHUGS lycos.com>wrote:updated theAndrei:Apologies for that. This is a major addition! Walter, I juststd.container!changelog, would you mind updating the website? Thanks, and many thanks to Steve who contributed the most complex container yet toI suggest to add a RedBlackTree example usage (a little program) in the docs. Bye, bearophile
Dec 24 2010
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
Jonathan M Davis wrote:On Friday 24 December 2010 00:02:06 Caligo wrote:they actuallyWhy 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 whatare instead of what they're used for. A prime example of this is ared-blacktree. It can be used as a set. Depending on the implementation (Ihaven't lookat the Phobos one yet), it can also be used as a map (it's used forboth set andmap in C++'s STL). But a set could be implemented in many differentways. A red-black tree is only one of them. It could be implemented with a hashinstead. Butthat 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 thedata structurethat it is rather than what it's used for. That way it's very clearwhat it'sperformance characteristics are. If you want to use the term Set inyour code,then simply alias RedBlackTree to Set. - Jonathan M DavisAli
Dec 24 2010
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
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
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; AliRedBlackTree 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
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.zipIs 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