Add a copy-on-write container.
Added Freeze trait to CowArc
Allow SIMD types in generics. Closes #10604
Unhide lines in rustdoc's doc -- Closes #11645
Add a limited prim type lookup for safer const expr evaluation
Make shift_ref and mut_shift_ref return Option instead of failing
Make pop_ref and mut_pop_ref return Option instead of failing on empty vectors
Make mut_last return Option instead of failing on empty vector (and add a test for mut_last)
Handle attributes on cross-crate tuple-structs correctly

Fixes #11741
Add libc::consts::os::posix01::PTHREAD_STACK_MIN

Represents the minimum size of a thread's stack.  As such, it's both
platform and architecture-specific.

I put it under posix01 even though it predates POSIX.1-2001 by some
years.  I believe it was first formalized in SUSv2.  I doubt anyone
cares, though.
Retry on EINVAL from pthread_attr_setstacksize()

Enforce that the stack size is > RED_ZONE + PTHREAD_STACK_MIN.  If the
call to pthread_attr_setstacksize() subsequently fails with EINVAL, it
means that the platform requires the stack size to be a multiple of the
page size.  In that case, round up to the nearest page and retry.

Fixes #11694.
Use __pthread_get_minstack() when available.

glibc >= 2.15 has a __pthread_get_minstack() function that returns
PTHREAD_STACK_MIN plus however many bytes are needed for thread-local
storage.  Use it when it's available because just PTHREAD_STACK_MIN is
not enough in applications that have big thread-local storage
requirements.

Fixes #6233.
Disable fp elim on mac64

I believe that this is leading to lots of failures on the bots.

cc #11954
auto merge of #11955 : alexcrichton/rust/fix-unwinding-on-mac-64, r=cmr

I believe that this is leading to lots of failures on the bots.

cc #11954
auto merge of #11832 : jfager/rust/r5900, r=alexcrichton

I tried a couple of different ways to squash this, and still don't think this is ideal, but I wanted to get it out for feedback.

Closes #5900
Closes #9942

There are a few scenarios where the compiler tries to evaluate CastExprs without the corresponding types being available yet in the type context:  https://github.com/mozilla/rust/issues/10618, https://github.com/mozilla/rust/issues/5900, https://github.com/mozilla/rust/issues/9942

This PR takes the approach of having eval_const_expr_partial's CastExpr arm fall back to a limited ast_ty_to_ty call that only checks for (a subset of) valid const types, when the direct type lookup fails.  It's kind of hacky, so I understand if you don't want to take this as is.  I'd need a little mentoring to get this into better shape, as figuring out the proper fix has been a little daunting. I'm also happy if someone else wants to pick this up and run with it.

This closes 5900 and 9942, but only moves the goalposts a little on 10618, which now falls over in a later phase of the compiler.
Update the zsh completion file for rustc.

Signed-off-by: OGINO Masanori <masanori.ogino@gmail.com>
auto merge of #11810 : Armavica/rust/issue-11645, r=alexcrichton

The doc-generating tool comments out the lines that match `/$# /` (note the space), which is not what is wanted here. And it lets live the lines matching `/$#[^ ]/`. But we still want to see a space. So I replaced the normal space by a non breakable one, which fools the parser into displaying the line.
Fix rustpkg tests with --disable-inject-std-version

Right now the bots are all injecting a libstd version, so all the rustpkg tests
are passing. All rustpkg compilations will fail unless the version number is
explicitly given because rustpkg attempts to exactly guess the target file name.
Switch back to using a pattern match in order to unbreak tests.

Closes #11852
Make next_power_of_two generic for unsigned integers

Also rename `next_power_of_two_opt` to `checked_next_power_of_two`.
Remove some unused imports