www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - Build v3.03 released

reply Derek Parnell <derek nomail.afraid.org> writes:

URL: http://www.dsource.org/projects/build 

Change Log Summary
------------------

'-g' is used instead of '/co' to generate debug data, '-o ' is used instead
of '-of', and spaces are placed in between consecutive '-L' switches. Note
that if you want to place library files on the command line, you still have
to include the '.a' file suffix. 


is now '-L-l', 'gphobos' is used instead of 'phobos', and the makefile
includes the '-version=BuildVerbose' switch. 


line files. 

** FIX If you use the '-od' switch then the '-op' switch is not used. 


you can change it to anything you like. 



** ENH The utility now also checks for a '[darwin]' section in the
Configuration File. 

** ENH The utility now supports the import syntax that was introduced with
DMD v0.163. 

** ENH The distribution now includes example configuration files for a
number of environments. 

** ENH The Configuration File now supports a new FINAL command that allows
you to run jobs after a successful build.


There are a number of example configuration files now distributed with the
source. Please select the one closest to your own environment and tweak as
needed if you are having problems with the 'default' settings. If you can't
get it to run using the compiler/linker/librarian of your choice after
trying the configuration files, please let me know.

Note that the distributed Windows executable files have been compressed
with UPX. This shouldn't be an issue but I thought you might like to know.

_________________
-- 
Derek
(skype: derek.j.parnell)
Melbourne, Australia
"Down with mediocrity!"
21/09/2006 6:12:20 PM
Sep 21 2006
next sibling parent reply =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= <afb algonet.se> writes:
Derek Parnell wrote:


 URL: http://www.dsource.org/projects/build 
[...]
 ** ENH The utility now supports the import syntax that was introduced with
 DMD v0.163. 
Seems that it needs GDC 0.20 (DMD 0.163+) to compile ? :-( util/fdt.d:69: ';' expected util/fdt.d:69: no identifier for declarator std.c.windows.windows util/fdt.d:70: ';' expected util/fdt.d:70: no identifier for declarator std.c.linux.linux util/fdt.d:71: ';' expected util/fdt.d:71: no identifier for declarator std.c.darwin.darwin util/fdt.d:72: ';' expected Old compiler doesn't like those "static import" statements. --anders PS. Maybe it should be mentioned that std.c.darwin.darwin is deprecated in favor of std.c.unix.unix for all Unix
Sep 21 2006
parent reply Derek Parnell <derek psyc.ward> writes:
On Thu, 21 Sep 2006 10:46:27 +0200, Anders F Björklund wrote:

 Derek Parnell wrote:
 

 URL: http://www.dsource.org/projects/build 
[...]
 ** ENH The utility now supports the import syntax that was introduced with
 DMD v0.163. 
Seems that it needs GDC 0.20 (DMD 0.163+) to compile ? :-( util/fdt.d:69: ';' expected util/fdt.d:69: no identifier for declarator std.c.windows.windows util/fdt.d:70: ';' expected util/fdt.d:70: no identifier for declarator std.c.linux.linux util/fdt.d:71: ';' expected util/fdt.d:71: no identifier for declarator std.c.darwin.darwin util/fdt.d:72: ';' expected Old compiler doesn't like those "static import" statements.
Sorry. I didn't know that. I haven't used GDC. I guess it will catch up soon. Is there a special version that GDC sets?
 
 PS. Maybe it should be mentioned that std.c.darwin.darwin
      is deprecated in favor of std.c.unix.unix for all Unix
Didn't know that either. -- Derek Parnell Melbourne, Australia "Down with mediocrity!"
Sep 21 2006
parent reply =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= <afb algonet.se> writes:
Derek Parnell wrote:

Old compiler doesn't like those "static import" statements.
Sorry. I didn't know that. I haven't used GDC. I guess it will catch up soon.
According to the changelog it was introduced in DMD 0.163, while GDC 0.19 is currently DMD 0.162 - so it was close :-)
 Is there a special version that GDC sets?
Yes, GDC sets "version(GNU)" and DMD sets "version(DigitalMars)" This information is available from the "unofficial" page at: http://www.prowiki.org/wiki4d/wiki.cgi?DocComments/Version
PS. Maybe it should be mentioned that std.c.darwin.darwin
     is deprecated in favor of std.c.unix.unix for all Unix
Didn't know that either.
Both are available, and they include the same thing: (autoconf) module std.c.darwin.darwin; import gcc.configunix; The theory is that all the common stuff goes in std.c.unix.unix and that the platform specific stuff goes in std.c.${OS}.${OS} module std.c.unix.unix; /* This module imports the unix module for the currect target system. Currently, all targets can be handled with the autoconf'd version. */ import gcc.configunix; An exception is std.c.linux.linux which also imports some extra modules to stay backwards compatible with the module from DMD... --anders
Sep 21 2006
parent reply Sean Kelly <sean f4.ca> writes:
Anders F Björklund wrote:
 Derek Parnell wrote:
 
 Old compiler doesn't like those "static import" statements.
Sorry. I didn't know that. I haven't used GDC. I guess it will catch up soon.
According to the changelog it was introduced in DMD 0.163, while GDC 0.19 is currently DMD 0.162 - so it was close :-)
FWIW, the GDC source available via SVN is more up to date. I believe it's in synch with DMD 166. Sean
Sep 21 2006
parent =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= <afb algonet.se> writes:
Sean Kelly wrote:

 According to the changelog it was introduced in DMD 0.163,
 while GDC 0.19 is currently DMD 0.162 - so it was close :-)
FWIW, the GDC source available via SVN is more up to date. I believe it's in synch with DMD 166.
Cool, haven't really payed attention while trying to wxD out... Maybe we need nightly builds of GDC ? :-) I might do an interim release for Mac and Win, since I had planned to upgrade GCC anyway. --anders
Sep 21 2006
prev sibling next sibling parent Lutger <lutger.blijdestijn gmail.com> writes:
Derek Parnell wrote:

 URL: http://www.dsource.org/projects/build 
 
 Change Log Summary
 (...)
Thank you, this is great, now I can use the new import syntax with build! The changes to the -od switch will make generating documentation with build quite effortless.
Sep 21 2006
prev sibling next sibling parent "John Reimer" <terminal.node gmail.com> writes:
Thanks, Derek!

I've been waiting for this update. :D

-JJR


On Thu, 21 Sep 2006 01:17:35 -0700, Derek Parnell  =

<derek nomail.afraid.org> wrote:


 URL: http://www.dsource.org/projects/build

 Change Log Summary
 ------------------

ry,
 '-g' is used instead of '/co' to generate debug data, '-o ' is used  =
 instead
 of '-of', and spaces are placed in between consecutive '-L' switches. =
=
 Note
 that if you want to place library files on the command line, you still=
=
 have
 to include the '.a' file suffix.


 switch
 is now '-L-l', 'gphobos' is used instead of 'phobos', and the makefile=
 includes the '-version=3DBuildVerbose' switch.


 command
 line files.

 ** FIX If you use the '-od' switch then the '-op' switch is not used.


ut
 you can change it to anything you like.



 ** ENH The utility now also checks for a '[darwin]' section in the
 Configuration File.

 ** ENH The utility now supports the import syntax that was introduced =
=
 with
 DMD v0.163.

 ** ENH The distribution now includes example configuration files for a=
 number of environments.

 ** ENH The Configuration File now supports a new FINAL command that  =
 allows
 you to run jobs after a successful build.


 There are a number of example configuration files now distributed with=
=
 the
 source. Please select the one closest to your own environment and twea=
k =
 as
 needed if you are having problems with the 'default' settings. If you =
=
 can't
 get it to run using the compiler/linker/librarian of your choice after=
 trying the configuration files, please let me know.

 Note that the distributed Windows executable files have been compresse=
d
 with UPX. This shouldn't be an issue but I thought you might like to  =
 know.

 _________________
-- = Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
Sep 21 2006
prev sibling next sibling parent reply dickl <dick221z yahoo.com> writes:
Derek Parnell wrote:

 URL: http://www.dsource.org/projects/build 
 
 Change Log Summary
 ------------------

 '-g' is used instead of '/co' to generate debug data, '-o ' is used instead
 of '-of', and spaces are placed in between consecutive '-L' switches. Note
 that if you want to place library files on the command line, you still have
 to include the '.a' file suffix. 
 

 is now '-L-l', 'gphobos' is used instead of 'phobos', and the makefile
 includes the '-version=BuildVerbose' switch. 
 

 line files. 
 
 ** FIX If you use the '-od' switch then the '-op' switch is not used. 
 

 you can change it to anything you like. 
 

 
 ** ENH The utility now also checks for a '[darwin]' section in the
 Configuration File. 
 
 ** ENH The utility now supports the import syntax that was introduced with
 DMD v0.163. 
 
 ** ENH The distribution now includes example configuration files for a
 number of environments. 
 
 ** ENH The Configuration File now supports a new FINAL command that allows
 you to run jobs after a successful build.
 
 
 There are a number of example configuration files now distributed with the
 source. Please select the one closest to your own environment and tweak as
 needed if you are having problems with the 'default' settings. If you can't
 get it to run using the compiler/linker/librarian of your choice after
 trying the configuration files, please let me know.
 
 Note that the distributed Windows executable files have been compressed
 with UPX. This shouldn't be an issue but I thought you might like to know.
 
 _________________
Sorry to say, 3.03 is messed up for Windows builds. In the linker .rsp file, the libraries are placed on separate lines. Optlink wants all the libraries on 1 line with '+' between the lib names.
Sep 21 2006
parent reply Derek Parnell <derek psyc.ward> writes:
On Thu, 21 Sep 2006 13:24:33 -0400, dickl wrote:


 
 Sorry to say, 3.03 is messed up for Windows builds.
Damn! So am I! I forgot to retest this.
 In the linker .rsp file, the libraries are placed on separate lines. 
 Optlink wants all the libraries on 1 line with '+' between the lib names.
A quick fix would be to replace lines 1079-1082 in build.d with ... lCommandLine ~= vLinkLibSwitch ~ util.str.enquote(lLib) ~ vArgFileDelim; } } lCommandLine ~= "\n"; I think this will work but I haven't tested it yet. I'll do that later today. -- Derek Parnell Melbourne, Australia "Down with mediocrity!"
Sep 21 2006
parent reply dickl <dick221z yahoo.com> writes:
That won't quite work, it leaves a trailing '+' which the linker doesn't 
like. The change needs to be something like this

    if (lLibraryFiles.length > 0)
    {
        foreach( char[] lLib; lLibraryFiles)
        {
            lLib =  std.path.addExt(lLib, vLibExtention);
            lCommandLine ~= vLinkLibSwitch ~ util.str.enquote(lLib) ~ 
vArgFileDelim;
        }
        lCommandLine.length = lCommandLine.length -1;
     }
     lCommandLine ~= "\n";


Derek Parnell wrote:
 On Thu, 21 Sep 2006 13:24:33 -0400, dickl wrote:
 
 
 Sorry to say, 3.03 is messed up for Windows builds.
Damn! So am I! I forgot to retest this.
 In the linker .rsp file, the libraries are placed on separate lines. 
 Optlink wants all the libraries on 1 line with '+' between the lib names.
A quick fix would be to replace lines 1079-1082 in build.d with ... lCommandLine ~= vLinkLibSwitch ~ util.str.enquote(lLib) ~ vArgFileDelim; } } lCommandLine ~= "\n"; I think this will work but I haven't tested it yet. I'll do that later today.
Sep 21 2006
parent reply Derek Parnell <derek nomail.afraid.org> writes:
On Thu, 21 Sep 2006 22:17:57 -0400, dickl wrote:

 That won't quite work, it leaves a trailing '+' which the linker doesn't 
 like.
