www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - DMD 0.117 release

reply "Walter" <newshound digitalmars.com> writes:
Cleaning out the attic of lots of minor bug fixes.

http://www.digitalmars.com/d/changelog.html
Mar 11 2005
next sibling parent reply clayasaurus <clayasaurus gmail.com> writes:
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
parent reply "Walter" <newshound digitalmars.com> writes:
"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
next sibling parent =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= <afb algonet.se> writes:
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
prev sibling parent reply "Ben Hinkle" <ben.hinkle gmail.com> writes:
 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
next sibling parent Georg Wrede <georg.wrede nospam.org> writes:
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
prev sibling next sibling parent Bastiaan Veelo <Bastiaan.N.Veelo ntnu.no> writes:
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
prev sibling parent J C Calvarese <jcc7 cox.net> writes:
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
prev sibling next sibling parent reply J C Calvarese <jcc7 cox.net> writes:
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
parent reply John Reimer <brk_6502 yahoo.com> writes:
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
next sibling parent reply Derek Parnell <derek psych.ward> writes:
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
parent John Reimer <brk_6502 yahoo.com> writes:
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
prev sibling parent "Walter" <newshound digitalmars.com> writes:
"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
prev sibling next sibling parent reply "Andrew Fedoniouk" <news terrainformatica.com> writes:
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
next sibling parent reply "Walter" <newshound digitalmars.com> writes:
"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
parent "Andrew Fedoniouk" <news terrainformatica.com> writes:
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
prev sibling parent reply =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= <afb algonet.se> writes:
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
parent "Andrew Fedoniouk" <news terrainformatica.com> writes:
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
prev sibling next sibling parent reply Kris <Kris_member pathlink.com> writes:
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
next sibling parent "Walter" <newshound digitalmars.com> writes:
"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
prev sibling parent reply "Walter" <newshound digitalmars.com> writes:
"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
parent Kris <Kris_member pathlink.com> writes:
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
prev sibling next sibling parent reply Andy Friesen <andy ikagames.com> writes:
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
parent reply "Jarrett Billingsley" <kb3ctd2 yahoo.com> writes:
"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
parent "Walter" <newshound digitalmars.com> writes:
"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
prev sibling parent reply =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= <afb algonet.se> writes:
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
parent reply "Walter" <newshound digitalmars.com> writes:
You're right. I introduced a botch in the name mangling system. I'll try and
get that fixed today.
Mar 12 2005
parent Kris <Kris_member pathlink.com> writes:
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