revert no-longer-required workaround for mystery bug, close #3396
show options for -W help and -W
Remove usage of the #[merge] hack with int modules
Remove the #[merge] hack from the parser
Add basic atomic types
Use an enum for keywords and intern them to improve parser performance

Currently, keywords are stored in hashsets that are recreated for every
Parser instance, which is quite expensive since macro expansion creates
lots of them. Additionally, the parser functions that look for a keyword
currently accept a string and have a runtime check to validate that they
actually received a keyword.

By creating an enum for the keywords and inserting them into the
ident interner, we can avoid the creation of the hashsets and get static
checks for the keywords.

For libstd, this cuts the parse+expansion part from ~2.6s to ~1.6s.
auto merge of #6737 : dotdash/rust/static_keywords, r=pcwalton

Currently, keywords are stored in hashsets that are recreated for every
Parser instance, which is quite expensive since macro expansion creates
lots of them. Additionally, the parser functions that look for a keyword
currently accept a string and have a runtime check to validate that they
actually received a keyword.

By creating an enum for the keywords and inserting them into the
ident interner, we can avoid the creation of the hashsets and get static
checks for the keywords.

For libstd, this cuts the parse+expansion part from ~2.6s to ~1.6s.
auto merge of #6732 : Aatch/rust/atomic-types, r=brson

This pull request is more of an RFC than a finished implementation.

It adds some basic atomic types, with an interface modelled off of C++11's atomic types.

It also adds free functions that provide a slightly nicer interface for atomic operations, though they are unsafe because there isn't a way to be generic over "word-sized" types.

See also #5042
auto merge of #6722 : alexcrichton/rust/issue-4219-no-merge-hack, r=brson

Changes the int/uint modules to all use macros instead of using the `merge` attribute. It would be nice to have #4375 resolved as well for this, but that can probably come at a later date.

Closes #4219.
core: Fail with a better error message when list_dir gets an empty path

(Yes, this did happen in real life...)
testsuite: Add a test for listing the root directory...

...and don't treat Path("/") like Path("").
auto merge of #6687 : catamorphism/rust/list_dir_empty, r=catamorphism

r? @brson (Yes, this did happen in real life...)
Mark &mut parameters as noalias
rustdoc: properly nest markup within enum variant lists (fixes #6605)

This indents all but the first line of multi-line annotations for
individual enum variants with four spaces so that pandoc will
recognize everything as belonging to the same list item.

Since that introduces `<p>` tags for some list items, I've gone ahead
and inserted blank lines after each list item so that consistently
get `<p>` tags for all `<li>`s documenting variants. It's a bit less
compact now but still tolerable, I think.
auto merge of #6742 : Aatch/rust/mut-noalias, r=thestinger

This marks `&mut` function arguments with the `noalias` attribute. Since the borrow checker enforces this property, this is worth doing.

I'm not sure if the place I'm doing it in is ideal, but it generates the correct code.

Closes #6350
Add documentation for libstd/bool.rs.

There was some before, but now we have a big header, as well as
lots of individual bits of documentation.
auto merge of #6700 : ben0x539/rust/nestvariantdocs, r=thestinger

This indents all but the first line of multi-line annotations for individual enum variants with four spaces so that pandoc will recognize everything as belonging to the same list item.

Since that introduces `<p>` tags for some list items, I've gone ahead and inserted blank lines after each list item so that consistently get `<p>` tags for all `<li>`s documenting variants. It's a bit less compact now but still tolerable, I think.
auto merge of #6748 : steveklabnik/rust/bool_docs, r=thestinger

There was some before, but now we have a big header, as well as
lots of individual bits of documentation.
update ctags define
auto merge of #6719 : kud1ing/rust/rustc_w, r=bstrie

Fixes #6697