declare that "///" is still a doc comment, just not "////+" (fixes #5838)
rustc: Give glue symbols meaningful names

Instead of `glue_drop1234` it's `Type::<hash>::glue_drop1234`

Haven't done any performance testing.
docs: Don't mention obsolete move operator, as per #5700
use deriving for DeepClone
auto merge of #6706 : brson/rust/glue, r=catamorphism

Instead of `glue_drop1234` it's `Type::<hash>::glue_drop1234`

Haven't done any performance testing.
Define _RUST_STAGEN when building rustrt.

This lets us use #ifdefs to determine which stage of the build we happen
to be in, which is useful in the event we need to make changes to rustrt
that are incompatible with the code generated by stage0.

This should help pave the way to completing #6575, which will likely
require changes to type signatures for spawn_fn & glue_fn in rustrt.
auto merge of #6711 : catamorphism/rust/issue-5700, r=thestinger

r? @nikomatsakis
auto merge of #6712 : thestinger/rust/derive, r=catamorphism
auto merge of #6680 : ben0x539/rust/slashslashslash, r=graydon

There's currently a function in the lexer that rejects a line comment that is all slashes from being a doc comment. I think the intention was that you could draw boxes,

    /////////////
    // like so //
    /////////////

Since a line doc comment split up over multiple paragraphs will have a "blank" line that is just /// between the paragraphs, that would get mistaken for a box segment, lexed as a regular comment, and go missing from the sequence of doc comment attributes before they were reassembled by rustdoc into markdown input.

I figure the best plan here is to just declare that a comment that is exactly `///` is a doc comment after all, and to only omit comments with four slashes or more, which is what this commit implements. Can't really draw boxes that narrow, anyway.
auto merge of #6714 : thomaslee/rust/rustrt-stage, r=brson

As discussed with @brson on IRC:

This lets us use #ifdefs to determine which stage of the build we happen
to be in, which is useful in the event we need to make changes to rustrt
that are incompatible with the code generated by a stage0 rustc.

Example of the _RUST_STAGEN flag in action here: https://gist.github.com/thomaslee/5641890

I'm not sure what tests for this change should look like, so please advise if I need to do some work around that.
Make rust {test, run} exit with appropriate code.

Scripts need to know if the tests pass or the program ran correctly.
Remove the get function

Rust is now preferring methods over functions and there is no legacy with ARC
Remove the clone function for the method
Actually filter view_items in blocks
auto merge of #6723 : osaut/rust/arc-remove-get, r=brson

* Remove clone and get functions from ARC.
* Update the tests and bench.
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.
std: add very basic wrappers around dlopen/dlsym for experimental dynamic library loading
syntax: add very basic support for dynamically loading syntax extensions.

This adds a `#[syntax_extension]` attribute that loads an external Rust
library and allows it to register arbitrary syntax extensions. This requires
the `-Z dynamic-syntax-extension` flag.

The library name to load must be specified in full, and the attribute only
works at the crate level so this will not work cross-platform.