www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - Release: GDC for Windows

reply Daniel Green <venix1 gmail.com> writes:
GDC D1 binaries are now available for Windows.  The binaries are 
packaged as an addon for TDM-GCC 4.5.1.

D2 will follow in the next couple of days.  Both versions are being 
compiled to coexist.  So a single installation should be capable of 
running D1 and D2.


gcc version 4.5.1 20100731 (gdc hg r499:886b0a5af18a, using dmd 1.067)

http://tdm-gcc.tdragon.net/download
https://bitbucket.org/goshawk/gdc/downloads/gcc-4.5.1-tdm-1-gdc-r499.7z

7-zip is required to extract the package. http://7-zip.org

- Disclaimer:  This binary release is a developmental snapshot.  It is 
highly probable things won't work right.

Please post any issues at
https://bitbucket.org/goshawk/gdc/issue/170
Mar 21 2011
next sibling parent Long Chang <changlong jkys.info> writes:
Congratulations ,  This is great news .


On Tue, Mar 22, 2011 at 11:26 AM, Daniel Green <venix1 gmail.com> wrote:
 GDC D1 binaries are now available for Windows. =C2=A0The binaries are pac=
kaged as
 an addon for TDM-GCC 4.5.1.

 D2 will follow in the next couple of days. =C2=A0Both versions are being =
compiled
 to coexist. =C2=A0So a single installation should be capable of running D=
1 and
 D2.


 gcc version 4.5.1 20100731 (gdc hg r499:886b0a5af18a, using dmd 1.067)

 http://tdm-gcc.tdragon.net/download
 https://bitbucket.org/goshawk/gdc/downloads/gcc-4.5.1-tdm-1-gdc-r499.7z

 7-zip is required to extract the package. http://7-zip.org

 - Disclaimer: =C2=A0This binary release is a developmental snapshot. =C2=
=A0It is
 highly probable things won't work right.

 Please post any issues at
 https://bitbucket.org/goshawk/gdc/issue/170
--=20 .
Mar 21 2011
prev sibling next sibling parent Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
Woho!
Mar 21 2011
prev sibling next sibling parent Caligo <iteronvexor gmail.com> writes:
On Mon, Mar 21, 2011 at 10:26 PM, Daniel Green <venix1 gmail.com> wrote:
 GDC D1 binaries are now available for Windows. =A0The binaries are packag=
ed as an addon for TDM-GCC 4.5.1.
 D2 will follow in the next couple of days. =A0Both versions are being com=
piled to coexist. =A0So a single installation should be capable of running = D1 and D2.
 gcc version 4.5.1 20100731 (gdc hg r499:886b0a5af18a, using dmd 1.067)

 http://tdm-gcc.tdragon.net/download
 https://bitbucket.org/goshawk/gdc/downloads/gcc-4.5.1-tdm-1-gdc-r499.7z

 7-zip is required to extract the package. http://7-zip.org

 - Disclaimer: =A0This binary release is a developmental snapshot. =A0It i=
s highly probable things won't work right.
 Please post any issues at
 https://bitbucket.org/goshawk/gdc/issue/170
Is Iain Buclaw really the only one who is contributing to GDC source? That's what the changesets are showing on bitbucket!
Mar 21 2011
prev sibling next sibling parent dsimcha <dsimcha yahoo.com> writes:
Excellent!  Now that you've apparently got a build process working, are 
you going to make new builds frequently (nightly/weekly/etc.) until GDC 
has a stable release?

On 3/21/2011 11:26 PM, Daniel Green wrote:
 GDC D1 binaries are now available for Windows. The binaries are packaged
 as an addon for TDM-GCC 4.5.1.

 D2 will follow in the next couple of days. Both versions are being
 compiled to coexist. So a single installation should be capable of
 running D1 and D2.


 gcc version 4.5.1 20100731 (gdc hg r499:886b0a5af18a, using dmd 1.067)

 http://tdm-gcc.tdragon.net/download
 https://bitbucket.org/goshawk/gdc/downloads/gcc-4.5.1-tdm-1-gdc-r499.7z

 7-zip is required to extract the package. http://7-zip.org

 - Disclaimer: This binary release is a developmental snapshot. It is
 highly probable things won't work right.

 Please post any issues at
 https://bitbucket.org/goshawk/gdc/issue/170
