digitalmars.D - DMD 0.117 release
- "Walter" <newshound digitalmars.com> Mar 11 2005
- clayasaurus <clayasaurus gmail.com> Mar 11 2005
- "Walter" <newshound digitalmars.com> Mar 11 2005
- =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= <afb algonet.se> Mar 12 2005
- "Ben Hinkle" <ben.hinkle gmail.com> Mar 12 2005
- Georg Wrede <georg.wrede nospam.org> Mar 12 2005
- Bastiaan Veelo <Bastiaan.N.Veelo ntnu.no> Mar 12 2005
- J C Calvarese <jcc7 cox.net> Mar 12 2005
- J C Calvarese <jcc7 cox.net> Mar 11 2005
- John Reimer <brk_6502 yahoo.com> Mar 11 2005
- Derek Parnell <derek psych.ward> Mar 11 2005
- John Reimer <brk_6502 yahoo.com> Mar 11 2005
- "Walter" <newshound digitalmars.com> Mar 11 2005
- "Andrew Fedoniouk" <news terrainformatica.com> Mar 11 2005
- "Walter" <newshound digitalmars.com> Mar 11 2005
- "Andrew Fedoniouk" <news terrainformatica.com> Mar 11 2005
- =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= <afb algonet.se> Mar 12 2005
- "Andrew Fedoniouk" <news terrainformatica.com> Mar 12 2005
- Kris <Kris_member pathlink.com> Mar 11 2005
- "Walter" <newshound digitalmars.com> Mar 12 2005
- "Walter" <newshound digitalmars.com> Mar 12 2005
- Kris <Kris_member pathlink.com> Mar 12 2005
- Andy Friesen <andy ikagames.com> Mar 11 2005
- "Jarrett Billingsley" <kb3ctd2 yahoo.com> Mar 12 2005
- "Walter" <newshound digitalmars.com> Mar 12 2005
- =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= <afb algonet.se> Mar 12 2005
- "Walter" <newshound digitalmars.com> Mar 12 2005
- Kris <Kris_member pathlink.com> Mar 12 2005
Cleaning out the attic of lots of minor bug fixes. http://www.digitalmars.com/d/changelog.html
Mar 11 2005
Walter wrote:Cleaning out the attic of lots of minor bug fixes. http://www.digitalmars.com/d/changelog.html
horray! i'm not sure if i got the new version, because the command line still says 'DMD .116' though i did get it from ftp://ftp.digitalmars.com/dmd.117.zip one question, though. why doesn't the compiler stop compiling when it gives me warnings? shouldn't warnings just warn and still compile? *confused* thanks.
Mar 11 2005
"clayasaurus" <clayasaurus gmail.com> wrote in message news:d0torr$19ia$1 digitaldaemon.com...Walter wrote:Cleaning out the attic of lots of minor bug fixes. http://www.digitalmars.com/d/changelog.html
horray! i'm not sure if i got the new version, because the command line still says 'DMD .116' though i did get it from ftp://ftp.digitalmars.com/dmd.117.zip
Forgot to copy the linux one in, fixed now.one question, though. why doesn't the compiler stop compiling when it gives me warnings? shouldn't warnings just warn and still compile?
The warnings cause the compiler to stop with a non-zero exit code for those who do automated builds. If it didn't, they'd miss the warnings as the scroll off the screen.
Mar 11 2005
Walter wrote:i'm not sure if i got the new version, because the command line still says 'DMD .116' though i did get it from ftp://ftp.digitalmars.com/dmd.117.zip
Forgot to copy the linux one in, fixed now.
Maybe there should be some kind of "release candidate" procedure to the new zipfiles ? Or do we have to give the MD5SUM of the zip of the DMD version we're using ? ;-) "Fixed now" seems to imply it was changed *after* release ? --anders PS. http://www.algonet.se/~afb/d/diffs/dmd.listing http://www.algonet.se/~afb/d/diffs/dmd.md5sum
Mar 12 2005
one question, though. why doesn't the compiler stop compiling when it gives me warnings? shouldn't warnings just warn and still compile?
The warnings cause the compiler to stop with a non-zero exit code for those who do automated builds. If it didn't, they'd miss the warnings as the scroll off the screen.
That effectively makes all warnings into errors which is very different than just showing warnings and letting the user do what they want to. Capturing output so that it doesn't scroll off the screen is covered in programming 101 so I would assume people can deal with multiple comments.
Mar 12 2005
Walter, could you change DMD so that error output goes to stderr? Ben Hinkle wrote:one question, though. why doesn't the compiler stop compiling when it gives me warnings? shouldn't warnings just warn and still compile?
The warnings cause the compiler to stop with a non-zero exit code for those who do automated builds. If it didn't, they'd miss the warnings as the scroll off the screen.
That effectively makes all warnings into errors which is very different than just showing warnings and letting the user do what they want to. Capturing output so that it doesn't scroll off the screen is covered in programming 101 so I would assume people can deal with multiple comments.
Mar 12 2005
Ben Hinkle wrote:one question, though. why doesn't the compiler stop compiling when it gives me warnings? shouldn't warnings just warn and still compile?
The warnings cause the compiler to stop with a non-zero exit code for those who do automated builds. If it didn't, they'd miss the warnings as the scroll off the screen.
That effectively makes all warnings into errors which is very different than just showing warnings and letting the user do what they want to. Capturing output so that it doesn't scroll off the screen is covered in programming 101 so I would assume people can deal with multiple comments.
How about aping the -Werror option of gcc ("make all warnings into errors") for use in automated builds? Bastiaan.
Mar 12 2005
Ben Hinkle wrote:one question, though. why doesn't the compiler stop compiling when it gives me warnings? shouldn't warnings just warn and still compile?
The warnings cause the compiler to stop with a non-zero exit code for those who do automated builds. If it didn't, they'd miss the warnings as the scroll off the screen.
That effectively makes all warnings into errors which is very different than just showing warnings and letting the user do what they want to. Capturing output so that it doesn't scroll off the screen is covered in programming 101 so I would assume people can deal with multiple comments.
I agree. Also, if someone is "responsible" enough to want warnings, they should be responsible enough to start fixing the warnings at the bottom of the list until the top of at list are visible. DMD should produce as many warnings as possible (when the switch is turned on). Let the user worry about capturing the information and applying the appropriate fixes. ;) -- Justin (a/k/a jcc7) http://jcc_7.tripod.com/d/
Mar 12 2005
Walter wrote:Cleaning out the attic of lots of minor bug fixes. http://www.digitalmars.com/d/changelog.html
Such as # Added pragma(lib, "library name"); Hip. Hip. Hooray! I think a few people have requested this. ;) # cent and ucent are now keywords, to ensure they stay reserved. Great! It nevers hurts to plan ahead. -- Justin (a/k/a jcc7) http://jcc_7.tripod.com/d/
Mar 11 2005
J C Calvarese wrote:Walter wrote:Cleaning out the attic of lots of minor bug fixes. http://www.digitalmars.com/d/changelog.html
Such as # Added pragma(lib, "library name"); Hip. Hip. Hooray! I think a few people have requested this. ;)
This is great. One less thing for Derek's build to worry about. I'm a little surprised, though, that it suddenly showed up in dmd. Walter showed no indication of adding this pragma, unless I missed a post somewhere. Maybe he just found Derek's build utility /too/ handy! ;-) -JJR
Mar 11 2005
On Fri, 11 Mar 2005 22:41:17 -0800, John Reimer wrote:J C Calvarese wrote:Walter wrote:Cleaning out the attic of lots of minor bug fixes. http://www.digitalmars.com/d/changelog.html
Such as # Added pragma(lib, "library name"); Hip. Hip. Hooray! I think a few people have requested this. ;)
This is great. One less thing for Derek's build to worry about. I'm a little surprised, though, that it suddenly showed up in dmd. Walter showed no indication of adding this pragma, unless I missed a post somewhere. Maybe he just found Derek's build utility /too/ handy! ;-) -JJR
Well, DMD only supports library linkages this way, but build still supports library *and* object files. version(build) pragma(link, "somefile.obj"); version(build) pragma(link, "libone.lib", "libtwo.lib"); ;-) -- Derek Parnell Melbourne, Australia 12/03/2005 5:49:38 PM
Mar 11 2005
Derek Parnell wrote:On Fri, 11 Mar 2005 22:41:17 -0800, John Reimer wrote:J C Calvarese wrote:Walter wrote:Cleaning out the attic of lots of minor bug fixes. http://www.digitalmars.com/d/changelog.html
Such as # Added pragma(lib, "library name"); Hip. Hip. Hooray! I think a few people have requested this. ;)
This is great. One less thing for Derek's build to worry about. I'm a little surprised, though, that it suddenly showed up in dmd. Walter showed no indication of adding this pragma, unless I missed a post somewhere. Maybe he just found Derek's build utility /too/ handy! ;-) -JJR
Well, DMD only supports library linkages this way, but build still supports library *and* object files. version(build) pragma(link, "somefile.obj"); version(build) pragma(link, "libone.lib", "libtwo.lib"); ;-)
Yes, build is still clearly superior. 8^D
Mar 11 2005
"John Reimer" <brk_6502 yahoo.com> wrote in message news:d0u2uf$1jnk$1 digitaldaemon.com...J C Calvarese wrote:Walter wrote:Cleaning out the attic of lots of minor bug fixes. http://www.digitalmars.com/d/changelog.html
Such as # Added pragma(lib, "library name"); Hip. Hip. Hooray! I think a few people have requested this. ;)
This is great. One less thing for Derek's build to worry about. I'm a little surprised, though, that it suddenly showed up in dmd. Walter showed no indication of adding this pragma, unless I missed a post somewhere. Maybe he just found Derek's build utility /too/ handy! ;-)
It's been in DMC++ forever. I just hadn't gotten around to putting it in DMD before.
Mar 11 2005
Walter, one question: are you going to provide static AA initializers? For the sake if consistency with arrays and structs. And one more: do you have public bugs DB access? I mean to take a look on what is "Fixed D.bugs/1795". Thanks in advance, Andrew. "Walter" <newshound digitalmars.com> wrote in message news:d0tn63$18an$1 digitaldaemon.com...Cleaning out the attic of lots of minor bug fixes. http://www.digitalmars.com/d/changelog.html
Mar 11 2005
"Andrew Fedoniouk" <news terrainformatica.com> wrote in message news:d0tqj5$1bag$1 digitaldaemon.com...Walter, one question: are you going to provide static AA initializers? For the sake if consistency with arrays and structs.
Yes, but not for 1.0. There are some non-trivial decisions that have to be made before it can be implemented.And one more: do you have public bugs DB access? I mean to take a look on what is "Fixed D.bugs/1795".
That refers to newsgroup posting digitalmars.D.bugs/1795
Mar 11 2005
Thanks a lot, Walter.are you going to provide static AA initializers? For the sake if consistency with arrays and structs.
Yes, but not for 1.0. There are some non-trivial decisions that have to be made before it can be implemented.
Please let me know if you need help here. I guess that {struct aaA} can be used "as is" for placing elements in static section. So lookup procedure can be built on the same principles as lookup in the heap... Andrew. "Walter" <newshound digitalmars.com> wrote in message news:d0traq$1bvh$1 digitaldaemon.com..."Andrew Fedoniouk" <news terrainformatica.com> wrote in message news:d0tqj5$1bag$1 digitaldaemon.com...Walter, one question: are you going to provide static AA initializers? For the sake if consistency with arrays and structs.
Yes, but not for 1.0. There are some non-trivial decisions that have to be made before it can be implemented.And one more: do you have public bugs DB access? I mean to take a look on what is "Fixed D.bugs/1795".
That refers to newsgroup posting digitalmars.D.bugs/1795
Mar 11 2005
Andrew Fedoniouk wrote:And one more: do you have public bugs DB access? I mean to take a look on what is "Fixed D.bugs/1795".
Look at: digitalmars.D.bugs/1795 Maybe Walter can make these references into proper links ? Also, the link in the announcements should be: http://www.digitalmars.com/d/changelog.html#new0117 This will make them more useful, in the future... --anders
Mar 12 2005
Thanks a lot, Anders, This url is exactly what I need. I've seen it before but couldn't find. Andrew. "Anders F Björklund" <afb algonet.se> wrote in message news:d0ua3d$1s85$1 digitaldaemon.com...Andrew Fedoniouk wrote:And one more: do you have public bugs DB access? I mean to take a look on what is "Fixed D.bugs/1795".
Look at: digitalmars.D.bugs/1795 Maybe Walter can make these references into proper links ? Also, the link in the announcements should be: http://www.digitalmars.com/d/changelog.html#new0117 This will make them more useful, in the future... --anders
Mar 12 2005
In article <d0tn63$18an$1 digitaldaemon.com>, Walter says...Cleaning out the attic of lots of minor bug fixes.
Mango produced three or four of the following warning types, which appear to be bogus: "warning - function mango.io.FileConduit.FileConduit.copy no return at end of function" # FileConduit copy (FilePath source) # { # auto FileConduit fc = new FileConduit (source); # super.copy (fc); # return this; # } Moving along, Mango conjures up a thicket of "implicit conversion of type int to bit can cause loss of data". These are caused by a variation upon this kind of statement: # bool x (int y, int z) # { # return y > z; # } Then, there's a few similar warnings where the sign bit is lost through a legitimate conversion. There's also a few narrowing conversions when interfacing with Win32 functions, and so on. The latter are occasionally related to enum specifications, which could be changed. All in all the warnings found one bug, caused me to cleanup the 'sign' of a few declarations (potentially better codegen), and pointed out that various methods in std.date return a 64-bit long instead of something much smaller (how many hours /are/ there in a day? :-) Definately worthwhile, IMO. I could understand if some complained about "not seeing the forest for the trees", but that's life with a type-system of this nature. I do wonder if there's any value in filtering the warnings somehow. For example, the "int to bit" conversion for returns is one of those "idioms" that Walter talks about; and Mango produces lots of 'em! But then we'd perhaps have to get into warning levels? Oh well. Thanks, Walter. I think this was absolutely worthwhile.
Mar 11 2005
"Kris" <Kris_member pathlink.com> wrote in message news:d0trn2$1c63$1 digitaldaemon.com...In article <d0tn63$18an$1 digitaldaemon.com>, Walter says...Cleaning out the attic of lots of minor bug fixes.
Mango produced three or four of the following warning types, which appear
bogus: "warning - function mango.io.FileConduit.FileConduit.copy no return
end of function" # FileConduit copy (FilePath source) # { # auto FileConduit fc = new FileConduit (source); # super.copy (fc); # return this; # }
I'll try and fix that.Moving along, Mango conjures up a thicket of "implicit conversion of type
bit can cause loss of data". These are caused by a variation upon this
statement: # bool x (int y, int z) # { # return y > z; # }
This D may need to allow to pass without the warning.Then, there's a few similar warnings where the sign bit is lost through a legitimate conversion. There's also a few narrowing conversions when
with Win32 functions, and so on. The latter are occasionally related to
specifications, which could be changed. All in all the warnings found one bug, caused me to cleanup the 'sign' of
declarations (potentially better codegen), and pointed out that various
in std.date return a 64-bit long instead of something much smaller (how
hours /are/ there in a day? :-) Definately worthwhile, IMO. I could understand if some complained about
seeing the forest for the trees", but that's life with a type-system of
nature. I do wonder if there's any value in filtering the warnings somehow. For
the "int to bit" conversion for returns is one of those "idioms" that
talks about; and Mango produces lots of 'em! But then we'd perhaps have to
into warning levels? Oh well. Thanks, Walter. I think this was absolutely worthwhile.
You're welcome.
Mar 12 2005
"Kris" <Kris_member pathlink.com> wrote in message news:d0trn2$1c63$1 digitaldaemon.com...Mango produced three or four of the following warning types, which appear
bogus: "warning - function mango.io.FileConduit.FileConduit.copy no return
end of function" # FileConduit copy (FilePath source) # { # auto FileConduit fc = new FileConduit (source); # super.copy (fc); # return this; # }
I tried to reproduce the problem with the following: class A { A copy(); } class B : A { B copy () { auto B fc = new B (); super.copy (); return this; } } but no dice. It works fine.
Mar 12 2005
In article <d0vsg8$le1$1 digitaldaemon.com>, Walter says..."Kris" <Kris_member pathlink.com> wrote in message news:d0trn2$1c63$1 digitaldaemon.com...Mango produced three or four of the following warning types, which appear
bogus: "warning - function mango.io.FileConduit.FileConduit.copy no return
end of function" # FileConduit copy (FilePath source) # { # auto FileConduit fc = new FileConduit (source); # super.copy (fc); # return this; # }
I tried to reproduce the problem with the following: class A { A copy(); } class B : A { B copy () { auto B fc = new B (); super.copy (); return this; } } but no dice. It works fine.
Hmmmm. I figured it was just the implicit try/catch (via the 'auto') that was causing the problem. Indeed, temporarily removing the 'auto' causes the warning to be inhibited. Don't know what to tell you about this one. I was going to post other samples from Mango that produce the same error, but closer inspection revealed the warning was actually correct. Those examples are thread workers, with try/catch around the body which contains an embedded return ~ said workers don't have a return at the end, which they perhaps should ~ some more subtle bug-fixes to chalk-up for warnings?
Mar 12 2005
Walter wrote:Cleaning out the attic of lots of minor bug fixes. http://www.digitalmars.com/d/changelog.html
Added pragma(lib, "library name");
Excellent. Making library distribution simple just got a whole lot simpler: 1) Store source code in "src/mylibrary/mylibrary.d" 2) Put libraries in "lib/mylibrary.lib" 3) compress all this to .zip 4) Users of the library decompress this archive to d:/path/to/dmd Under such a scheme, projects that wish to use the library do not require so much as a single compile switch. The trick is getting a convention into place. :) -- andy
Mar 11 2005
"Andy Friesen" <andy ikagames.com> wrote in message news:d0tvg3$1h4v$1 digitaldaemon.com...Walter wrote:Cleaning out the attic of lots of minor bug fixes. http://www.digitalmars.com/d/changelog.html
Added pragma(lib, "library name");
Excellent. Making library distribution simple just got a whole lot simpler:
Indeed! I always thought that there should be a command to link a library without having to use the command line. Now we can put the pragma(lib) command in our import modules. Then, just import and everything works. And the abstract class keyword does EXACTLY what I've been wanting to do for a long time! No more private ctors to make base classes un-instantiate-able! This is quite a juicy release.
Mar 12 2005
"Jarrett Billingsley" <kb3ctd2 yahoo.com> wrote in message news:d0vasn$3mj$1 digitaldaemon.com...And the abstract class keyword does EXACTLY what I've been wanting to do
a long time! No more private ctors to make base classes un-instantiate-able!
Abstract was supposed to do this from the beginning, I'd just neglected making it work right.This is quite a juicy release.
I guess it was more than I thought <g>. There are still more cobwebbed problems I need to clean off my desk, and I really want to get them done so we can do 1.0.
Mar 12 2005
Walter wrote:Cleaning out the attic of lots of minor bug fixes. http://www.digitalmars.com/d/changelog.html
This new DMD release fails to build Phobos...gcc -o unittest unittest.o libphobos.a -lpthread -lm -g libphobos.a(gc.o)(.gnu.linkonce.tgc_init+0x47): In function `gc_init': : undefined reference to `_D3std2gc7gc_init6Thread11thread_initFZv' libphobos.a(gcx.o)(.gnu.linkonce.t_D3gcx2GC6mallocFkZPv+0x1a): In function `_D3gcx2GC6mallocFkZPv': : undefined reference to `_D3gcx2GC12mallocNoSync6Thread8nthreadsk' libphobos.a(gcx.o)(.gnu.linkonce.t_D3gcx2GC12mallocNoSyncFkZPv+0x72): In function `_D3gcx2GC12mallocNoSyncFkZPv': : undefined reference to `_D3gcx2GC12mallocNoSync6Thread8nthreadsk' libphobos.a(gcx.o)(.gnu.linkonce.t_D3gcx3Gcx11fullcollectFPvZk+0x15): In function `_D3gcx3Gcx11fullcollectFPvZk': : undefined reference to `_D3gcx2GC12mallocNoSync6Thread8pauseAllFZv' libphobos.a(gcx.o)(.gnu.linkonce.t_D3gcx3Gcx11fullcollectFPvZk+0xeb): In function `_D3gcx3Gcx11fullcollectFPvZk': : undefined reference to `_D3gcx2GC12mallocNoSync6Thread6getAllFZAC3std6thread6Thread' libphobos.a(gcx.o)(.gnu.linkonce.t_D3gcx3Gcx11fullcollectFPvZk+0x147): In function `_D3gcx3Gcx11fullcollectFPvZk': : undefined reference to `_D3gcx2GC12mallocNoSync6Thread6getESPFZPv' libphobos.a(gcx.o)(.gnu.linkonce.t_D3gcx3Gcx11fullcollectFPvZk+0x6b9): In function `_D3gcx3Gcx11fullcollectFPvZk': : undefined reference to `_D3gcx2GC12mallocNoSync6Thread9resumeAllFZv' collect2: ld returned 1 exit status
Both without -release (for my debugging version) and with -unittest (for running the unit test) --anders
Mar 12 2005
You're right. I introduced a botch in the name mangling system. I'll try and get that fixed today.
Mar 12 2005
In article <d0vhko$a6j$2 digitaldaemon.com>, Walter says...You're right. I introduced a botch in the name mangling system. I'll try and get that fixed today.
Could you also fix the erroneous warning noted in post "Mango and -w" ?
Mar 12 2005









=?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= <afb algonet.se> 