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