www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - GCC 10.2.1 Released

reply Iain Buclaw <ibuclaw gdcproject.org> writes:
Hi,

I've been slow in getting round to this, but 10.2 was released a 
few weeks back.

GCC 10.2 is a bug-fix release from the GCC 10 branch containing 
important fixes for regressions and serious bugs found GCC 10.1.

In the D language front-end, there have been four ICE bugs fixed 
(five if you're getting the packages from Debian/Ubuntu).

Also fixed is a compile-time performance bug when using `static 
foreach'.

In the following example:

     static foreach (i; 0..30000) {}

Compilation time has been reduced from around 40 to 0.08 seconds. 
Memory consumption is also reduced from 3.5GB to 55MB. (Thanks 
BorisCarvajal!)

As usual, sources are available from any of the GCC mirrors [1], 
or you can clone the git repository [2].

Regards
Iain.

[1] https://gcc.gnu.org/mirrors.html
[2] git://gcc.gnu.org/git/gcc.git
Aug 24
next sibling parent reply "H. S. Teoh" <hsteoh quickfur.ath.cx> writes:
On Mon, Aug 24, 2020 at 09:24:23PM +0000, Iain Buclaw via
Digitalmars-d-announce wrote:
[...]
 GCC 10.2 is a bug-fix release from the GCC 10 branch containing
 important fixes for regressions and serious bugs found GCC 10.1.
Thanks for all of your efforts, Iain!! [...]
 Also fixed is a compile-time performance bug when using `static
 foreach'.
[...]
 Compilation time has been reduced from around 40 to 0.08 seconds.
 Memory consumption is also reduced from 3.5GB to 55MB. (Thanks
 BorisCarvajal!)
[...] Wow. That's a pretty major improvement! Is this improvement upstreamed? Just out of curiosity, which language version will the next GCC release have? Currently, my version of GDC gives __VERSION__ as 2.076, which is pretty old (whereas LDC gives 2.093, basically on par with DMD). Will the next GDC major release have a significantly-updated language version? (I understand that the original plan was to get a foot in GCC's door first, for bootstrapping reasons, then now that we have GDC in the official GCC distribution, we can bootstrap to a much more up-to-date front-end version.) T -- Never step over a puddle, always step around it. Chances are that whatever made it is still dripping.
Aug 24
parent reply Iain Buclaw <ibuclaw gdcproject.org> writes:
On Monday, 24 August 2020 at 21:40:08 UTC, H. S. Teoh wrote:
 On Mon, Aug 24, 2020 at 09:24:23PM +0000, Iain Buclaw via 
 Digitalmars-d-announce wrote: [...]
 GCC 10.2 is a bug-fix release from the GCC 10 branch 
 containing important fixes for regressions and serious bugs 
 found GCC 10.1.
Thanks for all of your efforts, Iain!! [...]
 Also fixed is a compile-time performance bug when using 
 `static foreach'.
[...]
 Compilation time has been reduced from around 40 to 0.08 
 seconds. Memory consumption is also reduced from 3.5GB to 
 55MB. (Thanks BorisCarvajal!)
[...] Wow. That's a pretty major improvement! Is this improvement upstreamed?
It was backported from this PR https://github.com/dlang/dmd/pull/11303 (see PR 11335)
 Just out of curiosity, which language version will the next GCC 
 release have?  Currently, my version of GDC gives __VERSION__ 
 as 2.076, which is pretty old (whereas LDC gives 2.093, 
 basically on par with DMD).  Will the next GDC major release 
 have a significantly-updated language version?
Likely the deciding factor will come down to how much free time I will get to do so. There's still a few outstanding issues in dmd-master and gcc middle-end that have hampered progress by a few weeks.
 (I understand that the original plan was to get a foot in GCC's 
 door first, for bootstrapping reasons, then now that we have 
 GDC in the official GCC distribution, we can bootstrap to a 
 much more up-to-date front-end version.)
That is correct, so far I've yanked out the old C++ sources and replaced them with D, and the end result is a compiler that links and passes 99% of the testsuite. Though I wonder if it might be possible take advantage of GCC's bootstrap process and keep both in-tree for the benefit of incomplete ports.
Aug 24
next sibling parent zoujiaqing <zoujiaqing gmail.com> writes:
On Monday, 24 August 2020 at 23:49:42 UTC, Iain Buclaw wrote:
 On Monday, 24 August 2020 at 21:40:08 UTC, H. S. Teoh wrote:
 On Mon, Aug 24, 2020 at 09:24:23PM +0000, Iain Buclaw via 
 Digitalmars-d-announce wrote: [...]
 GCC 10.2 is a bug-fix release from the GCC 10 branch 
 containing important fixes for regressions and serious bugs 
 found GCC 10.1.
Thanks for all of your efforts, Iain!! [...]
 Also fixed is a compile-time performance bug when using 
 `static foreach'.