Mar 22 2011
prev sibling next sibling parent SiegeLord <none none.com> writes:
Does it work with Tango or will that need to be patched?

-SiegeLord
Mar 22 2011
prev sibling next sibling parent reply Daniel Green <venix1 gmail.com> writes:
On 3/22/2011 12:50 AM, Caligo wrote:
 Is Iain Buclaw really the only one who is contributing to GDC source?
That's the impression I got too. I've recently joined to keep Windows supported and to learn more about GCC/GDC. On 3/22/2011 8:53 AM, dsimcha wrote:
 Excellent! Now that you've apparently got a build process working, are
 you going to make new builds frequently (nightly/weekly/etc.) until GDC
 has a stable release?
I'm shooting for weekly, unless something important gets fixed. The process isn't automated yet and still takes about an hour for each version of D. On 3/22/2011 10:00 AM, SiegeLord wrote:
 Does it work with Tango or will that need to be patched?
Tango will probably require changes. Last I knew, GDC on Windows wasn't supported. The process was trivial. Mostly updating the build script and module names. I saw a patch on the tango website claiming to support GDC/MinGW.
Mar 22 2011
parent Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
I'm rooting for GDC as well. I just had another Optlink crash, yay. :/

So the GCC tools and its linker look like a nice alternative.
Mar 22 2011
prev sibling next sibling parent reply Daniel Green <venix1 gmail.com> writes:
D2 has been released for testing. Now in a zip file.

https://bitbucket.org/goshawk/gdc/downloads

gcc-4.5.1-tdm-1-gdc-r499-20110322.zip

 From here on out, D1 and D2 will be combined into a single release. 
Since D1 appears more stable it is the default.  Use -v2 to access D2.



Mar 22 2011
next sibling parent reply dsimcha <dsimcha yahoo.com> writes:
On 3/22/2011 8:22 PM, Daniel Green wrote:
 D2 has been released for testing. Now in a zip file.

 https://bitbucket.org/goshawk/gdc/downloads

 gcc-4.5.1-tdm-1-gdc-r499-20110322.zip

  From here on out, D1 and D2 will be combined into a single release.
 Since D1 appears more stable it is the default. Use -v2 to access D2.



I can't run it because I get the following error: cc1d.exe: The program can't start because libcloog-0.dll is missing from your computer.
Mar 22 2011
parent reply =?UTF-8?B?IkrDqXLDtG1lIE0uIEJlcmdlciI=?= <jeberger free.fr> writes:
dsimcha wrote:
 On 3/22/2011 8:22 PM, Daniel Green wrote:
 D2 has been released for testing. Now in a zip file.

 https://bitbucket.org/goshawk/gdc/downloads

 gcc-4.5.1-tdm-1-gdc-r499-20110322.zip

  From here on out, D1 and D2 will be combined into a single release.
 Since D1 appears more stable it is the default. Use -v2 to access D2.



=20 I can't run it because I get the following error: =20 cc1d.exe: The program can't start because libcloog-0.dll is missing from your computer.
Did you also install the tdm-gcc core package? IIRC libcloog should be part of it... Jerome --=20 mailto:jeberger free.fr http://jeberger.free.fr Jabber: jeberger jabber.fr
Mar 23 2011
parent reply dsimcha <dsimcha yahoo.com> writes:
On 3/23/2011 3:46 PM, "Jérôme M. Berger" wrote:
 dsimcha wrote:
 On 3/22/2011 8:22 PM, Daniel Green wrote:
 D2 has been released for testing. Now in a zip file.

 https://bitbucket.org/goshawk/gdc/downloads

 gcc-4.5.1-tdm-1-gdc-r499-20110322.zip

   From here on out, D1 and D2 will be combined into a single release.
 Since D1 appears more stable it is the default. Use -v2 to access D2.



I can't run it because I get the following error: cc1d.exe: The program can't start because libcloog-0.dll is missing from your computer.
Did you also install the tdm-gcc core package? IIRC libcloog should be part of it... Jerome
Ok, did that and moved the GDC binaries into the bin/ directory of this installation. Now, I get: gdc.exe: CreateProcess: No such file or directory
Mar 23 2011
next sibling parent Daniel Green <venix1 gmail.com> writes:
On 3/23/2011 7:15 PM, dsimcha wrote:
 Ok, did that and moved the GDC binaries into the bin/ directory of this
 installation. Now, I get:

 gdc.exe: CreateProcess: No such file or directory
