Make enum discriminants u64 instead of the host uint.
Don't truncate discriminants to host uint for C_uint's sake.
Add a test case for the preceding changes.

This would have failed on 32-to-64-bit cross-compiles.
std::str: Double-ended CharSplitIterator

Add new methods `.rsplit_iter()` and `.rsplitn_iter()` for &str.

Separate out CharSplitIterator and CharSplitNIterator,
CharSplitIterator (`split_iter` and `rsplit_iter`) is made double-ended
while `splitn_iter` and `rsplitn_iter` (limited to N splits) are not,
since these don't have the same symmetry.

With CharSplitIterator being double ended, derived iterators like
`line_iter` and `word_iter` are too.
compilation error regexp specific to rustc.

Fix #6887.
revisions to emacs compilation regexp, more readable and robust.
bigint: cfg(target_arch = ...) => cfg(target_word_size = ...)
bigint: remove unnecessary method implements
bigint: inlining small functions
bigint: un-ignore test_shr
bigint: Add benchmarks
extend file regexp to match files with embedded spaces.
Add _opt variants to str byte-conversion functions

Add _opt variants to from_bytes, from_bytes_owned, and from_bytes_slice.
These variants return an Option instead of raising a condition/failing.
auto merge of #8750 : kballard/rust/str-opt-variant, r=thestinger

Add _opt variants to from_bytes, from_bytes_owned, and from_bytes_slice.
These variants return an Option instead of raising a condition/failing.
Port creader.rs from oldvisit to <V:Visitor> trait API.
Remove occurrences of `oldvisit` text to improve grepping for old oldvisit.
Port middle/moves.rs from oldvisit to <V:Visitor> trait API.
Port middle/stack_check.rs from oldvisit to <V:Visitor> trait API.
std::str: bench tests for .split_iter()
Port typeck/check/vtable.rs from oldvisit to <V:Visitor> trait API.