auto merge of #11670 : sfackler/rust/extctxt-span-note, r=alexcrichton

It was the only span_* missing.
Scan the entire crate for exported macros

It previously missed anything in an inner module.
auto merge of #11664 : bjz/rust/identities, r=alexcrichton

`Zero` and `One` have precise definitions in mathematics as the identities of the `Add` and `Mul` operations respectively. As such, types that implement these identities are now also required to implement their respective operator traits. This should reduce their misuse whilst still enabling them to be used in generalized algebraic structures (not just numbers). Existing usages of `#[deriving(Zero)]` in client code could break under these new rules, but this is probably a sign that they should have been using something like `#[deriving(Default)]` in the first place.

For more information regarding the mathematical definitions of the additive and multiplicative identities, see the following Wikipedia articles:

- http://wikipedia.org/wiki/Additive_identity
- http://wikipedia.org/wiki/Multiplicative_identity

Note that for floating point numbers the laws specified in the doc comments of `Zero::zero` and `One::one` may not always hold. This is true however for many other traits currently implemented by floating point numbers. What traits floating point numbers should and should not implement is an open question that is beyond the scope of this pull request.

The implementation of `std::num::pow` has been made more succinct and no longer requires `Clone`. The coverage of the associated unit test has also been increased to test for more combinations of bases, exponents, and expected results.
auto merge of #11673 : omasanori/rust/sep-doc, r=alexcrichton
Disabled the tests for the new code blocks
Don't emit landing pads with -Z no-landing-pads

Closes #11647
rustuv: Re-work sockaddr glue to not use malloc

This means we can purge even more C from src/rt!
auto merge of #11636 : alexcrichton/rust/purge-all-the-c, r=brson

This means we can purge even more C from src/rt!
Fix a pathological const checking case

The included test case would essentially never finish compiling without this
patch. It recursies twice at every ExprParen meaning that the branching factor
is 2^n

The included test case will take so long to parse on the old compiler that it'll
surely never let this crop up again.
Fix cross-compiled pretty tests

They need to read the metadata of cross-compiled crates, so the pretty things
need to have the right target.
auto merge of #11675 : alexcrichton/rust/fix-snap, r=cmr

They need to read the metadata of cross-compiled crates, so the pretty things
need to have the right target.
auto merge of #11653 : alexcrichton/rust/issue-11647, r=luqmana

Closes #11647
auto merge of #11486 : Matthias247/rust/doc, r=cmr

I wrote a chapter for the FFI tutorial that describes how to perform callbacks from C code to Rust and gives some hints about what to consider and synchronization.

I just needed that for my own wrapper and thought it would be helpful for others.
Register new snapshots

Upgrade the version to 0.10-pre
auto merge of #11662 : alexcrichton/rust/faster-parens, r=huonw

The included test case would essentially never finish compiling without this
patch. It recursies twice at every ExprParen meaning that the branching factor
is 2^n

The included test case will take so long to parse on the old compiler that it'll
surely never let this crop up again.
auto merge of #11674 : indirect/rust/doc_file, r=alexcrichton

Found out about `file!` today from o11c in IRC.
auto merge of #11684 : FlaPer87/rust/doc_typos, r=cmr
auto merge of #11687 : sfackler/rust/macro-export-inner-crate, r=alexcrichton

It previously missed anything in an inner module.
auto merge of #11699 : alexcrichton/rust/snapshot, r=huonw

Upgrade the version to 0.10-pre
Add support for ARM thumb architecture