GCC 12.1 Released (D v2.100-rc.1)

Iain Buclaw ibuclaw at gdcproject.org
Fri May 6 11:57:47 UTC 2022


Hi,

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](https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=b4acfef1342097ceaf10fa935831f8edd7069431)**.  For the full list of front-end changes, please read the [change log on dlang.org](https://dlang.org/changelog/2.100.0.html). 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](https://gist.github.com/ibuclaw/e6733142a8644ffb53106cc9986372fa) or [DMD](https://gist.github.com/ibuclaw/73f91fd66b5d4a1a6ad29d739be627c1) 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.

1. 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.

2. Add new compiler intrinsics for all functions in the 
`core.int128` module.  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.

3. Update the compilers on the [GDC compiler 
explorer](https://explore.dgnu.org) site to version 12, and other 
continued maintenance on the testing infrastructure, the costs of 
which are now covered by the [kind 
sponsors](https://github.com/sponsors/ibuclaw) 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](https://dlang.org/foundation/donate.html).

4. 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](https://dlang.slack.com/archives/C6LTP6MV1) channel 
on the Dlang Slack or [#d.gdc](irc://irc.libera.chat/d.gdc) on 
Libera.Chat IRC.

Until the next major/minor release...

Regards,
Iain.


More information about the Digitalmars-d-announce mailing list