Did you move any of the files in libexec? You may want to extract the zip file to your TDM installation. Headers and libraries will need copied as well.
Mar 23 2011
prev sibling parent Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
I think you need to add GDC's /bin to path.
Mar 23 2011
prev sibling next sibling parent Gour <gour atmarama.net> writes:
On Tue, 22 Mar 2011 20:22:18 -0400
Daniel Green <venix1 gmail.com> wrote:

 D2 has been released for testing. Now in a zip file.
Yay! I hope there will be release for FreeBSD soon so we can have proper 64bit port of D2 compiler. Sincerely, Gour --=20 =E2=80=9CIn the material world, conceptions of good and bad are all mental speculations=E2=80=A6=E2=80=9D (Sri Caitanya Mahaprabhu) http://atmarama.net | Hlapicina (Croatia) | GPG: CDBF17CA
Mar 23 2011
prev sibling next sibling parent reply Kagamin <spam here.lot> writes:
Daniel Green Wrote:

 D2 has been released for testing. Now in a zip file.
 
 https://bitbucket.org/goshawk/gdc/downloads
 
 gcc-4.5.1-tdm-1-gdc-r499-20110322.zip
 
  From here on out, D1 and D2 will be combined into a single release. 
 Since D1 appears more stable it is the default.  Use -v2 to access D2.
 


---- import core.stdc.stdio; int main() { printf("hello, world"); return 0; } ---- gdc -v2 test.d -o test.exe ---- test ---- (no text) ---- the same for d1, lol
Mar 24 2011
parent Kagamin <spam here.lot> writes:
Kagamin Wrote:

 Daniel Green Wrote:
 
 D2 has been released for testing. Now in a zip file.
 
 https://bitbucket.org/goshawk/gdc/downloads
 
 gcc-4.5.1-tdm-1-gdc-r499-20110322.zip
 
  From here on out, D1 and D2 will be combined into a single release. 
 Since D1 appears more stable it is the default.  Use -v2 to access D2.
 


---- import core.stdc.stdio; int main() { printf("hello, world"); return 0; } ---- gdc -v2 test.d -o test.exe ---- test ---- (no text) ---- the same for d1, lol
turned out that the executable has a dependency on sjlj runtime now works fine
Mar 24 2011
prev sibling parent reply Kagamin <spam here.lot> writes:
Daniel Green Wrote:

 D2 has been released for testing. Now in a zip file.
 
 https://bitbucket.org/goshawk/gdc/downloads
 
 gcc-4.5.1-tdm-1-gdc-r499-20110322.zip
 
  From here on out, D1 and D2 will be combined into a single release. 
 Since D1 appears more stable it is the default.  Use -v2 to access D2.
 


Is the AIX problem valid for windows too?
Mar 24 2011
parent reply Daniel Green <venix1 gmail.com> writes:
On 3/24/2011 6:53 PM, Kagamin wrote:
 Is the AIX problem valid for windows too?
What is the AIX problem?
Mar 24 2011
parent reply Kagamin <spam here.lot> writes:
Daniel Green Wrote:

 On 3/24/2011 6:53 PM, Kagamin wrote:
 Is the AIX problem valid for windows too?
What is the AIX problem?
https://bitbucket.org/goshawk/gdc/wiki/UserDocumentation#!known-issues writeln("hello world") compiles to 3MB exe which is approx 1/3 of libgphobos2. object file is just 3KB. or may be it's just the datetime module...
Mar 24 2011
next sibling parent "Nick Sabalausky" <a a.a> writes:
"Kagamin" <spam here.lot> wrote in message 
news:imha5f$2tke$1 digitalmars.com...
 Daniel Green Wrote:

 On 3/24/2011 6:53 PM, Kagamin wrote:
 Is the AIX problem valid for windows too?
What is the AIX problem?
https://bitbucket.org/goshawk/gdc/wiki/UserDocumentation#!known-issues writeln("hello world") compiles to 3MB exe which is approx 1/3 of libgphobos2. object file is just 3KB. or may be it's just the datetime module...
That poor datetime module just can't catch a break! :)
Mar 24 2011
prev sibling parent reply Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
On 3/25/11, Kagamin <spam here.lot> wrote:
 Daniel Green Wrote:

 On 3/24/2011 6:53 PM, Kagamin wrote:
 Is the AIX problem valid for windows too?
