- 27 6月, 2022 16 次提交
-
-
由 Nika Layzell 提交于
This greatly reduces round-trips to fetch relevant extra information about the token in proc macro code, and avoids RPC messages to create Group tokens.
-
由 Nika Layzell 提交于
This greatly reduces round-trips to fetch relevant extra information about the token in proc macro code, and avoids RPC messages to create Punct tokens.
-
由 bors 提交于
proc_macro/bridge: cache static spans in proc_macro's client thread-local state This is the second part of https://github.com/rust-lang/rust/pull/86822, split off as requested in https://github.com/rust-lang/rust/pull/86822#pullrequestreview-1008655452. This patch removes the RPC calls required for the very common operations of `Span::call_site()`, `Span::def_site()` and `Span::mixed_site()`. Some notes: This part is one of the ones I don't love as a final solution from a design standpoint, because I don't like how the spans are serialized immediately at macro invocation. I think a more elegant solution might've been to reserve special IDs for `call_site`, `def_site`, and `mixed_site` at compile time (either starting at 1 or from `u32::MAX`) and making reading a Span handle automatically map these IDs to the relevant values, rather than doing extra serialization. This would also have an advantage for potential future work to allow `proc_macro` to operate more independently from the compiler (e.g. to reduce the necessity of `proc-macro2`), as methods like `Span::call_site()` could be made to function without access to the compiler backend. That was unfortunately tricky to do at the time, as this was the first part I wrote of the patches. After the later part (#98188, #98189), the other uses of `InternedStore` are removed meaning that a custom serialization strategy for `Span` is easier to implement. If we want to go that path, we'll still need the majority of the work to split the bridge object and introduce the `Context` trait for free methods, and it will be easier to do after `Span` is the only user of `InternedStore` (after #98189).
-
由 bors 提交于
Rollup of 11 pull requests Successful merges: - #97140 (std: use an event-flag-based thread parker on SOLID) - #97295 ([rustc_parse] Forbid `let`s in certain places) - #97743 (make const_err show up in future breakage reports) - #97908 (Stabilize NonZero* checked operations constness.) - #98297 (Transform help popup into a pocket menu) - #98428 (macros: use typed identifiers in diag and subdiag derive) - #98528 (Respect --color when building rustbuild itself) - #98535 (Add regression test for generic const in rustdoc) - #98538 (Add a ui test for issue #91883) - #98540 (Add regression test for #87558) - #98541 (Update `std::alloc::System` doc example code style) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
-
由 Matthias Krüger 提交于
Update `std::alloc::System` doc example code style `return` on the last line of a block is unidiomatic so I don't think the example should be using that here
-
由 Matthias Krüger 提交于
Add regression test for #87558 Fixes #87558
-
由 Matthias Krüger 提交于
Add a ui test for issue #91883 closes #91883
-
由 Matthias Krüger 提交于
Add regression test for generic const in rustdoc Fixes #92859. r? ```@lcnr```
-
由 Matthias Krüger 提交于
Respect --color when building rustbuild itself Separated out from https://github.com/rust-lang/rust/pull/95503.
-
由 Matthias Krüger 提交于
macros: use typed identifiers in diag and subdiag derive Using typed identifiers instead of strings with the Fluent identifiers in the diagnostic and subdiagnostic derives - this enables the diagnostic derive to benefit from the compile-time validation that comes with typed identifiers, namely that use of a non-existent Fluent identifier will not compile. r? `````@oli-obk`````
-
由 Matthias Krüger 提交于
Transform help popup into a pocket menu Just like we moved the settings menu into a "pocket menu", it's doing the same to the help popup. You can test it [here](https://rustdoc.crud.net/imperio/help-pocket-menu/doc/foo/index.html) and here is a screenshot: ![Screenshot from 2022-06-20 20-58-29](https://user-images.githubusercontent.com/3050060/174663718-538e9d11-3bf9-48b2-8909-f9bfe75af135.png) r? ``````````@jsha``````````
-
由 Matthias Krüger 提交于
Stabilize NonZero* checked operations constness. Partial stabilization for #97547 (continued).
-
由 Matthias Krüger 提交于
make const_err show up in future breakage reports As tracked in https://github.com/rust-lang/rust/issues/71800, const_err should become a hard error Any Day Now (TM). I'd love to move forward with that sooner rather than later; it has been deny-by-default for many years and a future incompat lint since https://github.com/rust-lang/rust/pull/80394 (landed more than a year ago). Some CTFE errors are already hard errors since https://github.com/rust-lang/rust/pull/86194. But before we truly make it a hard error in all cases, we now have one more intermediate step we can take -- to make it show up in future breakage reports. Cc `````@rust-lang/wg-const-eval`````
-
由 Matthias Krüger 提交于
[rustc_parse] Forbid `let`s in certain places Currently only forbids in locals to resolve https://github.com/rust-lang/rust/pull/94927#issuecomment-1099605024 but feel free to point any other places.
-
由 Matthias Krüger 提交于
std: use an event-flag-based thread parker on SOLID `Mutex` and `Condvar` are being replaced by more efficient implementations, which need thread parking themselves (see #93740). Therefore, the generic `Parker` needs to be replaced on all platforms where the new lock implementation will be used, which, after #96393, are SOLID, SGX and Hermit (more PRs coming soon). SOLID, conforming to the [μITRON specification](http://www.ertl.jp/ITRON/SPEC/FILE/mitron-400e.pdf), has event flags, which are a thread parking primitive very similar to `Parker`. However, they do not make any atomic ordering guarantees (even though those can probably be assumed) and necessitate a system call even when the thread token is already available. Hence, this `Parker`, like the Windows parker, uses an extra atomic state variable. I future-proofed the code by wrapping the event flag in a `WaitFlag` structure, as both SGX and Hermit can share the Parker implementation, they just have slightly different primitives (SGX uses signals and Hermit has a thread blocking API). `````@kawadakk````` I assume you are the target maintainer? Could you test this for me?
-
由 Nika Layzell 提交于
-
- 26 6月, 2022 24 次提交
-
-
由 Lukas Wirth 提交于
-
由 Takayuki Maeda 提交于
-
由 Takayuki Maeda 提交于
-
由 bors 提交于
update Miri Fixes https://github.com/rust-lang/rust/issues/98493 (this is a flaky test, that's why the toolstate already says Miri is fixed) r? `@ghost` Cc `@rust-lang/miri`
-
由 Guillaume Gomez 提交于
-
由 Joshua Nelson 提交于
-
由 scottmcm 提交于
-
由 bors 提交于
Rollup of 8 pull requests Successful merges: - #98371 (Fix printing `impl trait` under binders) - #98385 (Work around llvm 12's memory ordering restrictions.) - #98474 (x.py: Support systems with only `python3` not `python`) - #98488 (Bump RLS to latest master on rust-lang/rls) - #98491 (Fix backtrace UI test when panic=abort is used) - #98502 (Fix source sidebar hover in ayu theme) - #98509 (diagnostics: consider parameter count when suggesting smart pointers) - #98513 (Fix LLVM rebuild with download-ci-llvm.) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
-
由 Yuki Okushi 提交于
Fix LLVM rebuild with download-ci-llvm. This fixes an issue where updating a local checkout that includes a change in `src/version` causes a linking failure. The cause is that the `rustc_llvm` build script uses `rerun-if-changed` of `llvm-config` to know if it needs to rerun. Cargo only compares the timestamp of the last time the build script to the file. However, extracting the tar files retains the timestamps in the tarball which may be some time in the past. Since `src/version` is included in the LLVM `.so` filename, `rustc` attempts to load the wrong shared library since the `rustc_llvm` build script doesn't rerun. https://github.com/rust-lang/cargo/issues/10791 contains a more detailed explanation. The solution here is a hack which updates the timestamp of `llvm-config` to the current time when it is extracted. This is a bit of a hack, but seems to be the best solution I can think of until https://github.com/rust-lang/cargo/issues/10791 is fixed. There are likely several other situations where this is a problem (such as using system LLVM), and this isn't really a complete fix. Note that apple platforms are not directly affected by this problem because they don't have a version in the dylib filename. How to test this: 1. On a linux host, enable download-ci-llvm 2. Check out 7036449c (the commit just before the last version bump) 3. `./x.py build library/std` 4. Check out 5f015a24 (the commit that bumped the version) 5. `./x.py build library/std` Fixes #98495
-
由 Yuki Okushi 提交于
diagnostics: consider parameter count when suggesting smart pointers Fixes #96834
-
由 Yuki Okushi 提交于
Fix source sidebar hover in ayu theme In the screenshot below, `rc.rs` should be orange: ![Screenshot from 2022-06-25 22-24-06](https://user-images.githubusercontent.com/3050060/175789532-99e8781d-2e62-43f7-bbd9-1b1151e1f8c1.png) It's because the CSS selector was not precise enough and was "overloaded" with another one. This PR fixes it and adds a test for the colors in the source sidebar. cc `@jsha` r? `@notriddle`
-
由 Yuki Okushi 提交于
Fix backtrace UI test when panic=abort is used The function `contains_verbose_expected` is only used when the panic strategy is not abort, so it caused a warning when it was abort, which made the UI test failed on stderr comparison.
-
由 Yuki Okushi 提交于
Bump RLS to latest master on rust-lang/rls Of primary interest, this merges rust-lang/rls@ece09b88c0365947af79c0ffdeea02bc6c1eec25 into rust-lang/rust, which brings in the changes that fix RLS tests broken by #97853. #97853 already introduced that commit's changes (under rust-lang/rls@27f4044df03d15c7c38a483c3e4635cf4f51807d) but without putting those changes on rust-lang/rls as a branch, so we ended up with an orphan commit that caused trouble when updating submodules in rust-lang/rust. This commit, once merged into rust-lang/rust, should continue to let RLS tests to pass on rust-lang/rust's side and move us back into a healthy state where tip of the submodule points to a valid master commit in the rust-lang/rls repository. cc https://github.com/rust-lang/rust/issues/98451, but not marking as fixed as I believe we need to add verification to prevent future oversights.
-
由 Yuki Okushi 提交于
x.py: Support systems with only `python3` not `python` Fixes #71818 without the pitfalls so far described in previous attempts.
-
由 Yuki Okushi 提交于
Work around llvm 12's memory ordering restrictions. Older llvm has the pre-C++17 restriction on success and failure memory ordering, requiring the former to be at least as strong as the latter. So, for llvm 12, this upgrades the success ordering to a stronger one if necessary. See https://github.com/rust-lang/rust/issues/68464
-
由 Yuki Okushi 提交于
Fix printing `impl trait` under binders Before, we would render `impl for<'a> Trait<'a>` like `impl Trait<for<'a> 'a>`, lol.
-
由 Ralf Jung 提交于
-
由 bors 提交于
compiletest: strip debuginfo by default for mode=ui This reduces occupied disk space, for example for src/test/ui it drops from 1972mb to 132mb (x86_64-pc-windows-msvc). Individual tests that require debuginfo/symbols should turn this option off (as in fixed tests).
-
由 Eric Huss 提交于
-
由 Michael Howell 提交于
-
由 bors 提交于
Fully remove submodule handling from bootstrap.py These submodules were previously updated in python because Cargo gives a hard error if toml files are missing from the workspace: ``` error: failed to load manifest for workspace member `/home/jnelson/rust-lang/rust/src/tools/rls` Caused by: failed to read `/home/jnelson/rust-lang/rust/src/tools/rls/Cargo.toml` Caused by: No such file or directory (os error 2) failed to run: /home/jnelson/rust-lang/rust/build/x86_64-unknown-linux-gnu/stage0/bin/cargo build --manifest-path /home/jnelson/rust-lang/rust/src/bootstrap/Cargo.toml ``` However, bootstrap doesn't actually need to be part of the workspace. Remove it so we can move submodule handling fully to Rust, avoiding duplicate code between Rust and Python. Note that this does break `cargo run`; it has to be `cd src/bootstrap && cargo run` now. Given that we're planning to make the main entrypoint a shell script (or rust binary), I think this is a good tradeoff for reduced complexity in bootstrap.py. To get this working, I also had to remove support for vendoring when using the git sources, because `cargo vendor` requires all submodules to be checked out. I think this is ok; people who care about this are likely already using the pre-vendored `rustc-src` tarball. Fixes https://github.com/rust-lang/rust/issues/90764. Helps with #94829
-
由 Guillaume Gomez 提交于
-
由 Ralf Jung 提交于