Paul Krill
Editor at Large

GCC 15 compilers move toward completion

news
Mar 17, 20253 mins

C++, Cobol get attention in update due to arrive this spring. C compilation switches to C23 by default.

shutterstock 561382627 C++ programming language source code syntax highlighting
Credit: iunewind / Shutterstock

GCC (GNU Compiler Collection) 15 is moving forward as a planned update to the series, with a new front end for Cobol. The upgrade also is set to bring improvements to C and C++ development.

GCC 15 is expected as a production release in late-April or early-May, said Richard Biener, a release manager for GCC. The actual release date will depend on all priority one regressions toward GCC 14 to be fixed, he said. GCC 15 currently is in the regression fixing stage, which is Stage 4.

With GCC 15, the C compiler will default to C23 instead of C17, and the C++ compiler and standard library will start to get C++ 23 and C++ 26 features. C++ 20 modules start to get usable with improvements in both the compiler and tooling, Biener noted. โ€œGCC 15 looks to be a really good release, especially for C++ development,โ€ he said.

RISC-V architecture support continues to advance quickly, especially around vectorization and architecture support, said Biener.

GCC 15 also introduces a language front end for Cobol. โ€œCobol is an interesting language with unique challenges for the compiler middle-end as I have learned,โ€œ Biener said. โ€œThere is also a vast amount of legacy software still in production that relies on Cobol, so having another option for a compiler that is free software is a good thing.โ€

However, a proposed front end for Algol 68 did not make it past the steering committee. โ€œCompared to Cobol, I see not much practical or commercial relevance of Algol 68, though I would like to see the front end included in future, if only because Algol 68 is of historical importance,โ€ Beiner said. He expects Algol 68 eventually will be available with GCC 16.

Also in GCC 15:

  • The default vectorizer cost model at -O2 has been enhanced to handle unknown tripcount. But it still disables vectorization of loops when any runtime check for data dependence or alignment is required. It also disables vectorization of epilogue loops but otherwise is equal to the cheap cost model.
  • Support for unified shared memory has been added for some AMD and Nvidia GPUs.
  • For the C family, a musttail statement attribute was added to enforce tail calls.
  • For the runtime library, debug assertions now are enabled by default for unoptimized builds.

Instructions on porting to GCC 15 can be found at gcc.gnu.org.

Paul Krill

Paul Krill is editor at large at InfoWorld. Paul has been covering computer technology as a news and feature reporter for more than 35 years, including 30 years at InfoWorld. He has specialized in coverage of software development tools and technologies since the 1990s, and he continues to lead InfoWorldโ€™s news coverage of software development platforms including Java and .NET and programming languages including JavaScript, TypeScript, PHP, Python, Ruby, Rust, and Go. Long trusted as a reporter who prioritizes accuracy, integrity, and the best interests of readers, Paul is sought out by technology companies and industry organizations who want to reach InfoWorldโ€™s audience of software developers and other information technology professionals. Paul has won a โ€œBest Technology News Coverageโ€ award from IDG.

More from this author