Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: rust-lang/rust
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 5f44c653cff61d0f55f53e07a188f755c7acddd1
Choose a base ref
...
head repository: rust-lang/rust
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: e97ba83287a6f0f85cc9cc7a51ab309487e17038
Choose a head ref
  • 18 commits
  • 31 files changed
  • 7 contributors

Commits on Nov 19, 2017

  1. Configuration menu
    Copy the full SHA
    ad6324f View commit details
    Browse the repository at this point in the history

Commits on Nov 20, 2017

  1. Configuration menu
    Copy the full SHA
    0ea4b47 View commit details
    Browse the repository at this point in the history
  2. alloc_system: don’t assume MIN_ALIGN for small sizes, fix #45955

    The GNU C library (glibc) is documented to always allocate with an alignment
    of at least 8 or 16 bytes, on 32-bit or 64-bit platforms:
    https://www.gnu.org/software/libc/manual/html_node/Aligned-Memory-Blocks.html
    
    This matches our use of `MIN_ALIGN` before this commit.
    However, even when libc is glibc, the program might be linked
    with another allocator that redefines the `malloc` symbol and friends.
    (The `alloc_jemalloc` crate does, in some cases.)
    
    So `alloc_system` doesn’t know which allocator it calls,
    and needs to be conservative in assumptions it makes.
    
    The C standard says:
    
    https://port70.net/%7Ensz/c/c11/n1570.html#7.22.3
    > The pointer returned if the allocation succeeds is suitably aligned
    > so that it may be assigned to a pointer to any type of object
    > with a fundamental alignment requirement
    
    https://port70.net/~nsz/c/c11/n1570.html#6.2.8p2
    > A fundamental alignment is represented by an alignment less than
    > or equal to the greatest alignment supported by the implementation
    > in all contexts, which is equal to `_Alignof (max_align_t)`.
    
    `_Alignof (max_align_t)` depends on the ABI and doesn’t seem to have
    a clear definition, but it seems to match our `MIN_ALIGN` in practice.
    
    However, the size of objects is rounded up to the next multiple
    of their alignment (since that size is also the stride used in arrays).
    Conversely, the alignment of a non-zero-size object is at most its size.
    So for example it seems ot be legal for `malloc(8)` to return a pointer
    that’s only 8-bytes-aligned, even if `_Alignof (max_align_t)` is 16.
    SimonSapin committed Nov 20, 2017
    Configuration menu
    Copy the full SHA
    21d8992 View commit details
    Browse the repository at this point in the history
  3. alloc_jemalloc: don’t assume MIN_ALIGN for small sizes

    See previous commit’s message for what is expected of allocators
    in general, and jemalloc/jemalloc#1072
    for discussion of what jemalloc does specifically.
    SimonSapin committed Nov 20, 2017
    Configuration menu
    Copy the full SHA
    2dd268b View commit details
    Browse the repository at this point in the history
  4. Remove comment about a branch being optimized out, fix #45831

    Most often, this code is used through the `std::heap::Heap`
    and `#[gloabal_allocator]` indirection, so this branch is not
    optimized out anymore.
    SimonSapin committed Nov 20, 2017
    Configuration menu
    Copy the full SHA
    43e32b5 View commit details
    Browse the repository at this point in the history
  5. Properly handle reexport of foreign items.

    Handles `pub use` of `extern { fn, static, type }`. Also plug in some more
    `match` arms where handling `extern type` is reasonable.
    
    Fixed #46098.
    kennytm committed Nov 20, 2017
    Configuration menu
    Copy the full SHA
    f0fcdbc View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    c00eaa9 View commit details
    Browse the repository at this point in the history

Commits on Nov 22, 2017

  1. Configuration menu
    Copy the full SHA
    fc658f2 View commit details
    Browse the repository at this point in the history

Commits on Nov 24, 2017

  1. rustbuild: Update LLVM and enable ThinLTO

    This commit updates LLVM to fix #45511 (https://reviews.llvm.org/D39981) and
    also reenables ThinLTO for libtest now that we shouldn't hit #45768. This also
    opportunistically enables ThinLTO for libstd which was previously blocked
    (#45661) on test failures related to debuginfo with a presumed cause of #45511.
    
    Closes #45511
    alexcrichton committed Nov 24, 2017
    Configuration menu
    Copy the full SHA
    47498de View commit details
    Browse the repository at this point in the history
  2. Auto merge of #46111 - michaelwoerister:promote-green, r=nikomatsakis

    incr.comp.: Make sure we don't lose unused green results from the query cache.
    
    In its current implementation, the query result cache works by bulk-writing the results of all cacheable queries into a monolithic binary file on disk. Prior to this PR, we would potentially lose query results during this process because only results that had already been loaded into memory were serialized. In contrast, results that were not needed during the given compilation session were not serialized again.
    
    This PR will do one pass over all green `DepNodes` that represent a cacheable query and execute the corresponding query in order to make sure that the query result gets loaded into memory before cache serialization.
    
    In the future we might want to look into a serialization format the can be updated in-place so that we don't have to load unchanged results just for immediately storing them again.
    
    r? @nikomatsakis
    bors committed Nov 24, 2017
    Configuration menu
    Copy the full SHA
    a550f2d View commit details
    Browse the repository at this point in the history
  3. std: Flag Windows TLS dtor symbol as #[used]

    Turns out ThinLTO was internalizing this symbol and eliminating it. Worse yet if
    you compiled with LTO turns out no TLS destructors would run on Windows! The
    `#[used]` annotation should be a more bulletproof implementation (in the face of
    LTO) of preserving this symbol all the way through in LLVM and ensuring it makes
    it all the way to the linker which will take care of it.
    alexcrichton committed Nov 24, 2017
    Configuration menu
    Copy the full SHA
    95e9609 View commit details
    Browse the repository at this point in the history

Commits on Nov 25, 2017

  1. Auto merge of #46008 - alexcrichton:update-llvm, r=Mark-Simulacrum

    rustbuild: Update LLVM and enable ThinLTO
    
    This commit updates LLVM to fix #45511 (https://reviews.llvm.org/D39981) and
    also reenables ThinLTO for libtest now that we shouldn't hit #45768. This also
    opportunistically enables ThinLTO for libstd which was previously blocked
    (#45661) on test failures related to debuginfo with a presumed cause of #45511.
    
    Closes #45511
    bors committed Nov 25, 2017
    Configuration menu
    Copy the full SHA
    db16292 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    ca8ef26 View commit details
    Browse the repository at this point in the history
  3. Auto merge of #46117 - SimonSapin:min-align, r=alexcrichton

    allocators: don’t assume MIN_ALIGN for small sizes
    
    See individual commit messages.
    bors committed Nov 25, 2017
    Configuration menu
    Copy the full SHA
    59bf09d View commit details
    Browse the repository at this point in the history
  4. Auto merge of #46129 - kennytm:fix-46098-rustdoc-reexport-extern-type…

    …, r=GuillaumeGomez
    
    Properly handle reexport of foreign items.
    
    Handles `pub use` of `extern { fn, static, type }`. Also plug in some more `match` arms where handling `extern type` is reasonable.
    
    Fixed #46098.
    bors committed Nov 25, 2017
    Configuration menu
    Copy the full SHA
    cc6b88c View commit details
    Browse the repository at this point in the history
  5. Auto merge of #46191 - eddyb:better-late-than-never, r=nikomatsakis

    rustc: don't mark lifetimes as early-bound in the presence of impl Trait.
    
    This hack from the original implementation shouldn't be needed anymore, thanks to @cramertj.
    
    r? @nikomatsakis
    bors committed Nov 25, 2017
    Configuration menu
    Copy the full SHA
    2f47a9e View commit details
    Browse the repository at this point in the history
  6. rustbuild: Enable WebAssembly backend by default

    This commit alters how we compile LLVM by default enabling the WebAssembly
    backend. This then also adds the wasm32-unknown-unknown target to get compiled
    on the `cross` builder and distributed through rustup. Tests are not yet enabled
    for this target but that should hopefully be coming soon!
    alexcrichton committed Nov 25, 2017
    Configuration menu
    Copy the full SHA
    48996f9 View commit details
    Browse the repository at this point in the history
  7. Auto merge of #46115 - alexcrichton:add-wasm-target, r=kennytm

    rustbuild: Enable WebAssembly backend by default
    
    This commit alters how we compile LLVM by default enabling the WebAssembly
    backend. This then also adds the wasm32-unknown-unknown target to get compiled
    on the `cross` builder and distributed through rustup. Tests are not yet enabled
    for this target but that should hopefully be coming soon!
    bors committed Nov 25, 2017
    Configuration menu
    Copy the full SHA
    e97ba83 View commit details
    Browse the repository at this point in the history
Loading