Promote unreachable code to being a lint attribute
Fix a bug with HashMap::consume
Rewrite deriving(Decodable, Encodable)

Now it uses the generic deriving code and should in theory work in all cases.
xfail-fast the deriving test
Add as_c_str method on strings
bool: rm functions duplicating methods
auto merge of #6864 : thestinger/rust/bool, r=pcwalton
auto merge of #6729 : bstrie/rust/ascstr, r=Aatch

Formerly this was a free function rather than a method. I've left it in place for now, although redefined it so that it just calls the method.
Optimize vec::from_elem with manual inlining (borrowck 1.85x speedup on libstd)
auto merge of #6876 : cmr/rust/from_elem_opts, r=Aatch

borrowck 1.85x speedup on libstd
auto merge of #6851 : alexcrichton/rust/bugfixes, r=pcwalton

Closes #5090 by using the excellent new generic deriving code

Promotes the unreachable code attribute to a lint attribute (instead of always being a warning)

Fixes some edge cases when creating hashmaps/hashsets and also when consuming them. (fixes #5998)
Better optimization pipeline
auto merge of #6881 : Aatch/rust/new-passes-2, r=thestinger

This is a better pipeline, both faster-running and produces faster code.

For some reason the `mergefunc` pass screws over resolve. I have no idea why though.
librustc: Don't require `pub extern` to make extern functions visible
Remove all uses of `pub impl`. rs=style
auto merge of #6871 : pcwalton/rust/de-pub-impl, r=pcwalton
Refactor some hashmap code into a new private function mangle()

Add new private hashmap function

    fn mangle(&mut self,
              k: K,
              not_found: &fn(&K) -> V,
              found: &fn(&K, &mut V)) -> uint

Rewrite find_or_insert() and find_or_insert_with() on top of mangle().
Add new function hashmap.insert_or_update_with()

fn insert_or_update_with<'a>(&'a mut self,
                             k: K,
                             f: &fn(&K, &mut V)) -> &'a V