libcore: Get rid of useless mem::forget wrapper.
Change how libgetopts handles options grouped together

As soon as an option is found that takes an argument, consume the rest
of the string and store it into i_arg. Previously this would only happen
if the character after the option was not a recognized option.

Addresses issue #16348
Fix TwoWaySearcher to work when used with periodic needles.

There is a check in TwoWaySearcher::new to determine whether the needle
is periodic. This is needed because during searching when a match fails,
we cannot advance the position by the entire length of the needle when
it is periodic, but can only advance by the length of the period.

The reason "bananas".contains("nana") (and similar searches) were
returning false was because the periodicity check was wrong.

Closes #16589
Make note that Ordering is builtin.

This way people won't try to copy/paste it in.
librustc: Fix a couple of cases in which unboxed closure typechecking
code wasn't considering the zero-argument case.

Closes #16168.
librustc: Resolve nested vtable parameters in overloaded calls.

Closes #16508.
iOS compilation fix
Fixed unwinding for iOS

Was broken by Windows adoption
bitv: make benchmarks always return a value

This makes sure that the benchmarked code does not get optimized away.
Also fixed a typo.

Fixes #12118.
arena: fix a typo
bitv: make sure benchmarks run long enough

Previously they were too short (less than 10 ns), so the benchmarker
could not resolve them meaningfully. Now they should run in the order of
100 ns.
fix module wording in guide

@kimundi was a bit worried this was misleading.
librustc: Create unboxing shims as necessary for unboxed closures.

Closes #16591.
Parameterize indent in PrettyEncoder
librustc: Mark unboxed closure calls and definitions with appropriate llvm return/argument attributes.
auto merge of #16601 : cybergeek94/rust/master, r=alexcrichton

Previously, `PrettyEncoder` indented a magic constant of 2 spaces per level, which may be fine for most uses but in my use case I would like to allow the user to specify the indent step for the outputted JSON in my program.

This is small change that does not break any existing code whatsoever, and does not change the behavior of existing uses. `PrettyEncoder::new()` still uses the default of 2.

I couldn't think of any simple tests for this change. The obvious one would be to check the outputted JSON for the correct number of spaces per indent level, but I think that would be more complex than the actual change itself and test little besides correctness and consistency, which can be verified visually. There's already a test for correct parsing of pretty-printed JSON that should still pass with this change.
auto merge of #16635 : steveklabnik/rust/ordering_comment, r=huonw

This way people won't try to copy/paste it in.

This is provided as an alternate solution to #16003. What do you think, @treeman?
Fix LLVM version in configure

Upstream LLVM from VCS already has version 3.6,
configure fixed appropriately to allow building with it
syntax: Fix complexity of string parsing. Closes #16624.
auto merge of #16637 : pcwalton/rust/unboxed-closures-expected-tuple, r=pnkfelix

code wasn't considering the zero-argument case.

Closes #16168.

r? @pnkfelix