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).
39 lines
1.4 KiB
TOML
39 lines
1.4 KiB
TOML
[package]
|
|
authors = ["The Rust Project Developers"]
|
|
name = "rustc_driver"
|
|
version = "0.0.0"
|
|
|
|
[lib]
|
|
name = "rustc_driver"
|
|
path = "lib.rs"
|
|
crate-type = ["dylib"]
|
|
|
|
[dependencies]
|
|
arena = { path = "../libarena" }
|
|
graphviz = { path = "../libgraphviz" }
|
|
log = { version = "0.3", features = ["release_max_level_info"] }
|
|
env_logger = { version = "0.4", default-features = false }
|
|
proc_macro_plugin = { path = "../libproc_macro_plugin" }
|
|
rustc = { path = "../librustc" }
|
|
rustc_back = { path = "../librustc_back" }
|
|
rustc_borrowck = { path = "../librustc_borrowck" }
|
|
rustc_const_eval = { path = "../librustc_const_eval" }
|
|
rustc_data_structures = { path = "../librustc_data_structures" }
|
|
rustc_errors = { path = "../librustc_errors" }
|
|
rustc_incremental = { path = "../librustc_incremental" }
|
|
rustc_lint = { path = "../librustc_lint" }
|
|
rustc_llvm = { path = "../librustc_llvm" }
|
|
rustc_metadata = { path = "../librustc_metadata" }
|
|
rustc_mir = { path = "../librustc_mir" }
|
|
rustc_passes = { path = "../librustc_passes" }
|
|
rustc_plugin = { path = "../librustc_plugin" }
|
|
rustc_privacy = { path = "../librustc_privacy" }
|
|
rustc_resolve = { path = "../librustc_resolve" }
|
|
rustc_save_analysis = { path = "../librustc_save_analysis" }
|
|
rustc_trans = { path = "../librustc_trans" }
|
|
rustc_typeck = { path = "../librustc_typeck" }
|
|
serialize = { path = "../libserialize" }
|
|
syntax = { path = "../libsyntax" }
|
|
syntax_ext = { path = "../libsyntax_ext" }
|
|
syntax_pos = { path = "../libsyntax_pos" }
|