Rename "dylib" crate type to "rdylib" (keep old name but deprecate it), and maybe do the same for "staticlib" → "cstaticlib" #825
Labels
major-change
A proposal to make a major change to rustc
T-compiler
Add this label so rfcbot knows to poll the compiler team
Proposal
The
dylib
andstaticlib
crate types are named very similarly, so it is easy to assume that they also behave in a similar way, with the only difference between dynamic vs static linking. However, this is far from true:staticlib
creates a C-style static library that can be deployed as an artifact and linked without any further rustc involvement;dylib
is basically a dynamicrlib
, i.e., it still needs a bunch of Rust-specific processing until it becomes a regular C-style dynamic library (or static library, or binary). If I understood correctly, the main library crate types are arranged as follows:rlib
dylib
staticlib
cdylib
Needless to say, this is quite confusing. See https://rust-lang.github.io/rfcs/1510-cdylib.html for some history of how we got here.
I think we should clean this up. Here are some steps we could take, which are probably increasingly controversial but we don't have to do all of them:
rdylib
as an alias fordylib
, and update the docs to generally preferrdylib
overdylib
dylib
cstaticlib
as an alias forstaticlib
, and update the docs to generally prefercstaticlib
overstaticlib
staticlib
With all of this done, the table would look like
rlib
rdylib
cstaticlib
cdylib
Much better :)
Mentors or Reviewers
If you have a reviewer or mentor in mind for this work, mention them
here. You can put your own name here if you are planning to mentor the
work.
Process
The main points of the Major Change Process are as follows:
@rustbot second
.-C flag
, then full team check-off is required.@rfcbot fcp merge
on either the MCP or the PR.You can read more about Major Change Proposals on forge.
Comments
This issue is not meant to be used for technical discussion. There is a Zulip stream for that. Use this issue to leave procedural comments, such as volunteering to review, indicating that you second the proposal (or third, etc), or raising a concern that you would like to be addressed.
The text was updated successfully, but these errors were encountered: