Flag all TLS functions as inline(never)

There's lots of fun rationale in the comments of the diff.

Closes #11683
xfail another external macro test on android
auto merge of #11719 : brson/rust/bleh, r=alexcrichton
auto merge of #11711 : alexcrichton/rust/issue-11683, r=brson

There's lots of fun rationale in the comments of the diff.

Closes #11683
rustc/metadata: Removed stray debug statements
Allow trailing commas in argument lists and tuple patterns
auto merge of #11727 : sanxiyn/rust/trailing-comma, r=alexcrichton

Fix #6506.
Fix #7358.
rustpkg: Do not guess version if not given

rustpkg accessed git repo to read tags and guess package version,
but it's not quite useful: version can be given explicitly by user,
and implicit guess may cause confusions.
rustpkg::version: Remove enum Version

Currently rustpkg doesn't use SemanticVersion or Tagged, so they are
removed. Remaining variants are replaced by `Option<~str>`.
rustpkg: Compute hash to find crate

Previously rustpkg tried to parse filenames to find crate. Now ue use
deterministic hashes, so it becomes possible to directly construct
filename and check if the file exists.
rustpkg::crate_id: Remove CrateId

There is no significant difference between `rustpkg::crate_id::CrateId`
and `syntax::crateid::CrateId`. rustpkg's one is replaced by syntax's
one.
Replace C types with Rust types in libstd, closes #7313
auto merge of #10943 : fhahn/rust/issue-7313-replace-c-types, r=alexcrichton

I've started working on a patch for #7313 . So far I tried to replace C types in `src/libstd/unstable/*` and related files.

So far, I have two questions. Is there a convention for passing pointers around in `std` as Rust types? Sometimes pointers are passed around as `*c_char` (which seems to be an `*i8`), `*c_void` or `*u8`, which leads to a lot of casts. E.g: [`exchange_malloc`](https://github.com/fhahn/rust/compare/issue-7313-replace-c-types?expand=1#diff-39f44b8c3f4496abab854b3425ac1617R60) used to return a `*c_char` but the function in turn only calls `malloc_raw` which returns a `*c_void`.
Is there a specific reason for this?

The second question is about `CString` and related functions like `with_c_str`. At the moment these functions use `*c_char*`. Should I replace it with `*u8` or keep it, because it's an wrapper around classical C strings?
Typo in module tutorial
Add std::os::self_exe_name()
Implement std::rt::at_exit

This routine is currently only used to clean up the timer helper thread in the
libnative implementation, but there are possibly other uses for this.

The documentation is clear that the procedures are *not* run with any task
context and hence have very little available to them. I also opted to disallow
at_exit inside of at_exit and just abort the process at that point.
Don't fatally fail in driver::early_error

Closes #11729
libnative: Implement get_host_addresses.
float_to_str_bytes_common can now handle exponential notation
Add LowerExp 'e' and UpperExp 'E' format traits/specifiers