GCC/GNAT 16 changelog published, release is close

Dear all, the changelog for GCC/GNAT 16 is now live! You can see it here GCC 16 Release Series — Changes, New Features, and Fixes - GNU Project it is expected to be released quite soon (hopefully this month).

Additionally, some missing items in v14 and v15 where added, see GCC 14 Release Series — Changes, New Features, and Fixes - GNU Project and GCC 15 Release Series — Changes, New Features, and Fixes - GNU Project

I would like to thank @dkm for his work and help getting the changelog ready and submitted.

Best regards,
Fer

5 Likes

I hope that MacOS and MacOS/arm64 more specifically are fully supported.

Implicit with allows a stand-alone use clause in the context clause of a compilation unit to imply an implicit with of the same library unit where an equivalent with clause would be allowed. 

er…what?

Sorry but aarch64 darwin is still not supported in upstream gcc. You still need to use Iain’s branch (GitHub - iains/gcc-darwin-arm64: GCC master branch for Darwin with experimental support for Arm64. Currently GCC-16.0.1 [March 2026] · GitHub).

As for the “implicit with”, @Lucretia have you tried the linked doc? I guess it will make sense after you see the example.

Thanks @Irvise for helping with the changelog :+1:

2 Likes

Thank you for the link to the GitHub branch/fork for the unsupported MacOS/Darwin/etc.

It’s in GNAT’s experimental feature set, not the regular extension feature set or the base language.

I still think that with X renames Y; is more useful.

1 Like

I should try building the superh arch with gcc16!!! I had troubles getting C++ to work on gcc15 and problems with Ada on gcc14. Maybe I can have one compiler for both languages now!

I’ve played a bit with sh4 a while back, without any issue (see GitHub - dkm/ada-dreamcast-helloworld · GitHub ). I think the kalistiOS have included Ada in their toolchain now (but it’s better to check that, I’m not sure anymore).

3 Likes

Constructor, Destructor, Implicit with, Structural Generic instantiation, access to slices.
So from right to left we have one good thing, one dubious, one useless, and two unthinkable violations of apocalyptic proportion. I think GNAT is thoroughly fὗϹԞd and it hurts me personally, due to my autistic desire for aesthetic perfection.

1 Like

There is nothing extraordinary in GNAT adding GNAT extensions.

I looked into your project. There are some helpful configs that I’ll steal copy!

I wanted to ask you how you made your runtime, until I noticed that you copied it from Fabien-Chouteau/bare_runtime

I didn’t know that there was a bare runtime already… This could have saved me a week of tinkering around with the bb_runtime (and other runtimes)… So much debugging… So many failed attempts…

But the learning! x)

Though I get it, it is quite frustrating… I knew of the project and I did not remember to tell you about it… :confused:

1 Like

Well, there is no point in crying now. I’ll look into it tomorrow after contemplating my life choices

Yes, I did a simple copy… But beware that I never did anything more than a “Oh, look, it’s executing something, my job’s done :grimacing: “. I wouldn’t look at my project as a template, it’s probably not clean, nor a good example. It’s only a data point for “sh4 + Ada is possible”.

1 Like

And that is all I am asking for…

I’ll adapt it for my system as good as possible. It just has to compile for now.

(My current approach is working but I’m using a stub to define __gnat_last_chance_handler and a few more. )