--- tags: weekly, rustc type: docs note_id: szi5IXJzROqRtix7BOJjZQ --- # T-compiler Meeting Agenda 2024-10-03 ## Announcements - Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @_**davidtwco** or @_**Wesley Wiser** so we can pass it along). ### Other WG meetings None ## MCPs/FCPs - New MCPs (take a look, see if you like them!) - "Make the test cfg a userspace check-cfg" [compiler-team#785](https://github.com/rust-lang/compiler-team/issues/785) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Make.20the.20test.20cfg.20a.20userspace.20check-cfg.20compiler-team.23785)) - "Policy change around adding new unstable flags" [compiler-team#787](https://github.com/rust-lang/compiler-team/issues/787) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Policy.20change.20around.20adding.20new.20unstable.20.E2.80.A6.20compiler-team.23787)) - "Normalize FileCheck directives" [compiler-team#789](https://github.com/rust-lang/compiler-team/issues/789) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Normalize.20FileCheck.20directives.20compiler-team.23789)) - "Relink, don't rebuild" [compiler-team#790](https://github.com/rust-lang/compiler-team/issues/790) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Relink.2C.20don.27t.20rebuild.20compiler-team.23790)) - Old MCPs (stale MCP might be closed as per [MCP procedure](https://forge.rust-lang.org/compiler/mcp.html#when-should-major-change-proposals-be-closed)) - None at this time - Old MCPs (not seconded, take a look) - "Add hygiene attributes to compile expanded source code" [compiler-team#692](https://github.com/rust-lang/compiler-team/issues/692) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Add.20option.20to.20compile.20expanded.20ASTs.20for.20h.E2.80.A6.20compiler-team.23692)) (last review activity: about 13 days ago) - "Add Hotpatch flag" [compiler-team#745](https://github.com/rust-lang/compiler-team/issues/745) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Add.20Hotpatch.20flag.20compiler-team.23745)) (last review activity: about 1 days ago) - "Add `evex512` target feature for AVX10" [compiler-team#778](https://github.com/rust-lang/compiler-team/issues/778) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Add.20.60evex512.60.20target.20feature.20for.20AVX10.20compiler-team.23778)) (last review activity: about 26 days ago) - Pending FCP requests (check your boxes!) - "Add a new `--orchestrator-id` flag to rustc" [compiler-team#635](https://github.com/rust-lang/compiler-team/issues/635) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Add.20a.20new.20.60--build-id.60.20flag.20to.20rustc.20compiler-team.23635)) - "sanitizers: Stabilize AddressSanitizer and LeakSanitizer for the Tier 1 targets" [rust#123617](https://github.com/rust-lang/rust/pull/123617) - "Add `--print host-triple` to print host target triple" [rust#125579](https://github.com/rust-lang/rust/pull/125579) - "Check ABI target compatibility for function pointers" [rust#128784](https://github.com/rust-lang/rust/pull/128784) - "make unsupported_calling_conventions a hard error" [rust#129935](https://github.com/rust-lang/rust/pull/129935) - Things in FCP (make sure you're good with it) - "Add a new `--orchestrator-id` flag to rustc" [compiler-team#635](https://github.com/rust-lang/compiler-team/issues/635) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Add.20a.20new.20.60--build-id.60.20flag.20to.20rustc.20compiler-team.23635)) - "Target families for executable format" [compiler-team#716](https://github.com/rust-lang/compiler-team/issues/716) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Target.20families.20for.20executable.20format.20compiler-team.23716)) - "Support tests to use `minicore` std/core prelude stubs" [compiler-team#786](https://github.com/rust-lang/compiler-team/issues/786) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Support.20tests.20to.20use.20.60minicore.60.20std.2Fcore.20.E2.80.A6.20compiler-team.23786)) - Accepted MCPs - "Don't track `--emit=` options as part of crate SVH" [compiler-team#769](https://github.com/rust-lang/compiler-team/issues/769) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Don.27t.20track.20.60--emit.3D.60.20options.20as.20part.20of.20.E2.80.A6.20compiler-team.23769)) - "`--hint-msrv=version` option so the compiler can take MSRV into account when linting" [compiler-team#772](https://github.com/rust-lang/compiler-team/issues/772) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/.60-C.20msrv.3Dversion.60.20option.20so.20the.20compiler.20.E2.80.A6.20compiler-team.23772)) - "mark some target features as 'forbidden' so they cannot be (un)set with -Ctarget-feature" [compiler-team#780](https://github.com/rust-lang/compiler-team/issues/780) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/mark.20some.20target.20features.20as.20.27forbidden.27.20.E2.80.A6.20compiler-team.23780)) - "-Z default-visibility option" [compiler-team#782](https://github.com/rust-lang/compiler-team/issues/782) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/-Z.20default-visibility.20option.20compiler-team.23782)) - "Test rule annotations" [compiler-team#783](https://github.com/rust-lang/compiler-team/issues/783) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Test.20rule.20annotations.20compiler-team.23783)) - "New Tier-3 target for OpenHarmony on LoongArch64" [compiler-team#784](https://github.com/rust-lang/compiler-team/issues/784) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/New.20Tier-3.20target.20for.20OpenHarmony.20on.20Loon.E2.80.A6.20compiler-team.23784)) - MCPs blocked on unresolved concerns - "Retire the mailing list and make all decisions on zulip" [compiler-team#649](https://github.com/rust-lang/compiler-team/issues/649) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Retire.20the.20mailing.20list.20and.20make.20all.20deci.E2.80.A6.20compiler-team.23649)) - concern: [automatic-sync](https://github.com/rust-lang/compiler-team/issues/649#issuecomment-1618902660) - Finalized FCPs (disposition merge) - No new finished FCP (disposition merge) this time. - Other teams finalized FCPs - "Allow dropping `dyn Trait` principal" [rust#126660](https://github.com/rust-lang/rust/pull/126660) - "atomics: allow atomic and non-atomic reads to race" [rust#128778](https://github.com/rust-lang/rust/pull/128778) - "Make deprecated_cfg_attr_crate_type_name a hard error" [rust#129670](https://github.com/rust-lang/rust/pull/129670) - "Stabilize expr_2021 fragment specifier in all editions" [rust#129972](https://github.com/rust-lang/rust/pull/129972) ### WG checkins None ## Backport nominations [T-compiler beta](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Abeta-nominated+-label%3Abeta-accepted+label%3AT-compiler) / [T-compiler stable](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Astable-nominated+-label%3Astable-accepted+label%3AT-compiler) - :beta: "Only add an automatic SONAME for Rust dylibs" [rust#130960](https://github.com/rust-lang/rust/pull/130960) - Authored by cuviper - Fixes #126094, a stable regression (AFAICS). Context as per [RedHat issue](https://bugzilla.redhat.com/show_bug.cgi?id=2314879): > This causes RPM to improperly generate Provides for this shared object / .so file where previously no such metadata was added automatically. - @_**apiraino**: I /think/ this means that the `rustc` Fedora package dependency metadata are broken - Nominated by @**Vadim Petrochenkov** for both beta+stable backport <!-- /poll Approve beta backport of #130960? approve don't know --> - :beta: "Reject leading unsafe in `cfg!(...)` and `--check-cfg`" [rust#131057](https://github.com/rust-lang/rust/pull/131057) - Authored by Urgau - Fixes #131055, inconsistent validation of `unsafe(..)` attributes <!-- /poll Approve beta backport of #131057? approve don't know --> - :stable: "Only add an automatic SONAME for Rust dylibs" [rust#130960](https://github.com/rust-lang/rust/pull/130960) - Authored by cuviper - See above (also beta nominated) <!-- /poll Approve stable backport of #130960? approve approve but does not justify new dot release decline don't know --> [T-types stable](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Abeta-nominated+-label%3Abeta-accepted+label%3AT-types) / [T-types beta](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Astable-nominated+-label%3Astable-accepted+label%3AT-types) - No beta nominations for `T-types` this time. - No stable nominations for `T-types` this time. ## PRs S-waiting-on-team [T-compiler](https://github.com/rust-lang/rust/pulls?q=is%3Aopen+label%3AS-waiting-on-team+label%3AT-compiler) - [Issues in progress or waiting on other teams](https://hackmd.io/XYr1BrOWSiqCrl8RCWXRaQ) ## Issues of Note ### Short Summary - [0 T-compiler P-critical issues](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-critical) - [0 of those are unassigned](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-critical+no%3Aassignee) - [69 T-compiler P-high issues](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-high) - [41 of those are unassigned](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-high+no%3Aassignee) - [0 P-critical, 3 P-high, 4 P-medium, 0 P-low regression-from-stable-to-beta](https://github.com/rust-lang/rust/labels/regression-from-stable-to-beta) - [0 P-critical, 0 P-high, 6 P-medium, 3 P-low regression-from-stable-to-nightly](https://github.com/rust-lang/rust/labels/regression-from-stable-to-nightly) - [0 P-critical, 36 P-high, 100 P-medium, 17 P-low regression-from-stable-to-stable](https://github.com/rust-lang/rust/labels/regression-from-stable-to-stable) ### P-critical [T-compiler](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AP-critical+label%3AT-compiler) - No `P-critical` issues for `T-compiler` this time. [T-types](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AP-critical+label%3AT-types) - No `P-critical` issues for `T-types` this time. ### P-high regressions [P-high beta regressions](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Aregression-from-stable-to-beta+label%3AP-high+-label%3AT-infra+-label%3AT-libs+-label%3AT-libs-api+-label%3AT-release+-label%3AT-rustdoc+-label%3AT-core) - "regression: overflow evaluating the requirement" [rust#128887](https://github.com/rust-lang/rust/issues/128887) - Fixed, just needs a test (see [comment](https://github.com/rust-lang/rust/issues/128887#issuecomment-2361152008)). Any taker? [Unassigned P-high nightly regressions](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Aregression-from-stable-to-nightly+label%3AP-high+no%3Aassignee+-label%3AT-infra+-label%3AT-libs+-label%3AT-libs-api+-label%3AT-release+-label%3AT-rustdoc+-label%3AT-core+) - No unassigned `P-high` nightly regressions this time. ## Performance logs > [triage logs for 2024-10-01](https://github.com/rust-lang/rustc-perf/blob/master/triage/2024-10-01.md) A quiet week without too many perf. changes, although there was a nice perf. win on documentation builds thanks to [#130857](https://github.com/rust-lang/rust/pull/130857). Overall the results were positive. Triage done by **@kobzol**. Revision range: [4cadeda9..c87004a1](https://perf.rust-lang.org/?start=4cadeda932d5c261a9a0b1bbd25c4486e4e0a4c6&end=c87004a1f5be671e3f03f69fb13d8915bdbb6a52&absolute=false&stat=instructions%3Au) **Summary**: | (instructions:u) | mean | range | count | |:------------------------:|:-----:|:---------------:|:-----:| | Regressions (primary) | 0.5% | [0.2%, 0.8%] | 11 | | Regressions (secondary) | 0.3% | [0.2%, 0.6%] | 19 | | Improvements (primary) | -1.2% | [-14.9%, -0.2%] | 21 | | Improvements (secondary) | -1.0% | [-2.3%, -0.3%] | 5 | | All (primary) | -0.6% | [-14.9%, 0.8%] | 32 | 3 Regressions, 4 Improvements, 3 Mixed; 2 of them in rollups 47 artifact comparisons made in total #### Regressions Add `optimize_for_size` variants for stable and unstable sort as well as select_nth_unstable [#129587](https://github.com/rust-lang/rust/pull/129587) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=67bb749c2e1cf503fee64842963dd3e72a417a3f&end=363ae4188316b8b22cf6c1890bc73d84d05f70a4&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:----:|:------------:|:-----:| | Regressions (primary) | 0.3% | [0.2%, 0.3%] | 3 | | Regressions (secondary) | - | - | 0 | | Improvements (primary) | - | - | 0 | | Improvements (secondary) | - | - | 0 | | All (primary) | 0.3% | [0.2%, 0.3%] | 3 | - This PR improved the binary size of stdlib's sorting algorithms when compiled with the `optimize_for_size` cfg option. - It caused some small codegen perturbations, but it does not seem to warrant further changes. - Marked as triaged. Rollup of 6 pull requests [#130847](https://github.com/rust-lang/rust/pull/130847) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=b5117538e934f81e39eb9c326fdcc6574d144cb7&end=0399709cdc3c5cc22327e9f657dc7956546a0457&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:----:|:------------:|:-----:| | Regressions (primary) | 0.6% | [0.3%, 0.9%] | 9 | | Regressions (secondary) | 0.6% | [0.3%, 1.8%] | 8 | | Improvements (primary) | - | - | 0 | | Improvements (secondary) | - | - | 0 | | All (primary) | 0.6% | [0.3%, 0.9%] | 9 | - Regression comes from [#130735](https://github.com/rust-lang/rust/pull/130735), which implements a new form of MIR validation. - Marked as triaged. bump few deps [#130874](https://github.com/rust-lang/rust/pull/130874) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=b6576e3f63916034810d24172c35a5ac1c0ef704&end=851f698682aa2e4c226e1a2c1af30adbcb63aae2&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:----:|:------------:|:-----:| | Regressions (primary) | 3.4% | [3.4%, 3.4%] | 1 | | Regressions (secondary) | - | - | 0 | | Improvements (primary) | - | - | 0 | | Improvements (secondary) | - | - | 0 | | All (primary) | 3.4% | [3.4%, 3.4%] | 1 | - Noise, marked as triaged. #### Improvements Run `cargo update` in the project root [#129624](https://github.com/rust-lang/rust/pull/129624) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=4428a051679ec6194a118424f4616d922249a1e6&end=2bd1e894efde3b6be857ad345914a3b1cea51def&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:-----:|:--------------:|:-----:| | Regressions (primary) | - | - | 0 | | Regressions (secondary) | - | - | 0 | | Improvements (primary) | -0.5% | [-1.2%, -0.1%] | 14 | | Improvements (secondary) | -1.0% | [-2.5%, -0.2%] | 7 | | All (primary) | -0.5% | [-1.2%, -0.1%] | 14 | rustdoc perf: clone `clean::Item` less [#130857](https://github.com/rust-lang/rust/pull/130857) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=b9dc4a30e116c6bd1b873fa79379ea70e102c47b&end=a3f76a26e045a760bb1163b7eab36872985242d5&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:-----:|:---------------:|:-----:| | Regressions (primary) | - | - | 0 | | Regressions (secondary) | - | - | 0 | | Improvements (primary) | -9.3% | [-15.5%, -3.1%] | 2 | | Improvements (secondary) | - | - | 0 | | All (primary) | -9.3% | [-15.5%, -3.1%] | 2 | library: Compute `RUST_EXCEPTION_CLASS` from native-endian bytes [#130897](https://github.com/rust-lang/rust/pull/130897) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=851f698682aa2e4c226e1a2c1af30adbcb63aae2&end=150247c338a54cb3d08614d8530d1bb491fa90db&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:-----:|:--------------:|:-----:| | Regressions (primary) | - | - | 0 | | Regressions (secondary) | - | - | 0 | | Improvements (primary) | -3.3% | [-3.3%, -3.3%] | 1 | | Improvements (secondary) | - | - | 0 | | All (primary) | -3.3% | [-3.3%, -3.3%] | 1 | Improve autovectorization of to_lowercase / to_uppercase functions [#123778](https://github.com/rust-lang/rust/pull/123778) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=ed04567ba1d5956d1080fb8121caa005ce059e12&end=55cb7359c7a43fb084d4717088e4f6ad7d7964f4&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:-----:|:--------------:|:-----:| | Regressions (primary) | - | - | 0 | | Regressions (secondary) | - | - | 0 | | Improvements (primary) | -0.3% | [-0.4%, -0.2%] | 21 | | Improvements (secondary) | -1.2% | [-2.2%, -0.2%] | 2 | | All (primary) | -0.3% | [-0.4%, -0.2%] | 21 | #### Mixed Revert "Apply EarlyOtherwiseBranch to scalar value #129047" [#130775](https://github.com/rust-lang/rust/pull/130775) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=4cbfcf1b7f16245176488e581f57b39a7e32bc31&end=67bb749c2e1cf503fee64842963dd3e72a417a3f&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:-----:|:--------------:|:-----:| | Regressions (primary) | 0.6% | [0.6%, 0.6%] | 1 | | Regressions (secondary) | - | - | 0 | | Improvements (primary) | -1.1% | [-1.1%, -1.1%] | 1 | | Improvements (secondary) | - | - | 0 | | All (primary) | -0.2% | [-1.1%, 0.6%] | 2 | - Revert of a PR because of correctness issues. Rollup of 7 pull requests [#130807](https://github.com/rust-lang/rust/pull/130807) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=3f99982c633dbca746140db60ed52ba7fa112803&end=1b5aa96d6016bafe50e071b45d4d2e3c90fd766f&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:-----:|:--------------:|:-----:| | Regressions (primary) | 0.3% | [0.2%, 0.7%] | 5 | | Regressions (secondary) | - | - | 0 | | Improvements (primary) | -0.4% | [-0.4%, -0.4%] | 1 | | Improvements (secondary) | -1.2% | [-2.3%, -0.2%] | 2 | | All (primary) | 0.2% | [-0.4%, 0.7%] | 6 | - The doc build regressions were fixed (and in fact much improved) in [#130857](https://github.com/rust-lang/rust/pull/130857). - Marked as triaged. properly elaborate effects implied bounds for super traits [#129499](https://github.com/rust-lang/rust/pull/129499) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=0d6e13019609d8fa27cb4fafa7878c9e09279e14&end=4e91cedaedba39d06748c5873347f1a7341937ae&stat=instructions:u) | (instructions:u) | mean | range | count | |:------------------------:|:-----:|:--------------:|:-----:| | Regressions (primary) | 0.3% | [0.3%, 0.3%] | 4 | | Regressions (secondary) | 0.2% | [0.2%, 0.2%] | 1 | | Improvements (primary) | - | - | 0 | | Improvements (secondary) | -2.0% | [-2.0%, -2.0%] | 1 | | All (primary) | 0.3% | [0.3%, 0.3%] | 4 | - Small genuine regression caused by a change in trait elaboration. - Marked as triaged. ## Nominated Issues [T-compiler](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AI-compiler-nominated) - "Stabilize `extended_varargs_abi_support`" [rust#116161](https://github.com/rust-lang/rust/pull/116161) - Was waiting on T-lang first opinion (see [comment](https://github.com/rust-lang/rust/pull/116161#issuecomment-2374460539)) - Anything T-compiler wants to add? - "Tracking Issue for Arm microcontoller feature flags" [rust#130988](https://github.com/rust-lang/rust/issues/130988) - @thejpster opened an issue to track useful Arm microcontroller feature flags that could use stabilisation. Example: `-fpregs` or `+mve`. - These target features are about stopping LLVM using a feature when you give it a `-C target-feature=xxx`, as not all models of CPU actually have all features and `-C target-cpu` is over-eager at enabling things. - @_**RalfJung** said: > None of these features are currently listed as known ARM features in rustc, so they all cause a warning. And yet our docs recommend people to use them. So that's clearly not great. `fpregs` is particularly tricky since disabling it on an `eabihf` target is **unsound** as it changes the float ABI. On `eabi` targets it's fine because those have `+soft-float` anyway, which forces the `soft-float` ABI. So we'll need to stabilize this in a way where particular targets opt-in to supporting this feature, or something like that. - @_**jieyouxu**: > considering the RfL target feature flags, we probably want a design meeting for handling `-C target-cpu`, `-C target-feature` and target specs and properly tracking them for dependencies to error if incompatible things are used together in general. > cc <https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/stabilizing.20compiler.20flags.20for.20Rust-for-Linux>. [RFC](https://github.com/rust-lang/rfcs/issues?q=is%3Aopen+label%3AI-compiler-nominated) - No I-compiler-nominated RFCs this time. ### Oldest PRs waiting for review None this week ## Next week's WG checkins None Next meetings' agenda draft: [hackmd link](https://hackmd.io/AW9c7Zs-QIih_Wbteo1R2g)