www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - New GDC binaries: 2.068.2, shared library support, multilib support

reply Johannes Pfau <nospam example.com> writes:
Happy holidays everybody,

I'm happy to finally announce the release of new GDC binaries at
https://gdcproject.org/downloads . GDC is the GNU D Compiler, a D
compiler using GCC as the compiler backend.

This release was delayed by massive internal changes in GDC in
preparation for the DDMD frontend and related regressions. We think GDC
is now sufficiently stable for a new release though. New features since
the last release include:

* D frontend updated to 2.068.2, the last C++ frontend version. We
  additionally include some backported changes (e.g. loading libcurl
  dynamically). Although this is of course still kind of outdated it
  should be a useful improvement compared to the last release (2.066.1).

* New GCC versions. The new binaries are based on these backend
  versions: 4.8.5, 4.9.4, 5.4.0, 6.3.0. We use new, customized build
  scripts for GCC to produce 40 different toolchains from 5
  configuration files.

* Multilib support: The new build scripts allow for building multilib
  compilers. This means there are now less compiler archives to choose
  from and one compiler can compile for different targets using -m
  flags. This includes the famous -m32/-m64 for x86 but we now also
  support -mfloat-abi=soft/softfp/hard for the ARM target.

* Shared library support: We added support for shared libraries to GDC
  and all toolchain binaries ship with static and shared libraries
  installed. GDC still defaults to static libraries so pass the
  -shared-libphobos flag to use the shared library instead.

* New mechanism to link system dependencies: All system libraries
  needed by phobos (-ldl, -lrt, -latomic) are detected in the
  phobos ./configure script. The required dependencies are added to a
  libgphobos.spec file and installed along with the libgphobos.so/.a
  libraries. GDC then reads this file to detect the required libraries,
  so the libraries are no longer hard coded in GDC. Note for
  distribution packagers: You must make sure to manually install this
  file if you do not use the standard make install command.

* New GDMD tool: We now ship a new gdmd binary which replaces the old
  perl script. It's written in D and up-to-date with the DMD 2.068.2
  interface. Compared to the old script gdmd now does not need any
  additional dependencies and supports more advanced DMD functions
  (e.g gdmd -main -run a.d --program-args).

Travis-CI should pick up the new release from now on. Packagers can use
the following git tags when creating packages: v2.068.2_gcc6
v2.068.2_gcc5 v2.068.2_gcc4.9 v2.068.2_gcc4.8


Regards,
Johannes
Dec 25 2016
next sibling parent Johan Engelen <j j.nl> writes:
On Sunday, 25 December 2016 at 19:41:38 UTC, Johannes Pfau wrote:
 Happy holidays everybody,

 I'm happy to finally announce the release of new GDC binaries 
 at https://gdcproject.org/downloads .
Gratz! Hope you can add it to d.godbolt.org soon. ;) -Johan
Dec 25 2016
prev sibling next sibling parent Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> writes:
On 12/25/2016 02:41 PM, Johannes Pfau wrote:
 Happy holidays everybody,

 I'm happy to finally announce the release of new GDC binaries at
 https://gdcproject.org/downloads . GDC is the GNU D Compiler, a D
 compiler using GCC as the compiler backend.
Congratulations! We are very hopeful that all compiler will keep tightly together in 2017 and beyond, and it's clear you are taking good steps toward making that happen. -- Andrei
Dec 25 2016
prev sibling next sibling parent ketmar <ketmar ketmar.no-ip.org> writes:
On Sunday, 25 December 2016 at 19:41:38 UTC, Johannes Pfau wrote:
 Happy holidays everybody,
great work! long live gdc! ;-)
Dec 25 2016
prev sibling next sibling parent Daniel =?iso-8859-1?b?S2964Ws=?= via Digitalmars-d-announce writes:
Johannes Pfau via Digitalmars-d-announce=20
<digitalmars-d-announce puremagic.com> napsal Ne, pro 25, 2016 v 8=E2=88=B6=
41=20
:
 Happy holidays everybody,
=20
 I'm happy to finally announce the release of new GDC binaries at
 https://gdcproject.org/downloads . GDC is the GNU D Compiler, a D
 compiler using GCC as the compiler backend.
=20
 ...
Wow this is best xmas gift, thank you and all others who makes this=20 possible =
Dec 26 2016
prev sibling next sibling parent reply Russel Winder via Digitalmars-d-announce writes:
Has the problem of the Debian Sid GDC packages and LDC packages having
conflicting file installs been sorted so that it is possible to have
both installed and usable at the same time?

On Mon, 2016-12-26 at 10:51 +0100, Daniel Koz=C3=A1k via Digitalmars-d-
announce wrote:
=20
 Johannes Pfau via Digitalmars-d-announce=C2=A0
 <digitalmars-d-announce puremagic.com> napsal Ne, pro 25, 2016 v
 8=E2=88=B641=C2=A0
 :
 Happy holidays everybody,
=20
 I'm happy to finally announce the release of new GDC binaries at
 https://gdcproject.org/downloads . GDC is the GNU D Compiler, a D
 compiler using GCC as the compiler backend.
