-
Notifications
You must be signed in to change notification settings - Fork 203
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
base: master
Are you sure you want to change the base?
Conversation
|
||
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. |
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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.
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. | ||
- 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. |
There was a problem hiding this comment.
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. | ||
- 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. | ||
- [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. |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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 havemaintain
role?
I don't think compiler needs maintain access. Infra-wise, principle of least priviledges.
There was a problem hiding this comment.
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 havemaintain
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 😅
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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.
|
||
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. |
There was a problem hiding this comment.
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.
- A Rust port of the [LLVM::APFloat][rustc_apfloat] library. Maintained by X abnd Y. | ||
- 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. | ||
- [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. |
There was a problem hiding this comment.
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
|
||
- 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. | ||
- 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. | ||
- A Rust port of the [LLVM::APFloat][rustc_apfloat] library. Maintained by X abnd Y. |
There was a problem hiding this comment.
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.
- 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. | ||
- 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. | ||
- A Rust port of the [LLVM::APFloat][rustc_apfloat] library. Maintained by X abnd Y. | ||
- 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. |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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?
r? @jieyouxu |
There was a discussion on Zulip a while ago about "what happens when one becomes a team member". One of the confusing things was (at least in my experience) that one gains write permissions on a number of git repositories under the organization umbrella without being able to understand what they are.
So, following a suggestion of @jieyouxu (hey 👋 ), I thought about a page trying to add a bit of context for the repositories we maintain, see this list.
Content and wording of this page are open to discussion. happy to get suggestions especially from people who know more about these repos :)
Rendered