Make rust {test, run} exit with appropriate code.

Scripts need to know if the tests pass or the program ran correctly.
Actually filter view_items in blocks
Update the linenoise library
Set the USE_UTF8 flag for linenoise to handle utf8-input
auto merge of #6726 : alexcrichton/rust/filter-blocks, r=z0w0

Among other things, this suppresses a spurious unused import warning in the compiler right now.
auto merge of #6730 : hjr3/rust/exit_code, r=z0w0

Scripts need to know if the tests pass or the program ran correctly.
Fix compilation errors with linenoise
Add basic atomic types
auto merge of #6728 : alexcrichton/rust/update-linenoise, r=Aatch

This updates the bundled linenoise library, and explicitly builds it with UTF8 support. This way rusti correctly handles utf8 characters when doing line operations.

Closes #6681
Ignore the generated docs for libextra
auto merge of #6734 : huonw/rust/gitignore, r=thestinger
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.
Try to fix a periodic windows build failure due to broken rwildcard macro
Start building a multithreaded rust
Upgrade LLVM
Fix build issues once LLVM has been upgraded

* LLVM now has a C interface to LLVMBuildAtomicRMW
* The exception handling support for the JIT seems to have been dropped
* Various interfaces have been added or headers have changed
Fix setting the fixed stack segment attribute on LLVM functions

At the same time create a more robust wrapper to try to prevent this type of
issue from cropping up in the future.