Stop passing --disable-threads to LLVM
auto merge of #7365 : cmr/rust/syntax_cleanup, r=Aatch

Sets the stage for further cleanup (especially mass-slaughter of `@`)
Change finalize -> drop.
rt: add android dummy functions for mman related
Merge remote-tracking branch 'mozilla/master' into incoming

Conflicts:
	src/librustc/middle/astencode.rs
	src/librustc/middle/check_const.rs
auto merge of #7269 : luqmana/rust/drop, r=thestinger

Finally rename finalize to drop.
Closes #4332.
auto merge of #7393 : alexcrichton/rust/enable-threads, r=catamorphism

Closes #7071
rustpkg: Begin allowing package scripts to call the default build logic

rustpkg/api.rs provides functions intended for package scripts to call.
It will probably need more functionality added to it later, but this is
a start.

Added a test case checking that a package script can use the API.

Closes #6401
auto merge of #7113 : alexcrichton/rust/banned-warnings, r=cmr

Reopening of #7031, Closes #6963

I imagine though that this will bounce in bors once or twice... Because attributes can't be cfg(stage0)'d off, there's temporarily a lot of new stage0/stage1+ code.
auto merge of #7216 : kballard/rust/task_rng, r=brson
auto merge of #7255 : michaelwoerister/rust/debuginfo, r=jdm

This PR contains no real code changes. Just some documentation additions in the form of comments and some internal reordering of functions within debuginfo.rs.
driver: perform stripping before and after macro expansion.

This allows macros to both be conditionally defined, and expand
to items with #[cfg]'s.
auto merge of #7297 : huonw/rust/strip-expand-strip, r=cmr

This allows macros to both be conditionally defined, and expand
to items with #[cfg]'s.

This seems to have a performance improvement, e.g. for `std`:

```
# Before 
time: 1.660 s   expansion
time: 0.125 s   configuration
# After
time: 0.080 s   configuration 1
time: 1.127 s   expansion
time: 0.132 s   configuration 2
```

And for `extra`:

```
# Before
time: 0.593 s   expansion
time: 0.062 s   configuration
# After
time: 0.047 s   configuration 1
time: 0.147 s   expansion
time: 0.058 s   configuration 2
```

(This seems a little peculiar, but it is possibly because the expansion AST traversal is very slow, so removing as much as possible as early as possible has big benefits.)
removed unecessary method
converted TCP interface to newtype structs
auto merge of #7345 : blake2-ppc/rust/iterator-flat-map, r=thestinger

flat_map_ produces an iterator that maps each element to an iterator,
and yields the elements of the produced iterators.

This is the monadic bind :: M a -> (a -> M b) -> M b  for iterators.

Named just like the vec method, but with a trailing underline until the
method resolution bug is resolved.

We discussed the name chain_map, but I decided to go with flat_map_ for consistency with vec.

Since it.map(f).flatten()  would be the same as it.flat_map(f), we could choose
to just implement a flatten method instead. Either way the possibilities are the same but flat_map is more convenient.
cleaned up uv/net
auto merge of #7356 : msullivan/rust/default-methods, r=bblum

r?
changed NOTE to TODO
iterator: Add `IteratorUtil::max_by/min_by` method