Re-do the 30 minute intro

This was originally on my blog, so it's incredibly informal. Let's make
it better.
Correctly generate drop glue for `Box<str>`

This fixes an ICE.  Closes issue #17734
Rename vector patterns to array patterns

Closes #17765.
Tweak ‘discriminant value already exists’ error message

Closes #15524.
Give a more descriptive error when marking non-test items as #[test]

Closes #14772.
auto merge of #17785 : P1start/rust/diagnostics, r=alexcrichton

Closes #17765.
Closes #15524.
Closes #14772.
String::truncate doc: also fails if not a char boundary
Fix cfg syntax warnings in libnative
auto merge of #17799 : ebfe/rust/cfg_warn, r=alexcrichton

Probably fallen through the cracks in #17630.
Add regression test for issue #17734
auto merge of #17762 : bkoropoff/rust/issue-17734, r=alexcrichton

Closes issue #17734

r? @nick29581
Handle emitting debug info for unboxed closures

This fixes an ICE.  Closes issue #17021
Build regression test for issue #17021 with -g

This causes it to hit the previously ICEing debuginfo codepath
Fix handling of struct variants in a couple of places

Fixes #17405.
Fixes #17518.
Fixes #17800.
auto merge of #17794 : SimonSapin/rust/patch-8, r=alexcrichton
work around yet another MinGW-w64 ASLR bug
auto merge of #17809 : thestinger/rust/windows, r=eddyb
update jemalloc

This includes optimizations to the thread cache and support for
shrinking and expanding huge (>4M) allocations in-place.
auto merge of #17414 : jakub-/rust/issue-17405, r=alexcrichton

Fixes #17405.
Fixes #17518.
Fixes #17800.
Rename the file permission statics in std::io to be uppercase

For example, this renames `GroupRWX` to `GROUP_RWX`, and deprecates the old
name. Code using these statics should be updated accordingly.