I am proud to announce another major GCC release, 12.1.
This year, the biggest change in the D front-end is the version bump from v2.076.1 to v2.100.0-rc.1. For the full list of front-end changes, please read the change log on dlang.org. As and when DMD releases new minor releases of v2.100.x, they will be backported into the next minor release of GCC.
In order to build GDC, you will now require a working GDC compiler (GCC version 9.1 or later) and D runtime library, as GDC is now written in D.
For the best chance of bootstrapping successfully, the latest version of GCC 11.x will have all the backported fixes necessary to build GCC 12. Alternatively, you can also use LDC2 or DMD to build GDC with the use of a simple wrapper.
Note that configure does not test whether the GDC installation works and has a sufficiently recent version. Though the implementation of the D front-end does not make use of any GDC-specific extensions, or novel features of the D language, if too old a GDC version is installed and --enable-languages=d is used, the build will fail. On some targets, libphobos isn’t enabled by default, but compiles and works if
--enable-libphobos is used. While the bootstrap process has been tested on a vagary of platforms and architectures, your mileage may ultimately vary.
If you encounter difficulties, while you may contact me directly, it is better to visit https://gcc.gnu.org/bugzilla and file a problem report.
GCC 13 Development
Now the development cycle has started again, its time for the next round of have ambitions for changes to land during the next release cycle.
ImportC is gaining a preprocessor. DMD will achieve this by calling
fork()to the system installed cpp program, I rather have other ideas. As the preprocessor for GCC is already linked into GDC (though only used for internal location tracking by the middle-end optimizer), it would make more sense to preprocess C sources in-memory using the exposed cpplib interface.
Add new compiler intrinsics for all functions in the
core.int128module. Some preliminary testing has yielded results that show the building blocks for 128-bit integers generate the same code as per native types, however more stress testing is required, particularly on big endian and strict alignment architectures before this will land in mainline.
Update the compilers on the GDC compiler explorer site to version 12, and other continued maintenance on the testing infrastructure, the costs of which are now covered by the kind sponsors of GDC. If you are interested in helping support the on-going development of GDC, you can do so by making a donation to the D Language Foundation.
As GDC is now in sync with current DMD development, this will generally continue throughout the release cycle so that the next version of GCC will also sport the latest release of the D language.
There are - as always - more things to do than I have available hours to do them in, but if this has pricked your interest, or you feel you could help in any way, please don't hesitate to jump on the #gdc channel on the Dlang Slack or #d.gdc on Libera.Chat IRC.
Until the next major/minor release...