about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorLines
2023-03-29Update Emscripten on CI to 2.0.5Kleis Auke Wolthuizen-2/+2
`getentropy()` is available since Emscripten 2.0.5. See: https://github.com/emscripten-core/emscripten/pull/12240
2023-03-29Rollup merge of #109534 - petrochenkov:noprimuse, r=GuillaumeGomezDylan DPC-17/+0
rustdoc: Unsupport importing `doc(primitive)` and `doc(keyword)` modules These are internal features used for a specific purpose, and modules without imports are enough for that purpose.
2023-03-29Rollup merge of #108335 - compiler-errors:non_lifetime_binders-rustdoc, ↵Dylan DPC-29/+40
r=GuillaumeGomez rustdoc + rustdoc-json support for `feature(non_lifetime_binders)` Makes `for<T> T: Trait` and `for<const N: usize> ..` in where clause operate correctly. Fixes #108158
2023-03-29Auto merge of #108792 - Amanieu:ohos, r=petrochenkovbors-0/+136
Add OpenHarmony targets - `aarch64-unknown-linux-ohos` - `armv7-unknown-linux-ohos` Compiler team MCP: https://github.com/rust-lang/compiler-team/issues/568
2023-03-29Use LIBPATH in compiletestKai Luo-0/+2
2023-03-28rustdoc + rustdoc-json support for non_lifetime_bindersMichael Goulet-29/+40
2023-03-28Add OpenHarmony targetsAmanieu d'Antras-0/+136
- `aarch64-unknown-linux-ohos` - `armv7-unknown-linux-ohos`
2023-03-28rustdoc: Unsupport importing `doc(primitive)` and `doc(keyword)` modulesVadim Petrochenkov-17/+0
These are internal features used for a specific purpose, and modules without imports are enough for that purpose.
2023-03-28Rollup merge of #91793 - devnexen:anc_data_fbsd, r=ChrisDentonnils-0/+1
socket ancillary data implementation for FreeBSD (from 13 and above). introducing new build config as well.
2023-03-28Auto merge of #109690 - matthiaskrgr:rollup-6p5m0es, r=matthiaskrgrbors-4/+7
Rollup of 9 pull requests Successful merges: - #108548 (Clarify the 'use a constant in a pattern' error message) - #109565 (Improve documentation for E0223) - #109661 (Fix LVI test post LLVM 16 update) - #109667 (Always set `RUSTC_BOOTSTRAP` with `x doc`) - #109669 (Update books) - #109678 (Don't shadow the `dep_node` var in `incremental_verify_ich_failed`) - #109682 (Add `#[inline]` to CStr trait implementations) - #109685 (Make doc comment a little bit more accurate) - #109687 (Document the heuristics IsTerminal uses on Windows) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
2023-03-28Rollup merge of #109669 - rustbot:docs-update, r=ehussMatthias Krüger-0/+0
Update books ## rust-lang/nomicon 1 commits in 1f3e4cd4fd88b5b5d45feb86a11b6d2f93e5a974..b5f7500fc40775096c2bbd204eae096612cf9047 2023-03-27 13:47:36 UTC to 2023-03-27 13:47:36 UTC - Fix typo in 3.8 Subtyping and Variance (rust-lang/nomicon#395) ## rust-lang/reference 4 commits in 24c87f6663aed55b05d2cc286878f28f21918825..3c47807a3131b3c7cacb508f52632078d253cd0a 2023-03-26 18:42:43 UTC to 2023-03-14 18:28:23 UTC - Relax ordering rules for `asm!` operands (rust-lang/reference#1323) - Improve labeled blocks documentation (rust-lang/reference#1342) - Inline assembly: Fix repeated and unordered items in guaranteed directives (rust-lang/reference#1341) - Clarify that free constants are always evaluated at compile time (rust-lang/reference#1328) ## rust-lang/rust-by-example 7 commits in af0998b7473839ca75563ba3d3e7fd0160bef235..cfbfd648ce33926c3490f24de9a5b56cce404b88 2023-03-21 12:05:17 UTC to 2023-03-21 11:58:20 UTC - Fix two typos in the asm chapter (rust-lang/rust-by-example#1692) - Change `runtime` error to `compile time` error (rust-lang/rust-by-example#1690) - Fix tests running on non-x86 platforms. (rust-lang/rust-by-example#1687) - Remove trailing semicolon from macro expression (rust-lang/rust-by-example#1683) - Explained why it should not work in Chapter 4.1 (rust-lang/rust-by-example#1682) - Fix comment to mention the correct type of error (rust-lang/rust-by-example#1680) - Improve the content for `read_lines` (rust-lang/rust-by-example#1679) ## rust-lang/rustc-dev-guide 9 commits in b1b6d693cd1461e53de4132c1b183ace31cd36e5..d08baa166b463537229eeb737c4ccadabd83cf78 2023-03-26 17:55:53 UTC to 2023-03-14 03:50:20 UTC - Add locale_resources (rust-lang/rustc-dev-guide#1651) - Don't require $GITHUB_TOKEN to build locally (rust-lang/rustc-dev-guide#1652) - bootsrapping stages overview list (rust-lang/rustc-dev-guide#1555) - Update labels overview (rust-lang/rustc-dev-guide#1639) - first mention of type, and add a link (rust-lang/rustc-dev-guide#1643) - Add SIP solution for macOS users (rust-lang/rustc-dev-guide#1636) - Add chapter on fuzzing (rust-lang/rustc-dev-guide#1646) - Fix "Crate disambiguator" in libs-and-metadata.md (rust-lang/rustc-dev-guide#1648) - Update rustdoc-internals.md (rust-lang/rustc-dev-guide#1644)
2023-03-28Rollup merge of #109667 - clubby789:fix-stage0-doc, r=ozkanonurMatthias Krüger-4/+5
Always set `RUSTC_BOOTSTRAP` with `x doc` Fixes #100060 Note that there is still a warning - the `unused_allocation` lint does not fire in stage 0, but that's just a matter of waiting for #104363 to land in beta
2023-03-28Rollup merge of #108548 - jamen:master, r=compiler-errorsMatthias Krüger-0/+2
Clarify the 'use a constant in a pattern' error message ```rs use std::borrow::Cow; const ERROR_CODE: Cow<'_, str> = Cow::Borrowed("23505"); fn main() { let x = Cow::from("23505"); match x { ERROR_CODE => {} } } ``` ``` error: to use a constant of type `Cow` in a pattern, `Cow` must be annotated with `#[derive(PartialEq, Eq)]` --> src/main.rs:9:9 | 9 | ERROR_CODE => {} | ^^^^^^^^^^ error: could not compile `playground` due to previous error ``` It seems helpful to link to StructuralEq in this message. I was a little confused, because `Cow<'_, str>` implements PartialEq and Eq, but they're not derived, which I learned is necessary for structural equality and using constants in patterns (thanks to the Rust community Discord server) For tests, should I update every occurrence of this message? I see tests where this is still a warning and I'm not sure if I should update those.
2023-03-28Auto merge of #109577 - jonhoo:long-tar-names, r=Mark-Simulacrumbors-4/+3
[rust-installer] Allow long link names in tar files Without this, users trying to run `x.py dist` under a sufficiently long path run into problems when we build the resulting tarballs due to length limits in the original tar spec. The error looks like: Finished release [optimized + debuginfo] target(s) in 0.34s Copying stage0 std from stage0 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu / x86_64-unknown-linux-musl) Building stage0 tool rust-installer (x86_64-unknown-linux-gnu) Finished release [optimized] target(s) in 0.35s Dist rust-std-1.67.1-x86_64-unknown-linux-musl Error: failed to generate installer Caused by: 0: failed to tar file '/home/AAAAAAAAAAAAAA/BBBBBB/CCCC/DDD/EEEEE/FFFFFFFFFFFF/GGGGGGGGGGGGGGGG/HHHHHHHHHH/IIIIIIIIIIIIIII/JJJJJ/KKKKKKK/src/build/tmp/tarball/rust-std/x86_64-unknown-linux-musl/rust-std-1.67.1-x86_64-unknown-linux-musl/rust-std-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/self-contained/libc.a' 1: provided value is too long when setting link name for Build completed unsuccessfully in 0:00:03 The fix is to make use of the widely-supported GNU tar extensions which lift this restriction. Switching to [`tar::Builder::append_link`] takes care of that for us. See also alexcrichton/tar-rs#273. [`tar::Builder::append_link`]: https://docs.rs/tar/0.4.38/tar/struct.Builder.html#method.append_link
2023-03-28Set LIBPATHKai Luo-0/+3
2023-03-28Add `(..)` syntax for RTNMichael Goulet-14/+11
2023-03-28Auto merge of #109561 - raphamorim:master, r=cuviperbors-1/+1
Use llvm 16.0.0 instead of 16.0.0-rc4 for build-clang.sh Ref: https://github.com/rust-lang/rust/pull/107224 This PR doesn't make any update on LLVM submodule used by Rust repo, but would be super keen to update it, if necessary (https://rustc-dev-guide.rust-lang.org/backend/updating-llvm.html). LLVM 16.0.0 has been [released](https://discourse.llvm.org/t/llvm-16-0-0-release/69326) on March 18, while Rust 1.70 will become stable on June 1. - https://releases.llvm.org/16.0.0/docs/ReleaseNotes.html
2023-03-27Auto merge of #109440 - WaffleLapkin:make_tidy_slower, r=jyn514bors-57/+77
Don't skip all directories when tidy-checking This fixes a regression from https://github.com/rust-lang/rust/pull/108772 which basically made it that tidy style checks only `README.md` and `COMPILER_TESTS.md`.
2023-03-27Bless tidyMaybe Waffle-1/+1
2023-03-27Remove useless Clone boundsMaybe Waffle-2/+2
2023-03-27Don't skip all directories when tidy-checkingMaybe Waffle-56/+76
2023-03-27Update booksrustbot-0/+0
2023-03-27Rollup merge of #109445 - Teapot4195:issue-109407-fix, r=ozkanonurGuillaume Gomez-4/+13
Allow passing the --nocapture flag to compiletest closes #109407
2023-03-27Rollup merge of #109354 - Swatinem:rm-closureid, r=compiler-errorsGuillaume Gomez-4/+4
Remove the `NodeId` of `ast::ExprKind::Async` This is a followup to https://github.com/rust-lang/rust/pull/104833#pullrequestreview-1314537416. In my original attempt, I was using `LoweringContext::expr`, which was not correct as it creates a fresh `DefId`. It now uses the correct `DefId` for the wrapping `Expr`, and also makes forwarding `#[track_caller]` attributes more explicit.
2023-03-27Rollup merge of #109330 - ↵Guillaume Gomez-51/+103
GuillaumeGomez:intermediate-reexport-intra-doc-ice, r=petrochenkov rustdoc: Fix ICE for intra-doc link on intermediate re-export Fixes https://github.com/rust-lang/rust/issues/109282. This PR is based on #109266 as it includes its commit to make this work. `@petrochenkov:` It was exactly as you predicted, adding the `DefId` to the attributes fixed the error for intermediate re-exports as well. Thanks a lot! r? `@petrochenkov`
2023-03-27Always set `RUSTC_BOOTSTRAP` with `x doc`clubby789-4/+5
2023-03-27socket ancillary data implementation for FreeBSD (from 13 and above).David CARLIER-0/+1
introducing new build config as well.
2023-03-27Add notes to non-structural const in pattern error messageJamen Marz-0/+2
2023-03-27Rollup merge of #109656 - weihanglo:update-cargo, r=weihangloMatthias Krüger-0/+0
Update cargo 9 commits in 15d090969743630bff549a1b068bcaa8174e5ee3..145219a9f089f8b57c09f40525374fbade1e34ae 2023-03-21 17:54:28 +0000 to 2023-03-27 01:56:36 +0000 - doc(contrib): missing quotation mark (rust-lang/cargo#11894) - Update changelog for 1.68.2 (rust-lang/cargo#11893) - Add the old github keys as revoked (rust-lang/cargo#11889) - Update proptest (rust-lang/cargo#11886) - Added new GitHub RSA Host Key (rust-lang/cargo#11883) - doc: Fix registries.name.index for sparse (rust-lang/cargo#11880) - docs(contrib): Replace architecture with redirects (rust-lang/cargo#11876) - docs: fix typos in `cargo_compile/mod.rs` (rust-lang/cargo#11874) - docs(contrub): Remove unused file (rust-lang/cargo#11873) r? `@ghost`
2023-03-27Rollup merge of #109418 - rohaquinlop:108240-rename-native.rs-to-llvm.rs, ↵Matthias Krüger-101/+101
r=Mark-Simulacrum Rename 'src/bootstrap/native.rs' to llvm.rs Fixed #108240 Renamed 'native.rs' to 'llvm.rs', also moved `TestHelpers` to `test.rs`. Replaced all the `native.rs` occurrences at `src/bootstrap` files to `llvm.rs`
2023-03-27Rollup merge of #108625 - jyn514:config-toml-cleanups, r=albertlarsan68Matthias Krüger-1/+3
More config.toml.example cleanups - Link to more documentation - Move `changelog-seen` into the "Global Settings" section - Update incorrect comments on `llvm.link-shared` and `rust.debug-assertions` - Use the correct default in the commented-out example more often - Clarify that `docs` and `compiler-docs` only control the default, they're not a hard-off switch. - Document `-vvv` and `local-rebuild` - Minor improvements to doc-comments in config.toml.example This also sets `download-rustc = false`; that was already the default, but it will be helpful in case the default changes (https://jyn.dev/2023/01/12/Bootstrapping-Rust-in-2023.html).
2023-03-27More config.toml.example cleanupsJoshua Nelson-1/+3
- Link to more documentation - Move `changelog-seen` into the "Global Settings" section - Update incorrect comments on `llvm.link-shared` and `rust.debug-assertions` - Use the correct default in the commented-out example more often - Clarify that `docs` and `compiler-docs` only control the default, they're not a hard-off switch. - Document `-vvv` and `local-rebuild` - Minor improvements to doc-comments in config.toml.example This also sets `download-rustc = false`; that was already the default, but it will be helpful in case the default changes (https://jyn.dev/2023/01/12/Bootstrapping-Rust-in-2023.html).
2023-03-27Update cargoWeihang Lo-0/+0
9 commits in 15d090969743630bff549a1b068bcaa8174e5ee3..145219a9f089f8b57c09f40525374fbade1e34ae 2023-03-21 17:54:28 +0000 to 2023-03-27 01:56:36 +0000 - doc(contrib): missing quotation mark (rust-lang/cargo#11894) - Update changelog for 1.68.2 (rust-lang/cargo#11893) - Add the old github keys as revoked (rust-lang/cargo#11889) - Update proptest (rust-lang/cargo#11886) - Added new GitHub RSA Host Key (rust-lang/cargo#11883) - doc: Fix registries.name.index for sparse (rust-lang/cargo#11880) - docs(contrib): Replace architecture with redirects (rust-lang/cargo#11876) - docs: fix typos in `cargo_compile/mod.rs` (rust-lang/cargo#11874) - docs(contrub): Remove unused file (rust-lang/cargo#11873)
2023-03-27Rollup merge of #109641 - compiler-errors:dont-elaborate-non-obl, r=oli-obkMatthias Krüger-3/+2
Don't elaborate non-obligations into obligations It's suspicious to elaborate a `PolyTraitRef` or `Predicate` into an `Obligation`, since the former does not have a param-env associated with it, but the latter does. This is a footgun that, while not being misused *currently* in the compiler, easily could be misused by someone less familiar with the elaborator's inner workings. This PR just changes the API -- ideally, the elaborator wouldn't even have to deal with obligations if we're not elaborating obligations, but that would require a bit more abstraction than I could be bothered with today.
2023-03-27Rollup merge of #109633 - GuillaumeGomez:fix-go-to-only-setting, r=notriddleMatthias Krüger-5/+1
Fix "Directly go to item in search if there is only one result" setting Part of #66181. The setting was actually broken, so I fixed it when I added the GUI test. r? `@notriddle`
2023-03-26check for missing codegen backeng configLenko Donchev-1/+43
2023-03-26Limit to one job on mingw buildersNikita Popov-1/+1
This is another attempt to work around https://github.com/rust-lang/rust/issues/108227. By limiting to one link job, we should be able to avoid file name clashes in mkstemp().
2023-03-26Don't elaborate non-obligations into obligationsMichael Goulet-3/+2
2023-03-26Fix "Directly go to item in search if there is only one result" settingGuillaume Gomez-5/+1
2023-03-26Allow passing the --nocapture flag to compiletestAlex Huang-4/+13
2023-03-26Auto merge of #109626 - matthiaskrgr:rollup-k0y7bdd, r=matthiaskrgrbors-2/+2
Rollup of 6 pull requests Successful merges: - #109007 (rustdoc: skip `// some variants omitted` if enum is `#[non_exhaustive]`) - #109593 (Rustdoc Book refer to rustdoc::missing_doc_code_examples. Fixes #109592.) - #109595 (Improve "Auto-hide trait implementation documentation" GUI test) - #109619 (Still-further-specializable projections are ambiguous in new solver) - #109620 (Correct typo (`back_box` -> `black_box`)) - #109621 (Refactor: `VariantIdx::from_u32(0)` -> `FIRST_VARIANT`) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
2023-03-26Rollup merge of #109593 - coop-rs:missing_doc_code_examples, r=GuillaumeGomezMatthias Krüger-1/+1
Rustdoc Book refer to rustdoc::missing_doc_code_examples. Fixes #109592. Fixes #109592. But, please see a related question at #109592 (item `2.`).
2023-03-26Auto merge of #106428 - saethlin:inline-diverging-functions, r=cjgillotbors-0/+6
Permit the MIR inliner to inline diverging functions This heuristic prevents inlining of `hint::unreachable_unchecked`, which in turn makes `Option/Result::unwrap_unchecked` a bad inlining candidate. I looked through the changes to `core`, `alloc`, `std`, and `hashbrown` by hand and they all seem reasonable. Let's see how this looks in perf... --- Based on rustc-perf it looks like this regresses ctfe-stress, and the cachegrind diff indicates that this regression is in `InterpCx::statement`. I don't know how to do any deeper analysis because that function is _enormous_ in the try toolchain, which has no debuginfo in it. And a local build produces significantly different codegen for that function, even with LTO.
2023-03-26rustdoc: tweak `some variants omitted`Ezra Shaw-1/+1
Don't display `// some variants omitted` if enum is marked `#[non_exhaustive]`
2023-03-25Auto merge of #109474 - nikic:llvm-16-again, r=cuviperbors-1/+1
Upgrade to LLVM 16, again Relative to the previous attempt in https://github.com/rust-lang/rust/pull/107224: * Update to GCC 8.5 on dist-x86_64-linux, to avoid std::optional ABI-incompatibility between libstdc++ 7 and 8. * Cherry-pick https://github.com/llvm/llvm-project/commit/96df79af029b85616ab90e73143e0e8ae89c7b46. * Cherry-pick https://github.com/llvm/llvm-project/commit/6fc670e5e370e90759b5adecd9980b63609dc2f8. r? `@cuviper`
2023-03-25Rustdoc Book refer to rustdoc::missing_doc_code_examples. Fixes #109592.Peter Kehl-1/+1
2023-03-25Rollup merge of #109568 - RalfJung:miri-raw-ptr-dyn, r=oli-obkMatthias Krüger-0/+27
miri: fix raw pointer dyn receivers r? `@oli-obk` Fixes https://github.com/rust-lang/miri/issues/2786
2023-03-25Rollup merge of #109542 - notriddle:notriddle/storage-js, r=GuillaumeGomezMatthias Krüger-77/+19
rustdoc: clean up `storage.js`
2023-03-25Rollup merge of #109484 - fortanix:raoul/bugfix_libtest_json_output, ↵Matthias Krüger-12/+7
r=pietroalbini Bugfix: avoid panic on invalid json output from libtest #108659 introduces a custom test display implementation. It does so by using libtest to output json. The stdout is read and parsed; The code trims the line read and checks whether it starts with a `{` and ends with a `}`. If so, it concludes that it must be a json encoded `Message`. Unfortunately, this does not work in all cases: - This assumes that tests running with `--nocapture` will never start and end lines with `{` and `}` characters - Output is generated by issuing multiple `write_message` [statements](https://github.com/rust-lang/rust/blob/master/library/test/src/formatters/json.rs#L33-L60). Where only the last one issues a `\n`. This likely results in a race condition as we see multiple json outputs on the same line when running tests for the `x86_64-fortanix-unknown-sgx` target: ``` 10:21:04  Running tests/run-time-detect.rs (build/x86_64-unknown-linux-gnu/stage1-std/x86_64-fortanix-unknown-sgx/release/deps/run_time_detect-8c66026bd4b1871a) 10:21:04 10:21:04 running 1 tests 10:21:04 test x86_all ... ok 10:21:04  Running tests/thread.rs (build/x86_64-unknown-linux-gnu/stage1-std/x86_64-fortanix-unknown-sgx/release/deps/thread-ed5456a7d80a6193) 10:21:04 thread 'main' panicked at 'failed to parse libtest json output; error: trailing characters at line 1 column 135, line: "{ \"type\": \"suite\", \"event\": \"ok\", \"passed\": 1, \"failed\": 0, \"ignored\": 0, \"measured\": 0, \"filtered_out\": 0, \"exec_time\": 0.000725911 }{ \"type\": \"suite\", \"event\": \"started\", \"test_count\": 1 }\n"', render_tests.rs:108:25 ``` This PR implements a partial fix by being much more conservative of what it asserts is a valid json encoded `Message`. This prevents panics, but still does not resolve the race condition. A discussion is needed where this race condition comes from exactly and how it best can be avoided. cc: `@jethrogb,` `@pietroalbini`
2023-03-24Allow long link names in tar filesJon Gjengset-4/+3
Without this, users trying to run `x.py dist` under a sufficiently long path run into problems when we build the resulting tarballs due to length limits in the original tar spec. The error looks like: Finished release [optimized + debuginfo] target(s) in 0.34s Copying stage0 std from stage0 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu / x86_64-unknown-linux-musl) Building stage0 tool rust-installer (x86_64-unknown-linux-gnu) Finished release [optimized] target(s) in 0.35s Dist rust-std-1.67.1-x86_64-unknown-linux-musl Error: failed to generate installer Caused by: 0: failed to tar file '/home/AAAAAAAAAAAAAA/BBBBBB/CCCC/DDD/EEEEE/FFFFFFFFFFFF/GGGGGGGGGGGGGGGG/HHHHHHHHHH/IIIIIIIIIIIIIII/JJJJJ/KKKKKKK/src/build/tmp/tarball/rust-std/x86_64-unknown-linux-musl/rust-std-1.67.1-x86_64-unknown-linux-musl/rust-std-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/self-contained/libc.a' 1: provided value is too long when setting link name for Build completed unsuccessfully in 0:00:03 The fix is to make use of the widely-supported GNU tar extensions which lift this restriction. Switching to [`tar::Builder::append_link`] takes care of that for us. See also alexcrichton/tar-rs#273. [`tar::Builder::append_link`]: https://docs.rs/tar/0.4.38/tar/struct.Builder.html#method.append_link