std: add a Clone impl for HashSet.
Fixed #8451 - extra::stats::write_boxplot() applied to negative or zero sample values
Fixed option_env! type

The type of the result of option_env! was not fully specified in the
None case, leading to type check failures in the case where the variable
was not defined (e.g. option_env!("FOO").is_none()).
remove more dead code from the old `for`
Implement formatting arguments for strings and integers

Closes #1651
Define integer formats for all widths

Closes #1653
Correct the padding on integer types for formatting
Explain what ifmt! is all about
debuginfo: Implemented proper handling of lexical scopes and variable shadowing.
debuginfo: Add support for argument shadowing.
debuginfo: Add some tests for visibiliy scopes within closures.
Fix freezing of @mut Objects when passing as argument
Reborrow even when passing &Object to &Object, so as to permit freezing
auto merge of #8329 : michaelwoerister/rust/lexical_scopes_alt, r=graydon

This pull request re-implements handling of visibility scopes and source code positions in debug info. It should now be very stable and properly handle

+ variable shadowing
+ expanded code (macros and the new for-loop de-sugaring, for example)
+ variables in the middle of nested scopes
+ bindings declared in the head of match statement arms. 

all of which did not work at all or did not work reliably before. Those interested in a more detailed description of the problems at hand, I kindly refer to http://michaelwoerister.github.io/2013/08/03/visibility-scopes.html

Why doesn't the `populate_scope_map()` function use `syntax::visit`?
Because it would not improve this particular AST walker (see: https://github.com/michaelwoerister/rust/commit/69dc7908490b8b492e9730cb1c34fa83c2ef30eb#commitcomment-3781426)

Cheers,
Michael
Add `f` formats to `ifmt!`

Currently the work just the same as the old `extfmt` versions
auto merge of #8446 : alexcrichton/rust/ifmt++, r=graydon

This includes a number of improvements to `ifmt!`

* Implements formatting arguments -- `{:0.5x}` works now
* Formatting now works on all integer widths, not just `int` and `uint`
* Added a large doc block to `std::fmt` which should help explain what `ifmt!` is all about
* Added floating point formatters, although they have the same pitfalls from before (they're just proof-of-concept now)

Closed a couple of issues along the way, yay! Once this gets into a snapshot, I'll start looking into removing all of `fmt`
auto merge of #8497 : nikomatsakis/rust/improvements-to-object-coercion, r=pcwalton

While looking over the code for object coercion, I realized that it wasn't quite handling freezing and reborrowing correctly. Tweak the code, adding tests for the relevant cases. 

r? @pcwalton
auto merge of #8477 : catamorphism/rust/issue-4096, r=msullivan

r? @msullivan ...e parameters

In this case, it's likely to be that the user forgot the `self` type, so
say so.

Closes #4096
auto merge of #8439 : huonw/rust/hashset-clone, r=cmr

Closes #5581.
auto merge of #8440 : sfackler/rust/env-fix, r=pcwalton

The type of the result of option_env! was not fully specified in the
None case, leading to type check failures in the case where the variable
was not defined (e.g. option_env!("FOO").is_none()).

Also cleaned up some compilation warnings.