www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - dmd 1.042 and 2.027 releases

reply Walter Bright <newshound1 digitalmars.com> writes:
The large volume of bug fixes is because a lot of people contributed 
patches. Thanks!

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


http://www.digitalmars.com/d/2.0/changelog.html
http://ftp.digitalmars.com/dmd.2.027.zip
Mar 31 2009
next sibling parent reply "Nick Sabalausky" <a a.a> writes:
"Walter Bright" <newshound1 digitalmars.com> wrote in message 
news:gqutln$1q9u$1 digitalmars.com...
 The large volume of bug fixes is because a lot of people contributed 
 patches. Thanks!

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


 http://www.digitalmars.com/d/2.0/changelog.html
 http://ftp.digitalmars.com/dmd.2.027.zip

On April 1? What is this, a joke? ;-)
Mar 31 2009
parent Walter Bright <newshound1 digitalmars.com> writes:
Nick Sabalausky wrote:
 On April 1? What is this, a joke? ;-) 

It's still March here!
Mar 31 2009
prev sibling next sibling parent reply Olli Aalto <oaalto gmail.com> writes:
Walter Bright wrote:
 The large volume of bug fixes is because a lot of people contributed 
 patches. Thanks!
 
 http://www.digitalmars.com/d/1.0/changelog.html
 http://ftp.digitalmars.com/dmd.1.042.zip
 
 
 http://www.digitalmars.com/d/2.0/changelog.html
 http://ftp.digitalmars.com/dmd.2.027.zip

main.d => main Error: version identifier 'Posix' is reserved and cannot be set Command /home/oaalto/D/dsss/bin/rebuild returned with code 256, aborting. Error: Command failed, aborting. Wasn't this supposed to be fixed for 1.042 too?
Apr 01 2009
parent reply Walter Bright <newshound1 digitalmars.com> writes:
Olli Aalto wrote:
 main.d => main
 Error: version identifier 'Posix' is reserved and cannot be set
 Command /home/oaalto/D/dsss/bin/rebuild returned with code 256, aborting.
 Error: Command failed, aborting.
 
 Wasn't this supposed to be fixed for 1.042 too?

Yes. I goofed that up. Sorry.
Apr 01 2009
parent reply Walter Bright <newshound1 digitalmars.com> writes:
Walter Bright wrote:
 Yes. I goofed that up. Sorry.

I uploaded a patched version to fix it.
Apr 01 2009
parent Olli Aalto <oaalto gmail.com> writes:
Walter Bright wrote:
 Walter Bright wrote:
 Yes. I goofed that up. Sorry.

I uploaded a patched version to fix it.

Works now. Thank you.
Apr 01 2009
prev sibling next sibling parent reply Max Samukha <samukha voliacable.com.removethis> writes:
On Tue, 31 Mar 2009 22:21:59 -0700, Walter Bright
<newshound1 digitalmars.com> wrote:

The large volume of bug fixes is because a lot of people contributed 
patches. Thanks!

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


http://www.digitalmars.com/d/2.0/changelog.html
http://ftp.digitalmars.com/dmd.2.027.zip

Great! Does it mean opDot is deprecated?
Apr 01 2009
next sibling parent Walter Bright <newshound1 digitalmars.com> writes:
Max Samukha wrote:
 Great! Does it mean opDot is deprecated?

Yes.
Apr 01 2009
prev sibling next sibling parent Christopher Wright <dhasenan gmail.com> writes:
davidl wrote:
 在 Wed, 01 Apr 2009 16:43:57 +0800,Max Samukha 
 <samukha voliacable.com.removethis> 写道:
 
 On Tue, 31 Mar 2009 22:21:59 -0700, Walter Bright
 <newshound1 digitalmars.com> wrote:

 The large volume of bug fixes is because a lot of people contributed
 patches. Thanks!

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


 http://www.digitalmars.com/d/2.0/changelog.html
 http://ftp.digitalmars.com/dmd.2.027.zip

Great! Does it mean opDot is deprecated?

