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.
Make trait lifetime parameters early bound in static fn type.  This is related
to #5121.

Fixes #10391.
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.
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()
Rename std::rt::deque::*::init() to *::new()
auto merge of #10796 : kballard/rust/revert-new-naming, r=alexcrichton

Rename the `*::init()` functions back to `*::new()`, since `new` is not
going to become a keyword.
Fix documentation typo (divison operator is not backslash)
Solve some nasty deschedulinging races with a lock

Right now, as pointed out in #8132, it is very easy to introduce a subtle race
in the runtime. I believe that this is the cause of the current flakiness on the
bots.

I have taken the last idea mentioned in that issue which is to use a lock around
descheduling and context switching in order to solve this race.

Closes #8132
auto merge of #10825 : octurion/rust/master, r=alexcrichton
Forbid keywords as lifetime parameters names.
auto merge of #10211 : ktt3ja/rust/add-lrucache, r=brson

There's an open issue ([Issue #4988](https://github.com/mozilla/rust/issues/4988?source=cc)) for adding an LRU Cache to the standard library. I'm new to this so I hope I didn't miss anything I'm supposed to do.