What is the AIX problem?
https://bitbucket.org/goshawk/gdc/wiki/UserDocumentation#!known-issues writeln("hello world") compiles to 3MB exe which is approx 1/3 of libgphobos2. object file is just 3KB.
The real issue here is that the GDC binaries that were just released weren't stripped. I guess Daniel forgot about that. :) There's strip.exe that you can use on Windows. It usually comes with either TDM-GCC or MinGW binaries. Once you have it, run this batch file from GDC's main directory: for /F %%G in ('dir /B /S *.exe;*.a;*.so') do strip --strip-unneeded %%G Now libgphobos2 will be 3.5 megs in size, and a test project with a writeln() will compile to 966Kb.
Mar 25 2011
next sibling parent Kagamin <spam here.lot> writes:
Andrej Mitrovic Wrote:

 for /F %%G in ('dir /B /S *.exe;*.a;*.so') do strip --strip-unneeded %%G
 
 Now libgphobos2 will be 3.5 megs in size, and a test project with a
 writeln() will compile to 966Kb.
Forgot about that, thanks.
Mar 25 2011
prev sibling parent reply Daniel Green <venix1 gmail.com> writes:
On 3/25/11, Kagamin<spam here.lot>  wrote:
 Daniel Green Wrote:

 On 3/24/2011 6:53 PM, Kagamin wrote:
 Is the AIX problem valid for windows too?
What is the AIX problem?
https://bitbucket.org/goshawk/gdc/wiki/UserDocumentation#!known-issues writeln("hello world") compiles to 3MB exe which is approx 1/3 of libgphobos2. object file is just 3KB.
It doesn't. The following sizes I think use shared libgcc. Might be a couple hundred more for a static build. A lot of the size is overhead. 856 hello.o 682,987 hello.exe 112,128 hello.exe after strip hello.exe 39,424 hello.exe upx... On 3/25/2011 11:35 AM, Andrej Mitrovic wrote:
 The real issue here is that the GDC binaries that were just released
 weren't stripped. I guess Daniel forgot about that. :)
That was on purpose. Unless it's an actual release, I won't strip them. Also, stripping the GDC binaries won't have any effect on output file size. Stripping the phobos libraries will, but I believe you'll also permanently lose any debugging information in the process. A better solution is to strip the outputted binary when your done with it. Does GCC have something equivalent to Microsoft's PDB file? Essentially it's all the debug information stored in a separate file.
Mar 25 2011
next sibling parent Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
Apparently there is a way to strip the debuggin info and put it in
another file, and then link the executable to the debug file so GDB
can automatically load it. But this doesn't seem to work for me:

gdc -g foo.d -o foo.exe
objcopy --only-keep-debug foo.exe foo.debug
strip -g foo.exe
objcopy --add-gnu-debuglink=foo.debug foo.exe

It doesn't add the .gnu_debuglink section to foo.exe, I don't know why..
Mar 25 2011
prev sibling parent reply Kagamin <spam here.lot> writes:
 writeln("hello world")
 compiles to 3MB exe which is approx 1/3 of libgphobos2.
 object file is just 3KB.
It doesn't. The following sizes I think use shared libgcc. Might be a couple hundred more for a static build. A lot of the size is overhead. 856 hello.o 682,987 hello.exe 112,128 hello.exe after strip hello.exe 39,424 hello.exe upx...
---- gdc -v2 test4.d -o test4.exe ---- dir test4* ---- 26.03.2011 19:17 78 test4.d 26.03.2011 19:18 2 835 758 test4.exe 2 File(s) 2 835 836 bytes ---- copy test4.d con ---- import std.stdio; int main() { writeln("hello world"); return 0; } 1 file(s) copied. ---- with gdc -v2 test4.d -o test4.exe -s it's 454kb
Mar 26 2011
parent reply Daniel Green <venix1 gmail.com> writes:
On 3/26/2011 12:27 PM, Kagamin wrote:
 ----
 gdc -v2 test4.d -o test4.exe
 ----
 dir test4*
 ----
 26.03.2011  19:17                78 test4.d
 26.03.2011  19:18         2Â 835Â 758 test4.exe
                 2 File(s)      2Â 835Â 836 bytes