why not make opDot some compile time stuff? class V { opDot(char[] method, ...) { // runtime lib to figure what the method is, and then call it with vararg! } }

I'm in favor of adding more dynamic stuff to D, but it's going to happen slowly.
Apr 01 2009
prev sibling next sibling parent reply bearophile <bearophileHUGS lycos.com> writes:
davidl:
 why not make opDot some compile time stuff?

You mean run time.
 this can be particular useful for COM

And GUIs, I guess. It smells of Object-C++, but the syntax is nicer. But such runtime code must be not included into the executable if this feature is nowhere used in the code. D executable are already quite big enough. Bye, bearophile
Apr 01 2009
next sibling parent Don <nospam nospam.com> writes:
bearophile wrote:
 davidl:
 why not make opDot some compile time stuff?

You mean run time.

No, he means compile time. The name becomes a template value parameter, which is available at compile time.
 
 this can be particular useful for COM

And GUIs, I guess. It smells of Object-C++, but the syntax is nicer. But such runtime code must be not included into the executable if this feature is nowhere used in the code. D executable are already quite big enough.

There's not necessarily any runtime code.
 
 Bye,
 bearophile

Apr 01 2009
prev sibling parent reply Charles Hixson <charleshixsn earthlink.net> writes:
bearophile wrote:
 davidl:
 why not make opDot some compile time stuff?

You mean run time.
 this can be particular useful for COM

And GUIs, I guess. It smells of Object-C++, but the syntax is nicer. But such runtime code must be not included into the executable if this feature is nowhere used in the code. D executable are already quite big enough. Bye, bearophile

considered Object-C++. Seriously... It's important to be able to write code that can be optimized at compile time...and it's also important to be able to write code that can be dynamic at run-time. D has been lacking in the second set of capabilities, though it's been dynamite at the first. ... After saying this I started thinking a bit more. D is more dynamic that we normally give it credit for, but the syntax for dynamic interaction is painful, so it tends not to be used.
Apr 01 2009
parent reply Christopher Wright <dhasenan gmail.com> writes:
Charles Hixson wrote:
 bearophile wrote:
 davidl:
 why not make opDot some compile time stuff?

You mean run time.
 this can be particular useful for COM

And GUIs, I guess. It smells of Object-C++, but the syntax is nicer. But such runtime code must be not included into the executable if this feature is nowhere used in the code. D executable are already quite big enough. Bye, bearophile

considered Object-C++. Seriously... It's important to be able to write code that can be optimized at compile time...and it's also important to be able to write code that can be dynamic at run-time. D has been lacking in the second set of capabilities, though it's been dynamite at the first. ... After saying this I started thinking a bit more. D is more dynamic that we normally give it credit for, but the syntax for dynamic interaction is painful, so it tends not to be used.

What dynamic features would be useful? D has: - get an opaque reference to a type - get the name of a type - get a smattering of other information about a type - polymorphic method dispatch - safe casts - constructing objects with default constructors by reflection The other common dynamic/reflection type stuff: - getting information about fields and methods - getting and setting fields - invoking methods by reflection - constructing objects by reflection, even if they don't have default constructors Walter says you can do everything here using compile-time reflection. That's true, but it doesn't suffice, I think. You need something like Jascha Wetzel's ClassInfoEx in the standard library. I'd be willing to write such a thing, if it would be accepted. (ClassInfoEx has no license information included in it, and Jascha is not around, so it cannot be used.) But it _has_ to be in the standard library. Additionally, it can't incur greater costs to mix it in multiple times -- it should be idempotent.
Apr 01 2009
parent Christopher Wright <dhasenan gmail.com> writes:
Bill Baxter wrote:
 On Thu, Apr 2, 2009 at 8:21 AM, Christopher Wright
 <dhasenan gmail.com> wrote:> Charles Hixson wrote:
 Walter says you can do everything here using compile-time reflection. That's
 true, but it doesn't suffice, I think. You need something like Jascha
 Wetzel's ClassInfoEx in the standard library. I'd be willing to write such a
 thing, if it would be accepted. (ClassInfoEx has no license information
 included in it, and Jascha is not around, so it cannot be used.)

Jascha's not around anymore but I don't think he's dead. The first step would be to try to contact him directly about the license. There's an email address for him here: http://ddbg.mainia.de/releases.html. --bb

Good point. On the other hand, rewriting the functionality would be the work of a few hours, so it's no big deal either way.
Apr 01 2009
prev sibling parent reply Max Samukha <samukha voliacable.com.removethis> writes:
On Wed, 01 Apr 2009 17:03:01 +0800, davidl <davidl 126.com> wrote:

? Wed, 01 Apr 2009 16:43:57 +0800?Max Samukha  
<samukha voliacable.com.removethis> ??:

 On Tue, 31 Mar 2009 22:21:59 -0700, Walter Bright
 <newshound1 digitalmars.com> wrote:

 The large volume of bug fixes is because a lot of people contributed
 patches. Thanks!

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


 http://www.digitalmars.com/d/2.0/changelog.html
 http://ftp.digitalmars.com/dmd.2.027.zip

Great! Does it mean opDot is deprecated?

why not make opDot some compile time stuff? class V { opDot(char[] method, ...) { // runtime lib to figure what the method is, and then call it with vararg! } } this can be particular useful for COM consider: UnknownComponent.itsparticularMethod(34,"adf"); <-- bind every com component is troublesome and waste time. The runtime can use typelib info to give us something useful Also this can help DDL to be further more useful. I don't need to bind my plugin. I just directly call myplugin.mymethod("asdf"); The opdot will eventually resolve the mymethod in the plugin, then call it! I will really enjoy to see this happen.

The name is known at compile time, so it probably should be opDot(string member)(...) { } or even an arbitrary template named opDot that the compiler would try to instantiate with the name as first parameter, for example: c.foo!(whatever)(v); would be rewritten as c.opDot!("foo", whatever)(v);
Apr 01 2009
parent reply Walter Bright <newshound1 digitalmars.com> writes:
I've thought of that a couple times, and there was a reason it was a 
problem, I just can't remember it at the moment!
Apr 01 2009
parent reply Christopher Wright <dhasenan gmail.com> writes:
Walter Bright wrote:
 I've thought of that a couple times, and there was a reason it was a 
 problem, I just can't remember it at the moment!

For one thing, no polymorphism. For that reason alone I would never use it.
Apr 01 2009
parent Max Samukha <samukha voliacable.com.removethis> writes:
On Wed, 01 Apr 2009 18:34:56 -0400, Christopher Wright
<dhasenan gmail.com> wrote:

Walter Bright wrote:
 I've thought of that a couple times, and there was a reason it was a 
 problem, I just can't remember it at the moment!

For one thing, no polymorphism. For that reason alone I would never use it.

It's not such a big problem because you could define a polymorphic opDot yourself: class C { Variant opDot(string name, A)(A args) { return virtualDot(name, args); } Variant virtualDot(string name, ...) {} } class D : C { override Variant virtualDot(string name, ...) {} } There must be reasons other than the lack of polymorphism.
Apr 01 2009
prev sibling next sibling parent davidl <davidl 126.com> writes:
在 Wed, 01 Apr 2009 16:43:57 +0800,Max Samukha  
<samukha voliacable.com.removethis> 写道:

 On Tue, 31 Mar 2009 22:21:59 -0700, Walter Bright
 <newshound1 digitalmars.com> wrote:

 The large volume of bug fixes is because a lot of people contributed
 patches. Thanks!

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


 http://www.digitalmars.com/d/2.0/changelog.html
 http://ftp.digitalmars.com/dmd.2.027.zip

Great! Does it mean opDot is deprecated?

why not make opDot some compile time stuff? class V { opDot(char[] method, ...) { // runtime lib to figure what the method is, and then call it with vararg! } } this can be particular useful for COM consider: UnknownComponent.itsparticularMethod(34,"adf"); <-- bind every com component is troublesome and waste time. The runtime can use typelib info to give us something useful Also this can help DDL to be further more useful. I don't need to bind my plugin. I just directly call myplugin.mymethod("asdf"); The opdot will eventually resolve the mymethod in the plugin, then call it! I will really enjoy to see this happen.
Apr 01 2009
prev sibling next sibling parent reply naryl <cy ngs.ru> writes:
Walter Bright Wrote:

 The large volume of bug fixes is because a lot of people contributed 
 patches. Thanks!
 
 http://www.digitalmars.com/d/1.0/changelog.html
 http://ftp.digitalmars.com/dmd.1.042.zip
 
 
 http://www.digitalmars.com/d/2.0/changelog.html
 http://ftp.digitalmars.com/dmd.2.027.zip

Walter, there is still a reference to 'new.h' in dmd 1.042 in 'ph.c'.
Apr 01 2009
parent Brad Roberts <braddr puremagic.com> writes:
naryl wrote:
 Walter Bright Wrote:
 
 The large volume of bug fixes is because a lot of people contributed 
 patches. Thanks!

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


 http://www.digitalmars.com/d/2.0/changelog.html
 http://ftp.digitalmars.com/dmd.2.027.zip

Walter, there is still a reference to 'new.h' in dmd 1.042 in 'ph.c'.

Please file a bug report so it doesn't get lost in the sea of newsgroup traffic. Thanks, Brad
Apr 01 2009
prev sibling next sibling parent davidl <davidl 126.com> writes:
在 Wed, 01 Apr 2009 17:13:45 +0800,Walter Bright  
<newshound1 digitalmars.com> 写道:

 Max Samukha wrote:
 Great! Does it mean opDot is deprecated?

Yes.

I wish opDot be changed to something else like the thing that I proposed in my last reply.
Apr 01 2009
prev sibling next sibling parent reply bearophile <bearophileHUGS lycos.com> writes:
Walter Bright:

On Windows, if there are multiple source files on the command line they are now
read with a background thread. This may speed up compilation.<

I have tried on Windows, on a 2-core CPU and the CPU usage is about 50% still (only one core used). I have not timed much difference in compilation times (it's 24 modules). Bye, bearophile
Apr 01 2009
next sibling parent reply 0ffh <frank youknow.what.todo.interNETz> writes:
bearophile wrote:
 I have tried on Windows, on a 2-core CPU and the CPU usage is about 50%
 still (only one core used).

Well, I that's a pure reader thread running in the bg it wouldn't take any cpu time. That's because it's basically just waiting for data transfers from the disk to put them in a queue for the compiler thread.
Apr 01 2009
parent 0ffh <frank youknow.what.todo.interNETz> writes:
0ffh wrote:
 bearophile wrote:
 I have tried on Windows, on a 2-core CPU and the CPU usage is about 50%
 still (only one core used).

Well, I that's a pure reader thread running in the bg it wouldn't take any cpu time. That's because it's basically just waiting for data transfers from the disk to put them in a queue for the compiler thread.

Sorry for self-reply. I wonder if the reader also does tokenisation? I suppose it could... but that would probably be quite fast, as well.
Apr 01 2009
prev sibling parent Walter Bright <newshound1 digitalmars.com> writes:
bearophile wrote:
 Walter Bright:
 On Windows, if there are multiple source files on the command line
 they are now read with a background thread. This may speed up
 compilation.

50% still (only one core used). I have not timed much difference in compilation times (it's 24 modules).

It's hard to see an overall difference. To see one, I had to compile off of an SD card connected via USB. You'll also not see it in CPU usage, because the I/O thread will be paused waiting for the disk.
Apr 01 2009
prev sibling next sibling parent reply Lars Kyllingstad <public kyllingen.NOSPAMnet> writes:
Walter Bright wrote:
 The large volume of bug fixes is because a lot of people contributed 
 patches. Thanks!
 
 http://www.digitalmars.com/d/1.0/changelog.html
 http://ftp.digitalmars.com/dmd.1.042.zip
 
 
 http://www.digitalmars.com/d/2.0/changelog.html
 http://ftp.digitalmars.com/dmd.2.027.zip

...because the file dmd/linux/lib/libphobos2.a is empty. -Lars
Apr 01 2009
parent Walter Bright <newshound1 digitalmars.com> writes:
Lars Kyllingstad wrote:
 ...because the file dmd/linux/lib/libphobos2.a is empty.

Fixed.
Apr 01 2009
prev sibling next sibling parent reply dsimcha <dsimcha yahoo.com> writes:
== Quote from Walter Bright (newshound1 digitalmars.com)'s article
 The large volume of bug fixes is because a lot of people contributed
 patches. Thanks!
 http://www.digitalmars.com/d/1.0/changelog.html
 http://ftp.digitalmars.com/dmd.1.042.zip
 http://www.digitalmars.com/d/2.0/changelog.html
 http://ftp.digitalmars.com/dmd.2.027.zip

alias awesome this; // This is awesome. Is it just me though, or does the D2 win32 build crash after successfully building the project? For me it works, but then crashes instead of exiting gracefully. No big deal, though, as this is the Jargon File's definition of a minor detail: http://catb.org/jargon/html/M/minor-detail.html
Apr 01 2009
parent reply Don <nospam nospam.com> writes:
dsimcha wrote:
 == Quote from Walter Bright (newshound1 digitalmars.com)'s article
 The large volume of bug fixes is because a lot of people contributed
 patches. Thanks!
 http://www.digitalmars.com/d/1.0/changelog.html
 http://ftp.digitalmars.com/dmd.1.042.zip
 http://www.digitalmars.com/d/2.0/changelog.html
 http://ftp.digitalmars.com/dmd.2.027.zip

alias awesome this; // This is awesome. Is it just me though, or does the D2 win32 build crash after successfully building the project? For me it works, but then crashes instead of exiting gracefully. No big deal, though, as this is the Jargon File's definition of a minor detail: http://catb.org/jargon/html/M/minor-detail.html

Apr 01 2009
next sibling parent dsimcha <dsimcha yahoo.com> writes:
== Quote from Don (nospam nospam.com)'s article
 Is it just me though, or does the D2 win32 build crash after successfully
building
 the project?  For me it works, but then crashes instead of exiting gracefully.
 No
 big deal, though, as this is the Jargon File's definition of a minor detail:
 http://catb.org/jargon/html/M/minor-detail.html


I just tested it on my work machine, and it happens there, too. Maybe it's the new background thread thing? Is your win32 box an old single-core machine?
Apr 01 2009
prev sibling parent reply dsimcha <dsimcha yahoo.com> writes:
== Quote from Don (nospam nospam.com)'s article
 It's just you. <g>. The win32 build works fine for me.

Never mind, it looks to be related to some strange options my IDE is passing to DMD.
Apr 01 2009
parent Daniel Keep <daniel.keep.lists gmail.com> writes:
dsimcha wrote:
 == Quote from Don (nospam nospam.com)'s article
 It's just you. <g>. The win32 build works fine for me.

Never mind, it looks to be related to some strange options my IDE is passing to DMD.

Just tell it to stop passing -hcf [1]. -- Daniel [1] HCF: Halt and Catch Fire, an old PDP-11 opcode, I believe. :P
Apr 01 2009
prev sibling next sibling parent Bill Baxter <wbaxter gmail.com> writes:
On Thu, Apr 2, 2009 at 8:21 AM, Christopher Wright
<dhasenan gmail.com> wrote:> Charles Hixson wrote:
 Walter says you can do everything here using compile-time reflection. That's
 true, but it doesn't suffice, I think. You need something like Jascha
 Wetzel's ClassInfoEx in the standard library. I'd be willing to write such a
 thing, if it would be accepted. (ClassInfoEx has no license information
 included in it, and Jascha is not around, so it cannot be used.)

Jascha's not around anymore but I don't think he's dead. The first step would be to try to contact him directly about the license. There's an email address for him here: http://ddbg.mainia.de/releases.html. --bb
Apr 01 2009
prev sibling next sibling parent Bill Baxter <wbaxter gmail.com> writes:
On Thu, Apr 2, 2009 at 11:28 AM, Christopher Wright <dhasenan gmail.com> wr=
ote:
 Bill Baxter wrote:
 On Thu, Apr 2, 2009 at 8:21 AM, Christopher Wright
 <dhasenan gmail.com> wrote:> Charles Hixson wrote:
 Walter says you can do everything here using compile-time reflection.
 That's
 true, but it doesn't suffice, I think. You need something like Jascha
 Wetzel's ClassInfoEx in the standard library. I'd be willing to write
 such a
 thing, if it would be accepted. (ClassInfoEx has no license information
 included in it, and Jascha is not around, so it cannot be used.)

Jascha's not around anymore but I don't think he's dead. =A0The first step would be to try to contact him directly about the license. There's an email address for him here: http://ddbg.mainia.de/releases.html. --bb

Good point. On the other hand, rewriting the functionality would be the work of a few hours, so it's no big deal either way.

Oh. That's all? In that case stop typing emails and get to work! --bb
Apr 01 2009
prev sibling parent reply Georg Wrede <georg.wrede iki.fi> writes:
Walter Bright wrote:
 The large volume of bug fixes is because a lot of people contributed 
 patches. Thanks!

Incidentally, should the D pages contain a short description of how you'd prefer patches delivered? Maybe a link next to "Issues & Bugs" in the side box?
Apr 02 2009
next sibling parent Don <nospam nospam.com> writes:
Georg Wrede wrote:
 Walter Bright wrote:
 The large volume of bug fixes is because a lot of people contributed 
 patches. Thanks!

Incidentally, should the D pages contain a short description of how you'd prefer patches delivered? Maybe a link next to "Issues & Bugs" in the side box?

I hope they're useful <g>.
Apr 02 2009
prev sibling parent Walter Bright <newshound1 digitalmars.com> writes:
Georg Wrede wrote:
 Walter Bright wrote:
 The large volume of bug fixes is because a lot of people contributed 
 patches. Thanks!

Incidentally, should the D pages contain a short description of how you'd prefer patches delivered? Maybe a link next to "Issues & Bugs" in the side box?

Good idea. They should be delivered via bugzilla.
Apr 02 2009