098106870e
The purpose here is to get rid of compile_upto, which pretty much always requires the user to read the source to figure out what it does. It's replaced by a sequence of obviously-named functions: - phase_1_parse_input(sess, cfg, input); - phase_2_configure_and_expand(sess, cfg, crate); - phase_3_run_analysis_passes(sess, expanded_crate); - phase_4_translate_to_llvm(sess, expanded_crate, &analysis, outputs); - phase_5_run_llvm_passes(sess, &trans, outputs); - phase_6_link_output(sess, &trans, outputs); Each of which takes what it takes and returns what it returns, with as little variation as possible in behaviour: no "pairs of options" and "pairs of control flags". You can tell if you missed a phase because you will be missing a `phase_N` call to some `N` between 1 and 6. It does mean that people invoking librustc from outside need to write more function calls. The benefit is that they can _figure out what they're doing_ much more easily, and stop at any point, rather than further overloading the tangled logic of `compile_upto`. |
||
---|---|---|
.. | ||
_match.rs | ||
adt.rs | ||
asm.rs | ||
base.rs | ||
build.rs | ||
builder.rs | ||
cabi_arm.rs | ||
cabi_mips.rs | ||
cabi_x86_64.rs | ||
cabi_x86.rs | ||
cabi.rs | ||
callee.rs | ||
closure.rs | ||
common.rs | ||
consts.rs | ||
context.rs | ||
controlflow.rs | ||
datum.rs | ||
debuginfo.rs | ||
expr.rs | ||
foreign.rs | ||
glue.rs | ||
inline.rs | ||
machine.rs | ||
macros.rs | ||
meth.rs | ||
mod.rs | ||
monomorphize.rs | ||
reflect.rs | ||
tvec.rs | ||
type_.rs | ||
type_of.rs | ||
type_use.rs | ||
uniq.rs | ||
write_guard.rs |