You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
All (transitive) dependencies of the compiler and standard library wind up in the sysroot, and could therefore be used by anyone. We don't want to guarantee the existence, much less version/API of any crates except (currently) std, core, and proc_macro. Therefore all other crates must be marked as unstable, often with the feature name rustc_private. This also applies to crates from crates.io, but this currently means a couple of lines need to be copied into every such library to make them unstable if and only if they're being used as part of rustc. This is very ugly, and becomes a greater hurdle as we start reusing more third party libraries in rustc (since all affected crates need to be updated and release a new version, and again, this affects all transitive dependencies). We should find a way to not require this from crates.io libraries.
@eddyb mentioned the possibility of (IIUC) a -Z flag that applies a stability attribute to all crates that don't have one already. We could then pass this flag to all rustc invocations done while building rust, to implicitly make all our third-party dependencies rustc_private without modifying their source code.
All (transitive) dependencies of the compiler and standard library wind up in the sysroot, and could therefore be used by anyone. We don't want to guarantee the existence, much less version/API of any crates except (currently)
std
,core
, andproc_macro
. Therefore all other crates must be marked as unstable, often with the feature namerustc_private
. This also applies to crates from crates.io, but this currently means a couple of lines need to be copied into every such library to make them unstable if and only if they're being used as part of rustc. This is very ugly, and becomes a greater hurdle as we start reusing more third party libraries in rustc (since all affected crates need to be updated and release a new version, and again, this affects all transitive dependencies). We should find a way to not require this from crates.io libraries.@eddyb mentioned the possibility of (IIUC) a
-Z
flag that applies a stability attribute to all crates that don't have one already. We could then pass this flag to all rustc invocations done while building rust, to implicitly make all our third-party dependenciesrustc_private
without modifying their source code.cc @alexcrichton
The text was updated successfully, but these errors were encountered: