digitalmars.D.announce - GCC 12.1 Released (D v2.100-rc.1)
- Iain Buclaw (63/63) May 06 2022 Hi,
- Steven Schveighoffer (4/83) May 06 2022 Amazing, congrats! I'll have to try out gdc now that it might be able to...
- max haughton (5/10) May 06 2022 The brew version of GCC has D disabled for non-x86 targets. It
- max haughton (2/7) May 06 2022 https://github.com/Homebrew/homebrew-core/blob/31e2ed54e34225db270b13228...
- Steven Schveighoffer (5/16) May 06 2022 Why is this news not captured
- Iain Buclaw (3/7) May 06 2022 I need some more time to push in that content to the GCC site.
- H. S. Teoh (10/20) May 06 2022 [...]
- Tejas (2/5) May 06 2022 Go Iain πππππ₯³π₯³π₯³π₯³π₯³
- rikki cattermole (2/2) May 06 2022 Well done Iain!
- zjh (2/3) May 06 2022 Is there a newest Windows version?
- Walter Bright (2/3) May 06 2022 Very impressive work, Iain!
- Witold Baryluk (15/23) May 07 2022 Thank you so much Ian on your hard and dedicated work on GDC. It
- max haughton (7/33) May 07 2022 I'm planning on getting something like this set up for the
- Iain Buclaw (16/25) May 07 2022 Thanks for the suggestion. Vladimir did in fact do that for dmd
- Adam Ruppe (5/9) May 07 2022 Well, I'm pretty sure if we do this carefully we can have the
- Brian Callahan (3/5) May 08 2022 Thanks, Iain. All is good on OpenBSD.
- Andrea Fontana (2/7) May 08 2022 Great!
- Adrian Matoga (2/5) May 11 2022 Thank you for all the great work!
- Anonymouse (6/12) May 11 2022 Amazing, congratulations!
- Iain Buclaw (3/5) May 11 2022 You should ask the package maintainers.
- Per =?UTF-8?B?Tm9yZGzDtnc=?= (2/3) May 13 2022 Thank you, Ian!
- Iain Buclaw (3/8) May 15 2022 The GCC-12 release branch has now been [sync'd
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=b4acfef1342097ceaf10fa93 831f8edd7069431)**. 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. --- 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.
May 06 2022
On 5/6/22 7:57 AM, Iain Buclaw wrote: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=b4acfef1342097ceaf10fa93 831f8edd7069431)**. 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. --- 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.Amazing, congrats! I'll have to try out gdc now that it might be able to build my stuff ;) -Steve
May 06 2022
On Friday, 6 May 2022 at 13:27:40 UTC, Steven Schveighoffer wrote:On 5/6/22 7:57 AM, Iain Buclaw wrote:The brew version of GCC has D disabled for non-x86 targets. It might just be a flip of a switch to enable but could he a wild west in terms of some library features (if the latter I still vote for trying to enable it as long as hello world works)[...]Amazing, congrats! I'll have to try out gdc now that it might be able to build my stuff ;) -Steve
May 06 2022
On Friday, 6 May 2022 at 13:27:40 UTC, Steven Schveighoffer wrote:On 5/6/22 7:57 AM, Iain Buclaw wrote:https://github.com/Homebrew/homebrew-core/blob/31e2ed54e34225db270b13228036009d427e8056/Formula/gcc.rb#L79[...]Amazing, congrats! I'll have to try out gdc now that it might be able to build my stuff ;) -Steve
May 06 2022
On 5/6/22 7:57 AM, Iain Buclaw wrote: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=b4acfef1342097ceaf10fa93 831f8edd7069431)**. 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.Why is this news not captured [here](https://gcc.gnu.org/gcc-12/changes.html)? I would have expected to see it in the language specific changes. -Steve
May 06 2022
On Friday, 6 May 2022 at 13:30:41 UTC, Steven Schveighoffer wrote:Why is this news not captured [here](https://gcc.gnu.org/gcc-12/changes.html)? I would have expected to see it in the language specific changes.I need some more time to push in that content to the GCC site. Expect it some time over the next fortnight.
May 06 2022
On Fri, May 06, 2022 at 11:57:47AM +0000, Iain Buclaw via Digitalmars-d-announce wrote: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.[...] This is AWESOME news!!! Finally, GDC will be able to compile the up-to-date language. I will be seriously considering using gdc for my latest projects again. Huge thanks to Iain for all his hard work through all these years to make this happen! T -- If lightning were to ever strike an orchestra, it'd always hit the conductor first.
May 06 2022
On Friday, 6 May 2022 at 11:57:47 UTC, Iain Buclaw wrote:Hi, I am proud to announce another major GCC release, 12.1. [...]Go Iain πππππ₯³π₯³π₯³π₯³π₯³
May 06 2022
Well done Iain! We should do a celebration party for both it and 2.100.0 release!
May 06 2022
On Friday, 6 May 2022 at 11:57:47 UTC, Iain Buclaw wrote:Hi,Is there a newest Windows version?
May 06 2022
On 5/6/2022 4:57 AM, Iain Buclaw wrote:I am proud to announce another major GCC release, 12.1.Very impressive work, Iain!
May 06 2022
On Friday, 6 May 2022 at 11:57:47 UTC, Iain Buclaw wrote:Hi, I am proud to announce another major GCC release, 12.1.Thank you so much Ian on your hard and dedicated work on GDC. It is my goto default compiler for D on Debian Linux. (I use ldc and sometimes dmd sporadically, but only for testing compatibility). Glad to have newer GCC backend, frontend up to date with DMD, all the Phobos work, and various architectures supports landing!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.Good you mentioned that! I was not aware of the sponsorship program, and now that I know, I gladly will chip in (well, just did it moments ago). For testing infrastructure, I would suggest tracking compilation speed and memory usage and output binary size of GDC on amd64 and aarch64 at least (to detect compiler getting slower, or due to growth of Phobos / druntime), and having a public website showing this data. Something like this maybe https://fast.vlang.io/ Cheers.
May 07 2022
On Saturday, 7 May 2022 at 20:14:51 UTC, Witold Baryluk wrote:On Friday, 6 May 2022 at 11:57:47 UTC, Iain Buclaw wrote:I'm planning on getting something like this set up for the frontend but its not the easiest thing to do on cheap cloud instances. Hypothetically we could use something like callgrind to measure raw instruction counts but this becomes more and more synthetic the more data you collect.Hi, I am proud to announce another major GCC release, 12.1.Thank you so much Ian on your hard and dedicated work on GDC. It is my goto default compiler for D on Debian Linux. (I use ldc and sometimes dmd sporadically, but only for testing compatibility). Glad to have newer GCC backend, frontend up to date with DMD, all the Phobos work, and various architectures supports landing!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.Good you mentioned that! I was not aware of the sponsorship program, and now that I know, I gladly will chip in (well, just did it moments ago). For testing infrastructure, I would suggest tracking compilation speed and memory usage and output binary size of GDC on amd64 and aarch64 at least (to detect compiler getting slower, or due to growth of Phobos / druntime), and having a public website showing this data. Something like this maybe https://fast.vlang.io/ Cheers.
May 07 2022
On Saturday, 7 May 2022 at 20:14:51 UTC, Witold Baryluk wrote:Good you mentioned that! I was not aware of the sponsorship program, and now that I know, I gladly will chip in (well, just did it moments ago). For testing infrastructure, I would suggest tracking compilation speed and memory usage and output binary size of GDC on amd64 and aarch64 at least (to detect compiler getting slower, or due to growth of Phobos / druntime), and having a public website showing this data. Something like this maybe https://fast.vlang.io/ Cheers.Thanks for the suggestion. Vladimir did in fact do that for dmd last decade, it only ran for a couple years though. Have been thinking about maybe reviving it every so often. https://blog.cy.md/2015/05/05/is-d-slim-yet/ Adam (maybe in a TWID post) did a few months back lament that D1 vs D2 equivalent code compiles slower with the latter. The bulk of which in the trivial case came from Druntime and how many modules are imported (D1 object.d had no imports, D2 object.d imports around 25 modules). Remove the excessive imports and the original speed was observed again. That's only one small example though of where perceived slowness comes from the library becoming more complex over time - and I expect it only to increase as more of the old opaque compiler-library interface is replaced with a templated interface that exposes the guts of what each helper does (for improved run-time performance, of course).
May 07 2022
On Saturday, 7 May 2022 at 22:07:58 UTC, Iain Buclaw wrote:I expect it only to increase as more of the old opaque compiler-library interface is replaced with a templated interface that exposes the guts of what each helper does (for improved run-time performance, of course).Well, I'm pretty sure if we do this carefully we can have the best of both worlds. It is just important to get the interface right at this stage, then we can look at the other optimizations later with precompiling and such.
May 07 2022
On Friday, 6 May 2022 at 11:57:47 UTC, Iain Buclaw wrote:Hi, I am proud to announce another major GCC release, 12.1.Thanks, Iain. All is good on OpenBSD. ~Brian
May 08 2022
On Friday, 6 May 2022 at 11:57:47 UTC, Iain Buclaw wrote:Hi, I am proud to announce another major GCC release, 12.1. [...] Regards, Iain.Great!
May 08 2022
On Friday, 6 May 2022 at 11:57:47 UTC, Iain Buclaw wrote:Hi, I am proud to announce another major GCC release, 12.1. [...]Thank you for all the great work!
May 11 2022
On Friday, 6 May 2022 at 11:57:47 UTC, Iain Buclaw wrote: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=b4acfef1342097ceaf10fa93 831f8edd7069431)**. 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.Amazing, congratulations! I was hammering the Arch Linux package page for `gcc-d` waiting for the update to show up there, but it went from 11.2.0-4 to deleted.gcc-d 11.2.0-4 has been removed from the [core] repository.Does anyone know what's going on there?
May 11 2022
On Wednesday, 11 May 2022 at 19:08:15 UTC, Anonymouse wrote:You should ask the package maintainers. https://github.com/archlinux/svntogit-packages/commit/6ebddb843f621263f4ce6e5a8b2b6856f337c218gcc-d 11.2.0-4 has been removed from the [core] repository.Does anyone know what's going on there?
May 11 2022
On Friday, 6 May 2022 at 11:57:47 UTC, Iain Buclaw wrote:I am proud to announce another major GCC release, 12.1.Thank you, Ian!
May 13 2022
On Friday, 6 May 2022 at 11:57:47 UTC, Iain Buclaw wrote: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=b4acfef1342097ceaf10fa93 831f8edd7069431)**. 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.The GCC-12 release branch has now been [sync'd up](https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=0556c356e541aa106dcc4 76db429ee0d2343d99) with the release of DMD v2.100.0.
May 15 2022