LOL. Yeah, I found that out in my testing. Here is the code I ended up using.... lLibraryFiles = vDefaultLibs ~ lLibraryFiles; if (lLibraryFiles.length > 0) { foreach( int i, char[] lLib; lLibraryFiles) { lLib = std.path.addExt(lLib, vLibExtention); if (i > 0) lCommandLine ~= vArgFileDelim; lCommandLine ~= vLinkLibSwitch ~ util.str.enquote(lLib); } } lCommandLine ~= "\n"; This caters for situations where the 'vArgFileDelim' is longer than one character. -- Derek (skype: derek.j.parnell) Melbourne, Australia "Down with mediocrity!" 22/09/2006 2:18:58 PM
Sep 21 2006
next sibling parent dickl <dick221z yahoo.com> writes:
I forgot to mention &  since you are fixing things... the same problem 
occurs with the .RES file, a '+' is on there after the file and before 
the linker flags. The linker doesn't seem to care but it really 
shouldn't be there.


Derek Parnell wrote:
 On Thu, 21 Sep 2006 22:17:57 -0400, dickl wrote:
 
 That won't quite work, it leaves a trailing '+' which the linker doesn't 
 like.
LOL. Yeah, I found that out in my testing. Here is the code I ended up using.... lLibraryFiles = vDefaultLibs ~ lLibraryFiles; if (lLibraryFiles.length > 0) { foreach( int i, char[] lLib; lLibraryFiles) { lLib = std.path.addExt(lLib, vLibExtention); if (i > 0) lCommandLine ~= vArgFileDelim; lCommandLine ~= vLinkLibSwitch ~ util.str.enquote(lLib); } } lCommandLine ~= "\n"; This caters for situations where the 'vArgFileDelim' is longer than one character.
Sep 22 2006
prev sibling parent reply ns <demo demo.com> writes:
Can someone please send me the windows binary of fixed version of build 
  ? I cannot compile my projects :-(

Thanks
ns

Derek Parnell wrote:
 On Thu, 21 Sep 2006 22:17:57 -0400, dickl wrote:
 
 That won't quite work, it leaves a trailing '+' which the linker doesn't 
 like.
LOL. Yeah, I found that out in my testing. Here is the code I ended up using.... lLibraryFiles = vDefaultLibs ~ lLibraryFiles; if (lLibraryFiles.length > 0) { foreach( int i, char[] lLib; lLibraryFiles) { lLib = std.path.addExt(lLib, vLibExtention); if (i > 0) lCommandLine ~= vArgFileDelim; lCommandLine ~= vLinkLibSwitch ~ util.str.enquote(lLib); } } lCommandLine ~= "\n"; This caters for situations where the 'vArgFileDelim' is longer than one character.
Oct 10 2006
parent Derek Parnell <derek psyc.ward> writes:
On Tue, 10 Oct 2006 14:33:11 -0400, ns wrote:

 Can someone please send me the windows binary of fixed version of build 
   ? I cannot compile my projects :-(
I was going to release 3.04 yesterday but dsource was down for me. I just checked and its up again so I'll make a release in the next few hours. -- Derek Parnell Melbourne, Australia "Down with mediocrity!"
Oct 10 2006
prev sibling next sibling parent reply Gregor Richards <Richards codu.org> writes:
In util/fdt.d, the section:

     version(Windows) static import opsys = std.c.windows.windows;
     version(linux)   static import opsys = std.c.linux.linux;
     version(darwin)  static import opsys = std.c.darwin.darwin;
     version(Unix)    static import opsys = std.c.unix;
     version(Posix)   static import std.string;

needs to become:

     version(Windows) static import opsys = std.c.windows.windows;
     else version(linux)   static import opsys = std.c.linux.linux;
     else version(darwin)  static import opsys = std.c.darwin.darwin;
     else version(Unix)    static import opsys = std.c.unix;
     else version(Posix)   static import std.string;

This is because the different platforms aren't mutually exclusive, so 
it'll end up importing two modules as opsys, oops :(

  - Gregor Richards

PS: With that change, works fine with GDC-svn
Sep 21 2006
parent reply Derek Parnell <derek psyc.ward> writes:
On Thu, 21 Sep 2006 11:44:08 -0700, Gregor Richards wrote:

 In util/fdt.d, the section:
 
      version(Windows) static import opsys = std.c.windows.windows;
      version(linux)   static import opsys = std.c.linux.linux;
      version(darwin)  static import opsys = std.c.darwin.darwin;
      version(Unix)    static import opsys = std.c.unix;
      version(Posix)   static import std.string;
 
 needs to become:
 
      version(Windows) static import opsys = std.c.windows.windows;
      else version(linux)   static import opsys = std.c.linux.linux;
      else version(darwin)  static import opsys = std.c.darwin.darwin;
      else version(Unix)    static import opsys = std.c.unix;
      else version(Posix)   static import std.string;
 
 This is because the different platforms aren't mutually exclusive, so 
 it'll end up importing two modules as opsys, oops :(
Hmmm...I'll have to check this out a bit more. They ought to be mutually exclusive, IMHO. -- Derek Parnell Melbourne, Australia "Down with mediocrity!"
Sep 21 2006
parent reply Gregor Richards <Richards codu.org> writes:
Derek Parnell wrote:
 On Thu, 21 Sep 2006 11:44:08 -0700, Gregor Richards wrote:
 
 In util/fdt.d, the section:

      version(Windows) static import opsys = std.c.windows.windows;
      version(linux)   static import opsys = std.c.linux.linux;
      version(darwin)  static import opsys = std.c.darwin.darwin;
      version(Unix)    static import opsys = std.c.unix;
      version(Posix)   static import std.string;

 needs to become:

      version(Windows) static import opsys = std.c.windows.windows;
      else version(linux)   static import opsys = std.c.linux.linux;
      else version(darwin)  static import opsys = std.c.darwin.darwin;
      else version(Unix)    static import opsys = std.c.unix;
      else version(Posix)   static import std.string;

 This is because the different platforms aren't mutually exclusive, so 
 it'll end up importing two modules as opsys, oops :(
Hmmm...I'll have to check this out a bit more. They ought to be mutually exclusive, IMHO.
GNU/Linux on gdc is version(linux), version(Unix) and version(Posix). Mac OS X is version(darwin), version(Unix) and version(Posix). - Gregor Richards
Sep 21 2006
parent reply Hasan Aljudy <hasan.aljudy gmail.com> writes:
Gregor Richards wrote:
 
 GNU/Linux on gdc is version(linux), version(Unix) and version(Posix). 
 Mac OS X is version(darwin), version(Unix) and version(Posix).
 
  - Gregor Richards
Hmm, what does Mac OS X have to do with darwin and Unix?
Sep 21 2006
parent reply Gregor Richards <Richards codu.org> writes:
Hasan Aljudy wrote:
 
 
 Gregor Richards wrote:
 
 GNU/Linux on gdc is version(linux), version(Unix) and version(Posix). 
 Mac OS X is version(darwin), version(Unix) and version(Posix).

  - Gregor Richards
Hmm, what does Mac OS X have to do with darwin and Unix?
... Mac OS X is Darwin. Darwin is Unix. - Gregor Richards PS: Actually, it would be reasonable to remove version(Unix) from GNU/Linux, as GNU's Not Unix, but Mac OS X most certainly is.
Sep 21 2006
parent reply Hasan Aljudy <hasan.aljudy gmail.com> writes:
Gregor Richards wrote:
 Hasan Aljudy wrote:
 Gregor Richards wrote:

 GNU/Linux on gdc is version(linux), version(Unix) and version(Posix). 
 Mac OS X is version(darwin), version(Unix) and version(Posix).

  - Gregor Richards
Hmm, what does Mac OS X have to do with darwin and Unix?
... Mac OS X is Darwin. Darwin is Unix.
Ah! Really? I thought darwin was just another linux distribution! hahaha!
 
  - Gregor Richards
 
 PS: Actually, it would be reasonable to remove version(Unix) from 
 GNU/Linux, as GNU's Not Unix, but Mac OS X most certainly is.
OK, is it "Darwin is Unix" or is it "Darwin is *a* Unix"? Sorry, I don't understand the Unix/Linux/GNU world. <g>
Sep 21 2006
parent reply Gregor Richards <Richards codu.org> writes:
Hasan Aljudy wrote:
 
 
 Gregor Richards wrote:
 
 Hasan Aljudy wrote:

 Gregor Richards wrote:

 GNU/Linux on gdc is version(linux), version(Unix) and 
 version(Posix). Mac OS X is version(darwin), version(Unix) and 
 version(Posix).

  - Gregor Richards
Hmm, what does Mac OS X have to do with darwin and Unix?
... Mac OS X is Darwin. Darwin is Unix.
Ah! Really? I thought darwin was just another linux distribution! hahaha!
  - Gregor Richards

 PS: Actually, it would be reasonable to remove version(Unix) from 
 GNU/Linux, as GNU's Not Unix, but Mac OS X most certainly is.
OK, is it "Darwin is Unix" or is it "Darwin is *a* Unix"? Sorry, I don't understand the Unix/Linux/GNU world. <g>
Unix is an entire tree of operating systems, so it would be reasonable to say "Darwin is *a* Unix". Darwin is a Unix because, if you trace back its lineage, it has its roots in the original Unixes (SysVR4, BSD, etc). And the reason that linux is marked as a Unix is being linux works very much like a Unix, even though it's not actually based in code on Unix at all. So while it's technically not a Unix, it acts like one. More so than Mac OS X, actually ;) - Gregor Richards
Sep 21 2006
parent =?ISO-8859-1?Q?Jari-Matti_M=E4kel=E4?= <jmjmak utu.fi.invalid> writes:
Gregor Richards wrote:
 And the reason that linux is marked as a Unix is being linux works very
 much like a Unix, even though it's not actually based in code on Unix at
 all.  So while it's technically not a Unix, it acts like one.  More so
 than Mac OS X, actually ;)
