Use an absolute path in test_process_output_fail_to_start

This test is designed to ensure that running a non-existent executable
results in a correct error message (FileNotFound in this case of this
test).  However, if you try to run an executable that doesn't exist, and
that requires searching through the $PATH, and one of the $PATH components
is not readable, then a PermissionDenied error will be returned, instead
of FileNotFound.
Add support for arbitrary flags to MemoryMap.

This also fixes up the documentation a bit, it was subtly incorrect.
Use `mmap` to map in task stacks and guard page

Also implement caching of stacks.
Update task-perf-one-million
Add benchmarks
Fix zero-sized memory mapping
Uppercase numeric constants

The following are renamed:

* `min_value` => `MIN`
* `max_value` => `MAX`
* `bits` => `BITS`
* `bytes` => `BYTES`

Fixes #10010.
auto merge of #11790 : lfairy/rust/rename-num-consts, r=alexcrichton

The following are renamed:

* `min_value` => `MIN`
* `max_value` => `MAX`
* `bits` => `BITS`
* `bytes` => `BYTES`

All tests pass, except for `run-pass/phase-syntax-link-does-resolve.rs`. I doubt that failure is related, though.

Fixes #10010.
Fix spacing in example comment.
Implement barrier.
auto merge of #11795 : xales/rust/master, r=cmr
auto merge of #11725 : derekchiang/rust/add-barrier, r=alexcrichton
Grammatical fixes.
Simplify and rename macro API

Now that procedural macros can be implemented outside of the compiler,
it's more important to have a reasonable API to work with. Here are the
basic changes:

* Rename SyntaxExpanderTTTrait to MacroExpander, SyntaxExpanderTT to
    BasicMacroExpander, etc. I think "procedural macro" is the right
    term for these now, right? The other option would be SynExtExpander
    or something like that.

* Stop passing the SyntaxContext to extensions. This was only ever used
    by macro_rules, which doesn't even use it anymore. I can't think of
    a context in which an external extension would need it, and removal
    allows the API to be significantly simpler - no more
    SyntaxExpanderTTItemExpanderWithoutContext wrappers to worry about.
Stop allocating so much in arena tests

Android bots are OOMing.
auto merge of #11799 : comex/rust/patch-2, r=brson
auto merge of #11803 : sfackler/rust/simple-mac, r=brson

Now that procedural macros can be implemented outside of the compiler,
it's more important to have a reasonable API to work with. Here are the
basic changes:

* Rename SyntaxExpanderTTTrait to MacroExpander, SyntaxExpanderTT to
    BasicMacroExpander, etc. I think "procedural macro" is the right
    term for these now, right? The other option would be SynExtExpander
    or something like that.

* Stop passing the SyntaxContext to extensions. This was only ever used
    by macro_rules, which doesn't even use it anymore. I can't think of
    a context in which an external extension would need it, and removal
    allows the API to be significantly simpler - no more
    SyntaxExpanderTTItemExpanderWithoutContext wrappers to worry about.
std,extra: Make some types public and other private.

These are either returned from public functions, and really should
appear in the documentation, but don't since they're private, or are
implementation details that are currently public.
auto merge of #11805 : brson/rust/smallerarenas, r=brson

Android bots are OOMing.
auto merge of #11808 : huonw/rust/std-visible-types, r=brson

These are either returned from public functions, and really should
appear in the documentation, but don't since they're private, or are
implementation details that are currently public.