rustc: Remove f{32,64} % from the language

This commit removes the compiler support for floating point modulus operations,
as well as from the language. An implementation for this operator is now
required to be provided by libraries.

Floating point modulus is rarely used, doesn't exist in C, and is always lowered
to an fmod library call by LLVM, and LLVM is considering removing support
entirely.

Closes #12278
Refactor ty_vec represent &[T] as &([T])

Refactores all uses of ty_vec and associated things to remove the vstore abstraction (still used for strings, for now). Pointers to vectors are stored as ty_rptr or ty_uniq wrapped around a ty_vec. There are no user-facing changes. Existing behaviour is preserved by special-casing many instances of pointers containing vectors. Hopefully with DST most of these hacks will go away. For now it is useful to leave them hanging around rather than abstracting them into a method or something.

Closes #13554.
Minor changes in std::mem

Fixed a typo in the documentation of std::mem, and refactored a function to use match instead of if.

Also added a FIXME to the benchmarks at the end of the file stating that they should be moved to another place, because they have nothing to do with `mem` (see https://github.com/mozilla/rust/issues/13642)
Added run_flags directive to `compiletest`

Now it is possible to specify run-flags in tests. For example, by using `run-flags: --bench` the Bencher is run.
rustc: feature gates errors should use the new attribute syntax
auto merge of #13643 : aochagavia/rust/pr-2, r=alexcrichton

Fixed a typo in the documentation of std::mem, and refactored a function to use match instead of if.

Also added a FIXME to the benchmarks at the end of the file stating that they should be moved to another place, because they have nothing to do with `mem` (see https://github.com/mozilla/rust/issues/13642)
auto merge of #13410 : alexcrichton/rust/issue-12278, r=pcwalton

This commit removes the compiler support for floating point modulus operations,
as well as from the language. An implementation for this operator is now
required to be provided by libraries.

Floating point modulus is rarely used, doesn't exist in C, and is always lowered
to an fmod library call by LLVM, and LLVM is considering removing support
entirely.

Closes #12278
rustc: Improve errors on private static methods

This gives a better NOTE error message when a privacy error is encountered with
a static method. Previously no note was emitted (due to lack of support), but
now a note is emitted indicating that the struct/enum itself is private.

Closes #13641
rustdoc: Display tuple structs correctly

The fields of tuple structs recently gained the ability to have privacy
associated with them, but rustdoc was not updated accodingly. This moves the
struct field filtering to the rendering phase in order to preserve the ordering
of struct fields to allow tuple structs to have their private fields printed as
underscores.

Closes #13594
auto merge of #13636 : nick29581/rust/ty_vec, r=pcwalton

Refactors all uses of ty_vec and associated things to remove the vstore abstraction (still used for strings, for now). Pointers to vectors are stored as ty_rptr or ty_uniq wrapped around a ty_vec. There are no user-facing changes. Existing behaviour is preserved by special-casing many instances of pointers containing vectors. Hopefully with DST most of these hacks will go away. For now it is useful to leave them hanging around rather than abstracting them into a method or something.

Closes #13554.
auto merge of #13639 : alexcrichton/rust/rustdoc-tuple-fields, r=sfackler

The fields of tuple structs recently gained the ability to have privacy
associated with them, but rustdoc was not updated accodingly. This moves the
struct field filtering to the rendering phase in order to preserve the ordering
of struct fields to allow tuple structs to have their private fields printed as
underscores.

Closes #13594
auto merge of #13647 : alexcrichton/rust/issue-13641, r=pcwalton

This gives a better NOTE error message when a privacy error is encountered with
a static method. Previously no note was emitted (due to lack of support), but
now a note is emitted indicating that the struct/enum itself is private.

Closes #13641
Fix call order to be the same as definition order
auto merge of #13650 : gmjosack/rust/master, r=alexcrichton

Feels strange to have the order be arbitrary here. Order them the same.
auto merge of #13652 : erickt/rust/master, r=alexcrichton
shootout-threadring rewrite

* simplify the code
* remove trace to satisfy official shootout test
* use libgreen to improve performances
auto merge of #13553 : aochagavia/rust/pr, r=alexcrichton

Now it is possible to specify run-flags in tests. For example, by using `run-flags: --bench` the Bencher is run.
auto merge of #13656 : TeXitoi/rust/shootout-threadring-rewrite, r=alexcrichton

* simplify the code
* remove trace to satisfy official shootout test
* use libgreen to improve performances
added some inline annotations, since these functions showed up as ~1-2% each in perf.