=20
 ...
=20 Wow this is best xmas gift, thank you and all others who makes this=C2=A0 possible
--=20 Russel. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.winder ekiga.n= et 41 Buckmaster Road m: +44 7770 465 077 xmpp: russel winder.org.uk London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder
Dec 26 2016
parent reply Johannes Pfau <nospam example.com> writes:
Am Mon, 26 Dec 2016 12:24:18 +0000
schrieb Russel Winder via Digitalmars-d-announce
<digitalmars-d-announce puremagic.com>:

 Has the problem of the Debian Sid GDC packages and LDC packages having
 conflicting file installs been sorted so that it is possible to have
 both installed and usable at the same time?
I think this has been fixed by the debian maintainers. -- Johannes
Dec 26 2016
parent Russel Winder via Digitalmars-d-announce writes:
On Mon, 2016-12-26 at 14:42 +0100, Johannes Pfau via Digitalmars-d-
announce wrote:
 [=E2=80=A6]
=20
 I think this has been fixed by the debian maintainers.
=20
 -- Johannes
Splendid. I must have missed the change happening. I can confirm it all does now work fine. Which is great. Is the DMD distribution the only source of rdmd, or is there a LDC or GDC version? --=20 Russel. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.winder ekiga.n= et 41 Buckmaster Road m: +44 7770 465 077 xmpp: russel winder.org.uk London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder
Dec 26 2016
prev sibling next sibling parent reply Dicebot <public dicebot.lv> writes:
 protected-headers="v1"
From: Dicebot <public dicebot.lv>
Newsgroups: d,i,g,i,t,a,l,m,a,r,s,.,D,.,a,n,n,o,u,n,c,e
Subject: Re: New GDC binaries: 2.068.2, shared library support, multilib
 support & a new gdmd tool
References: <o3p7dj$802$1 digitalmars.com>
In-Reply-To: <o3p7dj$802$1 digitalmars.com>

--Ib6cojL2xCXE9Cj4FNOk1MV4CTrCf4Xxc
Content-Type: text/plain; charset=windows-1252
Content-Transfer-Encoding: quoted-printable

On 12/25/2016 09:41 PM, Johannes Pfau wrote:
 Happy holidays everybody,
=20
 I'm happy to finally announce the release of new GDC binaries at
 https://gdcproject.org/downloads . GDC is the GNU D Compiler, a D
 compiler using GCC as the compiler backend.
A lot of great stuff! Got few questions when trying to update Arch Linux package though, could you please advice? 1) There is `gdc_include_dir` variable now, what is intended way to override it to custom path? `gcc/configure gdc_include_dir=3D/usr/include/dlang/gdc` doesn't seem to work 2) As far as I can see phobos is now built as shared library by default. What flags affect it? I'd like to build either static one, or both at the same time if possible. --Ib6cojL2xCXE9Cj4FNOk1MV4CTrCf4Xxc--
Dec 26 2016
parent reply Johannes Pfau <nospam example.com> writes:
Am Mon, 26 Dec 2016 16:26:55 +0200
schrieb Dicebot <public dicebot.lv>:

 On 12/25/2016 09:41 PM, Johannes Pfau wrote:
 Happy holidays everybody,
 
 I'm happy to finally announce the release of new GDC binaries at
 https://gdcproject.org/downloads . GDC is the GNU D Compiler, a D
 compiler using GCC as the compiler backend.  
A lot of great stuff! Got few questions when trying to update Arch Linux package though, could you please advice? 1) There is `gdc_include_dir` variable now, what is intended way to override it to custom path? `gcc/configure gdc_include_dir=/usr/include/dlang/gdc` doesn't seem to work
IIRC it's not really meant to be customizable. You'll have to edit libphobos/m4/druntime.m4. To regenerate the configure script you'll then have to call ./setup-gcc.sh first, cd into the gcc-x.y.z/libphobos directory and execute: export AUTOCONF=/opt/autoconf/2.64/bin/autoconf export ACLOCAL=/usr/bin/aclocal-1.11 export AUTOM4TE=/opt/autoconf/2.64/bin/autom4te export AUTOMAKE=/usr/bin/automake-1.11 /opt/autoconf/2.64/bin/autoreconf
 
 2) As far as I can see phobos is now built as shared library by
 default. What flags affect it? I'd like to build either static one,
 or both at the same time if possible.
 
The default configuration should build static and shared libraries. The flags to enable/disable library types are [--enable|--disable]-[shared|static] -- Johannes
Dec 26 2016
parent Dicebot <public dicebot.lv> writes:
 protected-headers="v1"
From: Dicebot <public dicebot.lv>
Newsgroups: d,i,g,i,t,a,l,m,a,r,s,.,D,.,a,n,n,o,u,n,c,e
Subject: Re: New GDC binaries: 2.068.2, shared library support, multilib
 support & a new gdmd tool
References: <o3p7dj$802$1 digitalmars.com> <o3r9bf$bjj$1 digitalmars.com>
 <o3rc62$fs6$1 digitalmars.com>
In-Reply-To: <o3rc62$fs6$1 digitalmars.com>