Apparently, I used core.std.stdio. When I retested using std.stdio I got similar numbers. About 2 megs can be removed by stripping libgphobos2.a. I'll start doing that now that I know it's possible to separate debug information. nm test4.exe | grep ModuleInfo Run for a list of included modules. The best way to tell would be compare outputs with linux.
 ----
 copy test4.d con
 ----
 import std.stdio;
 int main()
 {
          writeln("hello world");
          return 0;
 }
          1 file(s) copied.
 ----

 with
 gdc -v2 test4.d -o test4.exe -s
 it's 454kb
From the GCC manual. -s Remove all symbol table and relocation information from the executable. It also looks like the AIX issue was related to the linker for the platform and applied to c++ as well.
Mar 26 2011
next sibling parent Kagamin <spam here.lot> writes:
Daniel Green Wrote:

 nm test4.exe | grep ModuleInfo
lol, winsock, regex, regexp, random(?) Well, std.datetime and std.complex can be understandable: they can be used by writeln...
 with
 gdc -v2 test4.d -o test4.exe -s
 it's 454kb
From the GCC manual. -s Remove all symbol table and relocation information from the executable.
yes, -s means strip
Mar 26 2011
prev sibling parent reply Kagamin <spam here.lot> writes:
Daniel Green Wrote:

 nm test4.exe | grep ModuleInfo
as to std.random, in std.algorithm we have version(unittest) { import std.random, std.stdio, std.string; mixin(dummyRanges); } is phobos compiled with unittests enabled?
Mar 26 2011
parent Daniel Green <venix1 gmail.com> writes:
On 3/26/2011 6:09 PM, Kagamin wrote:
 Daniel Green Wrote:

 nm test4.exe | grep ModuleInfo
as to std.random, in std.algorithm we have version(unittest) { import std.random, std.stdio, std.string; mixin(dummyRanges); } is phobos compiled with unittests enabled?
I'm not sure. Phobos is built using the default configuration supplied by GDC.
Mar 26 2011
prev sibling next sibling parent Bruno Medeiros <brunodomedeiros+spam com.gmail> writes:
On 22/03/2011 03:26, Daniel Green wrote:
 GDC D1 binaries are now available for Windows. The binaries are packaged
 as an addon for TDM-GCC 4.5.1.

 D2 will follow in the next couple of days. Both versions are being
 compiled to coexist. So a single installation should be capable of
 running D1 and D2.


 gcc version 4.5.1 20100731 (gdc hg r499:886b0a5af18a, using dmd 1.067)

 http://tdm-gcc.tdragon.net/download
 https://bitbucket.org/goshawk/gdc/downloads/gcc-4.5.1-tdm-1-gdc-r499.7z

 7-zip is required to extract the package. http://7-zip.org

 - Disclaimer: This binary release is a developmental snapshot. It is
 highly probable things won't work right.

 Please post any issues at
 https://bitbucket.org/goshawk/gdc/issue/170
Another great news... looking forward to the D2 release as well! -- Bruno Medeiros - Software Engineer
Mar 23 2011
prev sibling parent reply Kagamin <spam here.lot> writes:
Daniel Green Wrote:

 Please post any issues at
 https://bitbucket.org/goshawk/gdc/issue/170
got it https://bitbucket.org/goshawk/gdc/issue/170/problems-relating-to-windows-binaries#comment-417100
Mar 26 2011
parent reply Daniel Green <venix1 gmail.com> writes:
On 3/26/2011 5:28 PM, Kagamin wrote:
 Daniel Green Wrote:

 Please post any issues at
 https://bitbucket.org/goshawk/gdc/issue/170
got it https://bitbucket.org/goshawk/gdc/issue/170/problems-relating-to-windows-binaries#comment-417100
https://bitbucket.org/goshawk/gdc/issue/173/writeln-hangs-with-more-than-one-argument The problems been solved both examples now work. I will likely release a new build Sunday evening(EST). I was hoping to make some headway into the auto import warning.
Mar 26 2011
parent Kagamin <spam here.lot> writes:
Daniel Green Wrote:

 I was hoping to make some headway into 
 the auto import warning.
it would be nice to have all crt declarations qualified with `export`, this way they will be bound directly to __imp_ symbols, though, D provides no easy way to do this, only another version block.
Mar 27 2011