Introduced a chapter that describes how to perform callbacks from C to Rust
Further details on channel idea
Update guide-ffi.md

Simplified the first examples to demonstrate callbacks without other threads involved and shortened the elaboration about async callbacks.
document file!
Fix documentation typos
Scan the entire crate for exported macros

It previously missed anything in an inner module.
Disabled the tests for the new code blocks
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.
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.
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
rustc: add lint for parens in if, while, match and return.

The parens in `if (true) {}` are not not necessary, so we'll warn about
them.
Remove unnecessary parentheses.
auto merge of #11663 : huonw/rust/paren-lint, r=cmr

The parens in `if (true) {}` are not necessary, so we'll warn about them.

cc #3070 and #11432
Stop using hardcoded numbers for -Z options

Instead use a macro and generate them!
Remove obsoleted -Z options

* borrowck_note_pure - unused
* borrowck_note_loan - unused
* no_debug_borrows - unused
* lint_llvm - equivalent to -Z no-prepopulate-passes + --llvm-passes lint
Purge borrowck from libstd

This hasn't been in use since `@mut` was removed