auto merge of #13609 : richo/rust/str-type-vim, r=alexcrichton

It seems really weird to me when StrSlice and str highlight sanely, but StrBuf doesn't.

I think I added it to the right place.
auto merge of #13614 : cgaebel/rust/master, r=brson

We previously allocated 3x for every HashMap creation and resize. This patch reduces it to 1x.
doc: add webfonts and tweak the styles accordingly
auto merge of #13615 : alexcrichton/rust/improve-demangling, r=brson

Previously, symbols with rust escape sequences (denoted with dollar signs)
weren't demangled if the escape sequence showed up in the middle. This alters
the printing loop to look through the entire string for dollar characters.
Rewrite paragraph describing difference between try_send and send_opt
rustc: Ensure closures are "split-stack"

In upgrading LLVM, only rust functions had the "split-stack" attribute added.
This commit changes the addition of LLVM's "split-stack" attribute to *always*
occur and then we remove it sometimes if the "no_split_stack" rust attribute is
present.

Closes #13625
auto merge of #13628 : alexcrichton/rust/issue-13625, r=thestinger

In upgrading LLVM, only rust functions had the "split-stack" attribute added.
This commit changes the addition of LLVM's "split-stack" attribute to *always*
occur and then we remove it sometimes if the "no_split_stack" rust attribute is
present.

Closes #13625
Demonstrate accessing external variable in first example
green: Fix missing Send bounds on procedures

These were mistakenly not updated as part of the removal of the Send bound by
default on procedures.

cc #13629
mk: Pass exact compile to rustc on cross compiles

Instead of passing through CC which may have things like ccache and other
arguments (when using clang) this commit filters out the necessary arguments
from CC to pass the right linker to rustc.

Closes #13562
auto merge of #13610 : jsanders/rust/sender-try-send-docs, r=alexcrichton

I was getting a bit confused by these and (I think) managed to track it down to fallout from #13448 and #13465.
auto merge of #13613 : alexcrichton/rust/fix-freebsd-compile, r=brson

Ah, the wonders of not being gated on FreeBSD...
Eliminate the need for Options in LruEntry.

LruEntry nodes previously used Option to encapsulate the key and value
fields. This was used merely as a way avoid having values for the sigil
node. Apart from wasting a few bytes for the discriminant, this
cluttered the rest of the code, since these fields always contained
Some on regular nodes as a class invariant.

The Option wrapping was removed, and the values in the sigil field are
initialized using mem::init, so that they don't contain any real data.
Refactor ty_vec represent &[T] as &([T])

Refactores all uses of ty_vec and associated things to remove the vstore abstraction (still used for strings, for now). Pointers to vectors are stored as ty_rptr or ty_uniq wrapped around a ty_vec. There are no user-facing changes. Existing behaviour is preserved by special-casing many instances of pointers containing vectors. Hopefully with DST most of these hacks will go away. For now it is useful to leave them hanging around rather than abstracting them into a method or something.

Closes #13554.
serialize: Remove errant println!'s from decode
shootout-fannkuch-redux rewrite

Less bound checking and parallelisation.  Brute speed improvement
is about 15% faster.
Allow inheritance between structs.

No subtyping, no interaction with traits. Partially addresses #9912.
rustuv: Fix a tcp connect timeout bug on windows

When a uv_tcp_t is closed in libuv, it will still invoke the pending connect_cb,
and I thought that it would always call it with ECANCELED, but it turns out that
sometimes we'll get a different error code instead. Handle this case by checking
to see if the request's data is NULL and bail out if so (the timeout expired).
auto merge of #12562 : nick29581/rust/fields, r=nikomatsakis

No subtyping, no interaction with traits. Partially addresses #9912.
Fix spelling mistakes in documentation and code.