--LH8VSj8TmAHShhf49LTwg3uj19jGGAeIw
Content-Type: text/plain; charset=windows-1252
Content-Transfer-Encoding: quoted-printable

After some tweaking and playing have finally uploaded Arch Linux
packages for GDC using 6.2.1 gcc base and
https://github.com/D-Programming-GDC/GDC/releases/tag/v2.068.2_gcc6

Now also includes new "libpghobos" package providing shared library only
(though I haven't tested this part).


--LH8VSj8TmAHShhf49LTwg3uj19jGGAeIw--
Dec 26 2016
prev sibling next sibling parent reply brocolis <brocolis deb.null> writes:
On Sunday, 25 December 2016 at 19:41:38 UTC, Johannes Pfau wrote:
 Happy holidays everybody,

 I'm happy to finally announce the release of new GDC binaries
Thank you for the hard work. Any hope for the windows/mingw target?
Dec 26 2016
parent Johannes Pfau <nospam example.com> writes:
On Monday, 26 December 2016 at 16:43:51 UTC, brocolis wrote:
 On Sunday, 25 December 2016 at 19:41:38 UTC, Johannes Pfau 
 wrote:
 Happy holidays everybody,

 I'm happy to finally announce the release of new GDC binaries
Thank you for the hard work. Any hope for the windows/mingw target?
I'll revive the mingw target at some point in time. But this requires changes in upstream druntime/phobos and as long as gdc and upstream are out of sync this requires some extra effort. So mingw support will have to wait till GDC is up to date again. -- Johannes
Dec 27 2016
prev sibling parent reply Martin Nowak <code dawg.eu> writes:
On Sunday, 25 December 2016 at 19:41:38 UTC, Johannes Pfau wrote:
 Happy holidays everybody,

 I'm happy to finally announce the release of new GDC binaries 
 at https://gdcproject.org/downloads.
Congratulations!
 massive internal changes in GDC in preparation for the DDMD 
 frontend
Sounded very exiting what I heard from Iain recently.
 * Shared library support: We added support for shared libraries 
 to GDC
Great, might be time to revive https://github.com/dlang/druntime/pull/617 soon.
 * New mechanism to link system dependencies: All system 
 libraries
   needed by phobos (-ldl, -lrt, -latomic) are detected in the
   phobos ./configure script. The required dependencies are 
 added to a
   libgphobos.spec file and installed along with the 
 libgphobos.so/.a
   libraries. GDC then reads this file to detect the required 
 libraries,
   so the libraries are no longer hard coded in GDC. Note for
   distribution packagers: You must make sure to manually 
 install this
   file if you do not use the standard make install command.
Sounds interesting for dmd as well.
 Travis-CI should pick up the new release from now on.
Thanks for updating :) It's actually all handled by the install.sh script, so you'll also get the latest gdc with `curl -fsS https://dlang.org/install.sh | bash -s gdc` and anything else using that script, e.g. Travis-CI and the Heroku buildpack.
Dec 26 2016
next sibling parent Johannes Pfau <nospam example.com> writes:
On Tuesday, 27 December 2016 at 02:52:40 UTC, Martin Nowak wrote:
 On Sunday, 25 December 2016 at 19:41:38 UTC, Johannes Pfau 
 wrote:

 * Shared library support: We added support for shared 
 libraries to GDC
Great, might be time to revive https://github.com/dlang/druntime/pull/617 soon.
Sounds like a good idea :-)
 * New mechanism to link system dependencies: All system 
 libraries
   needed by phobos (-ldl, -lrt, -latomic) are detected in the
   phobos ./configure script. The required dependencies are 
 added to a
   libgphobos.spec file and installed along with the 
 libgphobos.so/.a
   libraries. GDC then reads this file to detect the required 
 libraries,
   so the libraries are no longer hard coded in GDC. Note for
   distribution packagers: You must make sure to manually 
 install this
   file if you do not use the standard make install command.
Sounds interesting for dmd as well.
You could also use DMD.conf or some nice, custom file format. We have to use the .spec format in GCC/GDC which is quite limited.
Dec 27 2016
prev sibling parent Iain Buclaw via Digitalmars-d-announce writes:
On 27 December 2016 at 03:52, Martin Nowak via Digitalmars-d-announce
<digitalmars-d-announce puremagic.com> wrote:
 On Sunday, 25 December 2016 at 19:41:38 UTC, Johannes Pfau wrote:
 Happy holidays everybody,

 I'm happy to finally announce the release of new GDC binaries at
 https://gdcproject.org/downloads.
Congratulations!
 massive internal changes in GDC in preparation for the DDMD frontend
Sounded very exiting what I heard from Iain recently.
Indeed. Next focus should be on completing this, and getting aligned with the stable branch in upstream DMD. I think the best way to allow smooth transition would be to align up headers between the last C++ release and current stable, then make sure that the backend is able to deal with both versions without any special treatment. In my time offline, there's already been dozens of fixes I've pull in to align the headers up. This may end up in the next increasingly wrong 2.068 release. Or perhaps just give it the version 2.068.9¾.
Dec 31 2016