rust/src/comp/rustc.rc
Marijn Haverbeke 4bd5f834b0 First take on an alias-safety checker
The alias checker works by ensuring that any value to which an alias
is created is rooted in some way that ensures it outlives the alias.

It is now disallowed to create an alias to the content of a mutable
box, or to a box hanging off a mutable field. There is also machinery
in place to prevent assignment to local variables whenever they are
the root of a live alias.
2011-06-06 21:24:03 +02:00

101 lines
1.7 KiB
Rust

// -*- rust -*-
meta (name = "rustc",
desc = "The Rust compiler",
uuid = "0ce89b41-2f92-459e-bbc1-8f5fe32f16cf",
url = "http://rust-lang.org/src/rustc",
ver = "0.0.1");
use std;
mod middle {
mod trans;
mod ty;
mod walk;
mod metadata;
mod resolve;
mod typeck;
mod alias;
mod tstate {
mod ck;
mod annotate;
mod aux = "auxiliary.rs";
mod bitvectors;
mod collect_locals;
mod pre_post_conditions;
mod states;
mod ann;
}
}
mod pretty {
mod pprust;
mod pp;
}
mod front {
mod ast;
mod creader;
mod ext;
mod extfmt;
mod extenv;
mod codemap;
mod lexer;
mod parser;
mod token;
mod eval;
}
mod back {
mod link;
mod abi;
mod upcall;
mod x86;
}
mod driver {
mod rustc;
mod session;
}
mod util {
mod common;
mod data;
}
auth front::creader::load_crate = unsafe;
auth front::creader::get_metadata_section = unsafe;
auth middle::metadata = unsafe;
auth middle::trans = unsafe;
auth lib::llvm = unsafe;
mod lib {
alt (target_os) {
case ("win32") {
let (llvm_lib = "rustllvm.dll") {
mod llvm;
}
}
case ("macos") {
let (llvm_lib = "librustllvm.dylib") {
mod llvm;
}
}
case (_) {
let (llvm_lib = "librustllvm.so") {
mod llvm;
}
}
}
}
// Local Variables:
// fill-column: 78;
// indent-tabs-mode: nil
// c-basic-offset: 4
// buffer-file-coding-system: utf-8-unix
// compile-command: "make -k -C $RBUILD 2>&1 | sed -e 's/\\/x\\//x:\\//g'";
// End: