dmd 1.067 and 2.052 release

Jonathan M Davis jmdavisProg at gmx.com
Tue Feb 22 17:16:36 PST 2011


On Tuesday, February 22, 2011 16:17:39 Extrawurst wrote:
> On 21.02.2011 09:53, Stephan wrote:
> > On 18.02.2011 11:18, Walter Bright wrote:
> >> Now with 64 bit Linux support! (Though expect problems with it, it's
> >> brand new.)
> >> 
> >> 
> >> http://www.digitalmars.com/d/1.0/changelog.html
> >> http://ftp.digitalmars.com/dmd.1.067.zip
> >> 
> >> http://www.digitalmars.com/d/2.0/changelog.html
> >> http://ftp.digitalmars.com/dmd.2.052.zip
> > 
> > Nice release in theorie but since i did not get the time to test the
> > beta it seems some regressions made it into the release that rendered my
> > codebase unbuildable...
> > 
> > The problem is that i cannot reduce it properly. (win32, dmd 2.052)
> > 
> > 1) Without changing anything suddenly i get linker errors. I am building
> > an executable linking in a static lib that contains some methods using
> > std.random.uniform. When i now try to build the executable the linker
> > complains about std.random.uniform not being found. What the heck ? The
> > whole rest of phobos is there and this is missing ??
> 
> Turns out the root of all evil are the version (ddoc) blocks in phobos.
> what a great idea to change method SIGNATURES using them.
> as soon as one uses those methods and tries to build ddocs out of the
> own code (using -D) methods get referenced that are not actually in the
> phobos lib. great idea since the signatures differ !
> manifests in this bug btw:
> http://d.puremagic.com/issues/show_bug.cgi?id=5642
> 
> I wish i had tested the beta before release..

You pretty much _have_ to do that in a number of cases. For instance, if a 
function only exists on Linux or or it only exists on Windows, you have to have 
a different version block for the documentation. There's no way around that.

Now, given that Phobos and druntime are the most likely places to have to worry 
about that and that many programs don't need to do that sort of thing, Phobos 
and druntime are going to be changed so that they use a different version 
identifier for their documentation blocks, so you'll only get the problem if you 
yourself are forced to have separate documentation blocks. Andrei needs to 
change the makefiles before the version identifier in the code can be changed, and 
he didn't do that before the release (we only figured out that we needed it 
shortly before dmd went into beta, and I believe that Andrei was pretty busy 
while it was in beta, so he didn't make the change).

Regardless, Phobos does it by necessity. Separate blocks for documentation are 
required in the cases where it uses them.

- Jonathan M Davis


More information about the Digitalmars-d-announce mailing list