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