Fix path parsing
Add build_lib_with_cfgs, build_bin_with_cfgs to rustpkg API. Closes #9944.
Introduce an io::Buffer trait

This trait is meant to abstract whether a reader is actually implemented with an
underlying buffer. For all readers which are implemented as such, we can
efficiently implement things like read_char, read_line, read_until, etc. There
are two required methods for managing the internal buffer, and otherwise
read_line and friends can all become default methods.

Closes #10334
Don't make tags for our dependencies and tests.

Largely, this is just being more specific about where tags get searched
for to remove external dependencies like src/llvm, which reduces the
number of tags *enormously* and significantly increases the usefulness
of the tags file as it is then focusing on 240K lines of Rust code
and 4.5K of C++ rather than just shy of 1M lines of C++ code (mostly
from LLVM) and another 100K lines of Rust tests and a diverse collection
of other languages.

src/rustllvm/RustWrapper.cpp and src/rustllvm/PassWrapper.cpp are
getting tags made, but I'm not sure if that's desirable or not. At
worst, it's not a significant wrong.

A future, desirable step is producing tags for just libstd and libextra
for the use of people using Rust-the-language rather than working on
Rust itself.
Fix the `num_lit` grammar in the reference manual.

- Cause `0` to be considered a valid integer literal (it is).
- Add octal literals (missed from #10243).

I have *not* modified doc/po/rust.md.pot or doc/po/ja/rust.md.po at all;
they already seem to be out of date so it's easier to ignore them for
myself. I can update them if desired, of course.
Show the name of the trait in the error message
Adjust error message for method type mismatch

Closes #10118, Closes #5925
Implement read_char on the Buffer trait
lint: _-prefixed variables don't get an unused-mut warning.

Bringing it into line with the unused-variable one,

    fn main() {
        let mut _a = 1;
    }

will not warn that `_a` is never used mutably.

Fixes #6911.
auto merge of #10420 : sanxiyn/rust/path, r=cmr

Fix #10283.
fix 10468, propagate optimization level as rustc::driver::session::OptLevel
extra: handle an edge case in BigUint.to_str().

If any of the digits was one past the maximum (e.g. 10**9 for base 10),
then this wasn't detected correctly and so the length of the digit was
one more than expected, causing a very large allocation.

Fixes #10522.
Fixes #10288.
auto merge of #10454 : z0w0/rust/issue-9944, r=cmr

Allows you to provide explicit `--cfg` flags when building certain packages through the rustpkg API.
auto merge of #10466 : alexcrichton/rust/issue-10334, r=cmr

These commits create a `Buffer` trait in the `io` module which represents an I/O reader which is internally buffered. This abstraction is used to reasonably implement `read_line` and `read_until` along with at least an ok implementation of `read_char` (although I certainly haven't benchmarked `read_char`).
resurect shootout-mandelbrot.rs

Changes:
* add licence;
* remove usage of libc and unsafe;
* use BufferedWriter to improve performance;
* use a DummyWriter to cancel binary output in test.
auto merge of #10509 : cmr/rust/trait_name, r=alexcrichton

Rebase + fix of #10118
Clarrify the message for test mode and use u8 instead of i8 for storing bits
Prettier long string breaking.
auto merge of #10510 : chris-morgan/rust/fix-num_lit-grammar-in-the-reference-manaul, r=cmr

- Cause `0` to be considered a valid integer literal (it is).
- Add octal literals (missed from #10243).

I have *not* modified doc/po/rust.md.pot or doc/po/ja/rust.md.po at all;
they already seem to be out of date so it's easier to ignore them for
myself. I can update them if desired, of course.
auto merge of #10518 : huonw/rust/6911, r=alexcrichton

Bringing it into line with the unused-variable one,

    fn main() {
        let mut _a = 1;
    }

will not warn that `_a` is never used mutably.

Fixes #6911.