Get rid of unused SimpleVisitor stuff.
Guarantee that statics have unique names

While they may have the same name within various scopes, this changes static
names to use path_pretty_name to append some hash information at the end of the
symbol. We're then guaranteed that each static has a unique NodeId, so this
NodeId is as the "hash" of the pretty name.

Closes #9188
debuginfo: Basic support for trait objects.
debuginfo: Implement DI for ty_opaque_box.
debuginfo: Support for recursive types.
debuginfo: Added test cases for recursive structs.
debuginfo: Added description of algorithm for handling recursive types.

Also fixed nasty bug caused by calling LLVMDIBuilderCreateStructType() with a null pointer where an empty array was expected (which would trigger an unintelligable assertion somewhere down the line).
debuginfo: Fix style nits for pull request.
debuginfo: Some namespace-related cleanup.
Remove {uint,int,u64,i64,...}::from_str,from_str_radix

Remove these in favor of the two traits themselves and the wrapper
function std::from_str::from_str.

Add the function std::num::from_str_radix in the corresponding role for
the FromStrRadix trait.
std::rt::io::file: Enable I/O tests on Win32

Enable blocked tests which are now fixed by #9165.

Closes #8810.
auto merge of #9209 : blake2-ppc/rust/from-str, r=thestinger

Remove these in favor of the two traits themselves and the wrapper
function std::from_str::from_str.

Add the function std::num::from_str_radix in the corresponding role for
the FromStrRadix trait.

With `from_str` in the prelude, and `from_str_radix` in `std::num`, the feature is unfied under the type annotation of these functions instead of using the modules-named-as-types (std::uint and others):

What was before:

    let n = std::uint::from_str("1");
    let m = std::i32::from_str_radix("10", 16);

is now:

    let n = from_str::<uint>("1");
    let m = std::num::from_str_radix::<i32>("10", 16);
debuginfo: Added LLVMDICompositeTypeSetTypeArray to rustllvm.def.in
rustpkg: Cleanup
auto merge of #9150 : catamorphism/rust/rustpkg-cleanup, r=catamorphism

Just refactoring in tests.rs.
std::rt::io::support: Fix ignored test on Win32

Assumes drive C: exists.

Closes #8812.
std::os: Use unicode for last_os_error() on Win32

FormatMessageA may return non-ascii message,
which is encoded as system code page, not utf8.
This may cause `assert!(is_utf8(v))` failure on
some non-English machines.
This patch replaces it with FormatMessageW,
which returns utf-16 message.

Fixes `make check-stage2-std` failure on my machine. :)
std::rt::uv::uvll: Fix uv_req_type on Win32

Also enables request_sanity_check() test.

Closes #8817
std::rt::io::net::tcp: Fix one tcp test on Win32

Fixes `connect_error` part of #8811.
auto merge of #9168 : michaelwoerister/rust/traits, r=jdm

This pull request finally adds support for recursive type definitions and provides a stub implementation for object pointers.