Jump to page: 1 27  
Page
Thread overview
DMD 1.030 and 2.014 releases
May 17, 2008
Walter Bright
May 17, 2008
janderson
May 17, 2008
janderson
May 17, 2008
Walter Bright
May 17, 2008
Walter Bright
May 17, 2008
Robert Fraser
May 17, 2008
Walter Bright
May 17, 2008
Max Samukha
May 17, 2008
davidl
May 17, 2008
Tom S
May 17, 2008
Walter Bright
May 17, 2008
davidl
May 17, 2008
pragma
May 17, 2008
Walter Bright
May 17, 2008
Jérôme M. Berger
May 28, 2008
Bruno Medeiros
May 17, 2008
John C
May 17, 2008
Walter Bright
May 17, 2008
Ary Borenszweig
May 17, 2008
Walter Bright
May 17, 2008
Ary Borenszweig
May 17, 2008
Walter Bright
May 17, 2008
Sean Kelly
May 17, 2008
Walter Bright
May 17, 2008
Sean Kelly
May 17, 2008
Walter Bright
May 17, 2008
pragma
May 18, 2008
Bill Baxter
May 20, 2008
Walter Bright
May 20, 2008
Bill Baxter
May 21, 2008
Walter Bright
May 21, 2008
BCS
May 21, 2008
Sean Kelly
May 21, 2008
Bill Baxter
May 22, 2008
Sean Kelly
May 22, 2008
Sean Kelly
May 22, 2008
Robert Fraser
May 23, 2008
Chris Wright
May 23, 2008
Bill Baxter
May 23, 2008
Robert Fraser
May 23, 2008
Chris Wright
May 23, 2008
Lutger
May 23, 2008
Robert Fraser
May 23, 2008
Chris Wright
May 24, 2008
Robert Fraser
May 24, 2008
Frits van Bommel
May 25, 2008
Chris Wright
May 25, 2008
Frits van Bommel
May 26, 2008
Chris Wright
May 23, 2008
Chris Wright
May 20, 2008
Lutger
May 20, 2008
Sean Kelly
May 21, 2008
Bill Baxter
May 21, 2008
Chris R. Miller
May 21, 2008
BCS
May 21, 2008
BCS
May 21, 2008
Robert Fraser
May 21, 2008
Don
May 20, 2008
Miles
May 28, 2008
Bruno Medeiros
May 20, 2008
Walter Bright
May 17, 2008
These contain a new way of building that I've wanted to do for a long time. dmd can now build libraries directly, without writing out object files or invoking the librarian. This accelerates library builds by a whopping factor of 3! Besides, it doesn't litter your directories with pointless object files.

The library build option has another major coolness feature - before, one module compiles to one object file. With library build, one source file can compile to multiple object files. This cuts down on executable bloat from pulling in object files with irrelevant stuff in them.

Another build improvement is when multiple modules are compiled at the same time to build an executable, only one object file is created with the generated code for all modules combined into it. This speeds linking, and also eliminates pointless file detritus.

No, having dmd incorporate the linking is probably not going to happen :-(. Librarians are so simple, though, that this is a big win.

Yes, both 1.0 and 2.0 dmd's get this (it doesn't affect the language).

Another cool new feature is the dmd -man switch. Try it out! Lots of new library stuff, bugfixes, and Andrei has completely redone rdmd.

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

http://www.digitalmars.com/d/2.0/changelog.html
http://ftp.digitalmars.com/dmd.2.014.zip
May 17, 2008
Walter Bright wrote:
> These contain a new way of building that I've wanted to do for a long time. dmd can now build libraries directly, without writing out object files or invoking the librarian. This accelerates library builds by a whopping factor of 3! Besides, it doesn't litter your directories with pointless object files.
> 
> The library build option has another major coolness feature - before, one module compiles to one object file. With library build, one source file can compile to multiple object files. This cuts down on executable bloat from pulling in object files with irrelevant stuff in them.
> 
> Another build improvement is when multiple modules are compiled at the same time to build an executable, only one object file is created with the generated code for all modules combined into it. This speeds linking, and also eliminates pointless file detritus.
> 
> No, having dmd incorporate the linking is probably not going to happen :-(. Librarians are so simple, though, that this is a big win.
> 
> Yes, both 1.0 and 2.0 dmd's get this (it doesn't affect the language).
> 
> Another cool new feature is the dmd -man switch. Try it out! Lots of new library stuff, bugfixes, and Andrei has completely redone rdmd.
> 
> http://www.digitalmars.com/d/1.0/changelog.html
> http://ftp.digitalmars.com/dmd.1.030.zip
> 
> http://www.digitalmars.com/d/2.0/changelog.html
> http://ftp.digitalmars.com/dmd.2.014.zip

Sweet!
May 17, 2008
<snip>

> Changed std.to to throw exception when object-to-object cast fails.

What always annoyed me in C# was the conversions causing exceptions. That's why they added the TryParse which would fail silently and return a best guess number (ie 0 if there was no number, MAX if overflow).  Is there an alternative in the std?  One that is silent or allows you to specify a default?

