- 26 9月, 2020 18 次提交
-
-
由 est31 提交于
-
由 bors 提交于
Rollup of 15 pull requests Successful merges: - #76932 (Relax promises about condition variable.) - #76973 (Unstably allow assume intrinsic in const contexts) - #77005 (BtreeMap: refactoring around edges) - #77066 (Fix dest prop miscompilation around references) - #77073 (dead_code: look at trait impls even if they don't contain items) - #77086 (Include libunwind in the rust-src component.) - #77097 (Make [].as_[mut_]ptr_range() (unstably) const.) - #77106 (clarify that `changelog-seen = 1` goes to the beginning of config.toml) - #77120 (Add `--keep-stage-std` to `x.py` for keeping only standard library artifacts) - #77126 (Invalidate local LLVM cache less often) - #77146 (Install std for non-host targets) - #77155 (remove enum name from ImplSource variants) - #77176 (Removing erroneous semicolon in transmute documentation) - #77183 (Allow multiple allow_internal_unstable attributes) - #77189 (Remove extra space from vec drawing) Failed merges: r? `@ghost`
-
由 Jonas Schievink 提交于
Remove extra space from vec drawing
-
由 Jonas Schievink 提交于
Allow multiple allow_internal_unstable attributes Fixes #77088
-
由 Jonas Schievink 提交于
Removing erroneous semicolon in transmute documentation There is a semicolon in the example code that causes the expected value to not be returned.
-
由 Jonas Schievink 提交于
remove enum name from ImplSource variants This is quite a lot cleaner in my opinion.
-
由 Jonas Schievink 提交于
Install std for non-host targets It seems reasonable that when configuring various targets you'd expect all of them to get std installed, even if you're not building compiler toolchains for each of those. cc #76990 r? @alexcrichton
-
由 Jonas Schievink 提交于
Invalidate local LLVM cache less often This avoids a download of LLVM after every rebase. The downside to this is that if we land some patch affecting LLVM built in CI that breaks this option, but that PR does not update the LLVM submodule, we'll likely not notice until the next update -- but this seems unlikely to happen in practice and I am not personally worried about it. r? @alexcrichton
-
由 Jonas Schievink 提交于
Add `--keep-stage-std` to `x.py` for keeping only standard library artifacts Unlike `--keep-stage 0`, `--keep-stage-std 0` will allow the stage 0 compiler artifacts (i.e., stage1/bin/rustc) to be rebuilt if it has changed. This allows contributors to iterate on later stages of the compiler in tandem with the standard library without needing to to rebuild the entire compiler. I often run into this when working on const-checking, since I may need to add a feature gate or make a small tweak to the standard library.
-
由 Jonas Schievink 提交于
clarify that `changelog-seen = 1` goes to the beginning of config.toml Fixes #77105
-
由 Jonas Schievink 提交于
Make [].as_[mut_]ptr_range() (unstably) const. Gated behind `const_ptr_offset`, as suggested by https://github.com/rust-lang/rust/issues/65807#issuecomment-697229404 This also marks `[].as_mut_ptr()` as const, because it's used by `as_mut_ptr_range`. I gated it behind the same feature, because I figured it's not worth adding a separate tracking issue for const `as_mut_ptr`.
-
由 Jonas Schievink 提交于
Include libunwind in the rust-src component. Some targets, such as musl, need the libunwind source to build the unwind crate (referenced [here](https://github.com/rust-lang/rust/blob/0da58007451a154da2480160429e1604a1f5f0ec/library/unwind/build.rs#L142)). Fixes rust-lang/wg-cargo-std-aware#59
-
由 Jonas Schievink 提交于
dead_code: look at trait impls even if they don't contain items fixes #70225
-
由 Jonas Schievink 提交于
Fix dest prop miscompilation around references Closes https://github.com/rust-lang/rust/issues/77002
-
由 Jonas Schievink 提交于
BtreeMap: refactoring around edges Parts chipped off a more daring effort, that the btree benchmarks judge to be performance-neutral. r? @Mark-Simulacrum
-
由 Jonas Schievink 提交于
Unstably allow assume intrinsic in const contexts Not sure much about this usage because there are concerns about [blocking optimization][1] and [slowing down LLVM][2] when using `assme` intrinsic in inline functions. But since Oli suggested in https://github.com/rust-lang/rust/issues/76960#issuecomment-695772221, here we are. [1]: https://github.com/rust-lang/rust/pull/54995#issuecomment-429302709 [2]: https://github.com/rust-lang/rust/issues/49572#issuecomment-589615423
-
由 Jonas Schievink 提交于
Relax promises about condition variable. For quite a while now, there have been plans to at some point use parking_lot or some other more efficient implementation of mutexes and condition variables. Right now, Mutex and CondVar both Box the 'real' mutex/condvar inside, to give it a stable address. This was done because implementations like pthread and Windows critical sections may not be moved. More efficient implementations based on futexes, WaitOnAddress, Windows SRW locks, parking_lot, etc. may be moved (while not borrowed), so wouldn't need boxing. However, not boxing them (which would be great goal to achieve), breaks a promise std currently makes about CondVar. CondVar promises to panic when used with different mutexes, to ensure consistent behaviour on all platforms. To this check, a mutex is considered 'the same' if the address of the 'real mutex' in the Box is the same. This address doesn't change when moving a `std::mutex::Mutex` object, effectively giving it an identity that survives moves of the Mutex object. If we ever switch to a non-boxed version, they no longer carry such an identity, and this check can no longer be made. Four options: 1. Always box mutexes. 2. Add a `MutexId` similar to `ThreadId`. Making mutexes bigger, and making it hard to ever have a `const fn new` for them. 3. Making the requirement of CondVar stricter: panic if the Mutex object itself moved. 4. Making the promise of CondVar weaker: don't promise to panic. 1, 2, and 3 seem like bad options. This PR updates the documentation for 4.
-
由 bors 提交于
Remove duplicated SimplifyCfg pass
-
- 25 9月, 2020 22 次提交
-
-
由 Ivan Tham 提交于
-
由 bors 提交于
Ignore ZST offsets when deciding whether to use Scalar/ScalarPair layout This is important because Scalar/ScalarPair layout previously would not be used if any ZST had nonzero offset. For example, before this change, only `((), u128)` would be laid out like `u128`, not `(u128, ())`. Fixes #63244
-
由 Dániel Buga 提交于
Co-authored-by: Nvarkor <github@varkor.com>
-
由 bors 提交于
Update chalk to 0.28.0
-
由 bors 提交于
perf: move cold path of `process_obligations` into a separate function cc #76575 This probably won't matter too much in the long run once #69218 is merged so we may not want to merge this. r? `@ecstatic-morse`
-
由 Stein Somers 提交于
-
由 Stein Somers 提交于
-
由 Stein Somers 提交于
-
由 bors 提交于
Fix #76803 miscompilation Fixes #76803 Seems like it was an oversight that the discriminant value being set was not compared to the target value from the SwitchInt, as a comment says this is a requirement for the optimization to be sound. r? `@wesleywiser` since you are probably familiar with the optimization and made #76837 to workaround the bug
-
由 Austin Keeley 提交于
-
由 bors 提交于
Rollup of 15 pull requests Successful merges: - #75438 (Use adaptive SVG favicon for rustdoc like other rust sites) - #76304 (Make delegation methods of `std::net::IpAddr` unstably const) - #76724 (Allow a unique name to be assigned to dataflow graphviz output) - #76978 (Documented From impls in std/sync/mpsc/mod.rs) - #77044 (Liballoc bench vec use mem take not replace) - #77050 (Typo fix: "satsify" -> "satisfy") - #77074 (add array::from_ref) - #77078 (Don't use an if guard to check equality with a constant) - #77079 (Use `Self` in docs when possible) - #77081 (Merge two almost identical match arms) - #77121 (Updated html_root_url for compiler crates) - #77136 (Suggest `const_mut_refs`, not `const_fn` for mutable references in `const fn`) - #77160 (Suggest `const_fn_transmute`, not `const_fn`) - #77164 (Remove workaround for deref issue that no longer exists.) - #77165 (Followup to #76673) Failed merges: r? `@ghost`
-
由 Jonas Schievink 提交于
Followup to #76673 Resolves https://github.com/rust-lang/rust/pull/76673#discussion_r494426303 r? @tmiasko
-
由 Jonas Schievink 提交于
Remove workaround for deref issue that no longer exists. The double underscores were used to work around issue #12808, which was solved in 2016.
-
由 Jonas Schievink 提交于
Suggest `const_fn_transmute`, not `const_fn` More fallout from #76850 in the vein of #77134. The fix is the same. I looked through the structured errors file and didn't see any more of this kind of diagnostics bug. r? @oli-obk
-
由 Jonas Schievink 提交于
Suggest `const_mut_refs`, not `const_fn` for mutable references in `const fn` Resolves #77134. Prior to #76850, most uses of `&mut` in `const fn` ~~required~~ involved two feature gates, `const_mut_refs` and `const_fn`. The first allowed all mutable borrows of locals. The second allowed only locals, arguments and return values whose types contained `&mut`. I switched the second check to the `const_mut_refs` gate. However, I forgot update the error message with the new suggestion. Alternatively, we could revert to having two different feature gates for this. OP's code never borrows anything mutably, so it didn't need `const_mut_refs` in the past, only `const_fn`. I'd prefer to keep everything under a single gate, however. r? @oli-obk
-
由 Jonas Schievink 提交于
Updated html_root_url for compiler crates Closes #77103 r? @jyn514
-
由 Jonas Schievink 提交于
Merge two almost identical match arms
-
由 Jonas Schievink 提交于
Use `Self` in docs when possible Fixes #76542. I used `rg '\s*//[!/]\s+fn [\w_]+\(&?self, ' .` in `library/` to find instances, I found some with that and some by manually checking. @rustbot modify labels: C-enhancement T-doc
-
由 Jonas Schievink 提交于
Don't use an if guard to check equality with a constant Match on it directly instead
-
由 Jonas Schievink 提交于
add array::from_ref mirrors the methods in `std::slice` with the same name. I guess this method previously didn't exist as there was close to no reason to create an array of size `1`. This will change due to const generics in the near future.
-
由 Jonas Schievink 提交于
Typo fix: "satsify" -> "satisfy"
-