Move llvm into the artifacts build directory
Move the llvm auto-clean stamp into $target/llvm
Build rustllvm into $target/rustllvm
Fix #7740: gather_loans should not recur into the items of the block.

gather_loans does not need to recurse into any items declared in the
current block.  Rather than special-case `fk_item_fn` and `fk_method`,
just make the GatherLoanVisitor's visit_item method a no-op.

This indirectly implies that the example of #7740 is fixed:

    fn f() {
        static A: &'static char = &'A';
    }

Since we do not recurse into items, we no longer encounter `&'A'`.
Implement Stream automatically for Reader + Writer

This is consistent with the existing documentation but was not the
actual behaviour, which I've found to be rather a nuisance, actually.
Add a from_str function that calls out to the associated method on the trait
Add from_str docs
str: rm `map_chars`, replaced by iterators

mapping a function against the elements should not require allocating a
new container, but `collect` still provides the functionality as-needed
Move the `rt` build directory under $target

Closes #2302
Add an ``unreachable!()`` macro.

Rationale: having a function which fails means that the location of
failure which is output is that of the unreachable() function, rather
than the caller.

This is part of #8991 but is not all of it; current usage of
``std::util::unreachable()`` must remain so for the moment, until a new
snapshot is made; then I will remove that function entirely in favour of
using this macro.
regression test for #7740.
auto merge of #8975 : alexcrichton/rust/reorganize, r=pnkfelix

Closes #2302
Remove the __log function for __log_level

Also redefine all of the standard logging macros to use more rust code instead
of custom LLVM translation code. This makes them a bit easier to understand, but
also more flexibile for future types of logging.

Additionally, this commit removes the LogType language item in preparation for
changing how logging is performed.
auto merge of #8990 : thestinger/rust/str, r=alexcrichton

mapping a function against the elements should not require allocating a
new container, but `collect` still provides the functionality as-needed
Factor shared code out into default GenericPath methods.
Minor doc cleanup.
auto merge of #8993 : pnkfelix/rust/fsk-fix-7740-dont-recur-on-items-during-gather-loans-of-block, r=nikomatsakis

Fix #7740

r? anyone, @nikomatsakis especially.
Rename str::from_bytes to str::from_utf8, closes #8985
auto merge of #8984 : chris-morgan/rust/auto-stream-impl, r=huonw

This is consistent with the existing documentation but was not the
actual behaviour, which I've found to be rather a nuisance, actually.
Replace os::glob with extra::glob, which is written in rust,
fixing issue #6100.