Add lru_cache to libextra
Disable priv in std::comm::Port, etc

It's useful to allow users to get at the internal std::rc::comm::Port,
and other such fields, since they implement important traits like
Select.
don't create intermediate string while creating json (rustdoc)
Make trait lifetime parameters early bound in static fn type.  This is related
to #5121.

Fixes #10391.
Fix the comments for libsyntax::parse::parser::parse_sugary_call_expr

The comments on this function date back from when it was used for `for`
expressions in addition to `do` expressions.
Add Imenu support for rust-mode.

+ Delete trailing whitespace.
std::str: remove from_utf8.

This function had type &[u8] -> ~str, i.e. it allocates a string
internally, even though the non-allocating version that take &[u8] ->
&str and ~[u8] -> ~str are all that is necessary in most circumstances.
std::str: s/from_utf8_slice/from_utf8/, to make the basic case shorter.
Decode a float into integers

The `integer_decode()` function decodes a float (f32/f64)
into integers containing the mantissa, exponent and sign.

It's needed for `rationalize()` implementation of #9838.

The code got ported from ABCL [1].

[1] http://abcl.org/trac/browser/trunk/abcl/src/org/armedbear/lisp/FloatFunctions.java?rev=14465#L94
Don't dup the stdio file descriptors.

This is just an implementation detail of using libuv, so move the libuv-specific
logic into librustuv.
rewrite of shootout-reverse-complement.rs

This version is inspired by the best version in C by Mr Ledrug,
but without the parallelisation.
auto merge of #10701 : huonw/rust/rm-from_utf8, r=brson

This function had type &[u8] -> ~str, i.e. it allocates a string
internally, even though the non-allocating version that take &[u8] ->
&str and ~[u8] -> ~str are all that is necessary in most circumstances.
auto merge of #10792 : kballard/rust/parse_sugary_call_expr-comments, r=alexcrichton

The comments on this function date back from when it was used for `for`
expressions in addition to `do` expressions.
rewrite part of the tutorial

This begins a rewrite of some sections the tutorial as an introduction
to concepts through the implementation of a simple data structure. I
think this would be a good way to introduce references, traits and many
other concepts too. For example, the section introducing alternatives to
ownership can demonstrate a persistent list.
auto merge of #10690 : thestinger/rust/doc, r=alexcrichton

This begins a rewrite of some sections the tutorial as an introduction
to concepts through the implementation of a simple data structure. I
think this would be a good way to introduce references, generics, traits
and many other concepts too. For example, the section introducing
alternatives to ownership can demonstrate a persistent list.
auto merge of #10803 : vmx/rust/integer-decode, r=cmr

The `integer_decode()` function decodes a float (f32/f64)
into integers containing the mantissa, exponent and sign.

It's needed for `rationalize()` implementation of #9838.

The code got ported from ABCL [1].

[1] http://abcl.org/trac/browser/trunk/abcl/src/org/armedbear/lisp/FloatFunctions.java?rev=14465#L94

I got the permission to use this code for Rust from Peter Graves (the ABCL copyright holder) . If there's any further IP clearance needed, let me know.
auto merge of #10799 : TeXitoi/rust/shootout-reverse-complement-resurected, r=alexcrichton

This version is inspired by the best version in C by Mr Ledrug,
but without the parallelisation.
auto merge of #10804 : alexcrichton/rust/less-dup, r=pcwalton

This is just an implementation detail of using libuv, so move the libuv-specific
logic into librustuv.
Revert "libstd: Change `Path::new` to `Path::init`."

This reverts commit c54427ddfbbab41a39d14f2b1dc4f080cbc2d41b.

Leave the #[ignores] in that were added to rustpkg tests.

Conflicts:
	src/librustc/driver/driver.rs
	src/librustc/metadata/creader.rs
Rename extra::json::*::init() constructors to *::new()