Jump to page: 1 2 3
Thread overview
GCC 12.1 Released (D v2.100-rc.1)
May 06, 2022
Iain Buclaw
May 06, 2022
max haughton
May 06, 2022
max haughton
May 06, 2022
Iain Buclaw
May 06, 2022
H. S. Teoh
May 06, 2022
Tejas
May 06, 2022
rikki cattermole
May 07, 2022
zjh
May 07, 2022
Walter Bright
May 07, 2022
Witold Baryluk
May 07, 2022
max haughton
May 07, 2022
Iain Buclaw
May 07, 2022
Adam Ruppe
May 08, 2022
Brian Callahan
May 08, 2022
Andrea Fontana
May 11, 2022
Adrian Matoga
May 11, 2022
Anonymouse
May 11, 2022
Iain Buclaw
May 13, 2022
Per Nordlöw
May 15, 2022
Iain Buclaw
May 06, 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. 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.

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

  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 channel on the Dlang Slack or #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. 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.

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

  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 channel on the Dlang Slack or #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:

>

[...]

Amazing, congrats! I'll have to try out gdc now that it might be able to build my stuff ;)

-Steve

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)

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

Why is this news not captured here?

I would have expected to see it in the language specific changes.

-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:

>

[...]

Amazing, congrats! I'll have to try out gdc now that it might be able to build my stuff ;)

-Steve

https://github.com/Homebrew/homebrew-core/blob/31e2ed54e34225db270b13228036009d427e8056/Formula/gcc.rb#L79

May 06, 2022

On Friday, 6 May 2022 at 13:30:41 UTC, Steven Schveighoffer wrote:

>

Why is this news not captured here?

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 07, 2022
Well done Iain!

We should do a celebration party for both it and 2.100.0 release!
May 07, 2022

On Friday, 6 May 2022 at 11:57:47 UTC, Iain Buclaw wrote:

>

Hi,

Is there a newest Windows version?

« First   ‹ Prev
1 2 3