about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorLines
2023-03-21Rollup merge of #109124 - ferrocene:pa-compression-mode, r=Mark-Simulacrumnils-47/+127
Add `dist.compression-profile` option to control compression speed PR #108534 reduced the size of compressed archives, but (as expected) it also resulted in way longer compression times and memory usage during compression. It's desirable to keep status quo (smaller archives but more CI usage), but it should also be configurable so that downstream users don't have to waste that much time on CI. As a data point, this resulted in doubling the time of Ferrocene's dist jobs, and required us to increase the RAM allocation for one of such jobs. This PR adds a new `config.toml` setting, `dist.compression-profile`. The values can be: * `fast`: equivalent to the gzip and xz preset of "1" * `balanced`: equivalent to the gzip and xz preset of "6" (the CLI defaults as far as I'm aware) * `best`: equivalent to the gzip present of "9", and our custom xz profile The default has also been moved back to `balanced`, to try and avoid the compression time regression for downstream users. I don't feel too strongly on the default, and I'm open to changing it. Also, for the `best` profile the XZ settings do not match the "9" preset used by the CLI, and it might be confusing. Should we create a `custom-rustc-ci`/`ultra` profile for that? r? ``@Mark-Simulacrum``
2023-03-21Rollup merge of #108896 - BoxyUwU:new_solver_add_goal_fn, r=lcnrnils-443/+531
new solver: make all goal evaluation able to be automatically rerun It is generally wrong to call `evaluate_goal` multiple times or `evaluate_goal` and `evaluate_all` for the same `QueryResult` without correctly handling rerunning the goals when inference makes progress. Not doing so will result in the assertion in `evaluate_goal` firing because rerunning the goal will lead to a more accurate `QueryResult`. Currently there are lots of places that get this wrong and generally it is complex and error prone to handle correctly everywhere. This PR introduces a way to add goals to the `EvalCtxt` and then run all the added goals in a loop so that `evaluate_goal`/`evaluate_all` is not necessary to call manually. There are a few complications for making everything work "right": 1. the `normalizes-to` hack that replaces the rhs with an unconstrained infer var requires special casing in the new `try_evaluate_added_goals` function similar to how `evaluate_goal`'s assertion special cases that hack. 2. `assemble_candidates_after_normalizing_self_ty`'s normalization step needs to be reran for each candidate otherwise the found candidates will potentially get a more accurate `QueryResult` when rerunning the projection/trait goal which can effect the `QueryResult` of the projection/trait goal. This is implemented via `EvalCtxt::probe`'s closure's `EvalCtxt` inheriting the added goals of the `EvalCtxt` that `probe` is called on, allowing us to add goals in a probe, and then enter a nested probe for each candidate and evaluate added goals which include the normalization step's goals. I made `make_canonical_response` evaluate added goals so that it will be hard to mess up the impl of the solver by forgetting to evaluate added goals. Right now the only way to mess this up would be to call `response_no_constraints` (which from the name is obviously weird). The visibility of `evaluate_goal` means that it can be called from various `compute_x_goal` or candidate assembly functions, this is generally wrong and we should never call `evaluate_goal` manually, instead we should be calling `add_goal`/`add_goals`. This is solved by moving `evaluate_goal` `evaluate_canonical_goal` and `compute_goal` into `eval_ctxt`'s module and making them private so they cannot be called from elsewhere, forcing people to call `add_goal/s` and `evaluate_added_goals_and_make_canonical_resposne`/`try_evaluate_added_goals` --- Other changes: - removed the `&& false` that was introduced to the assertion in `evaluate_goal` in #108839 - remove a `!self.did_overflow()` requirement in `search_graph.is_empty()` which causes goals that overflow to ICE - made `EvalCtxt::eq` take `&mut self` and add all the nested goals via `add_goals` instead of returning them as 99% of call sites just immediately called `EvalCtxt::add_goals` manually. r? `````@lcnr`````
2023-03-21Rollup merge of #108842 - compiler-errors:non_lifetime_binders-object-safe, ↵nils-3/+111
r=b-naber Enforce non-lifetime-binders in supertrait preds are not object safe We can't construct vtables for these supertraits.
2023-03-21Rollup merge of #108326 - tmiasko:read-buf, r=thomccnils-31/+250
Implement read_buf for a few more types Implement read_buf for TcpStream, Stdin, StdinLock, ChildStdout, ChildStderr (and internally for AnonPipe, Handle, Socket), so that it skips buffer initialization. The other provided methods like read_to_string and read_to_end are implemented in terms of read_buf and so benefit from the optimization as well. This commit also implements read_vectored and is_read_vectored where applicable.
2023-03-21Rollup merge of #106434 - clubby789:document-sum-result, r=the8472nils-4/+42
Document `Iterator::sum/product` for Option/Result Closes #105266 We already document the similar behavior for `collect()` so I believe it makes sense to add this too. The Option/Result implementations *are* documented on their respective pages and the page for `Sum`, but buried amongst many other trait impls which doesn't make it very discoverable. `````@rustbot````` label +A-docs
2023-03-21change default to fast for everyone but the user profilePietro Albini-2/+6
2023-03-21Auto merge of #106967 - saethlin:remove-vec-as-ptr-assume, r=thomccbors-11/+21
Remove the assume(!is_null) from Vec::as_ptr At a guess, this code is leftover from LLVM was worse at keeping track of the niche information here. In any case, we don't need this anymore: Removing this `assume` doesn't get rid of the `nonnull` attribute on the return type.
2023-03-21Auto merge of #108717 - TDecki:dec2flt-inline, r=thomccbors-1/+18
Add inlining annotations in `dec2flt`. Currently, the combination of `dec2flt` being generic and the `FromStr` implementaions containing inline anttributes causes massive amounts of assembly to be generated whenever these implementation are used. In addition, the assembly has calls to function which ought to be inlined, but they are not (even when using lto). This Pr fixes this.
2023-03-21Auto merge of #108262 - ChrisDenton:libntdll, r=Mark-Simulacrumbors-118/+114
Distribute libntdll.a with windows-gnu toolchains This allows the OS loader to load essential functions (e.g. read/write file) at load time instead of lazily doing so at runtime. r? libs
2023-03-21Add ntdll to run-make-fulldeps extraflagsChris Denton-2/+2
2023-03-20Auto merge of #109046 - Zoxc:split-execute-job, r=cjgillot,michaelwoeristerbors-30/+42
Split `execute_job` into `execute_job_incr` and `execute_job_non_incr` `execute_job` was a bit large, so this splits it in 2. Performance was neutral locally, but this may affect bootstrap times.
2023-03-20Enforce non-lifetime-binders in supertrait preds are not object safeMichael Goulet-3/+111
2023-03-20Auto merge of #106610 - euclio:windows-rs, r=ChrisDentonbors-280/+379
migrate compiler, bootstrap and compiletest to windows-rs This PR migrates the compiler, bootstrap, and compiletest to use [windows-rs](https://github.com/microsoft/windows-rs) instead of winapi-rs. windows-rs is the bindings crate provided by Microsoft, and is actively maintained compared to winapi-rs. Not all ecosystem crates have migrated over yet, so there will be a period of time where both crates are used. windows-rs also provides some nice ergonomics over winapi-rs to convert return values to `Result`s (which found a case where we forgot to check the return value of `CreateFileW`).
2023-03-20Auto merge of #109384 - matthiaskrgr:rollup-hu348gs, r=matthiaskrgrbors-260/+460
Rollup of 8 pull requests Successful merges: - #109170 (Set `CMAKE_SYSTEM_NAME` for Linux targets) - #109266 (rustdoc: Correctly merge import's and its target's docs in one more case) - #109267 (Add tests for configure.py) - #109273 (Make `slice::is_sorted_by` implementation nicer) - #109277 (Fix generics_of for impl's RPITIT synthesized associated type) - #109307 (Ignore `Inlined` spans when computing caller location.) - #109364 (Only expect a GAT const param for `type_of` of GAT const arg) - #109365 (Update mdbook) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
2023-03-20migrate compiler, bootstrap, and compiletest to windows-rsAndy Russell-280/+379
2023-03-20Add example for `Option::product` and `Result::product`clubby789-4/+36
2023-03-20Auto merge of #108524 - Zoxc:node-backtrace, r=cjgillotbors-51/+64
Optimize dep node backtrace and ignore fatal errors This attempts to optimize https://github.com/rust-lang/rust/pull/91742 while also passing through fatal errors. r? `@cjgillot`
2023-03-20Rollup merge of #109365 - ehuss:update-mdbook, r=Mark-SimulacrumMatthias Krüger-3/+3
Update mdbook This updates mdbook from 0.4.25 to 0.4.28. Changelog: https://github.com/rust-lang/mdBook/blob/master/CHANGELOG.md#mdbook-0428 The primary changes are some interaction fixes for Mobile Safari and removing custom scrollbars on webkit browsers, along with a few other fixes.
2023-03-20Rollup merge of #109364 - compiler-errors:gat-const-arg, r=BoxyUwUMatthias Krüger-28/+69
Only expect a GAT const param for `type_of` of GAT const arg IDK why we were account for both `is_ty_or_const` instead of just for a const param, since we're computing the `type_of` a const param specifically. Fixes #109300
2023-03-20Rollup merge of #109307 - cjgillot:inline-location, r=compiler-errorsMatthias Krüger-5/+37
Ignore `Inlined` spans when computing caller location. Fixes https://github.com/rust-lang/rust/issues/105538
2023-03-20Rollup merge of #109277 - spastorino:new-rpitit-14, r=compiler-errorsMatthias Krüger-12/+60
Fix generics_of for impl's RPITIT synthesized associated type The only useful commit is the last one. This makes `generics_of` for the impl side RPITIT copy from the trait's associated type and avoid the fn on the impl side which was previously wrongly used. This solution is better but we still need to fix resolution of the generated generics. r? ``@compiler-errors``
2023-03-20Rollup merge of #109273 - WaffleLapkin:slice_is_sorted_by_array_windows, ↵Matthias Krüger-4/+2
r=scottmcm Make `slice::is_sorted_by` implementation nicer Just tweak implementation a little :) r? `@thomcc`
2023-03-20Rollup merge of #109267 - jyn514:test-configure, r=Mark-SimulacrumMatthias Krüger-202/+263
Add tests for configure.py I highly recommend reviewing this with whitespace disabled. Notably, verifying that we generate valid toml relies on python 3.11 so we can use `tomllib`, so this also switches`x86_64-gnu-llvm-14` (one of the PR builders) to use 3.11. While fixing that, I noticed that we stopped testing python2.7 support on PR CI in https://github.com/rust-lang/rust/pull/106085. `@fee1-dead` `@pietroalbini` please be more careful in the future, there is no CI for CI itself that verifies we are testing everything we should be. - Separate out functions so that each unit test doesn't create a file on disk - Add a few unit tests
2023-03-20Rollup merge of #109266 - petrochenkov:docice4, r=petrochenkovMatthias Krüger-6/+24
rustdoc: Correctly merge import's and its target's docs in one more case Fixes https://github.com/rust-lang/rust/issues/108334. Fixes https://github.com/rust-lang/rust/issues/108378. Fixes https://github.com/rust-lang/rust/issues/108658.
2023-03-20Rollup merge of #109170 - eggyal:xc-linux-cmake, r=Mark-SimulacrumMatthias Krüger-0/+2
Set `CMAKE_SYSTEM_NAME` for Linux targets When bootstrap compiles native dependencies like LLVM, it should set `CMAKE_SYSTEM_NAME` for the target system; otherwise cmake may not identify that it is cross-compiling. In particular, when building a Linux rustc on a macOS host, cmake was including `-isysroot /path/to/macOS.sdk` options that caused things to break. By setting `CMAKE_SYSTEM_NAME=Linux` when building for Linux targets, the macOS SDK is no longer passed as sysroot to the compiler. r? bootstrap
2023-03-20Auto merge of #109377 - lnicola:rust-analyzer-2023-03-20, r=lnicolabors-610/+2220
:arrow_up: rust-analyzer r? `@ghost`
2023-03-20:arrow_up: rust-analyzerLaurențiu Nicola-610/+2220
2023-03-20Auto merge of #109376 - matthiaskrgr:rollup-0aut57k, r=matthiaskrgrbors-162/+400
Rollup of 13 pull requests Successful merges: - #109249 (Update names/comments for new return-position impl trait in trait lowering strategy) - #109259 (rustdoc: Fix missing private inlining) - #109269 (rustdoc: cleanup some intermediate allocs) - #109301 (fix: fix ICE in `custom-test-frameworks` feature) - #109319 (Add test for `c_variadic` in rustdoc-json) - #109323 (Ignore files in .gitignore in mir opt check) - #109331 (rustdoc: implement bag semantics for function parameter search) - #109337 (Improve `Iterator::collect_into` documentation) - #109351 (rustdoc: Remove footnote references from doc summary) - #109353 (Fix wrong crate name in custom MIR docs) - #109362 (Split `items` from `-Zmeta-stats` in two.) - #109370 (fix ClashingExternDeclarations lint ICE) - #109375 (rustdoc: Fix improper escaping of deprecation reasons) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
2023-03-20Rollup merge of #109375 - clubby789:unescape-deprecated-doc, r=jshaMatthias Krüger-3/+3
rustdoc: Fix improper escaping of deprecation reasons Fix #109374 r? `@jsha`
2023-03-20Rollup merge of #109370 - DaniPopes:issue-109334, r=NilstriebMatthias Krüger-26/+48
fix ClashingExternDeclarations lint ICE Fixes #109334 First "real" contribution, please let me know if I did something wrong. As I understand it, it's OK if a `#[repr(transparent)]` type has no non-zero sized types (aka is a ZST itself) and the function should just return the type normally instead of panicking r? `@Nilstrieb`
2023-03-20Rollup merge of #109362 - nnethercote:split-meta-stats-items, r=bjorn3Matthias Krüger-4/+3
Split `items` from `-Zmeta-stats` in two. Because it's one of the biggest sections. r? `@bjorn3`
2023-03-20Rollup merge of #109353 - Nilstrieb:rustc-mir-building, r=compiler-errorsMatthias Krüger-1/+1
Fix wrong crate name in custom MIR docs
2023-03-20Rollup merge of #109351 - GuillaumeGomez:no-footnote-in-summary, r=notriddleMatthias Krüger-1/+30
rustdoc: Remove footnote references from doc summary Since it's one line, we don't have the footnote definition so it doesn't make sense to have the reference. Part of https://github.com/rust-lang/rust/issues/109024. r? `@notriddle`
2023-03-20Rollup merge of #109337 - frengor:collect_into_doc, r=scottmcmMatthias Krüger-4/+4
Improve `Iterator::collect_into` documentation This improves the examples in the documentation of `Iterator::collect_into`, replacing the usages of `println!` with `assert_eq!` as suggested on [IRLO](https://internals.rust-lang.org/t/18534/9).
2023-03-20Rollup merge of #109331 - notriddle:notriddle/search-bag-semantics, ↵Matthias Krüger-26/+94
r=GuillaumeGomez rustdoc: implement bag semantics for function parameter search This tweak to the function signature search engine makes things so that, if a type is repeated in the search query, it'll only match if the function actually includes it that many times.
2023-03-20Rollup merge of #109323 - joboet:ignore_ds_store_tidy, r=ozkanonurMatthias Krüger-19/+22
Ignore files in .gitignore in mir opt check This caused `./x test tidy` to fail for me when Finder (macOS) added `.DS_Store` files. They are ignored by git, so tidy should ignore them, too.
2023-03-20Rollup merge of #109319 - aDotInTheVoid:rdj-variadic-test, r=notriddleMatthias Krüger-0/+9
Add test for `c_variadic` in rustdoc-json Helps with #81359
2023-03-20Rollup merge of #109301 - Ezrashaw:fix-ctf-ice, r=NilstriebMatthias Krüger-2/+49
fix: fix ICE in `custom-test-frameworks` feature Fixes #107454 Simple fix to emit error instead of ICEing. At some point, all the code in `tests.rs` should be refactored, there is a bit of duplication (this PR's code is repeated five times over lol). r? `@Nilstrieb` (active on the linked issue?)
2023-03-20Rollup merge of #109269 - klensy:rdoc-s, r=notriddleMatthias Krüger-40/+59
rustdoc: cleanup some intermediate allocs First commit self contained, second one use `display_fn` for `extra_info_tags`
2023-03-20Rollup merge of #109259 - GuillaumeGomez:fix-missing-private-inlining, ↵Matthias Krüger-4/+31
r=notriddle rustdoc: Fix missing private inlining Fixes https://github.com/rust-lang/rust/issues/109258. If the item isn't inlined, it shouldn't have been added into `view_item_stack`. The problem here was that it was not removed, preventing sub items to be inlined if they have a re-export in "upper levels". cc `@epage` r? `@notriddle`
2023-03-20Rollup merge of #109249 - compiler-errors:new-rpitit-comments, r=spastorinoMatthias Krüger-32/+47
Update names/comments for new return-position impl trait in trait lowering strategy r? `@spastorino` totally cosmetic
2023-03-20Fix improper escaping of deprecation reasonsclubby789-3/+3
2023-03-20Update some names and commentsMichael Goulet-32/+47
2023-03-20Auto merge of #108148 - parthopdas:master, r=oli-obkbors-46/+554
Implementing "<test_binary> --list --format json" for use by IDE test explorers / runners Fixes #107307 PR 1 of 2 - wiring up just the new information + implement the command line changes i.e. --format json + tests upcoming: PR 2 of 2 - clean up "#[cfg(not(bootstrap))]" from PR 1 As per the discussions on - MCP: https://rust-lang.zulipchat.com/#narrow/stream/233931-t-compiler.2Fmajor-changes/topic/Implementing.20.22.3Ctest_binary.3E.20--list.20--form.E2.80.A6.20compiler-team.23592/near/328747548 - preRFC: https://internals.rust-lang.org/t/pre-rfc-implementing-test-binary-list-format-json-for-use-by-ide-test-explorers-runners/18308 - FYI on Discord: https://discord.com/channels/442252698964721669/459149169546887178/1075581549409484820
2023-03-19rustdoc: implement bag semantics for function parameter searchMichael Howell-26/+94
This tweak to the function signature search engine makes things so that, if a type is repeated in the search query, it'll only match if the function actually includes it that many times.
2023-03-20remove bad commentDaniPopes-1/+0
2023-03-20fix ClashingExternDeclarations lint ICEDaniPopes-26/+49
2023-03-19Reformat type_ofMichael Goulet-23/+30
2023-03-19Only expect a GAT const argMichael Goulet-5/+39
2023-03-19Update mdbookEric Huss-3/+3