And if a Linux-user even considered mentioning Linux and Unix (I mean *nix :) in the same sentence, SCO would immediately sue them all for infringing their copyrights/trademarks/patents/etc. BTW, the patent trolls are again trying to ram through software patents here in EU. It seems they'll never stop until they get that stupid law. -- Jari-Matti
Sep 22 2006
prev sibling parent reply "jicman" <jic spam.me> writes:
Derek,

this build does not have the _bn fix?  Does it?  I tried it and it still 
does not increase the build count.

"Derek Parnell" wrote in message 
news:1chqqg0sml1xa.lnznj8tffy3u$.dlg 40tude.net...

 URL: http://www.dsource.org/projects/build

 Change Log Summary
 ------------------

 '-g' is used instead of '/co' to generate debug data, '-o ' is used 
 instead
 of '-of', and spaces are placed in between consecutive '-L' switches. Note
 that if you want to place library files on the command line, you still 
 have
 to include the '.a' file suffix.


 switch
 is now '-L-l', 'gphobos' is used instead of 'phobos', and the makefile
 includes the '-version=BuildVerbose' switch.


 line files.

 ** FIX If you use the '-od' switch then the '-op' switch is not used.


 you can change it to anything you like.



 ** ENH The utility now also checks for a '[darwin]' section in the
 Configuration File.

 ** ENH The utility now supports the import syntax that was introduced with
 DMD v0.163.

 ** ENH The distribution now includes example configuration files for a
 number of environments.

 ** ENH The Configuration File now supports a new FINAL command that allows
 you to run jobs after a successful build.


 There are a number of example configuration files now distributed with the
 source. Please select the one closest to your own environment and tweak as
 needed if you are having problems with the 'default' settings. If you 
 can't
 get it to run using the compiler/linker/librarian of your choice after
 trying the configuration files, please let me know.

 Note that the distributed Windows executable files have been compressed
 with UPX. This shouldn't be an issue but I thought you might like to know.

 _________________
 -- 
 Derek
 (skype: derek.j.parnell)
 Melbourne, Australia
 "Down with mediocrity!"
 21/09/2006 6:12:20 PM 
Sep 27 2006
parent Derek Parnell <derek nomail.afraid.org> writes:
On Wed, 27 Sep 2006 23:52:43 -0400, jicman wrote:

 Derek,
 
 this build does not have the _bn fix?  Does it?  I tried it and it still 
 does not increase the build count.
Damn!? It doesn't? I'll go and check 'cos it was supposed to. -- Derek (skype: derek.j.parnell) Melbourne, Australia "Down with mediocrity!" 28/09/2006 3:49:52 PM
Sep 27 2006