[...]
 Compilation time has been reduced from around 40 to 0.08 
 seconds. Memory consumption is also reduced from 3.5GB to 
 55MB. (Thanks BorisCarvajal!)
[...] Wow. That's a pretty major improvement! Is this improvement upstreamed?
It was backported from this PR https://github.com/dlang/dmd/pull/11303 (see PR 11335)
 Just out of curiosity, which language version will the next 
 GCC release have?  Currently, my version of GDC gives 
 __VERSION__ as 2.076, which is pretty old (whereas LDC gives 
 2.093, basically on par with DMD).  Will the next GDC major 
 release have a significantly-updated language version?
Likely the deciding factor will come down to how much free time I will get to do so. There's still a few outstanding issues in dmd-master and gcc middle-end that have hampered progress by a few weeks.
Thanks!
Aug 25
prev sibling parent reply M.M. <matus email.cz> writes:
On Monday, 24 August 2020 at 23:49:42 UTC, Iain Buclaw wrote:
 Just out of curiosity, which language version will the next 
 GCC release have?  Currently, my version of GDC gives 
 __VERSION__ as 2.076, which is pretty old (whereas LDC gives 
 2.093, basically on par with DMD).  Will the next GDC major 
 release have a significantly-updated language version?
Likely the deciding factor will come down to how much free time I will get to do so. There's still a few outstanding issues in dmd-master and gcc middle-end that have hampered progress by a few weeks.
Thank you for your work. I cross my fingers for you to have enough free time in the upcoming months!
Aug 26
parent reply Iain Buclaw <ibuclaw gdcproject.org> writes:
On Thursday, 27 August 2020 at 04:05:15 UTC, M.M. wrote:
 On Monday, 24 August 2020 at 23:49:42 UTC, Iain Buclaw wrote:
 Just out of curiosity, which language version will the next 
 GCC release have?  Currently, my version of GDC gives 
 __VERSION__ as 2.076, which is pretty old (whereas LDC gives 
 2.093, basically on par with DMD).  Will the next GDC major 
 release have a significantly-updated language version?
Likely the deciding factor will come down to how much free time I will get to do so. There's still a few outstanding issues in dmd-master and gcc middle-end that have hampered progress by a few weeks.
Thank you for your work. I cross my fingers for you to have enough free time in the upcoming months!
If people want to share my workload on gdc, then it'll certainly help.
Aug 29
parent reply wjoe <invalid example.com> writes:
On Saturday, 29 August 2020 at 18:40:36 UTC, Iain Buclaw wrote:
 On Thursday, 27 August 2020 at 04:05:15 UTC, M.M. wrote:
 On Monday, 24 August 2020 at 23:49:42 UTC, Iain Buclaw wrote:
[...]
Likely the deciding factor will come down to how much free time I will get to do so. There's still a few outstanding issues in dmd-master and gcc middle-end that have hampered progress by a few weeks.
Thank you for your work. I cross my fingers for you to have enough free time in the upcoming months!
If people want to share my workload on gdc, then it'll certainly help.
I'm exactly 100% unfamiliar with the code base. How can I help ? Where do I start ?
Aug 31
next sibling parent wjoe <invalid example.com> writes:
On Monday, 31 August 2020 at 13:24:50 UTC, wjoe wrote:
 I'm exactly 100% unfamiliar with the code base. How can I help 
 ? Where do I start ?
Reading this again after a few hours it comes across in sort of a rude way - apologies if that was the case. The question is if I haven't got any experience with GCC and GDC, how to get involved - where to get started ?
Aug 31
prev sibling parent reply Iain Buclaw <ibuclaw gdcproject.org> writes:
On Monday, 31 August 2020 at 13:24:50 UTC, wjoe wrote:
 On Saturday, 29 August 2020 at 18:40:36 UTC, Iain Buclaw wrote:
 On Thursday, 27 August 2020 at 04:05:15 UTC, M.M. wrote:
 On Monday, 24 August 2020 at 23:49:42 UTC, Iain Buclaw wrote:
[...]
Likely the deciding factor will come down to how much free time I will get to do so. There's still a few outstanding issues in dmd-master and gcc middle-end that have hampered progress by a few weeks.
Thank you for your work. I cross my fingers for you to have enough free time in the upcoming months!
If people want to share my workload on gdc, then it'll certainly help.
I'm exactly 100% unfamiliar with the code base. How can I help ? Where do I start ?
Some parts of the infrastructure could do with some TLC. CI currently uses semaphore CI for native x86_64, and Buildkite with a couple hosted Linux VMs for testing various cross-compilers. I used to have ARM and ARM64 bare metal servers with Scaleway, but sadly they decided to scrap them. Ideas that could be investigated: 1. Is Cirrus CI good enough to build gdc? And if so, look into adding Windows, MacOSX, and FreeBSD platforms to the pipeline. 2. Likewise, have a look a Github Actions, they have Windows and MacOSX. 3. Use Docker+QEMU to have containers doing CI for other architectures, can build images for Alpine and Debian on amd64, arm32v7, arm64v8, i386, mips64le, ppc64le, and s390x. 4. I can order VMs with x86_64 FreeBSD and OpenBSD installed for CI purposes. DragonflyBSD might also be possible as well (I'll have to ask for images). 5. Should builds be packaged up as possible downloads? There are some compiler/library programming tasks that go with it, for each platform/cpu combination that currently lacks run-time support. 1. Add relevant target support to GCC. I have patches, just not committed to mainline due to lack of testing. 2. Ensure that druntime builds and is functional on the platform. Iain.
Sep 01
parent reply wjoe <invalid example.com> writes:
On Tuesday, 1 September 2020 at 17:53:04 UTC, Iain Buclaw wrote:
 Some parts of the infrastructure could do with some TLC.
I'm not familiar with the acronym 'TLC'.
 CI currently uses semaphore CI for native x86_64, and Buildkite 
 with a couple
 hosted Linux VMs for testing various cross-compilers.  I used 
 to have ARM and
 ARM64 bare metal servers with Scaleway, but sadly they decided 
 to scrap them.

 Ideas that could be investigated:

   1. Is Cirrus CI good enough to build gdc?  And if so, look 
 into adding
      Windows, MacOSX, and FreeBSD platforms to the pipeline.
What does 'good enough' mean ? I found this reply (March/2019) by Johannes Pfau here [1]:
 We use https://github.com/D-Programming-GDC/gcc for CI, but 
 commits will go to the GCC SVN first, so GCC SVN or snapshot 
 tarballs is the recommended way to get the latest GDC.
Is this information still up to date ? There's a semaphore folder. I suppose that's the one currently used with Semaphore CI. Is there something else ? [1] https://forum.dlang.org/thread/lqdjlwmgrfstifcburwx forum.dlang.org PS. Sorry for the Announce group abuse.
Sep 04
parent reply Iain Buclaw <ibuclaw gdcproject.org> writes:
On Friday, 4 September 2020 at 15:12:54 UTC, wjoe wrote:
 On Tuesday, 1 September 2020 at 17:53:04 UTC, Iain Buclaw wrote:
 Some parts of the infrastructure could do with some TLC.
I'm not familiar with the acronym 'TLC'.
Tender loving care. It could be done better, but no one's looking to improve it.
 CI currently uses semaphore CI for native x86_64, and 
 Buildkite with a couple
 hosted Linux VMs for testing various cross-compilers.  I used 
 to have ARM and
 ARM64 bare metal servers with Scaleway, but sadly they decided 
 to scrap them.

 Ideas that could be investigated:

   1. Is Cirrus CI good enough to build gdc?  And if so, look 
 into adding
      Windows, MacOSX, and FreeBSD platforms to the pipeline.
What does 'good enough' mean ?
It means, can Cirrus CI actually build gdc and run through the testsuite without being killed by the pipeline? Travis CI for instance is rubbish, because: - Hardware is really slow. - Kills jobs that take longer than 50 minutes. - Kills jobs if a 3GB memory limit is exceeded. - Kills jobs that don't print anything for more than 10 minutes. - Truncates logs to first 2000 lines.
 I found this reply (March/2019) by Johannes Pfau here [1]:
 We use https://github.com/D-Programming-GDC/gcc for CI, but 
 commits will go to the GCC SVN first, so GCC SVN or snapshot 
 tarballs is the recommended way to get the latest GDC.
Is this information still up to date ? There's a semaphore folder. I suppose that's the one currently used with Semaphore CI. Is there something else ?
There's also buildkite [1] and repo [2] (which has been failing since the ARM bare metal servers got taken down). [1] https://buildkite.com/d-programming-gdc/gcc [2] https://github.com/D-Programming-GDC/buildkite-gdc
 PS. Sorry for the Announce group abuse.
We can take this to D.gnu instead. :-)
Sep 04
parent wjoe <invalid example.com> writes:
On Friday, 4 September 2020 at 22:00:51 UTC, Iain Buclaw wrote:
 On Friday, 4 September 2020 at 15:12:54 UTC, wjoe wrote:
 PS. Sorry for the Announce group abuse.
We can take this to D.gnu instead. :-)
I continued this thread here: https://forum.dlang.org/thread/kruxkrrzithkrswoqqlu forum.dlang.org
Sep 05
prev sibling parent wjoe <invalid example.com> writes:
Thank you :)
Aug 27