digitalmars.D.announce - DMD 1.024 and 2.008 releases
- Walter Bright (5/5) Nov 27 2007 New const/invariant in 2.007!
- Walter Bright (2/3) Nov 27 2007 er, 2.008!
- Jay Norwood (4/8) Jan 06 2008 The changelog for 2.008 states invariant was added to isExpression, but ...
- Clay Smith (3/10) Nov 27 2007 Horray! It also looks like the beginning of an actively developed
- Bill Baxter (6/17) Nov 27 2007 Yikes! Looks like I've got my work cut out for me updating the std2
- Kenny TM~ (6/13) Nov 27 2007 Oh great! :D Love to see the new std.algorithm.
- jcc7 (8/20) Nov 28 2007 The changelog has been split into several pages so it can be tricky to s...
- Lutger (3/10) Nov 28 2007 Neat!
- Lutger (3/15) Nov 28 2007 I found it, nevermind. (inside a function, evaluates to the return type...
- Walter Bright (4/6) Nov 28 2007 Lutger wrote:
- Walter Bright (2/3) Nov 28 2007 It's replaced with the type of the return value of the function you're i...
- Simen Haugen (6/11) Nov 28 2007 I have found a bug similar to 1665. It only happens when compiling with ...
- korogu (4/11) Nov 28 2007 Version 2.007 worked fine, but trying to run 2.008 I got :
- Walter Bright (4/10) Nov 28 2007 This versin of dmd was compiled with the latest ubuntu, which probably
- BCS (3/15) Nov 28 2007 I can't (OTOH I haven't tried using it yet but I'm using a rather old
- Walter Bright (2/9) Nov 28 2007 Why not?
- BCS (8/22) Nov 28 2007 Laziness/incompetence mostly. Actually it has no Internet connection so
- Sean Kelly (4/8) Nov 28 2007 I had to downgrade to get DMD working on Linux before this release, so
- Sean Kelly (3/11) Nov 28 2007 Hm, I take it back. I don't have glibc 2.4 on my system after all.
- Walter Bright (5/14) Nov 28 2007 When I built dmd with the old library, then people with the modern
- BCS (5/7) Nov 28 2007 with modifications (s/the latest/reasonably recent/) I'll grant the poin...
- Brad Roberts (18/33) Nov 28 2007 Careful.. details here are important.
- korogu (3/14) Nov 28 2007 Is it the package called "libc6" ? I updated to the latest available ver...
- Markus Dittrich (9/20) Nov 28 2007 It looks like the only symbol requiring >=glibc-2.4 in the binary is
- Brad Roberts (9/34) Nov 28 2007 You can't link libc statically (for glibc at least, other os' do allow i...
- Markus Dittrich (4/11) Nov 28 2007 Yeah, you are absolutely correct - static linking won't work for glibc.
- Walter Bright (2/11) Nov 28 2007 I didn't use that switch. Hmm, do both 1.0 and 2.0 dmd's have this probl...
- Markus Dittrich (9/21) Nov 28 2007 The only thing I can think of right now is that some distros may patch t...
- Jarrett Billingsley (6/11) Nov 28 2007 "Changed the way coverage analysis is done so it is independent of order...
- Carlos Santander (5/12) Nov 28 2007 I hope nobody gets offended by this, but I don't like that Phobos is mim...
- Walter Bright (3/6) Nov 28 2007 That is a deliberate choice. My problem with the STL is not its ideas,
- Tom S (7/14) Nov 28 2007 Awesome! Thanks Walter :)
- Daniel Keep (3/15) Nov 28 2007 Happy Version (2**10)/(10**3)!
- guslay (2/2) Nov 28 2007 I have noticed that the status of some bugs listed in the changelog of t...
- Brad Roberts (8/11) Nov 28 2007 Bugs aren't always marked resolved right away (there's usually a day or
- Jason House (4/19) Nov 29 2007 I'd hope the submitter doesn't just close the bugs. After many past iss...
- Christopher Wright (16/16) Dec 04 2007 Walter, you snuck in a change to implicit template arguments, didn't you...
- Christopher Wright (6/27) Dec 04 2007 Okay, that all works, but only in a shallow manner. If you add the
- Christopher Wright (4/11) Dec 04 2007 Also, it doesn't work with is expressions (the spec strongly implies
- Walter Bright (3/7) Dec 04 2007 Yes, please file a bug on bugzilla with canonical examples. That will
New const/invariant in 2.007! http://www.digitalmars.com/d/1.0/changelog.html http://ftp.digitalmars.com/dmd.1.024.zip http://www.digitalmars.com/d/changelog.html http://ftp.digitalmars.com/dmd.2.008.zip
Nov 27 2007
Walter Bright wrote:New const/invariant in 2.007!er, 2.008!
Nov 27 2007
Walter Bright Wrote:Walter Bright wrote:The changelog for 2.008 states invariant was added to isExpression, but the on-line documentation of isExpression instead includes a second instance of interface. http://www.digitalmars.com/d/changelog.html http://www.digitalmars.com/d/expression.html#IsExpressionNew const/invariant in 2.007!er, 2.008!
Jan 06 2008
Walter Bright wrote:New const/invariant in 2.007! http://www.digitalmars.com/d/1.0/changelog.html http://ftp.digitalmars.com/dmd.1.024.zip http://www.digitalmars.com/d/changelog.html http://ftp.digitalmars.com/dmd.2.008.zipHorray! It also looks like the beginning of an actively developed phobos! Great work Walter and Andrei!
Nov 27 2007
Clay Smith wrote:Walter Bright wrote:Yikes! Looks like I've got my work cut out for me updating the std2 backport of phobos. Anyway, is the const article up to date with the "current state of the const"? I mean this one: http://www.digitalmars.com/d/const.html --bbNew const/invariant in 2.007! http://www.digitalmars.com/d/1.0/changelog.html http://ftp.digitalmars.com/dmd.1.024.zip http://www.digitalmars.com/d/changelog.html http://ftp.digitalmars.com/dmd.2.008.zipHorray! It also looks like the beginning of an actively developed phobos! Great work Walter and Andrei!
Nov 27 2007
Walter Bright wrote:New const/invariant in 2.007! http://www.digitalmars.com/d/1.0/changelog.html http://ftp.digitalmars.com/dmd.1.024.zip http://www.digitalmars.com/d/changelog.html http://ftp.digitalmars.com/dmd.2.008.zipOh great! :D Love to see the new std.algorithm. BTW, are std.windows.charset and std.slist new modules too? Seems not mentioned on the changelog, or probably I've missed it in previous versions. -- -- Kenny.
Nov 27 2007
== Quote from Kenny TM~ (kennytm gmail..com)'s articleWalter Bright wrote:The changelog has been split into several pages so it can be tricky to search. The std.windows.charset module was added a few years ago (DMD 0.140, Nov 23, 2005): http://www.digitalmars.com/d/1.0/changelog2.html#new0140 On the other hand, I couldn't find the std.slist module in the changelog either, and it seems to be much newer: http://www.dsource.org/projects/phobos/log/trunk/phobos/std/slist.d http://www.dsource.org/projects/phobos/log/candidate/phobos/std/slist.dNew const/invariant in 2.007! http://www.digitalmars.com/d/1.0/changelog.html http://ftp.digitalmars.com/dmd.1.024.zip http://www.digitalmars.com/d/changelog.html http://ftp.digitalmars.com/dmd.2.008.zipOh great! :D Love to see the new std.algorithm. BTW, are std.windows.charset and std.slist new modules too? Seems not mentioned on the changelog, or probably I've missed it in previous versions.
Nov 28 2007
Walter Bright wrote:New const/invariant in 2.007! http://www.digitalmars.com/d/1.0/changelog.html http://ftp.digitalmars.com/dmd.1.024.zip http://www.digitalmars.com/d/changelog.html http://ftp.digitalmars.com/dmd.2.008.zipNeat! What does the typeof(return) type specifier do?
Nov 28 2007
Lutger wrote:Walter Bright wrote:I found it, nevermind. (inside a function, evaluates to the return type). That's a pretty convenient addition for generic code.New const/invariant in 2.007! http://www.digitalmars.com/d/1.0/changelog.html http://ftp.digitalmars.com/dmd.1.024.zip http://www.digitalmars.com/d/changelog.html http://ftp.digitalmars.com/dmd.2.008.zipNeat! What does the typeof(return) type specifier do?
Nov 28 2007
Lutger wrote: > I found it, nevermind. (inside a function, evaluates to the return type).That's a pretty convenient addition for generic code.It's another of Andrei's ideas :-)
Nov 28 2007
Lutger wrote:What does the typeof(return) type specifier do?It's replaced with the type of the return value of the function you're in.
Nov 28 2007
I have found a bug similar to 1665. It only happens when compiling with -O and the error: Internal error: ..\ztc\cgcod.c 1523 I haven't been able to create any sample code... "Walter Bright" <newshound1 digitalmars.com> wrote in message news:fiiu78$1sf5$1 digitalmars.com...New const/invariant in 2.007! http://www.digitalmars.com/d/1.0/changelog.html http://ftp.digitalmars.com/dmd.1.024.zip http://www.digitalmars.com/d/changelog.html http://ftp.digitalmars.com/dmd.2.008.zip
Nov 28 2007
Walter Bright Wrote:New const/invariant in 2.007! http://www.digitalmars.com/d/1.0/changelog.html http://ftp.digitalmars.com/dmd.1.024.zip http://www.digitalmars.com/d/changelog.html http://ftp.digitalmars.com/dmd.2.008.zipVersion 2.007 worked fine, but trying to run 2.008 I got : dmd: /lib/tls/libc.so.6: version `GLIBC_2.4' not found (required by dmd) How can i correct that :-s ?
Nov 28 2007
korogu wrote:Version 2.007 worked fine, but trying to run 2.008 I got : dmd: /lib/tls/libc.so.6: version `GLIBC_2.4' not found (required by dmd) How can i correct that :-s ?This versin of dmd was compiled with the latest ubuntu, which probably uses the latest C runtime library. So can you install the latest C shared runtime library?
Nov 28 2007
Walter Bright wrote:korogu wrote:I can't (OTOH I haven't tried using it yet but I'm using a rather old copy of linux)Version 2.007 worked fine, but trying to run 2.008 I got : dmd: /lib/tls/libc.so.6: version `GLIBC_2.4' not found (required by dmd) How can i correct that :-s ?This versin of dmd was compiled with the latest ubuntu, which probably uses the latest C runtime library. So can you install the latest C shared runtime library?
Nov 28 2007
BCS wrote:Walter Bright wrote:Why not?This versin of dmd was compiled with the latest ubuntu, which probably uses the latest C runtime library. So can you install the latest C shared runtime library?I can't (OTOH I haven't tried using it yet but I'm using a rather old copy of linux)
Nov 28 2007
Walter Bright wrote:BCS wrote:Laziness/incompetence mostly. Actually it has no Internet connection so I would have to play a few fun games to get anything done. Come to think of it though, I do have 2 blank hard drive in it that I could play with.... Short version is it would be a pain. If you can build DMD with stuff that won't require people to update it would save a lot of effort for a bunch of people.Walter Bright wrote:Why not?This versin of dmd was compiled with the latest ubuntu, which probably uses the latest C runtime library. So can you install the latest C shared runtime library?I can't (OTOH I haven't tried using it yet but I'm using a rather old copy of linux)
Nov 28 2007
BCS wrote:Short version is it would be a pain. If you can build DMD with stuff that won't require people to update it would save a lot of effort for a bunch of people.I had to downgrade to get DMD working on Linux before this release, so it's a matter of perspective. Sean
Nov 28 2007
Sean Kelly wrote:BCS wrote:Hm, I take it back. I don't have glibc 2.4 on my system after all. SeanShort version is it would be a pain. If you can build DMD with stuff that won't require people to update it would save a lot of effort for a bunch of people.I had to downgrade to get DMD working on Linux before this release, so it's a matter of perspective.
Nov 28 2007
BCS wrote:Laziness/incompetence mostly. Actually it has no Internet connection so I would have to play a few fun games to get anything done. Come to think of it though, I do have 2 blank hard drive in it that I could play with.... Short version is it would be a pain. If you can build DMD with stuff that won't require people to update it would save a lot of effort for a bunch of people.When I built dmd with the old library, then people with the modern ubuntu had to go find the old C shared library and install that. So somebody will be inconvenienced. I think it's better to make things painless for people using the latest linux.
Nov 28 2007
Walter Bright wrote:I think it's better to make things painless for people using the latest linux.with modifications (s/the latest/reasonably recent/) I'll grant the point. I don't think catering to the bleeding edge is a good idea (I /don't/ think that's what you are saying). I'd personally go with the oldest version that will work with up to date systems.
Nov 28 2007
On Wed, 28 Nov 2007, Walter Bright wrote:BCS wrote:Careful.. details here are important. The past releases have needed an older version of libstdc++, the c++ runtime (primarily stl). It's easy to have multiple versions of libstdc++ installed and all distributions package several of them for just this situation. This current release apparantly needs libc 2.4 or greater. libc tends to be great at backwards compatibility (ie, running apps built against 2.2 can still run against installations with 2.4), but the reverse isn't true. It's either very hard or practically impossible to have multiple versions of libc installed and upgrading it is usually only done during whole os updates. As a case in point, would you upgrade your old box's libc in isolation? Probably not. Either way, this change in the 1.x series seems inappropriate. It might be ok for 2.x, though will cost some number of adopters to put it off for a later date. Later, BradLaziness/incompetence mostly. Actually it has no Internet connection so I would have to play a few fun games to get anything done. Come to think of it though, I do have 2 blank hard drive in it that I could play with.... Short version is it would be a pain. If you can build DMD with stuff that won't require people to update it would save a lot of effort for a bunch of people.When I built dmd with the old library, then people with the modern ubuntu had to go find the old C shared library and install that. So somebody will be inconvenienced. I think it's better to make things painless for people using the latest linux.
Nov 28 2007
Walter Bright Wrote:korogu wrote:Is it the package called "libc6" ? I updated to the latest available version, 2.3.6-0ubuntu20.5 Same error message ...Version 2.007 worked fine, but trying to run 2.008 I got : dmd: /lib/tls/libc.so.6: version `GLIBC_2.4' not found (required by dmd) How can i correct that :-s ?This version of dmd was compiled with the latest ubuntu, which probably uses the latest C runtime library. So can you install the latest C shared runtime library?
Nov 28 2007
Walter Bright Wrote:korogu wrote:It looks like the only symbol requiring >=glibc-2.4 in the binary is [dittrich despina] readelf -s ./dmd.bin | grep GLIBC_2.4 69: 00000000 70 FUNC GLOBAL DEFAULT UND __stack_chk_fail GLIBC_2.4 (10) which probably means that you used "-fstack-protector" or sth similar to compile the dmd source. Without it, the requirement for a newer glibc may actually go away. Otherwise, dmd.bin could also be distributed as a static binary at the cost of a (much) larger filesize. MarkusVersion 2.007 worked fine, but trying to run 2.008 I got : dmd: /lib/tls/libc.so.6: version `GLIBC_2.4' not found (required by dmd) How can i correct that :-s ?This versin of dmd was compiled with the latest ubuntu, which probably uses the latest C runtime library. So can you install the latest C shared runtime library?
Nov 28 2007
On Wed, 28 Nov 2007, Markus Dittrich wrote:Walter Bright Wrote:You can't link libc statically (for glibc at least, other os' do allow it) any more. I forget the last version that supported it, but it might well be prior to 2.4. Either way, it's not considered supported to build against version X of glibc and run it against any version < X, only >= even if it happens to not link against a versioned symbol (not all symbols are versioned). Later, Bradkorogu wrote:It looks like the only symbol requiring >=glibc-2.4 in the binary is [dittrich despina] readelf -s ./dmd.bin | grep GLIBC_2.4 69: 00000000 70 FUNC GLOBAL DEFAULT UND __stack_chk_fail GLIBC_2.4 (10) which probably means that you used "-fstack-protector" or sth similar to compile the dmd source. Without it, the requirement for a newer glibc may actually go away. Otherwise, dmd.bin could also be distributed as a static binary at the cost of a (much) larger filesize. MarkusVersion 2.007 worked fine, but trying to run 2.008 I got : dmd: /lib/tls/libc.so.6: version `GLIBC_2.4' not found (required by dmd) How can i correct that :-s ?This versin of dmd was compiled with the latest ubuntu, which probably uses the latest C runtime library. So can you install the latest C shared runtime library?
Nov 28 2007
Brad Roberts Wrote:You can't link libc statically (for glibc at least, other os' do allow it) any more. I forget the last version that supported it, but it might well be prior to 2.4. Either way, it's not considered supported to build against version X of glibc and run it against any version < X, only >= even if it happens to not link against a versioned symbol (not all symbols are versioned).Yeah, you are absolutely correct - static linking won't work for glibc. My bad :( Markus
Nov 28 2007
Markus Dittrich wrote:It looks like the only symbol requiring >=glibc-2.4 in the binary is [dittrich despina] readelf -s ./dmd.bin | grep GLIBC_2.4 69: 00000000 70 FUNC GLOBAL DEFAULT UND __stack_chk_fail GLIBC_2.4 (10) which probably means that you used "-fstack-protector" or sth similar to compile the dmd source. Without it, the requirement for a newer glibc may actually go away. Otherwise, dmd.bin could also be distributed as a static binary at the cost of a (much) larger filesize.I didn't use that switch. Hmm, do both 1.0 and 2.0 dmd's have this problem?
Nov 28 2007
Walter Bright Wrote:Markus Dittrich wrote:The only thing I can think of right now is that some distros may patch their gcc specs such that certain flags are being applied by default without user interaction. But I don't know if this is the case for ubuntu since I've never used it. You could always try to explicitly turn it off via "-fno-stack-protector" (assuming that your gcc has this flag, mine does) and see if that symbol goes away. cheers, MarkusIt looks like the only symbol requiring >=glibc-2.4 in the binary is [dittrich despina] readelf -s ./dmd.bin | grep GLIBC_2.4 69: 00000000 70 FUNC GLOBAL DEFAULT UND __stack_chk_fail GLIBC_2.4 (10) which probably means that you used "-fstack-protector" or sth similar to compile the dmd source. Without it, the requirement for a newer glibc may actually go away. Otherwise, dmd.bin could also be distributed as a static binary at the cost of a (much) larger filesize.I didn't use that switch. Hmm, do both 1.0 and 2.0 dmd's have this problem?
Nov 28 2007
"Walter Bright" <newshound1 digitalmars.com> wrote in message news:fiiu78$1sf5$1 digitalmars.com...New const/invariant in 2.007! http://www.digitalmars.com/d/1.0/changelog.html http://ftp.digitalmars.com/dmd.1.024.zip http://www.digitalmars.com/d/changelog.html http://ftp.digitalmars.com/dmd.2.008.zip"Changed the way coverage analysis is done so it is independent of order dependencies among modules." !! Oh man, thank God for this.
Nov 28 2007
Walter Bright escribió:New const/invariant in 2.007! http://www.digitalmars.com/d/1.0/changelog.html http://ftp.digitalmars.com/dmd.1.024.zip http://www.digitalmars.com/d/changelog.html http://ftp.digitalmars.com/dmd.2.008.zipI hope nobody gets offended by this, but I don't like that Phobos is mimicking the C++ STL so much. In a way, it seems to be losing its D flavor. -- Carlos Santander Bernal
Nov 28 2007
Carlos Santander wrote:I hope nobody gets offended by this, but I don't like that Phobos is mimicking the C++ STL so much. In a way, it seems to be losing its D flavor.That is a deliberate choice. My problem with the STL is not its ideas, which are sound, but the un-aesthetic implementation.
Nov 28 2007
Walter Bright wrote:New const/invariant in 2.007! http://www.digitalmars.com/d/1.0/changelog.html http://ftp.digitalmars.com/dmd.1.024.zip http://www.digitalmars.com/d/changelog.html http://ftp.digitalmars.com/dmd.2.008.zipAwesome! Thanks Walter :) BTW, 1.024 is the sexiest version number so far ;D -- Tomasz Stachowiak http://h3.team0xf.com/ h3/h3r3tic on #D freenode
Nov 28 2007
Tom S wrote:Walter Bright wrote:Happy Version (2**10)/(10**3)! -- DanielNew const/invariant in 2.007! http://www.digitalmars.com/d/1.0/changelog.html http://ftp.digitalmars.com/dmd.1.024.zip http://www.digitalmars.com/d/changelog.html http://ftp.digitalmars.com/dmd.2.008.zipAwesome! Thanks Walter :) BTW, 1.024 is the sexiest version number so far ;D
Nov 28 2007
I have noticed that the status of some bugs listed in the changelog of the release are not marked as fixed in bugzilla. g.
Nov 28 2007
On Wed, 28 Nov 2007, guslay wrote:I have noticed that the status of some bugs listed in the changelog of the release are not marked as fixed in bugzilla. g.Bugs aren't always marked resolved right away (there's usually a day or two lag which gives reporters time to confirm and object to the fix if it's not actually fixed). If they're your bug reports and you can confirm that the issues are indeed resolved, then feel free to go ahead and mark them resolved. Later, Brad
Nov 28 2007
Brad Roberts wrote:On Wed, 28 Nov 2007, guslay wrote:I'd hope the submitter doesn't just close the bugs. After many past issues with the GC, I was very interested in seeing more description about how the long-standing issues were fixed.I have noticed that the status of some bugs listed in the changelog of the release are not marked as fixed in bugzilla. g.Bugs aren't always marked resolved right away (there's usually a day or two lag which gives reporters time to confirm and object to the fix if it's not actually fixed). If they're your bug reports and you can confirm that the issues are indeed resolved, then feel free to go ahead and mark them resolved. Later, Brad
Nov 29 2007
Walter, you snuck in a change to implicit template arguments, didn't you? The following works now but failed before: template Foo (U : Bar!(T), T) { pragma (msg, T.stringof); const bool Foo = false; } class Bar (T) { T value; } void main () { auto f = Foo!(Bar!(long)); } interface IFoo : ImplementedBy!(Foo) {} Though it only works for types, so I can't do: class Bar : DbTable!("DatabaseTableForBar") {}
Dec 04 2007
Okay, that all works, but only in a shallow manner. If you add the following, it doesn't compile: class Something : Bar!(int) {} bool b = Foo!(Something); A pity, that. No faking attributes yet. Christopher Wright wrote:Walter, you snuck in a change to implicit template arguments, didn't you? The following works now but failed before: template Foo (U : Bar!(T), T) { pragma (msg, T.stringof); const bool Foo = false; } class Bar (T) { T value; } void main () { auto f = Foo!(Bar!(long)); } interface IFoo : ImplementedBy!(Foo) {} Though it only works for types, so I can't do: class Bar : DbTable!("DatabaseTableForBar") {}
Dec 04 2007
Christopher Wright wrote:Okay, that all works, but only in a shallow manner. If you add the following, it doesn't compile: class Something : Bar!(int) {} bool b = Foo!(Something); A pity, that. No faking attributes yet.Also, it doesn't work with is expressions (the spec strongly implies that it should), and you can't differentiate templates based on it. I get the feeling this isn't going to be fixed very soon, but I'll file a bug.
Dec 04 2007
Christopher Wright wrote:Also, it doesn't work with is expressions (the spec strongly implies that it should), and you can't differentiate templates based on it. I get the feeling this isn't going to be fixed very soon, but I'll file a bug.Yes, please file a bug on bugzilla with canonical examples. That will help a lot.
Dec 04 2007