Convert between BigInts and BigUints
Fix pretty-printing of empty impl items
Convert between BigInts, BigUints, ints, and uints

Previously, conversion to ints, uints, and BigUints clamped the value
within the range of that datatype. With this commit, conversion
overflows fail the task. To handle overflows gracefully, use the new
to_*_opt() methods.
Don't fail in TcpStream.flush
extra: use a mutex to wrap linenoise calls and make them threadsafe.

Fixes #3921.
extra: stop rl from leaking each line that is read.
extra: improvements & bug fixes to rl.

- Removes a layer of indirection in the storage of the completion
  callback.
- Handles user tab completion in a task in which `complete` hasn't been
  properly. Previously, if `complete` was called in one task, and `read`
  called in another, attempting to get completions would crash. This
  makes the completion handlers non-ambiguously task-local only.
- Fix a mismatch in return values between the Rust code and linenoise.
Add a test for extra::rl.

This test has to be run by a human, to check inputs etc. Fortunately, it
won't bitrot (syntactically, or type-check-ly; it might bitrot
semantically), as it is designed so that the test runner compiles it with
`--cfg robot_mode`, which is used to disable the actual running of code.
Support character range patterns (e.g. [0-9], [a-z]), like other globs do.
auto merge of #9014 : dcrewi/rust/convert-between-bigints, r=anasazi
Fix the empty-impl tests

Use an existing type so that it compiles.
Rendezvous stream for synchronous channel messaging
auto merge of #9061 : jakub-/rust/pretty-print-empty-impl, r=huonw
librust: Remove unnecessary workaround. Closes #7617
more helpful error message for ident comparison failure
fix for bug #9110
ident->name cleanup
added run-pass test from issue #9110
implement raw pointer comparisons in librustc

This is mostly for consistency, as you can now compare raw pointers in
constant expressions or without the standard library.

It also reduces the number of `ptrtoint` instructions in the IR, making
tracking down culprits of what's usually an anti-pattern easier.
auto merge of #9114 : sfackler/rust/flush-fix, r=brson