librustc: Fix field offsets for packed structs.
Add test for passing/getting packed structs with ffi.
work around MinGW linker bug for ASLR on Windows

Closes #16514
Explain modulo in the guide.

Fixes #15954
Make comment about small bias in %.

Fixes #16354.
Fix underflow bug in core::str::Searcher::new for haystacks of length < 20
Add a test for the fix of issue 16589
A few minor documentation fixes
Rename Nullable::Some to Nullable::NotNull
auto merge of #16585 : steveklabnik/rust/random_remarks, r=pcwalton

Fixes #15954 and #16354.
auto merge of #16588 : thestinger/rust/aslr, r=pcwalton

Closes #16514
serialize: add json::{Integer,Floating} to parse large integers properly

[breaking-change]
auto merge of #16590 : nham/rust/str_searcher_underflow, r=alexcrichton

This incidentally fixes #16589, because it will cause `MatchIndices` to use `NaiveSearcher` instead of `TwoWaySearcher`, but I'm not sure #16589 should be closed until the underlying problem in `TwoWaySearcher` is found.
auto merge of #16241 : P1start/rust/doc-fixes, r=alexcrichton

For crates `alloc`–`collections`. This is mostly just updating a few function/method descriptions to use the indicative style. 

cc #4361; I’ve sort of assumed that the third-person indicative style has been decided on, but I could update this to use the imperative style if that’s preferred, or even update this to remove all function-style-related changes. (I think that standardising on one thing, even if it’s not the ‘best’ option, is still better than having no standard at all.) The indicative style seems to be more common in the Rust standard library at the moment, especially in the newer modules (e.g. `collections::vec`), more popular in the discussion about it, and also more popular amongst other languages (see https://github.com/rust-lang/rust/issues/4361#issuecomment-33470215).
Add fix for test on windows.
serialize: add json bounds checks, support for u64s, and tests
Don't fail if an object is keyed with a string and we're expecting a number
auto merge of #16201 : erickt/rust/json-ints, r=acrichto

This patch allows json to deserialize integers larger than 2^53 without losing precision. It does this by first keeping the integer portion of a number as a `i64`, and only casting it over to a `f64` if we have a decimal or exponent.
auto merge of #16584 : luqmana/rust/psfo, r=alexcrichton

Fixes #16574.
auto merge of #16603 : SiegeLord/rust/nullable, r=alexcrichton

A few reasons:

* `Nullable` is basically unused, save for one argument in the `glob` function in `liblibc`, so this change likely impacts nobody negatively. The constructors are never used, and I don't foresee people using them. The people implementing the glob functionality don't seem to be reaching for this POSIX `glob` function, so it seems unlikely to be used heavily.
* At the same time, the old name, `Some`, needlessly conflicted with the same re-exported name in the prelude, which impacted everybody who use glob imports with `libc`. Changing it to something else would simplify things greatly for those people.
* `NotNull` seemed like the best option (others included `Just`, `Valid`, etc. which all had somewhat different connotations than what this type was going for (even `Some` doesn't quite seem like the opposite of `Null`)). Other options included removing the type completely and adding a special, `glob`-specific type. This latter approach doesn't seem future-proof.

Overall, I feel like this is a mildly positive change.