-
Notifications
You must be signed in to change notification settings - Fork 13.7k
Comparing changes
Open a pull request
base repository: rust-lang/rust
base: 5f44c653cff61d0f55f53e07a188f755c7acddd1
head repository: rust-lang/rust
compare: e97ba83287a6f0f85cc9cc7a51ab309487e17038
- 18 commits
- 31 files changed
- 7 contributors
Commits on Nov 19, 2017
-
Configuration menu - View commit details
-
Copy full SHA for ad6324f - Browse repository at this point
Copy the full SHA ad6324fView commit details
Commits on Nov 20, 2017
-
Configuration menu - View commit details
-
Copy full SHA for 0ea4b47 - Browse repository at this point
Copy the full SHA 0ea4b47View commit details -
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.
Configuration menu - View commit details
-
Copy full SHA for 21d8992 - Browse repository at this point
Copy the full SHA 21d8992View commit details -
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.
Configuration menu - View commit details
-
Copy full SHA for 2dd268b - Browse repository at this point
Copy the full SHA 2dd268bView commit details -
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.
Configuration menu - View commit details
-
Copy full SHA for 43e32b5 - Browse repository at this point
Copy the full SHA 43e32b5View commit details -
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.
Configuration menu - View commit details
-
Copy full SHA for f0fcdbc - Browse repository at this point
Copy the full SHA f0fcdbcView commit details -
Configuration menu - View commit details
-
Copy full SHA for c00eaa9 - Browse repository at this point
Copy the full SHA c00eaa9View commit details
Commits on Nov 22, 2017
-
Configuration menu - View commit details
-
Copy full SHA for fc658f2 - Browse repository at this point
Copy the full SHA fc658f2View commit details
Commits on Nov 24, 2017
-
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
Configuration menu - View commit details
-
Copy full SHA for 47498de - Browse repository at this point
Copy the full SHA 47498deView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for a550f2d - Browse repository at this point
Copy the full SHA a550f2dView commit details -
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.
Configuration menu - View commit details
-
Copy full SHA for 95e9609 - Browse repository at this point
Copy the full SHA 95e9609View commit details
Commits on Nov 25, 2017
-
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
Configuration menu - View commit details
-
Copy full SHA for db16292 - Browse repository at this point
Copy the full SHA db16292View commit details -
Auto merge of #46081 - GuillaumeGomez:fix-path-search, r=QuietMisdreavus
Fix path search Fixes #46015. r? @QuietMisdreavus
Configuration menu - View commit details
-
Copy full SHA for ca8ef26 - Browse repository at this point
Copy the full SHA ca8ef26View commit details -
Auto merge of #46117 - SimonSapin:min-align, r=alexcrichton
allocators: don’t assume MIN_ALIGN for small sizes See individual commit messages.
Configuration menu - View commit details
-
Copy full SHA for 59bf09d - Browse repository at this point
Copy the full SHA 59bf09dView commit details -
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.
Configuration menu - View commit details
-
Copy full SHA for cc6b88c - Browse repository at this point
Copy the full SHA cc6b88cView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 2f47a9e - Browse repository at this point
Copy the full SHA 2f47a9eView commit details -
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!
Configuration menu - View commit details
-
Copy full SHA for 48996f9 - Browse repository at this point
Copy the full SHA 48996f9View commit details -
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!
Configuration menu - View commit details
-
Copy full SHA for e97ba83 - Browse repository at this point
Copy the full SHA e97ba83View commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff 5f44c653cff61d0f55f53e07a188f755c7acddd1...e97ba83287a6f0f85cc9cc7a51ab309487e17038