Crate rustc_driver[][src]

🔬 This is a nightly-only experimental API. (rustc_private)

this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?

The Rust compiler.

Note

This API is completely unstable and subject to change.

Re-exports

extern crate std;
extern crate arena;
extern crate getopts;
extern crate graphviz;
extern crate env_logger;
extern crate libc;
extern crate rustc;
extern crate rustc_allocator;
extern crate rustc_target;
extern crate rustc_borrowck;
extern crate rustc_data_structures;
extern crate rustc_errors as errors;
extern crate rustc_passes;
extern crate rustc_lint;
extern crate rustc_plugin;
extern crate rustc_privacy;
extern crate rustc_incremental;
extern crate rustc_metadata;
extern crate rustc_mir;
extern crate rustc_resolve;
extern crate rustc_save_analysis;
extern crate rustc_traits;
extern crate rustc_trans_utils;
extern crate rustc_typeck;
extern crate serialize;
extern crate log;
extern crate syntax;
extern crate syntax_ext;
extern crate syntax_pos;
use std::prelude::v1::*;
use driver::CompileController;
use pretty::PpMode;
use pretty::UserIdentifiedItem;
use rustc_resolve as resolve;
use rustc_save_analysis as save;
use rustc_save_analysis::DumpHandler;
use rustc_data_structures::sync::Lrc;
use rustc_data_structures::OnDrop;
use rustc::session;
use rustc::session::config;
use rustc::session::Session;
use rustc::session::build_session;
use rustc::session::CompileResult;
use rustc::session::CompileIncomplete;
use rustc::session::config::Input;
use rustc::session::config::PrintRequest;
use rustc::session::config::ErrorOutputType;
use rustc::session::config::nightly_options;
use rustc::session::filesearch;
use rustc::session::early_error;
use rustc::session::early_warn;
use rustc::lint::Lint;
use rustc::lint;
use rustc::middle::cstore::CrateStore;
use rustc_metadata::locator;
use rustc_metadata::cstore::CStore;
use rustc_metadata::dynamic_lib::DynamicLibrary;
use rustc::util::common::time;
use rustc::util::common::ErrorReported;
use rustc_trans_utils::trans_crate::TransCrate;
use serialize::json::ToJson;
use std::any::Any;
use std::cmp::max;
use std::default::Default;
use std::env::consts::DLL_PREFIX;
use std::env::consts::DLL_SUFFIX;
use std::env;
use std::ffi::OsString;
use std::io;
use std::io::Read;
use std::io::Write;
use std::iter::repeat;
use std::mem;
use std::panic;
use std::path::PathBuf;
use std::path::Path;
use std::process;
use std::process::Command;
use std::process::Stdio;
use std::str;
use std::sync::atomic::AtomicBool;
use std::sync::atomic::ATOMIC_BOOL_INIT;
use std::sync::atomic::Ordering;
use std::sync::Once;
use std::sync::ONCE_INIT;
use std::thread;
use syntax::ast;
use syntax::codemap::CodeMap;
use syntax::codemap::FileLoader;
use syntax::codemap::RealFileLoader;
use syntax::feature_gate::GatedCfg;
use syntax::feature_gate::UnstableFeatures;
use syntax::parse;
use syntax::parse::PResult;
use syntax_pos::DUMMY_SP;
use syntax_pos::MultiSpan;
use syntax_pos::FileName;

Modules

derive_registrar [
Experimental
]
driver [
Experimental
]
pretty [
Experimental
]

The various pretty print routines.

profile [
Experimental
]
target_features [
Experimental
]

Structs

RustcDefaultCalls [
Experimental
]

Enums

Compilation [
Experimental
]

Constants

BUG_REPORT_URL [
Experimental
]
ICE_REPORT_COMPILER_FLAGS [
Experimental
]
ICE_REPORT_COMPILER_FLAGS_EXCLUDE [
Experimental
]
ICE_REPORT_COMPILER_FLAGS_STRIP_VALUE [
Experimental
]

Traits

CompilerCalls [
Experimental
]

Functions

abort_on_err [
Experimental
]
commit_date_str [
Experimental
]

Returns the "commit date" of HEAD of the Git repo from which rustc was built as a static string.

commit_hash_str [
Experimental
]

Returns the full SHA1 hash of HEAD of the Git repo from which rustc was built.

describe_codegen_flags [
Experimental
]
describe_debug_flags [
Experimental
]
describe_lints [
Experimental
]
diagnostics_registry [
Experimental
]
enable_save_analysis [
Experimental
]
extra_compiler_flags [
Experimental
]

Get a list of extra command-line flags provided by the user, as strings.

get_trans [
Experimental
]
get_trans_sysroot [
Experimental
]
handle_explain [
Experimental
]
handle_options [
Experimental
]

Process command line options. Emits messages as appropriate. If compilation should continue, returns a getopts::Matches object parsed from args, otherwise returns None.

in_rustc_thread [
Experimental
]

Runs f in a suitable thread for running rustc; returns a Result with either the return value of f or -- if a panic occurs -- the panic value.

init_rustc_env_logger [
Experimental
]

This allows tools to enable rust logging without having to magically match rustc's log crate version

load_backend_from_dylib [
Experimental
]
main [
Experimental
]
make_input [
Experimental
]
make_output [
Experimental
]
monitor [
Experimental
]

Run a procedure which will detect panics in the compiler and print nicer error messages rather than just failing the test.

parse_crate_attrs [
Experimental
]
parse_pretty [
Experimental
]
print_flag_list [
Experimental
]
print_wall_help [
Experimental
]
release_str [
Experimental
]

Returns a version string such as "0.12.0-dev".

run [
Experimental
]
run_compiler [
Experimental
]
run_compiler_impl [
Experimental
]
set_sigpipe_handler [
Experimental
]
show_content_with_pager [
Experimental
]
stdout_isatty [
Experimental
]
usage [
Experimental
]
version [
Experimental
]

Prints version information