This commit deletes the internal liblog in favor of the implementation that
lives on crates.io. Similarly it's also setting a convention for adding crates
to the compiler. The main restriction right now is that we want compiler
implementation details to be unreachable from normal Rust code (e.g. requires a
feature), and by default everything in the sysroot is reachable via `extern
crate`.
The proposal here is to require that crates pulled in have these lines in their
`src/lib.rs`:
#![cfg_attr(rustbuild, feature(staged_api, rustc_private))]
#![cfg_attr(rustbuild, unstable(feature = "rustc_private", issue = "27812"))]
This'll mean that by default they're not using these attributes but when
compiled as part of the compiler they do a few things:
* Mark themselves as entirely unstable via the `staged_api` feature and the
`#![unstable]` attribute.
* Allow usage of other unstable crates via `feature(rustc_private)` which is
required if the crate relies on any other crates to compile (other than std).
17 lines
423 B
TOML
17 lines
423 B
TOML
[package]
|
|
authors = ["The Rust Project Developers"]
|
|
name = "syntax"
|
|
version = "0.0.0"
|
|
|
|
[lib]
|
|
name = "syntax"
|
|
path = "lib.rs"
|
|
crate-type = ["dylib"]
|
|
|
|
[dependencies]
|
|
serialize = { path = "../libserialize" }
|
|
log = "0.3"
|
|
rustc_bitflags = { path = "../librustc_bitflags" }
|
|
syntax_pos = { path = "../libsyntax_pos" }
|
|
rustc_errors = { path = "../librustc_errors" }
|
|
rustc_data_structures = { path = "../librustc_data_structures" }
|