Skip to content

Document repositories maintained by the T-compiler #918

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 5 additions & 4 deletions src/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,21 +49,22 @@
- [GitHub Actions created PR open/closer](./triagebot/bot-pull-requests.md)
- [Community](./community/index.md)
- [Compiler](./compiler/index.md)
- [Backports](./compiler/backports.md)
- [Calendar](./compiler/calendar.md)
- [Cross-team Collaboration](./compiler/cross-team-collaboration.md)
- [Meetings](./compiler/meetings.md)
- [Membership](./compiler/membership.md)
- [Notification groups](./compiler/notification-groups.md)
- [Operations](./compiler/operations.md)
- [Proposals, Approval and Stabilization](./compiler/proposals-and-stabilization.md)
- [Adding ecosystem/integration test jobs/components to `rust-lang/rust` CI](./compiler/proposals-and-stabilization/ecosystem-integration-tests.md)
- [Repositories](./compiler/repositories.md)
- [Resources](./compiler/resources.md)
- [Review Policy](./compiler/reviews.md)
- [Proposals, Approval and Stabilization](./compiler/proposals-and-stabilization.md)
- [Adding ecosystem/integration test jobs/components to `rust-lang/rust` CI](./compiler/proposals-and-stabilization/ecosystem-integration-tests.md)
- [Backports](./compiler/backports.md)
- [Supplemental Tools](./compiler/supplemental-tools.md)
- [Third-party and Out-of-tree Crates Policy](./compiler/third-party-out-of-tree.md)
- [Triage and Prioritization](./compiler/prioritization.md)
- [Working Areas](./compiler/working-areas.md)
- [Operations](./compiler/operations.md)
- [rustc-dev-guide](./wg-rustc-dev-guide/index.md)
- [crates.io](./crates-io/index.md)
- [Crate removal](./crates-io/crate-removal.md)
Expand Down
6 changes: 3 additions & 3 deletions src/compiler/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ NOTE: please keep the following alphabetically sorted.
-->

- [Backports](./backports.md)
- *How do I request a beta and/or stable backport of a compiler change? How will compiler
- *How do I request a beta and/or stable backport of a compiler change? How will compiler
backport nominations be handled?*
- [Calendar](./calendar.md)
- *How do I subscribe to the compiler team's calendar?*
Expand All @@ -23,8 +23,8 @@ NOTE: please keep the following alphabetically sorted.
- *What is expected of compiler team members and how do I join?*
- [Proposals, Approval and Stabilization](./proposals-and-stabilization.md)
- *How do I propose a change to the compiler team? What approval is necessary for my change?*
- [Repositories we maintain](https://github.com/orgs/rust-lang/teams/compiler/repositories)
- *Various code repositories maintained by the Compiler Team*
- [Repositories we maintain](./repositories.md)
- *Various code repositories the team maintains and contributes to*
- [Resources](./resources.md)
- *What useful resources are available for contributors and team members?*
- [Review Policy](./reviews.md)
Expand Down
25 changes: 25 additions & 0 deletions src/compiler/repositories.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Repositories maintained by the Compiler Team

The obvious focus of the Compiler Team is the [rustc] compiler itself, but the team also maintains a few other repositories:

- An experimental [C codegen backend][c-backend] for rustc, which lowers Rust MIR to C code and compiles it with a C compiler. Currently maintained by X and Y.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remark: I think this is mostly a GSoC project or an experimental backend, I don't think compiler (as in the whole team) really maintains it. It's maintained by the codegen_c_maintainers subteam.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Discussion:

Currently maintained by X and Y.

do all these "Currently maintained by X and Y" make sense? Do we have specific people more or less de-facto official maintainers for these repositories?

or just remove this wording?

Copy link
Member

@jieyouxu jieyouxu Jul 17, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's an interesting question, because compiler team might have maintain-level access to a r-l/* repo, but doesn't necessarily actively maintain it as a whole team.

- A [Cranelift][cranelift-backend] experimental rustc backend, based on [Cranelift]. This has the potential to improve compilation times in debug mode. Currently maintained by X and Y.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Effectively just me right now.

- A Rust port of the [LLVM::APFloat][rustc_apfloat] library. Maintained by X abnd Y.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remark: I'm not sure about rustc_apfloat, it has licensing differences as it uses Apache 2 with LLVM exception. See https://github.com/rust-lang/rustc_apfloat#licensing.

- A fork of [Enzyme], a high-performance automatic differentiator of LLVM and MLIR (more info at this [link][enzyme-mit]). The fork is currently maintained by X and Y.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remark: Enzyme is mostly maintained by @ZuseZ4, I don't think it's really maintained by the compiler team as a whole.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also "maintain" is a strong word, I update our fork every once in a while when I see relevant improvements in Enzyme. I just have two extra commits that I carry along till I find a better location to push them to.
But I assume most of our forks are like that?

- [Thorin], a DWARF packaging utility supporting GNU extension and DWARF 5 package formats. Maintained by X and Y.
- The [Rust Forge][forge], the documentation website you're reading. Maintained by the Rust project.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems like the GCC backend is missing from this list.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cg_gcc is probably not maintained by the compiler team as a whole, it's maintained by the
wg-gcc-backend WG

Copy link
Contributor Author

@apiraino apiraino Jul 17, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We as T-compiler have "only" write permissions on that repo (see list). Do you think this should be changed? Or maybe just add the repo to the list even if we don't have maintain role?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@antoyo and @GuillaumeGomez what do you think?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll let @antoyo confirm but on my end I think it's fine adding cg_gcc to the list.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We as T-compiler have "only" write permissions on that repo (see list). Do you think this should be changed? Or maybe just add the repo to the list even if we don't have maintain role?

I don't think compiler needs maintain access. Infra-wise, principle of least priviledges.

Copy link
Member

@Kobzol Kobzol Jul 17, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We as T-compiler have "only" write permissions on that repo (see list). Do you think this should be changed? Or maybe just add the repo to the list even if we don't have maintain role?

Note that the "maintain" role shouldn't ideally be used for anything, it is not necessary for most use-cases. So having the "maintain" role doesn't mean that a team maintains a specific repository. In fact even "write" doesn't mean that; maintaining something and having write access to it is a bit different, conceptually 😅

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm OK with adding this to the list.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note that the "maintain" role shouldn't ideally be used for anything, it is not necessary for most use-cases.

Interesting. Do you think then we should downgrade the role of T-compiler from maintain to write to make everything consistent?

Copy link
Member

@Kobzol Kobzol Jul 17, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In general, yes. There are some repos where maintain was needed for some specific permissions, but usually it shouldn't be required. It's hard to tell where downgrading is "safe" and where not though.


In addition, the Compiler team routinely contributes to other internal projects, [here the full list][other].

If you want to start (or are already) contributing to the Rust project and you have expertise or interest in any of these repositories, feel free to get in touch!

[rustc]: https://github.com/rust-lang/rust
[c-backend]: https://github.com/rust-lang/rustc_codegen_c
[cranelift-backend]: https://github.com/rust-lang/rustc_codegen_cranelift
[cranelift]: https://github.com/bytecodealliance/wasmtime/blob/main/cranelift
[rustc_apfloat]: https://github.com/rust-lang/rustc_apfloat
[enzyme]: https://github.com/rust-lang/enzyme
[enzyme-mit]: https://enzyme.mit.edu/
[thorin]: https://github.com/rust-lang/thorin
[forge]: https://github.com/rust-lang/rust-forge
[other]: https://github.com/orgs/rust-lang/teams/compiler/repositories