Of course that would not be hard to write, but it would be useful.

-Joel
May 17, 2008
Walter Bright wrote:

> These contain a new way of building that I've wanted to do for a long
> time. dmd can now build libraries directly, without writing out
> object files or invoking the librarian. This accelerates library
> builds by a whopping factor of 3! Besides, it doesn't litter your
> directories with pointless object files.

How does incremental compilation work then, if there are no files ?
I'm assuming the factor applies when doing full rebuilds each time.

> [...] Librarians are so simple, though, that this is a big win. 
>
> Yes, both 1.0 and 2.0 dmd's get this (it doesn't affect the language).

Neat, wonder if GDC should get this addition or if it will just add
complexity with portability, and the various odd platform linkers...

It's of course doable to emulate the -lib option in the gdmd script
wrapper otherwise, and use a temporary directory for object storage.

> Another cool new feature is the dmd -man switch. Try it out! Lots of new library stuff, bugfixes, and Andrei has completely redone rdmd.

Will this new rdmd be released under an open source license as well ?
(the old version, which is also in gdc now, was in the public domain)

--anders
May 17, 2008
Thanks for the release!

Walter Bright wrote:
> The library build option has another major coolness feature - before, one module compiles to one object file. With library build, one source file can compile to multiple object files. This cuts down on executable bloat from pulling in object files with irrelevant stuff in them.
> 
> Another build improvement is when multiple modules are compiled at the same time to build an executable, only one object file is created with the generated code for all modules combined into it. This speeds linking, and also eliminates pointless file detritus.

How does this affect incremental build tools a la DSSS/rebuild or bud?
May 17, 2008
Anders F Björklund wrote:
> Walter Bright wrote:
> 
>> These contain a new way of building that I've wanted to do for a long
>> time. dmd can now build libraries directly, without writing out
>> object files or invoking the librarian. This accelerates library
>> builds by a whopping factor of 3! Besides, it doesn't litter your
>> directories with pointless object files.
> 
> How does incremental compilation work then, if there are no files ?
> I'm assuming the factor applies when doing full rebuilds each time.

It does a full build each time, and the times apply to a full build. Perhaps in the future a -make switch could be added to do an incremental build.

>> [...] Librarians are so simple, though, that this is a big win.
>> Yes, both 1.0 and 2.0 dmd's get this (it doesn't affect the language).
> 
> Neat, wonder if GDC should get this addition or if it will just add
> complexity with portability, and the various odd platform linkers...

It has no affect on the linker or linking phase. Also, since this isn't a language issue, whether gdc gets it or not is a tool decision.

> It's of course doable to emulate the -lib option in the gdmd script
> wrapper otherwise, and use a temporary directory for object storage.

Yes.


>> Another cool new feature is the dmd -man switch. Try it out! Lots of new library stuff, bugfixes, and Andrei has completely redone rdmd.
> 
> Will this new rdmd be released under an open source license as well ?
> (the old version, which is also in gdc now, was in the public domain)

It should be, but I'll ask Andrei.
May 17, 2008
Robert Fraser wrote:
> Thanks for the release!
> 
> Walter Bright wrote:
>> The library build option has another major coolness feature - before, one module compiles to one object file. With library build, one source file can compile to multiple object files. This cuts down on executable bloat from pulling in object files with irrelevant stuff in them.
>>
>> Another build improvement is when multiple modules are compiled at the same time to build an executable, only one object file is created with the generated code for all modules combined into it. This speeds linking, and also eliminates pointless file detritus.
> 
> How does this affect incremental build tools a la DSSS/rebuild or bud?

It shouldn't affect them. But they can now offer the option of building multiple objects per source file.
May 17, 2008
Walter Bright wrote:

>> Neat, wonder if GDC should get this addition or if it will just add
>> complexity with portability, and the various odd platform linkers...
> 
> It has no affect on the linker or linking phase. Also, since this isn't a language issue, whether gdc gets it or not is a tool decision.

Guess I meant object formats (such as the ELF variants or Mach-O),
but you are right that it is ultimately decision entirely in gdc...

Q: Will there be a -shlib option too, to generate shared libraries ?
Rebuild currently has one, that matches its -lib (for static libs).

--anders
May 17, 2008
Anders F Björklund wrote:
> Q: Will there be a -shlib option too, to generate shared libraries ?

Shared libraries aren't built by the librarian, but by the linker. They are special executables. dmd supports the -fPIC option, which builds the object files for shared libraries.
May 17, 2008
On Fri, 16 May 2008 23:29:49 -0700, Walter Bright <newshound1@digitalmars.com> wrote:

>These contain a new way of building that I've wanted to do for a long time. dmd can now build libraries directly, without writing out object files or invoking the librarian. This accelerates library builds by a whopping factor of 3! Besides, it doesn't litter your directories with pointless object files.
>

Thanks a lot! bug 2100 is not listed in 1.030 change log. I guess 2109 is also fixed in 1.030?

« First   ‹ Prev
1 2 3 4 5 6 7