Fix #3961 : use char range methods instead of byte offsets to detect whitespace.
checkpoint block-comment-wchar state.
make pp file conform to actual output, noting some oddities along the way.
fixed code to placate new restrictions on form of function/method invocations.
rustdoc: add syntax highlighting to item signatures.

This means that type definitions and function signatures have
pretty colours.

It uses the following template:

~~~ {.rust}
<code>
~~~
std: add a fixme to note performance issues in vec::from_elem.
Implement a deriving(Zero) attribute
Add Zero impls for lots of common types
std: rename .connect/.concat in VectorVector to avoid conflicting with StrVector.

This is caused by StrVector having a generic implementation for &[S]
and so #5898 means that method resolution of ~[~[1]].concat() sees that
both StrVector and VectorVector have methods that (superficially) match.

They are now connect_vec and concat_vec, which means that they can actually be
called.
rustc: Don't continue to resolve if there's an error in lang_items

This confused me when it happened.
rustpkg: Write more automated tests

Automate more tests described in the commands.txt file,
and add infrastructure for running them. Right now, tests shell
out to call rustpkg. This is not ideal.
Cleaned up driver.rs
std::dynamic_lib: start fixing windows implementation

The code compiles and runs under windows now, but I couldn't look up any
symbol from the current executable (dlopen(NULL)), and calling looked
up external function handles doesn't seem to work correctly under windows.
auto merge of #7130 : huonw/rust/rustdoc-highlight, r=thestinger

This means that type definitions and function signatures have
pretty colours.
auto merge of #7147 : huonw/rust/vec-connect, r=Aatch

This is caused by StrVector having a generic implementation for &[S]
and so #5898 means that method resolution of ~[~[1]].concat() sees that
both StrVector and VectorVector have methods that (superficially) match.

They are now connect_vec and concat_vec, which means that they can actually be
called.
auto merge of #7148 : catamorphism/rust/rustpkg_tests, r=graydon

r? @graydon Automate more tests described in the commands.txt file,
and add infrastructure for running them. Right now, tests shell
out to call rustpkg. This is not ideal.

Goes part of the way towards addressing #5683
trans::glue: don't allocate a pointer variable if it already exists

Removes one alloca and store from the drop glue of @ boxes. This speeds
up the rustc build by 1s (might be noise, though).
Fix inlining of glue code

Currently, when calling glue functions, we cast the function to match
the argument type. This interacts very badly with LLVM and breaks
inlining of the glue code.

It's more efficient to use a unified function type for the glue
functions and always cast the function argument instead of the function.

The resulting code for rustc is about 13% faster (measured up to and
including the "trans" pass) and the resulting librustc is about 5%
smaller.
Add IterBytes impls for float/f32/f64. This allows creating
HashMaps with floats as keys.
trans::glue: don't generate struct destructors in the free glue

The free glue shouldn't be called for structs, and the drop glue already
contains the destructor.