Work around #8256, do not fail the task, just return None
librustc: Implement `#[no_main]`, which omits the entry point entirely.

Useful for SDL and possibly Android too.
libsyntax/ext/deriving/cmp/* was ignored by the build system.
syntax: make #[deriving(TotalOrd)] lazy.

Previously it would call:

  f(sf1.cmp(&of1), f(sf2.cmp(&of2), ...))

(where s/of1 = 'self/other field 1', and f was
std::cmp::lexical_ordering)

This meant that every .cmp subcall got evaluated when calling a derived
TotalOrd.cmp.

This corrects this to use

   let test = sf1.cmp(&of1);
   if test == Equal {
      let test = sf2.cmp(&of2);
      if test == Equal {
        // ...
      } else {
        test
      }
   } else {
     test
   }

This gives a lexical ordering by short-circuiting on the first comparison
that is not Equal.
std: implement Total{Ord,Eq} for pointers.
Fixed str::raw::push_byte

It was previously pushing the byte on top of the string's null
terminator. I added a test to make sure it doesn't break in the future.
fix warning still mentioning the `again` keyword
Implemented iterator for TrieMap

Closes #5506.
Remove debug printing.
Open files in binary mode. Closes #3948
Add extra::arena::Arena::new{, _with_size}.

Signed-off-by: OGINO Masanori <masanori.ogino@gmail.com>
auto merge of #8279 : pcwalton/rust/no-main, r=brson

Useful for SDL and possibly Android too.

r? @brson
auto merge of #8183 : omasanori/rust/migrate-new, r=sanxiyn

It seems that relatively new code uses `Foo::new()` instead of `Foo()` so I wrote a patch to migrate some structs to the former style.
Is it a right direction? If there are any guidelines not to use new()-style, could you add them to the [style guide](https://github.com/omasanori/rust/wiki/Note-style-guide)?
auto merge of #8289 : sfackler/rust/push_byte, r=erickt

It was previously pushing the byte on top of the string's null
terminator. I added a test to make sure it doesn't break in the future.
std: Use correct lifetime parameter on str::raw::slice_bytes

fn slice_bytes is marked unsafe since it allows violating the valid
string encoding property; but the function did also allow extending the
lifetime of the slice by mistake, since it's returning `&str`.

Use the annotation `slice_bytes<'a>(&'a str, ...) -> &'a str` so
that all uses of slice_bytes are region checked correctly.
auto merge of #8292 : thestinger/rust/fix_loop_warning, r=brson
Make node_id_to_str print more useful info in some cases. Closes #2410.
auto merge of #8293 : dim-an/rust/trie-iterator, r=thestinger

Closes #5506.
Fix an unused variable warning and clean up some dead code/names.
Warn when using -o option on libraries. Closes #6554.