fix compilation errors of mips target
std::borrow: Use raw pointer comparison for `ref_eq`

Compare as `*T` in `ref_eq` instead of casting to uint, to match what
std::ptr does.
remove useless `rust_main` wrapper

the real entry point will now pass the user's main function directly to
the scheduler
Remove and replace cond! Closes #9282.
auto merge of #9277 : crabtw/rust/mips, r=brson

This patch fixes some errors of MIPS target, however, MIPS C ABI is still broken. I will send another PR to fix the problem.

Because MIPS target has no "generic" CPU name, I add --target-cpu and --target-feature to RUST_FLAGS. In order to workaround the "compact frame descriptions incompatible with DWARF2 .eh_frame" problem, the linker I used is CXX but not CC.
Register new snapshots
auto merge of #9296 : alexcrichton/rust/snapshots, r=cmr

huzzah!
Implement process bindings to libuv

This is a re-landing of #8645, except that the bindings are *not* being used to
power std::run just yet. Instead, this adds the bindings as standalone bindings
inside the rt::io::process module.

I made one major change from before, having to do with how pipes are
created/bound. It's much clearer now when you can read/write to a pipe, as
there's an explicit difference (different types) between an unbound and a bound
pipe. The process configuration now takes unbound pipes (and consumes ownership
of them), and will return corresponding pipe structures back if spawning is
successful (otherwise everything is destroyed normally).
auto merge of #9284 : thestinger/rust/main, r=luqmana

the real entry point will now pass the user's main function directly to
the scheduler
rustpkg: Make crates, not packages, the unit of rustpkg dependencies

Treating a package as the thing that can have other packages depend on it,
and depends on other packages, was wrong if a package has more than one
crate. Now, rustpkg knows about dependencies between crates in the same
package. This solves the problem reported in #7879 where rustpkg wrongly
discovered a circular dependency between thhe package and itself, and
recursed infinitely.

Closes #7879
auto merge of #9263 : catamorphism/rust/rustpkg-issue-7879, r=brson

r? @brson Treating a package as the thing that can have other packages depend on it,
and depends on other packages, was wrong if a package has more than one
crate. Now, rustpkg knows about dependencies between crates in the same
package. This solves the problem reported in #7879 where rustpkg wrongly
discovered a circular dependency between thhe package and itself, and
recursed infinitely.

Closes #7879
auto merge of #9260 : alexcrichton/rust/libuv-processes, r=brson

This is a re-landing of #8645, except that the bindings are *not* being used to
power std::run just yet. Instead, this adds the bindings as standalone bindings
inside the rt::io::process module.

I made one major change from before, having to do with how pipes are
created/bound. It's much clearer now when you can read/write to a pipe, as
there's an explicit difference (different types) between an unbound and a bound
pipe. The process configuration now takes unbound pipes (and consumes ownership
of them), and will return corresponding pipe structures back if spawning is
successful (otherwise everything is destroyed normally).
Remove rust_run_program.cpp

Some of the functions could be converted to rust, but the functions dealing with
signals were moved to rust_builtin.cpp instead (no reason to keep the original
file around for one function).

Closes #2674
auto merge of #9280 : alexcrichton/rust/less-c++, r=brson

Some of the functions could be converted to rust, but the functions dealing with
signals were moved to rust_builtin.cpp instead (no reason to keep the original
file around for one function).

Closes #2674

Because less C++ is better C++!
auto merge of #9291 : jzelinskie/rust/remove-cond, r=alexcrichton

This is my first contribution, so please point out anything that I may have missed.

I consulted IRC and settled on `match () { ... }` for most of the replacements.
auto merge of #9292 : blake2-ppc/rust/borrow-ref-eq, r=huonw

std::borrow: Use raw pointer comparison for `ref_eq`

Compare as `*T` in `ref_eq` instead of casting to uint, to match what
std::ptr does.
Turned extra::getopts functions into methods
Some minor api and doc adjustments
auto merge of #9267 : Kimundi/rust/master, r=huonw
optimized trans_to_datum::auto_borrow_obj code generation in case some trivial cases where simple copying can be applied
minor Type::opaque_trait code cleanup