|
|
Log in / Subscribe / Register

gccrs December 2025 Monthly report January 12

From:  Arthur Cohen <arthur.cohen-AT-embecosm.com>
To:  GCC Mailing List <gcc-AT-gcc.gnu.org>
Subject:  gccrs December 2025 Monthly report
Date:  Mon, 12 Jan 2026 16:42:30 +0100
Message-ID:  <34c623b8-6c0d-41c9-921a-613527a64e09@embecosm.com>
Archive-link:  Article

Overview


Thanks again to Open Source Security, inc and Embecosm for their ongoing
support for this project.

2026 Introduction

Hi everyone! Welcome to our first monthly report of the year 2026! As
our work starts again after the winter holidays, we wanted to take some
time to outline what is shaping up to be a pretty significant year for
gccrs, in a more candid way than the usual tone of these reports. The
goal of this is for people interested in our project to know what to
expect, how to support us, and what the project will focus on moving
forward.

We have recently been mentioned in LWN's "Predictions for the new year"
article, which sparked some encouraging and supportive comments that we
really enjoyed reading. The specific quote of the article is as follows:

"The gccrs project will deliver a working Rust compiler"

Wow! That's not a lot of pressure at all!

But Jonathan is right - the goal is for gccrs to be able to compile the
Rust parts of the Linux kernel in 2026. Preferably, before RustConf and
EuroRust, so that we can make some noise about it. Now, that does not
mean that you will be able to use a Linux kernel with the Rust parts
compiled by gccrs (we do hope you try and report all of the interesting
issues though). gccrs will still be experimental, and even though it
should be able to compile the kernel, that does not mean the executable
produced will be able to run correctly. For 2026, our goal is for gccrs
to be able to mis-compile the kernel. There are things that we do not
plan for gccrs to handle just yet, which may incur incorrect behavior in
the produced binaries - which is to be expected from an experimental
compiler.

Thus begins a nine months long marathon to get the kernel compiling :)

This time will also be a great opportunity to get in touch with more
people on the kernel and Rust side to make sure that gccrs fits in in
all the ways that is expected of the project.

Regarding the upcoming GCC 16.1 release: while we are working towards
getting the kernel working by the time it comes out, this might not
happen. For people willing to experiment with compiling their kernel
using gccrs, you will have to compile the project from scratch. We hope
to get enough in GCC 16.1 so that gccrs is able to compile core, and can
thus be used in embedded environments for #![no_std] Rust code.

We hope you understand that playing catch up like this takes a long
time, and that some problems only show up when compiling actual
projects - not simple test cases. While we do have the advantage of
knowing what is supposed to work, we run into different problems than if
we were just trying to design our own programming language from scratch.
Knowing how core works, what compiler tricks are required, how the crate
is implemented, is not innate, and while the team is getting pretty good
at it, we still have some work to do.

Thank you once again for your continued support and involvment. 2025 was
a very fun year for the project, and 2026 seems to be headed in the same
direction, with even more interesting problems to fix.

Project update

For the last month of 2025, we have once again made good progress on our
name resolution algorithm in the hopes of getting core further along our
compilation pipeline. We have not necessarily focused on the kernel
itself this month, as most of the team was away on vacation for half of
the month. The entire early name resolution and macro expansion
fixed-point is now complete for core, which is a massive milestone for
the project - it is actually the reason why we decided to rewrite name
resolution from scratch a couple of years ago. We are now able to handle
all of the complex imports and exports in core, coupled with the
extensive amount of macros used for various primitive implementations.
This leads us to the second half of the problem, late name resolution,
which is currently still not finished for core. This holiday season, we
have fixed four massive bugs which impacted core as well as complex Rust
crates. There are still a few issues with our late name resolution,
namely around certain vectorized types and methods not being found, but
nothing too drastic or hard to fix.

Other technical improvements include the work done by our two interns,
Lenny Chiadmi Delage and Lucas Ly Ba, who have greatly improved various
lints in the compiler focused on correctness and safety. January marks
our last month with them, and we will greatly miss them and their
contributions!

We will continue working on these late name resolution issues for the
first few weeks of 2026, and will hopefully be able to quickly switch to
our middle-end and backend issues for core - which there shouldn't be
much of. Once name resolution passes, we will be able to split our focus
between core and the kernel, figuring out what issues show up once the
kernel correctly depends on core. As explained before, the goal is for
gccrs to be able to compile core and the kernel before RustConf and
EuroRust in September, two conferences where we hope to present the work
done on the compiler these last two years.

The CFPs for these conferences is almost open, which means we are also
spending some of our time working on our abstracts. We want to maximize
our chances of the talks getting accepted, as these two conferences
could be the most important talks we've ever given for the project!

Finally, our upstreaming is still going strong, as we are sticking to
our schedule and uploading commits weekly. We are up to date with the
latest GCC, which is also up to date with our development branch.

Community call

We will have our next monthly community call on the 12th of January at
10am UTC. You can subscribe to our calendar to see when the next one
will be held. The call is open to everyone, even if you would just like
to sit-in and listen. You can also subscribe to our mailing-list or join
our Zulip chat to be notified of upcoming events.

-   Jitsi link
-   Calendar ID:
  
7060a0923ffebd3cb52b1afef35a28ff7b64f05962c9af84c23b1847f1f5f894@group.calendar.google.com
-   Google calendar link
-   iCal link

Call for contribution

-   https://github.com/Rust-GCC/gccrs/issues/2500

-   https://github.com/Rust-GCC/gccrs/issues/2376

Completed Activities

-   Sync with upstream (2026-01-03):
     d5743234731ecc62d889e297a7576561600da41d PR4351
-   gccrs: Fix rogue macro error during lowering on expansion failure
     PR4347
-   nr: Add better error to unresolved attribute macro PR4345
-   Sync with upstream (2025-12-21):
     c65fdb6b03d9146ee9a1ffcfcbc689b004b2b463 PR4335
-   Fix: #![cfg_(attr)(…, feature)]` not respected PR4334
-   Make some general improvements PR4332
-   gccrs: refactor string methods in HIR PR4331
-   Sync with upstream (2025-12-10):
     203d4dd09ba83121e447ce93ba98175b68d955f6 PR4328
-   Check for deprecated attributes PR4327
-   Follow up to #3212 PR4326
-   Use the path location for MetaItemPathExpr PR4324
-   Split the parser implementation into multiple files PR4322
-   Sync with upstream (2025-12-01):
     4d1bfc66f84de6b37b175a191cba8cdd552c4383 PR4320
-   Improve feature handling PR4319
-   Add missing test for lang item feature gate PR4318
-   Remove match arm pattern vector to single pattern PR4297
-   Implement unused mut lint PR4290
-   Use tl::expected in the parser to avoid error state PR4288
-   Implement unused assignments lints on HIR PR4285
-   Implement unused variable checker on HIR PR4283
-   gccrs:fix ICE with continue/break/return in while condition PR4270
-   gccrs: fix parser error on parenthesised types PR4214

Contributors this month

-   Harishankar (new contributor!)
-   Ashwani Kumar Kamal (new contributor!)
-   Owen Avery
-   Lenny Chiadmi Delage
-   Lucas Ly Ba
-   Pierre-Emmanuel Patry
-   Arthur Cohen

Overall Task Status

   Category      Last Month   This Month   Delta
   ------------- ------------ ------------ -------
   TODO          419          409          -10
   In Progress   116          118          +2
   Completed     1184         1194         +10

Bugs

   Category      Last Month   This Month   Delta
   ------------- ------------ ------------ -------
   TODO          198          194          -4
   In Progress   55           56           +1
   Completed     588          591          +3

Test Cases

   TestCases   Last Month   This Month   Delta
   ----------- ------------ ------------ -------
   Passing     10444        10470        +26
   Failed      -            -            -
   XFAIL       74           73           -1
   XPASS       -            -            -


Attachment: OpenPGP_0x1B3465B044AD9C65.asc (type=application/pgp-keys)

-----BEGIN PGP PUBLIC KEY BLOCK----- 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 7FJmBg== =Qnyj -----END PGP PUBLIC KEY BLOCK-----


Attachment: OpenPGP_signature.asc (type=application/pgp-signature)

-----BEGIN PGP SIGNATURE----- wsF5BAABCAAjFiEEhx8wPNj7cw6CrvzGGzRlsEStnGUFAmllFmYFAwAAAAAACgkQGzRlsEStnGWM lRAArBd2jhP/JPPcFbtgqNNNJt+n81elsSiW1llEw0D2rZljdRYrAdRLWlsgVo0ZLYMe4yoxwpEk 8PyXuSlo0wkD4uOIEzR+zpnDbexV7qiZmpJo1sM4NhlG5+Y6oQ/Gbsp/jpXhOVz6e6Of+7IwK/3F 1uA6J8IKV24aoL5MH0FOYNddQu6NRTXwQZk1lTaPN7wi/MYp15IZ4+fzQsswHHMrSg7CO0KVBrt1 lIIASak9ClgGFYiQsgjyptKml6akgkMzaa40SNJEYRF4kJkcLnZ3a/P1msq/LRR9ABA1/WUh0uI3 GNg65wsuxxLAfWTz8LC5Z6xbMXi4WxdxMFx6vVEv5TysuTxBVZaAqxqwQ2X5X/tkYgDnl6LclcCj DJqyvPvDH6vf4EW9zQTfJms+127txnf+u3YP6INETHyLZn2vHN+ijgACtk12vOaZgIN+IuzTQExi m0UbxdppUbmQ425TlNF6uIuMALaD8p2Dw0vV3+AtHjnsLwglII3V3FgqNVKgmnAUZ7KjM13lvven 7G+2cq4931fJgiAqWwLh3RWUO4pSLSasFMrn3x6NJk0dV/L+4HSxokSC0CJ6/zipu3t1fYWqgc8j 3V6C1gTQCztEA8GlQB7AlvxqBpf20+aKMb9Ma9vlccO8/yebGGlwBliKbneyM+xInddwZUmabZw+ e8g= =2hSV -----END PGP SIGNATURE-----



to post comments


Copyright © 2026, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds