librustc: De-export driver. rs=deexport
This commit is contained in:
parent
b070590564
commit
3105bcfdc1
@ -94,8 +94,6 @@ pub fn WriteOutputFile(sess: Session,
|
||||
}
|
||||
|
||||
pub mod jit {
|
||||
#[legacy_exports];
|
||||
|
||||
use back::link::llvm_err;
|
||||
use lib::llvm::llvm;
|
||||
use lib::llvm::{ModuleRef, PassManagerRef, mk_target_data};
|
||||
@ -109,21 +107,20 @@ pub mod jit {
|
||||
|
||||
#[nolink]
|
||||
#[abi = "rust-intrinsic"]
|
||||
extern mod rusti {
|
||||
#[legacy_exports];
|
||||
fn morestack_addr() -> *();
|
||||
pub extern mod rusti {
|
||||
pub fn morestack_addr() -> *();
|
||||
}
|
||||
|
||||
struct Closure {
|
||||
pub struct Closure {
|
||||
code: *(),
|
||||
env: *(),
|
||||
}
|
||||
|
||||
fn exec(sess: Session,
|
||||
pm: PassManagerRef,
|
||||
m: ModuleRef,
|
||||
opt: c_int,
|
||||
stacks: bool) {
|
||||
pub fn exec(sess: Session,
|
||||
pm: PassManagerRef,
|
||||
m: ModuleRef,
|
||||
opt: c_int,
|
||||
stacks: bool) {
|
||||
unsafe {
|
||||
let manager = llvm::LLVMRustPrepareJIT(rusti::morestack_addr());
|
||||
|
||||
@ -174,8 +171,6 @@ pub mod jit {
|
||||
}
|
||||
|
||||
mod write {
|
||||
#[legacy_exports];
|
||||
|
||||
use back::link::jit;
|
||||
use back::link::{ModuleRef, WriteOutputFile, output_type};
|
||||
use back::link::{output_type_assembly, output_type_bitcode};
|
||||
@ -193,7 +188,7 @@ mod write {
|
||||
use core::str;
|
||||
use core::vec;
|
||||
|
||||
fn is_object_or_assembly_or_exe(ot: output_type) -> bool {
|
||||
pub fn is_object_or_assembly_or_exe(ot: output_type) -> bool {
|
||||
if ot == output_type_assembly || ot == output_type_object ||
|
||||
ot == output_type_exe {
|
||||
return true;
|
||||
@ -201,7 +196,7 @@ mod write {
|
||||
return false;
|
||||
}
|
||||
|
||||
fn run_passes(sess: Session, llmod: ModuleRef, output: &Path) {
|
||||
pub fn run_passes(sess: Session, llmod: ModuleRef, output: &Path) {
|
||||
unsafe {
|
||||
let opts = sess.opts;
|
||||
if sess.time_llvm_passes() { llvm::LLVMRustEnableTimePasses(); }
|
||||
|
@ -208,8 +208,6 @@ fn minimize_rpaths(rpaths: &[Path]) -> ~[Path] {
|
||||
|
||||
#[cfg(unix)]
|
||||
mod test {
|
||||
#[legacy_exports];
|
||||
|
||||
use core::prelude::*;
|
||||
|
||||
use back::rpath::{get_absolute_rpath, get_install_prefix_rpath};
|
||||
@ -221,14 +219,14 @@ mod test {
|
||||
use core::str;
|
||||
|
||||
#[test]
|
||||
fn test_rpaths_to_flags() {
|
||||
pub fn test_rpaths_to_flags() {
|
||||
let flags = rpaths_to_flags(~[Path("path1"),
|
||||
Path("path2")]);
|
||||
assert flags == ~[~"-Wl,-rpath,path1", ~"-Wl,-rpath,path2"];
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_prefix_rpath() {
|
||||
pub fn test_prefix_rpath() {
|
||||
let res = get_install_prefix_rpath("triple");
|
||||
let d = Path(env!("CFG_PREFIX"))
|
||||
.push_rel(&Path("lib/rustc/triple/lib"));
|
||||
@ -239,13 +237,13 @@ mod test {
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_prefix_rpath_abs() {
|
||||
pub fn test_prefix_rpath_abs() {
|
||||
let res = get_install_prefix_rpath("triple");
|
||||
assert res.is_absolute;
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_minimize1() {
|
||||
pub fn test_minimize1() {
|
||||
let res = minimize_rpaths([Path("rpath1"),
|
||||
Path("rpath2"),
|
||||
Path("rpath1")]);
|
||||
@ -253,7 +251,7 @@ mod test {
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_minimize2() {
|
||||
pub fn test_minimize2() {
|
||||
let res = minimize_rpaths(~[Path("1a"), Path("2"), Path("2"),
|
||||
Path("1a"), Path("4a"),Path("1a"),
|
||||
Path("2"), Path("3"), Path("4a"),
|
||||
@ -262,7 +260,7 @@ mod test {
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_relative_to1() {
|
||||
pub fn test_relative_to1() {
|
||||
let p1 = Path("/usr/bin/rustc");
|
||||
let p2 = Path("/usr/lib/mylib");
|
||||
let res = get_relative_to(&p1, &p2);
|
||||
@ -270,7 +268,7 @@ mod test {
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_relative_to2() {
|
||||
pub fn test_relative_to2() {
|
||||
let p1 = Path("/usr/bin/rustc");
|
||||
let p2 = Path("/usr/bin/../lib/mylib");
|
||||
let res = get_relative_to(&p1, &p2);
|
||||
@ -278,7 +276,7 @@ mod test {
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_relative_to3() {
|
||||
pub fn test_relative_to3() {
|
||||
let p1 = Path("/usr/bin/whatever/rustc");
|
||||
let p2 = Path("/usr/lib/whatever/mylib");
|
||||
let res = get_relative_to(&p1, &p2);
|
||||
@ -286,7 +284,7 @@ mod test {
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_relative_to4() {
|
||||
pub fn test_relative_to4() {
|
||||
let p1 = Path("/usr/bin/whatever/../rustc");
|
||||
let p2 = Path("/usr/lib/whatever/mylib");
|
||||
let res = get_relative_to(&p1, &p2);
|
||||
@ -294,7 +292,7 @@ mod test {
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_relative_to5() {
|
||||
pub fn test_relative_to5() {
|
||||
let p1 = Path("/usr/bin/whatever/../rustc");
|
||||
let p2 = Path("/usr/lib/whatever/../mylib");
|
||||
let res = get_relative_to(&p1, &p2);
|
||||
@ -302,7 +300,7 @@ mod test {
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_relative_to6() {
|
||||
pub fn test_relative_to6() {
|
||||
let p1 = Path("/1");
|
||||
let p2 = Path("/2/3");
|
||||
let res = get_relative_to(&p1, &p2);
|
||||
@ -310,7 +308,7 @@ mod test {
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_relative_to7() {
|
||||
pub fn test_relative_to7() {
|
||||
let p1 = Path("/1/2");
|
||||
let p2 = Path("/3");
|
||||
let res = get_relative_to(&p1, &p2);
|
||||
@ -318,7 +316,7 @@ mod test {
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_relative_to8() {
|
||||
pub fn test_relative_to8() {
|
||||
let p1 = Path("/home/brian/Dev/rust/build/").push_rel(
|
||||
&Path("stage2/lib/rustc/i686-unknown-linux-gnu/lib/librustc.so"));
|
||||
let p2 = Path("/home/brian/Dev/rust/build/stage2/bin/..").push_rel(
|
||||
@ -333,7 +331,7 @@ mod test {
|
||||
#[test]
|
||||
#[cfg(target_os = "linux")]
|
||||
#[cfg(target_os = "andorid")]
|
||||
fn test_rpath_relative() {
|
||||
pub fn test_rpath_relative() {
|
||||
let o = session::os_linux;
|
||||
let res = get_rpath_relative_to_output(o,
|
||||
&Path("bin/rustc"), &Path("lib/libstd.so"));
|
||||
@ -342,7 +340,7 @@ mod test {
|
||||
|
||||
#[test]
|
||||
#[cfg(target_os = "freebsd")]
|
||||
fn test_rpath_relative() {
|
||||
pub fn test_rpath_relative() {
|
||||
let o = session::os_freebsd;
|
||||
let res = get_rpath_relative_to_output(o,
|
||||
&Path("bin/rustc"), &Path("lib/libstd.so"));
|
||||
@ -351,7 +349,7 @@ mod test {
|
||||
|
||||
#[test]
|
||||
#[cfg(target_os = "macos")]
|
||||
fn test_rpath_relative() {
|
||||
pub fn test_rpath_relative() {
|
||||
// this is why refinements would be nice
|
||||
let o = session::os_macos;
|
||||
let res = get_rpath_relative_to_output(o,
|
||||
@ -361,7 +359,7 @@ mod test {
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_get_absolute_rpath() {
|
||||
pub fn test_get_absolute_rpath() {
|
||||
let res = get_absolute_rpath(&Path("lib/libstd.so"));
|
||||
debug!("test_get_absolute_rpath: %s vs. %s",
|
||||
res.to_str(),
|
||||
|
@ -46,7 +46,7 @@ use syntax::parse;
|
||||
use syntax::print::{pp, pprust};
|
||||
use syntax;
|
||||
|
||||
enum pp_mode {
|
||||
pub enum pp_mode {
|
||||
ppm_normal,
|
||||
ppm_expanded,
|
||||
ppm_typed,
|
||||
@ -58,16 +58,16 @@ enum pp_mode {
|
||||
* The name used for source code that doesn't originate in a file
|
||||
* (e.g. source from stdin or a string)
|
||||
*/
|
||||
fn anon_src() -> ~str { ~"<anon>" }
|
||||
pub fn anon_src() -> ~str { ~"<anon>" }
|
||||
|
||||
fn source_name(input: input) -> ~str {
|
||||
pub fn source_name(input: input) -> ~str {
|
||||
match input {
|
||||
file_input(ref ifile) => (*ifile).to_str(),
|
||||
str_input(_) => anon_src()
|
||||
}
|
||||
}
|
||||
|
||||
fn default_configuration(sess: Session, +argv0: ~str, input: input) ->
|
||||
pub fn default_configuration(sess: Session, +argv0: ~str, input: input) ->
|
||||
ast::crate_cfg {
|
||||
let libc = match sess.targ_cfg.os {
|
||||
session::os_win32 => ~"msvcrt.dll",
|
||||
@ -106,7 +106,8 @@ fn default_configuration(sess: Session, +argv0: ~str, input: input) ->
|
||||
mk(~"build_input", source_name(input))];
|
||||
}
|
||||
|
||||
fn append_configuration(+cfg: ast::crate_cfg, +name: ~str) -> ast::crate_cfg {
|
||||
pub fn append_configuration(+cfg: ast::crate_cfg, +name: ~str)
|
||||
-> ast::crate_cfg {
|
||||
if attr::contains_name(cfg, name) {
|
||||
return cfg;
|
||||
} else {
|
||||
@ -114,7 +115,7 @@ fn append_configuration(+cfg: ast::crate_cfg, +name: ~str) -> ast::crate_cfg {
|
||||
}
|
||||
}
|
||||
|
||||
fn build_configuration(sess: Session, +argv0: ~str, input: input) ->
|
||||
pub fn build_configuration(sess: Session, +argv0: ~str, input: input) ->
|
||||
ast::crate_cfg {
|
||||
// Combine the configuration requested by the session (command line) with
|
||||
// some default and generated configuration items
|
||||
@ -132,7 +133,7 @@ fn build_configuration(sess: Session, +argv0: ~str, input: input) ->
|
||||
}
|
||||
|
||||
// Convert strings provided as --cfg [cfgspec] into a crate_cfg
|
||||
fn parse_cfgspecs(cfgspecs: ~[~str]) -> ast::crate_cfg {
|
||||
pub fn parse_cfgspecs(cfgspecs: ~[~str]) -> ast::crate_cfg {
|
||||
// FIXME (#2399): It would be nice to use the parser to parse all
|
||||
// varieties of meta_item here. At the moment we just support the
|
||||
// meta_word variant.
|
||||
@ -143,14 +144,14 @@ fn parse_cfgspecs(cfgspecs: ~[~str]) -> ast::crate_cfg {
|
||||
return words;
|
||||
}
|
||||
|
||||
enum input {
|
||||
pub enum input {
|
||||
/// Load source from file
|
||||
file_input(Path),
|
||||
/// The string is the source
|
||||
str_input(~str)
|
||||
}
|
||||
|
||||
fn parse_input(sess: Session, +cfg: ast::crate_cfg, input: input)
|
||||
pub fn parse_input(sess: Session, +cfg: ast::crate_cfg, input: input)
|
||||
-> @ast::crate {
|
||||
match input {
|
||||
file_input(ref file) => {
|
||||
@ -164,7 +165,7 @@ fn parse_input(sess: Session, +cfg: ast::crate_cfg, input: input)
|
||||
}
|
||||
}
|
||||
|
||||
fn time<T>(do_it: bool, what: ~str, thunk: fn() -> T) -> T {
|
||||
pub fn time<T>(do_it: bool, what: ~str, thunk: fn() -> T) -> T {
|
||||
if !do_it { return thunk(); }
|
||||
let start = std::time::precise_time_s();
|
||||
let rv = thunk();
|
||||
@ -174,7 +175,7 @@ fn time<T>(do_it: bool, what: ~str, thunk: fn() -> T) -> T {
|
||||
move rv
|
||||
}
|
||||
|
||||
enum compile_upto {
|
||||
pub enum compile_upto {
|
||||
cu_parse,
|
||||
cu_expand,
|
||||
cu_typeck,
|
||||
@ -182,17 +183,17 @@ enum compile_upto {
|
||||
cu_everything,
|
||||
}
|
||||
|
||||
impl compile_upto : cmp::Eq {
|
||||
pub impl compile_upto : cmp::Eq {
|
||||
pure fn eq(&self, other: &compile_upto) -> bool {
|
||||
((*self) as uint) == ((*other) as uint)
|
||||
}
|
||||
pure fn ne(&self, other: &compile_upto) -> bool { !(*self).eq(other) }
|
||||
}
|
||||
|
||||
fn compile_upto(sess: Session, cfg: ast::crate_cfg,
|
||||
input: input, upto: compile_upto,
|
||||
outputs: Option<output_filenames>)
|
||||
-> {crate: @ast::crate, tcx: Option<ty::ctxt>} {
|
||||
pub fn compile_upto(sess: Session, cfg: ast::crate_cfg,
|
||||
input: input, upto: compile_upto,
|
||||
outputs: Option<output_filenames>)
|
||||
-> {crate: @ast::crate, tcx: Option<ty::ctxt>} {
|
||||
let time_passes = sess.time_passes();
|
||||
let mut crate = time(time_passes, ~"parsing",
|
||||
|| parse_input(sess, copy cfg, input) );
|
||||
@ -337,8 +338,8 @@ fn compile_upto(sess: Session, cfg: ast::crate_cfg,
|
||||
return {crate: crate, tcx: None};
|
||||
}
|
||||
|
||||
fn compile_input(sess: Session, +cfg: ast::crate_cfg, input: input,
|
||||
outdir: &Option<Path>, output: &Option<Path>) {
|
||||
pub fn compile_input(sess: Session, +cfg: ast::crate_cfg, input: input,
|
||||
outdir: &Option<Path>, output: &Option<Path>) {
|
||||
|
||||
let upto = if sess.opts.parse_only { cu_parse }
|
||||
else if sess.opts.no_trans { cu_no_trans }
|
||||
@ -347,8 +348,8 @@ fn compile_input(sess: Session, +cfg: ast::crate_cfg, input: input,
|
||||
compile_upto(sess, cfg, input, upto, Some(outputs));
|
||||
}
|
||||
|
||||
fn pretty_print_input(sess: Session, +cfg: ast::crate_cfg, input: input,
|
||||
ppm: pp_mode) {
|
||||
pub fn pretty_print_input(sess: Session, +cfg: ast::crate_cfg, input: input,
|
||||
ppm: pp_mode) {
|
||||
fn ann_paren_for_expr(node: pprust::ann_node) {
|
||||
match node {
|
||||
pprust::node_expr(s, _) => pprust::popen(s),
|
||||
@ -424,7 +425,7 @@ fn pretty_print_input(sess: Session, +cfg: ast::crate_cfg, input: input,
|
||||
}
|
||||
}
|
||||
|
||||
fn get_os(triple: ~str) -> Option<session::os> {
|
||||
pub fn get_os(triple: ~str) -> Option<session::os> {
|
||||
if str::contains(triple, ~"win32") ||
|
||||
str::contains(triple, ~"mingw32") {
|
||||
Some(session::os_win32)
|
||||
@ -439,7 +440,7 @@ fn get_os(triple: ~str) -> Option<session::os> {
|
||||
} else { None }
|
||||
}
|
||||
|
||||
fn get_arch(triple: ~str) -> Option<session::arch> {
|
||||
pub fn get_arch(triple: ~str) -> Option<session::arch> {
|
||||
if str::contains(triple, ~"i386") ||
|
||||
str::contains(triple, ~"i486") ||
|
||||
str::contains(triple, ~"i586") ||
|
||||
@ -454,8 +455,9 @@ fn get_arch(triple: ~str) -> Option<session::arch> {
|
||||
} else { None }
|
||||
}
|
||||
|
||||
fn build_target_config(sopts: @session::options,
|
||||
demitter: diagnostic::emitter) -> @session::config {
|
||||
pub fn build_target_config(sopts: @session::options,
|
||||
demitter: diagnostic::emitter)
|
||||
-> @session::config {
|
||||
let os = match get_os(sopts.target_triple) {
|
||||
Some(os) => os,
|
||||
None => early_error(demitter, ~"unknown operating system")
|
||||
@ -481,7 +483,7 @@ fn build_target_config(sopts: @session::options,
|
||||
return target_cfg;
|
||||
}
|
||||
|
||||
fn host_triple() -> ~str {
|
||||
pub fn host_triple() -> ~str {
|
||||
// Get the host triple out of the build environment. This ensures that our
|
||||
// idea of the host triple is the same as for the set of libraries we've
|
||||
// actually built. We can't just take LLVM's host triple because they
|
||||
@ -498,9 +500,10 @@ fn host_triple() -> ~str {
|
||||
};
|
||||
}
|
||||
|
||||
fn build_session_options(+binary: ~str,
|
||||
matches: &getopts::Matches,
|
||||
demitter: diagnostic::emitter) -> @session::options {
|
||||
pub fn build_session_options(+binary: ~str,
|
||||
matches: &getopts::Matches,
|
||||
demitter: diagnostic::emitter)
|
||||
-> @session::options {
|
||||
let crate_type = if opt_present(matches, ~"lib") {
|
||||
session::lib_crate
|
||||
} else if opt_present(matches, ~"bin") {
|
||||
@ -637,8 +640,8 @@ fn build_session_options(+binary: ~str,
|
||||
return sopts;
|
||||
}
|
||||
|
||||
fn build_session(sopts: @session::options,
|
||||
demitter: diagnostic::emitter) -> Session {
|
||||
pub fn build_session(sopts: @session::options,
|
||||
demitter: diagnostic::emitter) -> Session {
|
||||
let codemap = @codemap::CodeMap::new();
|
||||
let diagnostic_handler =
|
||||
diagnostic::mk_handler(Some(demitter));
|
||||
@ -647,11 +650,11 @@ fn build_session(sopts: @session::options,
|
||||
build_session_(sopts, codemap, demitter, span_diagnostic_handler)
|
||||
}
|
||||
|
||||
fn build_session_(sopts: @session::options,
|
||||
cm: @codemap::CodeMap,
|
||||
demitter: diagnostic::emitter,
|
||||
span_diagnostic_handler: diagnostic::span_handler)
|
||||
-> Session {
|
||||
pub fn build_session_(sopts: @session::options,
|
||||
cm: @codemap::CodeMap,
|
||||
demitter: diagnostic::emitter,
|
||||
span_diagnostic_handler: diagnostic::span_handler)
|
||||
-> Session {
|
||||
let target_cfg = build_target_config(sopts, demitter);
|
||||
let p_s = parse::new_parse_sess_special_handler(span_diagnostic_handler,
|
||||
cm);
|
||||
@ -675,7 +678,7 @@ fn build_session_(sopts: @session::options,
|
||||
lint_settings: lint_settings})
|
||||
}
|
||||
|
||||
fn parse_pretty(sess: Session, &&name: ~str) -> pp_mode {
|
||||
pub fn parse_pretty(sess: Session, &&name: ~str) -> pp_mode {
|
||||
match name {
|
||||
~"normal" => ppm_normal,
|
||||
~"expanded" => ppm_expanded,
|
||||
@ -691,7 +694,7 @@ fn parse_pretty(sess: Session, &&name: ~str) -> pp_mode {
|
||||
}
|
||||
|
||||
// rustc command line options
|
||||
fn optgroups() -> ~[getopts::groups::OptGroup] {
|
||||
pub fn optgroups() -> ~[getopts::groups::OptGroup] {
|
||||
~[
|
||||
optflag(~"", ~"bin", ~"Compile an executable crate (default)"),
|
||||
optflag(~"c", ~"", ~"Compile and assemble, but do not link"),
|
||||
@ -755,13 +758,13 @@ fn optgroups() -> ~[getopts::groups::OptGroup] {
|
||||
]
|
||||
}
|
||||
|
||||
type output_filenames = @{out_filename:Path, obj_filename:Path};
|
||||
pub type output_filenames = @{out_filename:Path, obj_filename:Path};
|
||||
|
||||
fn build_output_filenames(input: input,
|
||||
odir: &Option<Path>,
|
||||
ofile: &Option<Path>,
|
||||
sess: Session)
|
||||
-> output_filenames {
|
||||
pub fn build_output_filenames(input: input,
|
||||
odir: &Option<Path>,
|
||||
ofile: &Option<Path>,
|
||||
sess: Session)
|
||||
-> output_filenames {
|
||||
let obj_path;
|
||||
let out_path;
|
||||
let sopts = sess.opts;
|
||||
@ -831,21 +834,19 @@ fn build_output_filenames(input: input,
|
||||
obj_filename: obj_path};
|
||||
}
|
||||
|
||||
fn early_error(emitter: diagnostic::emitter, msg: ~str) -> ! {
|
||||
pub fn early_error(emitter: diagnostic::emitter, msg: ~str) -> ! {
|
||||
emitter(None, msg, diagnostic::fatal);
|
||||
fail;
|
||||
}
|
||||
|
||||
fn list_metadata(sess: Session, path: &Path, out: io::Writer) {
|
||||
pub fn list_metadata(sess: Session, path: &Path, out: io::Writer) {
|
||||
metadata::loader::list_file_metadata(
|
||||
sess.parse_sess.interner,
|
||||
session::sess_os_to_meta_os(sess.targ_cfg.os), path, out);
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod test {
|
||||
#[legacy_exports];
|
||||
|
||||
pub mod test {
|
||||
use core::prelude::*;
|
||||
|
||||
use driver::driver::{build_configuration, build_session};
|
||||
@ -859,7 +860,7 @@ mod test {
|
||||
|
||||
// When the user supplies --test we should implicitly supply --cfg test
|
||||
#[test]
|
||||
fn test_switch_implies_cfg_test() {
|
||||
pub fn test_switch_implies_cfg_test() {
|
||||
let matches =
|
||||
&match getopts(~[~"--test"], optgroups()) {
|
||||
Ok(copy m) => m,
|
||||
@ -876,7 +877,7 @@ mod test {
|
||||
// When the user supplies --test and --cfg test, don't implicitly add
|
||||
// another --cfg test
|
||||
#[test]
|
||||
fn test_switch_implies_cfg_test_unless_cfg_test() {
|
||||
pub fn test_switch_implies_cfg_test_unless_cfg_test() {
|
||||
let matches =
|
||||
&match getopts(~[~"--test", ~"--cfg=test"], optgroups()) {
|
||||
Ok(copy m) => m,
|
||||
|
@ -8,16 +8,7 @@
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
#[legacy_exports];
|
||||
pub use syntax::diagnostic;
|
||||
|
||||
use syntax::diagnostic;
|
||||
|
||||
export diagnostic;
|
||||
|
||||
export driver;
|
||||
export session;
|
||||
|
||||
#[legacy_exports]
|
||||
mod driver;
|
||||
#[legacy_exports]
|
||||
mod session;
|
||||
pub mod driver;
|
||||
pub mod session;
|
||||
|
@ -29,27 +29,27 @@ use syntax::parse::parse_sess;
|
||||
use syntax::{ast, codemap};
|
||||
use syntax;
|
||||
|
||||
enum os { os_win32, os_macos, os_linux, os_android, os_freebsd, }
|
||||
pub enum os { os_win32, os_macos, os_linux, os_android, os_freebsd, }
|
||||
|
||||
impl os : cmp::Eq {
|
||||
pub impl os : cmp::Eq {
|
||||
pure fn eq(&self, other: &os) -> bool {
|
||||
((*self) as uint) == ((*other) as uint)
|
||||
}
|
||||
pure fn ne(&self, other: &os) -> bool { !(*self).eq(other) }
|
||||
}
|
||||
|
||||
enum arch { arch_x86, arch_x86_64, arch_arm, }
|
||||
pub enum arch { arch_x86, arch_x86_64, arch_arm, }
|
||||
|
||||
impl arch : cmp::Eq {
|
||||
pub impl arch : cmp::Eq {
|
||||
pure fn eq(&self, other: &arch) -> bool {
|
||||
((*self) as uint) == ((*other) as uint)
|
||||
}
|
||||
pure fn ne(&self, other: &arch) -> bool { !(*self).eq(other) }
|
||||
}
|
||||
|
||||
enum crate_type { bin_crate, lib_crate, unknown_crate, }
|
||||
pub enum crate_type { bin_crate, lib_crate, unknown_crate, }
|
||||
|
||||
type config =
|
||||
pub type config =
|
||||
{os: os,
|
||||
arch: arch,
|
||||
target_strs: target_strs::t,
|
||||
@ -57,26 +57,26 @@ type config =
|
||||
uint_type: uint_ty,
|
||||
float_type: float_ty};
|
||||
|
||||
const verbose: uint = 1 << 0;
|
||||
const time_passes: uint = 1 << 1;
|
||||
const count_llvm_insns: uint = 1 << 2;
|
||||
const time_llvm_passes: uint = 1 << 3;
|
||||
const trans_stats: uint = 1 << 4;
|
||||
const no_asm_comments: uint = 1 << 5;
|
||||
const no_verify: uint = 1 << 6;
|
||||
const trace: uint = 1 << 7;
|
||||
const coherence: uint = 1 << 8;
|
||||
const borrowck_stats: uint = 1 << 9;
|
||||
const borrowck_note_pure: uint = 1 << 10;
|
||||
const borrowck_note_loan: uint = 1 << 11;
|
||||
const no_landing_pads: uint = 1 << 12;
|
||||
const debug_llvm: uint = 1 << 13;
|
||||
const count_type_sizes: uint = 1 << 14;
|
||||
const meta_stats: uint = 1 << 15;
|
||||
const no_opt: uint = 1 << 16;
|
||||
const no_monomorphic_collapse: uint = 1 << 17;
|
||||
pub const verbose: uint = 1 << 0;
|
||||
pub const time_passes: uint = 1 << 1;
|
||||
pub const count_llvm_insns: uint = 1 << 2;
|
||||
pub const time_llvm_passes: uint = 1 << 3;
|
||||
pub const trans_stats: uint = 1 << 4;
|
||||
pub const no_asm_comments: uint = 1 << 5;
|
||||
pub const no_verify: uint = 1 << 6;
|
||||
pub const trace: uint = 1 << 7;
|
||||
pub const coherence: uint = 1 << 8;
|
||||
pub const borrowck_stats: uint = 1 << 9;
|
||||
pub const borrowck_note_pure: uint = 1 << 10;
|
||||
pub const borrowck_note_loan: uint = 1 << 11;
|
||||
pub const no_landing_pads: uint = 1 << 12;
|
||||
pub const debug_llvm: uint = 1 << 13;
|
||||
pub const count_type_sizes: uint = 1 << 14;
|
||||
pub const meta_stats: uint = 1 << 15;
|
||||
pub const no_opt: uint = 1 << 16;
|
||||
pub const no_monomorphic_collapse: uint = 1 << 17;
|
||||
|
||||
fn debugging_opts_map() -> ~[(~str, ~str, uint)] {
|
||||
pub fn debugging_opts_map() -> ~[(~str, ~str, uint)] {
|
||||
~[(~"verbose", ~"in general, enable more debug printouts", verbose),
|
||||
(~"time-passes", ~"measure time of each rustc pass", time_passes),
|
||||
(~"count-llvm-insns", ~"count where LLVM \
|
||||
@ -105,21 +105,21 @@ fn debugging_opts_map() -> ~[(~str, ~str, uint)] {
|
||||
]
|
||||
}
|
||||
|
||||
enum OptLevel {
|
||||
pub enum OptLevel {
|
||||
No, // -O0
|
||||
Less, // -O1
|
||||
Default, // -O2
|
||||
Aggressive // -O3
|
||||
}
|
||||
|
||||
impl OptLevel : cmp::Eq {
|
||||
pub impl OptLevel : cmp::Eq {
|
||||
pure fn eq(&self, other: &OptLevel) -> bool {
|
||||
((*self) as uint) == ((*other) as uint)
|
||||
}
|
||||
pure fn ne(&self, other: &OptLevel) -> bool { !(*self).eq(other) }
|
||||
}
|
||||
|
||||
type options =
|
||||
pub type options =
|
||||
// The crate config requested for the session, which may be combined
|
||||
// with additional crate configurations during the compile process
|
||||
{crate_type: crate_type,
|
||||
@ -147,26 +147,26 @@ type options =
|
||||
debugging_opts: uint,
|
||||
};
|
||||
|
||||
type crate_metadata = {name: ~str, data: ~[u8]};
|
||||
pub type crate_metadata = {name: ~str, data: ~[u8]};
|
||||
|
||||
type Session_ = {targ_cfg: @config,
|
||||
opts: @options,
|
||||
cstore: metadata::cstore::CStore,
|
||||
parse_sess: parse_sess,
|
||||
codemap: @codemap::CodeMap,
|
||||
// For a library crate, this is always none
|
||||
mut main_fn: Option<(node_id, codemap::span)>,
|
||||
span_diagnostic: diagnostic::span_handler,
|
||||
filesearch: filesearch::FileSearch,
|
||||
mut building_library: bool,
|
||||
working_dir: Path,
|
||||
lint_settings: lint::lint_settings};
|
||||
pub type Session_ = {targ_cfg: @config,
|
||||
opts: @options,
|
||||
cstore: metadata::cstore::CStore,
|
||||
parse_sess: parse_sess,
|
||||
codemap: @codemap::CodeMap,
|
||||
// For a library crate, this is always none
|
||||
mut main_fn: Option<(node_id, codemap::span)>,
|
||||
span_diagnostic: diagnostic::span_handler,
|
||||
filesearch: filesearch::FileSearch,
|
||||
mut building_library: bool,
|
||||
working_dir: Path,
|
||||
lint_settings: lint::lint_settings};
|
||||
|
||||
enum Session {
|
||||
pub enum Session {
|
||||
Session_(@Session_)
|
||||
}
|
||||
|
||||
impl Session {
|
||||
pub impl Session {
|
||||
fn span_fatal(sp: span, msg: ~str) -> ! {
|
||||
self.span_diagnostic.span_fatal(sp, msg)
|
||||
}
|
||||
@ -271,7 +271,7 @@ impl Session {
|
||||
}
|
||||
|
||||
/// Some reasonable defaults
|
||||
fn basic_options() -> @options {
|
||||
pub fn basic_options() -> @options {
|
||||
@{
|
||||
crate_type: session::lib_crate,
|
||||
static: false,
|
||||
@ -296,12 +296,15 @@ fn basic_options() -> @options {
|
||||
}
|
||||
|
||||
// Seems out of place, but it uses session, so I'm putting it here
|
||||
fn expect<T: Copy>(sess: Session, opt: Option<T>, msg: fn() -> ~str) -> T {
|
||||
pub fn expect<T: Copy>(sess: Session,
|
||||
opt: Option<T>,
|
||||
msg: fn() -> ~str)
|
||||
-> T {
|
||||
diagnostic::expect(sess.diagnostic(), opt, msg)
|
||||
}
|
||||
|
||||
fn building_library(req_crate_type: crate_type, crate: @ast::crate,
|
||||
testing: bool) -> bool {
|
||||
pub fn building_library(req_crate_type: crate_type, crate: @ast::crate,
|
||||
testing: bool) -> bool {
|
||||
match req_crate_type {
|
||||
bin_crate => false,
|
||||
lib_crate => true,
|
||||
@ -320,7 +323,7 @@ fn building_library(req_crate_type: crate_type, crate: @ast::crate,
|
||||
}
|
||||
}
|
||||
|
||||
fn sess_os_to_meta_os(os: os) -> metadata::loader::os {
|
||||
pub fn sess_os_to_meta_os(os: os) -> metadata::loader::os {
|
||||
use metadata::loader;
|
||||
|
||||
match os {
|
||||
@ -333,9 +336,7 @@ fn sess_os_to_meta_os(os: os) -> metadata::loader::os {
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod test {
|
||||
#[legacy_exports];
|
||||
|
||||
pub mod test {
|
||||
use core::prelude::*;
|
||||
|
||||
use driver::session::{bin_crate, building_library, lib_crate};
|
||||
@ -344,7 +345,7 @@ mod test {
|
||||
use syntax::ast;
|
||||
use syntax::ast_util;
|
||||
|
||||
fn make_crate_type_attr(+t: ~str) -> ast::attribute {
|
||||
pub fn make_crate_type_attr(+t: ~str) -> ast::attribute {
|
||||
ast_util::respan(ast_util::dummy_sp(), ast::attribute_ {
|
||||
style: ast::attr_outer,
|
||||
value: ast_util::respan(ast_util::dummy_sp(),
|
||||
@ -356,7 +357,7 @@ mod test {
|
||||
})
|
||||
}
|
||||
|
||||
fn make_crate(with_bin: bool, with_lib: bool) -> @ast::crate {
|
||||
pub fn make_crate(with_bin: bool, with_lib: bool) -> @ast::crate {
|
||||
let mut attrs = ~[];
|
||||
if with_bin { attrs += ~[make_crate_type_attr(~"bin")]; }
|
||||
if with_lib { attrs += ~[make_crate_type_attr(~"lib")]; }
|
||||
@ -368,43 +369,43 @@ mod test {
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn bin_crate_type_attr_results_in_bin_output() {
|
||||
pub fn bin_crate_type_attr_results_in_bin_output() {
|
||||
let crate = make_crate(true, false);
|
||||
assert !building_library(unknown_crate, crate, false);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn lib_crate_type_attr_results_in_lib_output() {
|
||||
pub fn lib_crate_type_attr_results_in_lib_output() {
|
||||
let crate = make_crate(false, true);
|
||||
assert building_library(unknown_crate, crate, false);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn bin_option_overrides_lib_crate_type() {
|
||||
pub fn bin_option_overrides_lib_crate_type() {
|
||||
let crate = make_crate(false, true);
|
||||
assert !building_library(bin_crate, crate, false);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn lib_option_overrides_bin_crate_type() {
|
||||
pub fn lib_option_overrides_bin_crate_type() {
|
||||
let crate = make_crate(true, false);
|
||||
assert building_library(lib_crate, crate, false);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn bin_crate_type_is_default() {
|
||||
pub fn bin_crate_type_is_default() {
|
||||
let crate = make_crate(false, false);
|
||||
assert !building_library(unknown_crate, crate, false);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_option_overrides_lib_crate_type() {
|
||||
pub fn test_option_overrides_lib_crate_type() {
|
||||
let crate = make_crate(false, true);
|
||||
assert !building_library(unknown_crate, crate, true);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_option_does_not_override_requested_lib_type() {
|
||||
pub fn test_option_does_not_override_requested_lib_type() {
|
||||
let crate = make_crate(false, false);
|
||||
assert building_library(lib_crate, crate, true);
|
||||
}
|
||||
|
@ -19,7 +19,6 @@
|
||||
#[crate_type = "lib"];
|
||||
|
||||
#[legacy_modes];
|
||||
#[legacy_exports];
|
||||
#[legacy_records];
|
||||
|
||||
#[allow(non_implicitly_copyable_typarams)];
|
||||
@ -49,153 +48,147 @@ use driver_ = driver;
|
||||
use middle_ = middle;
|
||||
use back_ = back;
|
||||
|
||||
mod middle {
|
||||
#[legacy_exports];
|
||||
mod trans {
|
||||
#[legacy_exports];
|
||||
pub mod middle {
|
||||
pub mod trans {
|
||||
#[legacy_exports]
|
||||
mod inline;
|
||||
pub mod inline;
|
||||
#[legacy_exports]
|
||||
mod monomorphize;
|
||||
pub mod monomorphize;
|
||||
#[legacy_exports]
|
||||
mod controlflow;
|
||||
pub mod controlflow;
|
||||
#[legacy_exports]
|
||||
mod glue;
|
||||
pub mod glue;
|
||||
#[legacy_exports]
|
||||
mod datum;
|
||||
pub mod datum;
|
||||
#[legacy_exports]
|
||||
mod callee;
|
||||
pub mod callee;
|
||||
#[legacy_exports]
|
||||
mod expr;
|
||||
pub mod expr;
|
||||
#[legacy_exports]
|
||||
mod common;
|
||||
pub mod common;
|
||||
#[legacy_exports]
|
||||
mod consts;
|
||||
pub mod consts;
|
||||
#[legacy_exports]
|
||||
mod type_of;
|
||||
pub mod type_of;
|
||||
#[legacy_exports]
|
||||
mod build;
|
||||
pub mod build;
|
||||
#[legacy_exports]
|
||||
mod base;
|
||||
pub mod base;
|
||||
#[legacy_exports]
|
||||
mod _match;
|
||||
pub mod _match;
|
||||
#[legacy_exports]
|
||||
mod uniq;
|
||||
pub mod uniq;
|
||||
#[legacy_exports]
|
||||
mod closure;
|
||||
pub mod closure;
|
||||
#[legacy_exports]
|
||||
mod tvec;
|
||||
pub mod tvec;
|
||||
#[legacy_exports]
|
||||
mod meth;
|
||||
pub mod meth;
|
||||
#[legacy_exports]
|
||||
mod cabi;
|
||||
pub mod cabi;
|
||||
#[legacy_exports]
|
||||
mod cabi_x86_64;
|
||||
pub mod cabi_x86_64;
|
||||
#[legacy_exports]
|
||||
mod foreign;
|
||||
pub mod foreign;
|
||||
#[legacy_exports]
|
||||
mod reflect;
|
||||
pub mod reflect;
|
||||
#[legacy_exports]
|
||||
mod shape;
|
||||
pub mod shape;
|
||||
#[legacy_exports]
|
||||
mod debuginfo;
|
||||
pub mod debuginfo;
|
||||
#[legacy_exports]
|
||||
mod type_use;
|
||||
pub mod type_use;
|
||||
#[legacy_exports]
|
||||
mod reachable;
|
||||
mod machine;
|
||||
pub mod reachable;
|
||||
pub mod machine;
|
||||
}
|
||||
#[legacy_exports]
|
||||
mod ty;
|
||||
pub mod ty;
|
||||
#[legacy_exports]
|
||||
mod resolve;
|
||||
pub mod resolve;
|
||||
#[path = "typeck/mod.rs"]
|
||||
pub mod typeck;
|
||||
#[legacy_exports]
|
||||
mod check_loop;
|
||||
pub mod check_loop;
|
||||
#[legacy_exports]
|
||||
mod check_match;
|
||||
pub mod check_match;
|
||||
#[legacy_exports]
|
||||
mod check_const;
|
||||
pub mod check_const;
|
||||
#[legacy_exports]
|
||||
mod lint;
|
||||
pub mod lint;
|
||||
#[path = "borrowck/mod.rs"]
|
||||
pub mod borrowck;
|
||||
#[legacy_exports]
|
||||
mod mem_categorization;
|
||||
pub mod mem_categorization;
|
||||
#[legacy_exports]
|
||||
mod liveness;
|
||||
pub mod liveness;
|
||||
#[legacy_exports]
|
||||
mod kind;
|
||||
pub mod kind;
|
||||
#[legacy_exports]
|
||||
mod freevars;
|
||||
pub mod freevars;
|
||||
#[legacy_exports]
|
||||
mod capture;
|
||||
pub mod capture;
|
||||
#[legacy_exports]
|
||||
mod pat_util;
|
||||
pub mod pat_util;
|
||||
#[legacy_exports]
|
||||
mod region;
|
||||
pub mod region;
|
||||
#[legacy_exports]
|
||||
mod const_eval;
|
||||
pub mod const_eval;
|
||||
#[legacy_exports]
|
||||
mod astencode;
|
||||
pub mod astencode;
|
||||
#[legacy_exports]
|
||||
mod lang_items;
|
||||
pub mod lang_items;
|
||||
#[legacy_exports]
|
||||
mod privacy;
|
||||
mod mode;
|
||||
pub mod privacy;
|
||||
pub mod mode;
|
||||
}
|
||||
|
||||
mod front {
|
||||
#[legacy_exports];
|
||||
pub mod front {
|
||||
#[legacy_exports]
|
||||
mod config;
|
||||
pub mod config;
|
||||
#[legacy_exports]
|
||||
mod test;
|
||||
pub mod test;
|
||||
#[legacy_exports]
|
||||
mod core_inject;
|
||||
pub mod core_inject;
|
||||
#[legacy_exports]
|
||||
mod intrinsic_inject;
|
||||
pub mod intrinsic_inject;
|
||||
}
|
||||
|
||||
mod back {
|
||||
#[legacy_exports];
|
||||
pub mod back {
|
||||
#[legacy_exports]
|
||||
mod link;
|
||||
pub mod link;
|
||||
#[legacy_exports]
|
||||
mod abi;
|
||||
pub mod abi;
|
||||
#[legacy_exports]
|
||||
mod upcall;
|
||||
pub mod upcall;
|
||||
#[legacy_exports]
|
||||
mod arm;
|
||||
pub mod arm;
|
||||
#[legacy_exports]
|
||||
mod x86;
|
||||
pub mod x86;
|
||||
#[legacy_exports]
|
||||
mod x86_64;
|
||||
pub mod x86_64;
|
||||
#[legacy_exports]
|
||||
mod rpath;
|
||||
pub mod rpath;
|
||||
#[legacy_exports]
|
||||
mod target_strs;
|
||||
pub mod target_strs;
|
||||
}
|
||||
|
||||
#[path = "metadata/mod.rs"]
|
||||
mod metadata;
|
||||
pub mod metadata;
|
||||
|
||||
#[path = "driver/mod.rs"]
|
||||
mod driver;
|
||||
pub mod driver;
|
||||
|
||||
mod util {
|
||||
#[legacy_exports];
|
||||
pub mod util {
|
||||
#[legacy_exports]
|
||||
mod common;
|
||||
pub mod common;
|
||||
#[legacy_exports]
|
||||
mod ppaux;
|
||||
pub mod ppaux;
|
||||
}
|
||||
|
||||
mod lib {
|
||||
#[legacy_exports];
|
||||
pub mod lib {
|
||||
#[legacy_exports]
|
||||
mod llvm;
|
||||
pub mod llvm;
|
||||
}
|
||||
|
||||
use result::{Ok, Err};
|
||||
@ -214,7 +207,7 @@ use driver::driver::{host_triple, optgroups, early_error,
|
||||
use driver::session;
|
||||
use middle::lint;
|
||||
|
||||
fn version(argv0: &str) {
|
||||
pub fn version(argv0: &str) {
|
||||
let mut vers = ~"unknown version";
|
||||
let env_vers = env!("CFG_VERSION");
|
||||
if env_vers.len() != 0 { vers = env_vers; }
|
||||
@ -222,7 +215,7 @@ fn version(argv0: &str) {
|
||||
io::println(fmt!("host: %s", host_triple()));
|
||||
}
|
||||
|
||||
fn usage(argv0: &str) {
|
||||
pub fn usage(argv0: &str) {
|
||||
let message = fmt!("Usage: %s [OPTIONS] INPUT", argv0);
|
||||
io::println(groups::usage(message, optgroups()) +
|
||||
~"Additional help:
|
||||
@ -231,7 +224,7 @@ fn usage(argv0: &str) {
|
||||
");
|
||||
}
|
||||
|
||||
fn describe_warnings() {
|
||||
pub fn describe_warnings() {
|
||||
io::println(fmt!("
|
||||
Available lint options:
|
||||
-W <foo> Warn about <foo>
|
||||
@ -266,7 +259,7 @@ Available lint options:
|
||||
io::println(~"");
|
||||
}
|
||||
|
||||
fn describe_debug_flags() {
|
||||
pub fn describe_debug_flags() {
|
||||
io::println(fmt!("\nAvailable debug options:\n"));
|
||||
for session::debugging_opts_map().each |pair| {
|
||||
let (name, desc, _) = /*bad*/copy *pair;
|
||||
@ -274,7 +267,7 @@ fn describe_debug_flags() {
|
||||
}
|
||||
}
|
||||
|
||||
fn run_compiler(args: &~[~str], demitter: diagnostic::emitter) {
|
||||
pub fn run_compiler(args: &~[~str], demitter: diagnostic::emitter) {
|
||||
// Don't display log spew by default. Can override with RUST_LOG.
|
||||
logging::console_off();
|
||||
|
||||
@ -361,12 +354,12 @@ fn run_compiler(args: &~[~str], demitter: diagnostic::emitter) {
|
||||
compile_input(sess, cfg, input, &odir, &ofile);
|
||||
}
|
||||
|
||||
enum monitor_msg {
|
||||
pub enum monitor_msg {
|
||||
fatal,
|
||||
done,
|
||||
}
|
||||
|
||||
impl monitor_msg : cmp::Eq {
|
||||
pub impl monitor_msg : cmp::Eq {
|
||||
pure fn eq(&self, other: &monitor_msg) -> bool {
|
||||
((*self) as uint) == ((*other) as uint)
|
||||
}
|
||||
@ -385,7 +378,7 @@ diagnostic emitter which records when we hit a fatal error. If the task
|
||||
fails without recording a fatal error then we've encountered a compiler
|
||||
bug and need to present an error.
|
||||
*/
|
||||
fn monitor(+f: fn~(diagnostic::emitter)) {
|
||||
pub fn monitor(+f: fn~(diagnostic::emitter)) {
|
||||
let p = oldcomm::Port();
|
||||
let ch = oldcomm::Chan(&p);
|
||||
|
||||
@ -435,7 +428,7 @@ fn monitor(+f: fn~(diagnostic::emitter)) {
|
||||
}
|
||||
}
|
||||
|
||||
fn main() {
|
||||
pub fn main() {
|
||||
let mut args = os::args();
|
||||
do monitor |move args, demitter| {
|
||||
run_compiler(&args, demitter);
|
||||
|
Loading…
x
Reference in New Issue
Block a user