rustc: Turn off split stacks on Windows
Disable runtime split stack support on Windows
Add test for #13259. Closes #13259 and #14742
Remove windows TCB hack from rustdoc
Replaced some TODO by FIXME

closes #17478
Ignore win-tcb test on non-windows
mk: Start producing binary tarballs on windows

We may use these for creating combined rust/cargo installers
install: Fix the install.sh script to work with spaces

Makes it work on windows
auto merge of #17563 : brson/rust/wintcbfix, r=thestinger

This is the bare minimum to stop using split stacks on Windows, fixing https://github.com/rust-lang/rust/issues/13259 and #14742, by turning on stack probes for all functions and disabling compiler and runtime support for split stacks on Windows.

It does not restore the out-of-stack error message, which requires more runtime work.

This includes a test that the Windows TCB is no longer being clobbered, but the out-of-stack test itself is pretty weak, only testing that the program exits abnormally, not that it isn't writing to bogus memory, so I haven't truly verified that this is providing the safety we claim.

A more complete solution is in https://github.com/rust-lang/rust/pull/16388, which has some unresolved issues yet.

cc @Zoxc @klutzy @vadimcn
auto merge of #17640 : brson/rust/wininst, r=alexcrichton

This makes the windows `make dist` target start producing binary tarballs, and tweaks install.sh so they work, in preparation for working on a combined Rust+Cargo installer.
librustc: Stop looking in metadata in type contents.

4x improvement in pre-trans compile time for rustc.
librustc: Forbid `..` in range patterns.

This breaks code that looks like:

    match foo {
        1..3 => { ... }
    }

Instead, write:

    match foo {
        1...3 => { ... }
    }

Closes #17295.

[breaking-change]
Ignore yet another windows debuginfo test
auto merge of #17647 : pcwalton/rust/stop-looking-in-metadata-in-tc, r=cmr

I don't know exactly what made this regress so badly…maybe it was all the lifetimes that @eddyb landed. According to `git blame` this is all somewhat old code. Regardless this is an enormous improvement in compile times.

r? @brson
Teach libsyntax about `if let`
Desugar 'if let' into the appropriate 'match'
Add tests for `if let`
Produce a better error for irrefutable `if let` patterns

Modify ast::ExprMatch to include a new value of type ast::MatchSource,
making it easy to tell whether the match was written literally or
produced via desugaring. This allows us to customize error messages
appropriately.
Move `if let` behind a feature gate
Update based on PR feedback