about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorLines
2023-10-03rustdoc: fix & clean up handling of cross-crate higher-ranked lifetimesLeón Orell Valerian Liehr-103/+53
2023-10-03Drop the wasm32 builderMark Rousskov-66/+0
This builder tested the wasm32-unknown-emscripten target, which is tier 2 (and so not eligible for testing). In the recent beta promotion, we ran into a problem with this target: emscripten doesn't support passing environment variables into the std environment, so we can't enable RUSTC_BOOTSTRAP for libtest in order to pass -Zunstable-options. We worked around this for the beta/stable branches, but given this problem, and its tier 2 status, just dropping the target's tests entirely seems warranted. Downgrading to tier 3 may also be a good idea, but that is a separate conversation not proposed here.
2023-10-03Auto merge of #115025 - ouz-a:ouz_testing, r=lcnrbors-0/+1
Make subtyping explicit in MIR This adds new mir-opt that pushes new `ProjectionElem` called `ProjectionElem::Subtype(T)` to `Rvalue` of a subtyped assignment so we can unsoundness issues like https://github.com/rust-lang/rust/issues/107205 Addresses https://github.com/rust-lang/rust/issues/112651 r? `@lcnr`
2023-10-03Rollup merge of #113053 - RalfJung:x86_32-float, r=workingjubileeMatthias Krüger-21/+26
add notes about non-compliant FP behavior on 32bit x86 targets Based on ton of prior discussion (see all the issues linked from https://github.com/rust-lang/unsafe-code-guidelines/issues/237), the consensus seems to be that these targets are simply cursed and we cannot implement the desired semantics for them. I hope I properly understood what exactly the extent of the curse is here, let's make sure people with more in-depth FP knowledge take a close look! In particular for the tier 3 targets I have no clue which target is affected by which particular variant of the x86_32 FP curse. I assumed that `i686` meant SSE is used so the "floating point return value" is the only problem, while everything lower (`i586`, `i386`) meant x87 is used. I opened https://github.com/rust-lang/rust/issues/114479 to concisely describe and track the issue. Cc `@workingjubilee` `@thomcc` `@chorman0773` `@rust-lang/opsem` Fixes https://github.com/rust-lang/rust/issues/73288 Fixes https://github.com/rust-lang/rust/issues/72327
2023-10-03add notes about non-compliant FP behavior on 32bit x86 targetsRalf Jung-21/+26
2023-10-03Point to full async fn for futureMichael Goulet-19/+22
2023-10-02have better explanation for `relate_types`ouz-a-0/+0
2023-10-02change is_subtype to relate_typesouz-a-0/+0
2023-10-02subtyping_projectionsouz-a-0/+1
2023-10-02Rollup merge of #116349 - onur-ozkan:hfix, r=tmandryTyler Mandry-3/+3
ensure the parent path's existence on `x install` fixes https://github.com/rust-lang/rust/pull/116127#issuecomment-1743454109 cc `@tmandry`
2023-10-02Rollup merge of #114453 - Kobzol:ci-group-stdout, r=onur-ozkanTyler Mandry-3/+3
Print GHA log groups to stdout instead of stderr In all other places (e.g. `bootstrap.py`, `opt-dist`), we use stdout instead of stderr. I think that using stderr might be causing some discrepancies in the log, where sometimes the contents of a group "leak" outside the group. Let's see what happens if we use stdout instead. It's possible that it will be worse, since we print most stuff to stderr (?). r? `@ghost`
2023-10-02Add new bors try branches to CIJakub Beránek-0/+2
2023-10-02ensure the parent path's existence on `x install`onur-ozkan-3/+3
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2023-10-02add test for a function ABI mismatch due to target featuresRalf Jung-0/+50
2023-10-02Add artifact size and step duration summaries from `opt-dist` to github job ↵Jakub Beránek-28/+100
summary
2023-10-02Auto merge of #116276 - lqd:lld-sysroot, r=onur-ozkanbors-0/+17
bootstrap: copy self-contained linking components to `stage0-sysroot` I hit this issue while trying to bootstrap using a rustc where `rust-lld` is used by default: this was the cause of the failure to profile rustc-perf's bootstrap benchmark in https://github.com/rust-lang/rust/pull/113382. `stage0-sysroot` currently only has libs and self-contained objects, not the other self-contained linking components yet. Most notably, it does not contain the linker and wrappers that we build, and that rustup distributes. If you try to bootstrap using the bootstrap compiler's `rust-lld`, it will fail to link std at stage0 because `rust-lld` and the `gcc-ld` wrappers, will not be found in `stage0-sysroot/lib/rustlib/x86_64-unknown-linux-gnu/bin`. This PR copies the `bin` directory next to the `lib` directory when `rust.lld` is enabled in the config (though maybe it could be done unconditionally, the fact that we need it to link does not necessarily mean that we'd want to build and provide it at stage1). cc `@Kobzol` who also encountered this issue while using lld during bootstrap.
2023-10-02Auto merge of #115898 - onur-ozkan:config-change-tracking, r=Mark-Simulacrumbors-106/+90
bootstrap major change detection implementation The use of `changelog-seen` and `bootstrap/CHANGELOG.md` has not been functional in any way for many years. We often do major/breaking changes but never update the changelog file or the `changelog-seen`. This is an alternative method for tracking major or breaking changes and informing developers when such changes occur. Example output when bootstrap detects a major change: ![image](https://github.com/rust-lang/rust/assets/39852038/ee802dfa-a02b-488b-a433-f853ce079b8a)
2023-10-02Auto merge of #116207 - Ayush1325:uefi_stdio, r=Mark-Simulacrumbors-1/+7
Stdio support for UEFI - Uses Simple Text Output Protocol and Simple Text Input Protocol - Reading is done one character at a time - Writing is done with max 4096 characters # Quirks ## Output Newline - UEFI uses CRLF for newline. So when running the application in UEFI shell (qemu VGA), the output of `println` looks weird. - However, since the UEFI shell supports piping output, I am unsure if doing any output post-processing is a good idea. UEFI shell `cat` command seems to work fine with just LF. ## Input Newline - `Stdin.read_line()` method is broken in UEFI shell. Pressing enter seems to be read as CR, which means LF is never encountered. - Works fine with input redirection from file. CC `@dvdhrm`
2023-10-02Update UEFI docsAyush Singh-1/+7
- Mention stdio support - Update the example Signed-off-by: Ayush Singh <ayushdevel1325@gmail.com>
2023-10-01add Changelog topic to bootstrap/README.mdonur-ozkan-5/+9
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2023-10-01implement major change tracking for the bootstrap configurationonur-ozkan-101/+81
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2023-10-01Auto merge of #115554 - Kobzol:single-cgu, r=Mark-Simulacrumbors-1/+2
Build `rustc` with a single CGU on x64 Linux This PR adds the `rust.codegen-units=1` setting when compiling the 64-bit Linux `rustc` artifact (the one used for try builds and Linux rustup distribution). This had mixed results in the past, however after the bump to LLVM 17, the results now seem pretty [incredible](https://github.com/rust-lang/rust/pull/115554#issuecomment-1706518199). Instruction counts, cycles, wall time, max RSS and even artifact sizes see large improvements. The last [try build](https://github.com/rust-lang-ci/rust/actions/runs/6077686494/job/16487768049) with this setting took 1h 8m, which is basically the same duration for try builds that we have seen recently. So there shouldn't be any large hit to CI/build time. I hope that this could potentially also reduce codegen noise of `rustc` a little bit, since small changes within a single `rustc` crate should no longer perturb optimizations because of CGU movement. We still do cross-crate LTO, so it won't eliminate it though. r? `@Mark-Simulacrum`
2023-10-01bootstrap: copy self-contained linking components to stage0-sysrootRémy Rakic-0/+17
otherwise bootstrap will fail to link the stdlib on a target using the self-contained linker: rust-lld will not be found since it's currently not in the stage0-sysroot.
2023-10-01Rollup merge of #116299 - emmanuel-ferdman:wip, r=albertlarsan68Matthias Krüger-1/+1
Update location of `auxiliary/lint-plugin-test.rs` **PR Summary**: PR updates the location of `auxiliary/lint-plugin-test.rs` file which was moved in PR #110478.
2023-10-01Rollup merge of #116292 - onur-ozkan:warn-wrong-sources, r=clubby789Matthias Krüger-0/+6
warn if source is not either a git clone or a dist tarball When the repository is downloaded directly via HTTP(as in #115041), builds may fail due to missing submodules. This PR adds a check that warns people in such cases.
2023-10-01Auto merge of #116307 - RalfJung:miri, r=RalfJungbors-31/+841
Miri subtree update r? `@ghost`
2023-10-01Auto merge of #115670 - Zoxc:outline-panic-macro-1, r=Mark-Simulacrumbors-23/+52
Partially outline code inside the panic! macro This outlines code inside the panic! macro in some cases. This is split out from https://github.com/rust-lang/rust/pull/115562 to exclude changes to rustc.
2023-10-01Auto merge of #116225 - Kobzol:newbors-integration, r=Mark-Simulacrumbors-1/+1
Add integration for new bors I think that the best way to test the [new bors](https://github.com/rust-lang/bors/tree/staging) implementation is to start using it in the wild. This PR integrates this repo with the bot (some more integration has to be done externally through GitHub). For now, I would suggest to integrate it e.g. under the ``@borsnew`` name, and start testing its try build functionality. The bot cannot do merges or approvals yet, and it doesn't touch `master` in any way, so hopefully it shouldn't cause any troubles for this repo. r? `@Mark-Simulacrum`
2023-10-01Auto merge of #116302 - Mark-Simulacrum:bump-version, r=Mark-Simulacrumbors-1/+1
Bump to 1.75.0 Step 1 of the [release process](https://forge.rust-lang.org/release/process.html#bump-the-stable-version-number-t-6-days-friday-the-week-before).
2023-10-01Auto merge of #116108 - onur-ozkan:support-make-jobs-flag, r=Mark-Simulacrumbors-0/+7
Pass `-jN` from Make to `BOOTSTRAP_ARGS` Enables the same functionality as `x -jN` in Make by passing the `-jN` arg from Make to the `BOOTSTRAP_ARGS` if it is specified.
2023-09-30Bump to 1.75.0Mark Rousskov-1/+1
2023-09-30clippyRalf Jung-2/+5
2023-09-30fmtRalf Jung-14/+11
2023-09-30Merge from rustcRalf Jung-146/+217
2023-09-30Preparing for merge from rustcRalf Jung-1/+1
2023-09-30Update location of `language-features/plugin.md`Emmanuel Ferdman-1/+1
2023-09-30Auto merge of #3086 - eduardosm:x86-sse3-intrinsics, r=RalfJungbors-0/+737
Implement SSE3 and SSSE3 intrinsics
2023-09-30Auto merge of #116127 - onur-ozkan:sanity-checks-on-install, r=Mark-Simulacrumbors-0/+31
add sanity checks for user write access on `x install` Resolves #113580
2023-09-30warn if source is not either a git clone or a dist tarballonur-ozkan-0/+6
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2023-09-30Bump libloading to 0.8Samuel Thibault-4/+4
2023-09-30Auto merge of #116254 - WaffleLapkin:nicen-traversal, r=cjgillotbors-13/+19
Assorted improvements for `rustc_middle::mir::traversal` r? `@cjgillot` I'm not _entirely_ sure about all changes, although I do like all of them. If you'd like I can drop some commits. Best reviewed on a commit-by-commit basis, I think, since they are fairly isolated.
2023-09-30Implement `llvm.x86.ssse3.*` intrinsicsEduardo Sánchez Muñoz-146/+644
2023-09-30Implement `llvm.x86.sse3.*` intrinsicsEduardo Sánchez Muñoz-0/+239
2023-09-30Auto merge of #116195 - fmease:rustdoc-investigate-perf-regression, ↵bors-27/+16
r=GuillaumeGomez rustdoc: speed up processing of cross-crate fns to fix a perf regression * The first commit doesn't affect perf but get's rid of a `.clone()` and a bunch of lines of code. I can drop it if you'd like me to * The second commit, *“reduce the amount of `asyncness` query executions”*, addresses the perf regression introduced in #116084 r? `@ghost`
2023-09-30Auto merge of #116280 - weihanglo:update-cargo, r=weihanglobors-0/+0
Update cargo 4 commits in e6aabe8b3fcf639be3a5bf68e77853bd7b3fa27d..59596f0f31a94fde48b5aa7e945cd0b7ceca9620 2023-09-26 16:31:53 +0000 to 2023-09-29 19:29:17 +0000 - refactor: Switch from termcolor to anstream (rust-lang/cargo#12751) - Add missing `strip` entries in `dev` and `release` profiles. (rust-lang/cargo#12748) - Add better suggestion for the unsupported silent flag (rust-lang/cargo#12723) - docs(ref): Establish publish best practices (rust-lang/cargo#12745) r? ghost
2023-09-30dont call mir.post_mono_checks in codegenRalf Jung-2/+1
2023-09-30Auto merge of #115933 - oli-obk:simd_shuffle_const, r=workingjubileebors-3/+56
Prototype using const generic for simd_shuffle IDX array cc https://github.com/rust-lang/rust/issues/85229 r? `@workingjubilee` on the design TLDR: there is now a `fn simd_shuffle_generic<T, U, const IDX: &'static [u32]>(x: T, y: T) -> U;` intrinsic that allows replacing ```rust simd_shuffle(a, b, const { stuff }) ``` with ```rust simd_shuffle_generic::<_, _, {&stuff}>(a, b) ``` which makes the compiler implementations much simpler, if we manage to at some point eliminate `simd_shuffle`. There are some issues with this today though (can't do math without bubbling it up in the generic arguments). With this change, we can start porting the simple cases and get better data on the others.
2023-09-30Update cargoWeihang Lo-0/+0
2023-09-30Auto merge of #115368 - loongarch-rs:none-tier2, r=pietroalbinibors-3/+7
Promote loongarch64-unknown-none* to Tier 2 MCP: https://github.com/rust-lang/compiler-team/issues/664
2023-09-30rustdoc: reduce the amount of `asyncness` query executionsLeón Orell Valerian Liehr-1/+7