Promote loongarch64-unknown-linux-musl to Tier 2 with host tools by heiher · Pull Request #126298 · rust-lang/rust (original) (raw)
rustbot has assigned @Mark-Simulacrum.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.
Use r?
to explicitly pick a reviewer
rustbot added A-testsuite
Area: The testsuite used to check the correctness of rustc
Status: Awaiting review from the assignee but also interested parties.
Relevant to the infrastructure team, which will review and decide on the PR/issue.
labels
Can anyone help trigger a try build? Thanks.
bors added a commit to rust-lang-ci/rust that referenced this pull request
☀️ Try build successful - checks-actions
Build commit: f77fd66 (f77fd663c53d97f2818b3bcee48b684019f10e95
)
@heiher does loongarch64-musl still have no/unknown std support?
@heiher does loongarch64-musl still have no/unknown std support?
loongarch64-linux-musl has std support.
@bors try
Kicking off another try build to get the with-cache build times.
bors added a commit to rust-lang-ci/rust that referenced this pull request
☀️ Try build successful - checks-actions
Build commit: 1c01c45 (1c01c4553dd1ca3e291f08a47fd5c65a48e6e9a6
)
It looks like this also needs to update:
* Platform support list: https://github.com/rust-lang/rust/blob/c3d7fb398569407350abe044e786bc7890c90397/src/doc/rustc/src/platform-support.md#L308 * I suspect rustup list needs to get updated: https://github.com/rust-lang/rust/blob/master/src/tools/build-manifest/src/main.rs
r=me with those done
I plan to promote it after adding CI. I would be happy to combine both CI and promote together. Thanks.
This PR changes how LLVM is built. Consider updating src/bootstrap/download-ci-llvm-stamp.
rustbot added the T-bootstrap
Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)
label
heiher changed the title
ci: Add support for dist-loongarch64-musl Promote loongarch64-unknown-linux-musl to Tier 2 with host tools
rustbot added S-waiting-on-review
Status: Awaiting review from the assignee but also interested parties.
and removed S-waiting-on-author
Status: This is awaiting some action (such as code changes or more information) from the author.
labels
Could not assign reviewer from: Mark-Simulacrum
.
User(s) Mark-Simulacrum
are either the PR author, already assigned, or on vacation, and there are no other candidates.
Use r?
to specify someone else to assign.
📌 Commit 16fef40 has been approved by Mark-Simulacrum
It is now in the queue for this repository.
bors added S-waiting-on-bors
Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
and removed S-waiting-on-review
Status: Awaiting review from the assignee but also interested parties.
labels
workingjubilee added a commit to workingjubilee/rustc that referenced this pull request
bors added a commit to rust-lang-ci/rust that referenced this pull request
…kingjubilee
Rollup of 9 pull requests
Successful merges:
- rust-lang#126177 (Add hard error and migration lint for unsafe attrs)
- rust-lang#126298 (Promote loongarch64-unknown-linux-musl to Tier 2 with host tools)
- rust-lang#126455 (For [E0308]: mismatched types, when expr is in an arm's body, not add semicolon ';' at the end of it.)
- rust-lang#126754 (Implement
use<>
formatting in rustfmt) - rust-lang#126807 (std::unix::fs: copy simplification for apple.)
- rust-lang#126845 (Weekly
cargo update
) - rust-lang#126849 (Fix 32-bit Arm reg classes by hierarchically sorting them)
- rust-lang#126854 (std::unix::os::home_dir: fallback's optimisation.)
- rust-lang#126861 (Migrate
run-make/invalid-library
tormake.rs
)
r? @ghost
@rustbot
modify labels: rollup
bors added a commit to rust-lang-ci/rust that referenced this pull request
…iaskrgr
Rollup of 9 pull requests
Successful merges:
- rust-lang#126177 (Add hard error and migration lint for unsafe attrs)
- rust-lang#126298 (Promote loongarch64-unknown-linux-musl to Tier 2 with host tools)
- rust-lang#126455 (For [E0308]: mismatched types, when expr is in an arm's body, not add semicolon ';' at the end of it.)
- rust-lang#126754 (Implement
use<>
formatting in rustfmt) - rust-lang#126807 (std::unix::fs: copy simplification for apple.)
- rust-lang#126845 (Weekly
cargo update
) - rust-lang#126849 (Fix 32-bit Arm reg classes by hierarchically sorting them)
- rust-lang#126854 (std::unix::os::home_dir: fallback's optimisation.)
- rust-lang#126888 (Remove stray println from rustfmt's
rewrite_static
)
r? @ghost
@rustbot
modify labels: rollup
heiher deleted the loongarch64-musl-ci branch
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request
jaisnan pushed a commit to jaisnan/rust-dev that referenced this pull request
Update Rust toolchain from nightly-2024-06-24 to nightly-2024-06-25
without any other source changes.
This is an automatically generated pull request. If any of the CI checks
fail, manual intervention is required. In such a case, review the
changes at https://github.com/rust-lang/rust from
rust-lang@bcf94de
up to
rust-lang@6b0f4b5.
The log for this commit range is:
rust-lang@6b0f4b5ec3 Auto merge of
rust-lang#126914 - compiler-errors:rollup-zx0hchm, r=compiler-errors
rust-lang@16bd6e25e1 Rollup merge of
rust-lang#126911 - oli-obk:do_not_count_errors, r=compiler-errors
rust-lang@59c258f51f Rollup merge of
rust-lang#126909 - onur-ozkan:add-kobzol, r=matthiaskrgr
rust-lang@85eb835a14 Rollup merge of
rust-lang#126904 - GrigorenkoPV:nonzero-fixme, r=joboet
rust-lang@a7721a0373 Rollup merge of
rust-lang#126899 - GrigorenkoPV:suggest-const-block, r=davidtwco
rust-lang@9ce2a070b3 Rollup merge of
rust-lang#126682 - Zalathar:coverage-attr, r=lcnr
rust-lang@49bdf460a2 Rollup merge of
rust-lang#126673 - oli-obk:dont_rely_on_err_reporting, r=compiler-errors
rust-lang@46e43984d1 Rollup merge of
rust-lang#126413 - matthiaskrgr:crshmsg, r=oli-obk
rust-lang@ed460d2eaa Rollup merge of
rust-lang#125575 - dingxiangfei2009:derive-smart-ptr, r=davidtwco
rust-lang@c77dc28f87 Rollup merge of
rust-lang#125082 - kpreid:const-uninit, r=dtolnay
rust-lang@faa28be2f1 Rollup merge of
rust-lang#124712 - Enselic:deprecate-inline-threshold, r=pnkfelix
rust-lang@00e5f5886a Rollup merge of
rust-lang#124460 - long-long-float:show-notice-about-enum-with-debug, r=pnkfelix
rust-lang@d8d5732456 Auto merge of
rust-lang#126784 - scottmcm:smaller-terminator, r=compiler-errors
rust-lang@13fca73f49 Replace
MaybeUninit::uninit_array()
with array repeat expression.
rust-lang@5a3e2a4e92 Auto merge of
rust-lang#126523 - joboet:the_great_big_tls_refactor, r=Mark-Simulacrum
rust-lang@45261ff2ec add @Kobzol to
bootstrap team for triagebot
rust-lang@84474a25a4 Small fixme in core
now that NonZero is generic
rust-lang@50a02ed789 std: fix wasm builds
rust-lang@8fc6b3de19 Separate the mir
body lifetime from the other lifetimes
rust-lang@1c4d0ced58 Separate the
lifetimes of the BorrowckInferCtxt
from the other borrowed items
rust-lang@d371d17496 Auto merge of
rust-lang#126900 - matthiaskrgr:rollup-24ah97b, r=matthiaskrgr
rust-lang@8ffb5f936a compiletest: make
the crash test error message abit more informative
rust-lang@a80ee9159b Rollup merge of
rust-lang#126882 - estebank:multiline-order, r=WaffleLapkin
rust-lang@8bfde609e2 Rollup merge of
rust-lang#126414 - ChrisDenton:target-known, r=Nilstrieb
rust-lang@94b9ea417d Rollup merge of
rust-lang#126213 - zachs18:atomicbool-u8-i8-from-ptr-alignment, r=Nilstrieb
rust-lang@9d24ecc37b Rollup merge of
rust-lang#125241 - Veykril:tool-rust-analyzer, r=davidtwco
rust-lang@ba5ec1fc5c Suggest inline const
blocks for array initialization
rust-lang@06c072f158 Auto merge of
rust-lang#126788 - GuillaumeGomez:migrate-rustdoc-tests-syntax, r=fmease,oli-obk
rust-lang@1852141219 coverage: Bless
coverage attribute tests
rust-lang@b7c057c9b2 coverage: Always
error on #[coverage(..)]
in unexpected places
rust-lang@a000fa8b54 coverage: Tighten
validation of #[coverage(off)]
and #[coverage(on)]
rust-lang@b5dfeba0e1 coverage: Forbid
multiple #[coverage(..)]
attributes
rust-lang@6909feab8e Allow numbers in
rustdoc tests commands
rust-lang@4e258bb4c3 Fix tidy issue for
rustdoc tests commands
rust-lang@51fedf65ff Remove commands
duplication between compiletest
and tests/rustdoc
rust-lang@1b67035579 Update
tests/rustdoc
to new test syntax
rust-lang@d3ec92e16e Move tests/rustdoc
testsuite to //@
syntax
rust-lang@2c243d9570 Auto merge of
rust-lang#126891 - matthiaskrgr:rollup-p6dl1gk, r=matthiaskrgr
rust-lang@b94d2754b5 Rollup merge of
rust-lang#126888 - compiler-errors:oops-debug-printing, r=dtolnay
rust-lang@9892b3e9fe Rollup merge of
rust-lang#126854 - devnexen:std_unix_os_fallback_upd, r=Mark-Simulacrum
rust-lang@3108dfaced Rollup merge of
rust-lang#126849 - workingjubilee:correctly-classify-arm-low-dregs, r=Amanieu
rust-lang@dcace866f0 Rollup merge of
rust-lang#126845 - rust-lang:cargo_update, r=Mark-Simulacrum
rust-lang@21850f5bd8 Rollup merge of
rust-lang#126807 - devnexen:copy_file_macos_simpl, r=Mark-Simulacrum
rust-lang@b24e3df0df Rollup merge of
rust-lang#126754 - compiler-errors:use-rustfmt, r=calebcartwright
rust-lang@ad0531ae0d Rollup merge of
rust-lang#126455 - surechen:fix_126222, r=estebank
rust-lang@7babf99ea9 Rollup merge of
rust-lang#126298 - heiher:loongarch64-musl-ci, r=Mark-Simulacrum
rust-lang@9a591ea1ce Rollup merge of
rust-lang#126177 - carbotaniuman:unsafe_attr_errors, r=jieyouxu
rust-lang@25446c25fc Remove stray println
from rustfmt
rust-lang@d49994b060 Auto merge of
rust-lang#126023 - amandasystems:you-dropped-this-again, r=nikomatsakis
rust-lang@a23917cfd0 Add hard error and
migration lint for unsafe attrs
rust-lang@284437d434 Special case when a
code line only has multiline span starts
rust-lang@f1be59fa72 SmartPointer
derive-macro
rust-lang@a426d6fdf0 Implement use<>
formatting in rustfmt
rust-lang@16fef40896 Promote
loongarch64-unknown-linux-musl to Tier 2 with host tools
rust-lang@03d73fa6ba ci: Add support for
dist-loongarch64-musl
rust-lang@fc50acae90 fix build
rust-lang@bd9ce3e074
std::unix::os::home_dir: fallback's optimisation.
rust-lang@0d8f734172 compiler: Fix arm32
asm issues by hierarchically sorting reg classes
rust-lang@e8b5ba1111 For [E0308]:
mismatched types, when expr is in an arm's body, not add semicolon ';'
at the end of it.
rust-lang@990535723d cargo update
rust-lang@b28efb11af Save 2 pointers in
TerminatorKind
(96 → 80 bytes)
rust-lang@65530ba100 std::unix::fs: copy
simplification for apple.
rust-lang@339015920d Add rust_analyzer
as a predefined tool
rust-lang@3f2f8438b4 Ensure we don't
accidentally succeed when we want to report an error
rust-lang@32f9b8bf76 std: rename module
for clarity
rust-lang@35f050b8da std: update TLS
module documentation
rust-lang@b2f29edc81 std: use the c_int
from core::ffi
instead of libc
rust-lang@d70f071392 std: simplify
#[cfg]
s for TLS
rust-lang@d630f5da7a Show notice about
"never used" for enum
rust-lang@f3facf1175 std: refactor the
TLS implementation
rust-lang@f5f067bf9d Deprecate no-op
codegen option -Cinline-threshold=...
rust-lang@651ff643ae Fix typo in
-Cno-stack-check
deprecation warning
rust-lang@3af624272a rustc_codegen_ssa:
Remove unused ModuleConfig::inline_threshold
rust-lang@34e6ea1446 Tier 2 std support
must always be known
rust-lang@2d4cb7aa5a Update docs for
AtomicU8/I8.
rust-lang@7885c7b7b2 Update safety docs
for AtomicBool::from_ptr.
rust-lang@7b5b7a7010 Remove confusing
use_polonius
flag and do less cloning
Co-authored-by: tautschnig 1144736+tautschnig@users.noreply.github.com
tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request
This MR contains the following updates:
Package | Update | Change |
---|---|---|
rust | minor | 1.80.1 -> 1.81.0 |
MR created with the help of el-capitano/tools/renovate-bot.
Proposed changes to behavior should be submitted there as MRs.
Release Notes
rust-lang/rust (rust)
v1.81.0
==========================
Language
- Abort on uncaught panics in
extern "C"
functions. - Fix ambiguous cases of multiple
&
in elided self lifetimes. - Stabilize
#[expect]
for lints (RFC 2383), like#[allow]
with a warning if the lint is not fulfilled. - Change method resolution to constrain hidden types instead of rejecting method candidates.
- Bump
elided_lifetimes_in_associated_constant
to deny. offset_from
: always allow pointers to point to the same address.- Allow constraining opaque types during subtyping in the trait system.
- Allow constraining opaque types during various unsizing casts.
- Deny keyword lifetimes pre-expansion.
Compiler
- Make casts of pointers to trait objects stricter.
- Check alias args for well-formedness even if they have escaping bound vars.
- Deprecate no-op codegen option
-Cinline-threshold=...
. - Re-implement a type-size based limit.
- Properly account for alignment in
transmute
size checks. - Remove the
box_pointers
lint. - Ensure the interpreter checks bool/char for validity when they are used in a cast.
- Improve coverage instrumentation for functions containing nested items.
- Target changes:
- Add Tier 3
no_std
Xtensa targets:xtensa-esp32-none-elf
,xtensa-esp32s2-none-elf
,xtensa-esp32s3-none-elf
- Add Tier 3
std
Xtensa targets:xtensa-esp32-espidf
,xtensa-esp32s2-espidf
,xtensa-esp32s3-espidf
- Add Tier 3 i686 Redox OS target:
i686-unknown-redox
- Promote
arm64ec-pc-windows-msvc
to Tier 2. - Promote
loongarch64-unknown-linux-musl
to Tier 2 with host tools. - Enable full tools and profiler for LoongArch Linux targets.
- Unconditionally warn on usage of
wasm32-wasi
. (see compatibility note below) - Refer to Rust's [platform support page][platform-support-doc] for more information on Rust's tiered platform support.
- Add Tier 3
Libraries
- Split core's
PanicInfo
and std'sPanicInfo
. (see compatibility note below) - Generalize
{Rc,Arc}::make_mut()
to unsized types. - Replace sort implementations with stable
driftsort
and unstableipnsort
. Allslice::sort*
andslice::select_nth*
methods are expected to see significant performance improvements. See the research project for more details. - Document behavior of
create_dir_all
with respect to empty paths. - Fix interleaved output in the default panic hook when multiple threads panic simultaneously.
Stabilized APIs
core::error
hint::assert_unchecked
fs::exists
AtomicBool::fetch_not
Duration::abs_diff
IoSlice::advance
IoSlice::advance_slices
IoSliceMut::advance
IoSliceMut::advance_slices
PanicHookInfo
PanicInfo::message
PanicMessage
These APIs are now stable in const contexts:
char::from_u32_unchecked
(function)char::from_u32_unchecked
(method)CStr::count_bytes
CStr::from_ptr
Cargo
- Generated
.cargo_vcs_info.json
is always included, even when--allow-dirty
is passed. - Disallow
package.license-file
andpackage.readme
pointing to non-existent files during packaging. - Disallow passing
--release
/--debug
flag along with the--profile
flag. - Remove
lib.plugin
key support inCargo.toml
. Rust plugin support has been deprecated for four years and was removed in 1.75.0.
Compatibility Notes
Usage of the
wasm32-wasi
target will now issue a compiler warning and request users switch to thewasm32-wasip1
target instead. Both targets are the same,wasm32-wasi
is only being renamed, and this change to the WASI target is being done to enable removingwasm32-wasi
in January 2025.We have renamed
std::panic::PanicInfo
tostd::panic::PanicHookInfo
. The old name will continue to work as an alias, but will result in a deprecation warning starting in Rust 1.82.0.core::panic::PanicInfo
will remain unchanged, however, as this is now a different type.The reason is that these types have different roles:
std::panic::PanicHookInfo
is the argument to the panic hook in std context (where panics can have an arbitrary payload), whilecore::panic::PanicInfo
is the argument to the#[panic_handler]
in no_std context (where panics always carry a formatted message). Separating these types allows us to add more useful methods to these types, such asstd::panic::PanicHookInfo::payload_as_str()
andcore::panic::PanicInfo::message()
.The new sort implementations may panic if a type's implementation of
Ord
(or the given comparison function) does not implement a total order as the trait requires.Ord
's supertraits (PartialOrd
,Eq
, andPartialEq
) must also be consistent. The previous implementations would not "notice" any problem, but the new implementations have a good chance of detecting inconsistencies, throwing a panic rather than returning knowingly unsorted data.
Internal Changes
These changes do not affect any public interfaces of Rust, but they represent significant improvements to the performance or internals of rustc and related tools.
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this MR and you won't be reminded about this update again.
- If you want to rebase/retry this MR, check this box
This MR has been generated by Renovate Bot.
wip-sync pushed a commit to NetBSD/pkgsrc-wip that referenced this pull request
Pkgsrc changes:
- Adapt patches, apply to new vendored crates where needed.
- Back-port rust pull request 130110, "make dist vendoring configurable"
- Disable "dist vendoring", otherwise cargo would try to access the network during the build phase.
Upstream changes:
Version 1.81.0 (2024-09-05)
Language
- [Abort on uncaught panics in
extern "C"
functions.] (rust-lang/rust#116088) - [Fix ambiguous cases of multiple
&
in elided self lifetimes.] (rust-lang/rust#117967) - [Stabilize
#[expect]
for lints (RFC 2383),] (rust-lang/rust#120924) like#[allow]
with a warning if the lint is not fulfilled. - [Change method resolution to constrain hidden types instead of rejecting method candidates.] (rust-lang/rust#123962)
- [Bump
elided_lifetimes_in_associated_constant
to deny.] (rust-lang/rust#124211) - [
offset_from
: always allow pointers to point to the same address.] (rust-lang/rust#124921) - [Allow constraining opaque types during subtyping in the trait system.] (rust-lang/rust#125447)
- [Allow constraining opaque types during various unsizing casts.] (rust-lang/rust#125610)
- [Deny keyword lifetimes pre-expansion.] (rust-lang/rust#126762)
Compiler
- [Make casts of pointers to trait objects stricter.] (rust-lang/rust#120248)
- [Check alias args for well-formedness even if they have escaping bound vars.] (rust-lang/rust#123737)
- [Deprecate no-op codegen option
-Cinline-threshold=...
.] (rust-lang/rust#124712) - [Re-implement a type-size based limit.] (rust-lang/rust#125507)
- [Properly account for alignment in
transmute
size checks.] (rust-lang/rust#125740) - [Remove the
box_pointers
lint.] (rust-lang/rust#126018) - [Ensure the interpreter checks bool/char for validity when they are used in a cast.] (rust-lang/rust#126265)
- [Improve coverage instrumentation for functions containing nested items.] (rust-lang/rust#127199)
- Target changes:
- [Add Tier 3
no_std
Xtensa targets:] (rust-lang/rust#125141)xtensa-esp32-none-elf
,xtensa-esp32s2-none-elf
,xtensa-esp32s3-none-elf
- [Add Tier 3
std
Xtensa targets:] (rust-lang/rust#126380)xtensa-esp32-espidf
,xtensa-esp32s2-espidf
,xtensa-esp32s3-espidf
- [Add Tier 3 i686 Redox OS target:]
(rust-lang/rust#126192)
i686-unknown-redox
- [Promote
arm64ec-pc-windows-msvc
to Tier 2.] (rust-lang/rust#126039) - [Promote
wasm32-wasip2
to Tier 2.] (rust-lang/rust#126967) - [Promote
loongarch64-unknown-linux-musl
to Tier 2 with host tools.] (rust-lang/rust#126298) - [Enable full tools and profiler for LoongArch Linux targets.] (rust-lang/rust#127078)
- [Unconditionally warn on usage of
wasm32-wasi
.] (rust-lang/rust#126662) (see compatibility note below) - Refer to Rust's [platform support page][platform-support-doc] for more information on Rust's tiered platform support.
- [Add Tier 3
Libraries
- [Split core's
PanicInfo
and std'sPanicInfo
.] (rust-lang/rust#115974) (see compatibility note below) - [Generalize
{Rc,Arc}::make_mut()
to unsized types.] (rust-lang/rust#116113) - [Replace sort implementations with stable
driftsort
and unstableipnsort
.] (rust-lang/rust#124032) Allslice::sort*
andslice::select_nth*
methods are expected to see significant performance improvements. See the [research project] (https://github.com/Voultapher/sort-research-rs) for more details. - [Document behavior of
create_dir_all
with respect to empty paths.] (rust-lang/rust#125112) - [Fix interleaved output in the default panic hook when multiple threads panic simultaneously.] (rust-lang/rust#127397)
- Fix
Command
's batch files argument escaping not working when file name has trailing whitespace or periods (CVE-2024-43402).
Stabilized APIs
- [
core::error
] (https://doc.rust-lang.org/stable/core/error/index.html) - [
hint::assert_unchecked
] (https://doc.rust-lang.org/stable/core/hint/fn.assert_unchecked.html) - [
fs::exists
] (https://doc.rust-lang.org/stable/std/fs/fn.exists.html) - [
AtomicBool::fetch_not
] (https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicBool.html#method.fetch_not) - [
Duration::abs_diff
] (https://doc.rust-lang.org/stable/core/time/struct.Duration.html#method.abs_diff) - [
IoSlice::advance
] (https://doc.rust-lang.org/stable/std/io/struct.IoSlice.html#method.advance) - [
IoSlice::advance_slices
] (https://doc.rust-lang.org/stable/std/io/struct.IoSlice.html#method.advance_slices) - [
IoSliceMut::advance
] (https://doc.rust-lang.org/stable/std/io/struct.IoSliceMut.html#method.advance) - [
IoSliceMut::advance_slices
] (https://doc.rust-lang.org/stable/std/io/struct.IoSliceMut.html#method.advance_slices) - [
PanicHookInfo
] (https://doc.rust-lang.org/stable/std/panic/struct.PanicHookInfo.html) - [
PanicInfo::message
] (https://doc.rust-lang.org/stable/core/panic/struct.PanicInfo.html#method.message) - [
PanicMessage
] (https://doc.rust-lang.org/stable/core/panic/struct.PanicMessage.html)
These APIs are now stable in const contexts:
- [
char::from_u32_unchecked
] (https://doc.rust-lang.org/stable/core/char/fn.from_u32_unchecked.html) (function) - [
char::from_u32_unchecked
] (https://doc.rust-lang.org/stable/core/primitive.char.html#method.from_u32_unchecked) (method) - [
CStr::count_bytes
] (https://doc.rust-lang.org/stable/core/ffi/c_str/struct.CStr.html#method.count_bytes) - [
CStr::from_ptr
] (https://doc.rust-lang.org/stable/core/ffi/c_str/struct.CStr.html#method.from_ptr)
Cargo
- [Generated
.cargo_vcs_info.json
is always included, even when--allow-dirty
is passed.] (rust-lang/cargo#13960) - [Disallow
package.license-file
andpackage.readme
pointing to non-existent files during packaging.] (rust-lang/cargo#13921) - [Disallow passing
--release
/--debug
flag along with the--profile
flag.] (rust-lang/cargo#13971) - [Remove
lib.plugin
key support inCargo.toml
. Rust plugin support has been deprecated for four years and was removed in 1.75.0.] (rust-lang/cargo#13902)
Compatibility Notes
Usage of the
wasm32-wasi
target will now issue a compiler warning and request users switch to thewasm32-wasip1
target instead. Both targets are the same,wasm32-wasi
is only being renamed, and this [change to the WASI target] (https://blog.rust-lang.org/2024/04/09/updates-to-rusts-wasi-targets.html) is being done to enable removingwasm32-wasi
in January 2025.We have renamed
std::panic::PanicInfo
tostd::panic::PanicHookInfo
. The old name will continue to work as an alias, but will result in a deprecation warning starting in Rust 1.82.0.core::panic::PanicInfo
will remain unchanged, however, as this is now a different type.The reason is that these types have different roles:
std::panic::PanicHookInfo
is the argument to the panic hook in std context (where panics can have an arbitrary payload), whilecore::panic::PanicInfo
is the argument to the#[panic_handler]
in no_std context (where panics always carry a formatted message). Separating these types allows us to add more useful methods to these types, such asstd::panic::PanicHookInfo::payload_as_str()
andcore::panic::PanicInfo::message()
.The new sort implementations may panic if a type's implementation of
Ord
(or the given comparison function) does not implement a total order as the trait requires.Ord
's supertraits (PartialOrd
,Eq
, andPartialEq
) must also be consistent. The previous implementations would not "notice" any problem, but the new implementations have a good chance of detecting inconsistencies, throwing a panic rather than returning knowingly unsorted data.[In very rare cases, a change in the internal evaluation order of the trait solver may result in new fatal overflow errors.] (rust-lang/rust#126128)
Internal Changes
These changes do not affect any public interfaces of Rust, but they represent significant improvements to the performance or internals of rustc and related tools.
- [Add a Rust-for Linux
auto
CI job to check kernel builds.] (rust-lang/rust#125209)
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this pull request
Pkgsrc changes:
- Adapt patches, apply to new vendored crates where needed.
- Back-port rust pull request 130110, "make dist vendoring configurable"
- Disable "dist vendoring", otherwise cargo would try to access the network during the build phase.
Upstream changes:
Version 1.81.0 (2024-09-05)
Language
- [Abort on uncaught panics in
extern "C"
functions.] (rust-lang/rust#116088) - [Fix ambiguous cases of multiple
&
in elided self lifetimes.] (rust-lang/rust#117967) - [Stabilize
#[expect]
for lints (RFC 2383),] (rust-lang/rust#120924) like#[allow]
with a warning if the lint is not fulfilled. - [Change method resolution to constrain hidden types instead of rejecting method candidates.] (rust-lang/rust#123962)
- [Bump
elided_lifetimes_in_associated_constant
to deny.] (rust-lang/rust#124211) - [
offset_from
: always allow pointers to point to the same address.] (rust-lang/rust#124921) - [Allow constraining opaque types during subtyping in the trait system.] (rust-lang/rust#125447)
- [Allow constraining opaque types during various unsizing casts.] (rust-lang/rust#125610)
- [Deny keyword lifetimes pre-expansion.] (rust-lang/rust#126762)
Compiler
- [Make casts of pointers to trait objects stricter.] (rust-lang/rust#120248)
- [Check alias args for well-formedness even if they have escaping bound vars.] (rust-lang/rust#123737)
- [Deprecate no-op codegen option
-Cinline-threshold=...
.] (rust-lang/rust#124712) - [Re-implement a type-size based limit.] (rust-lang/rust#125507)
- [Properly account for alignment in
transmute
size checks.] (rust-lang/rust#125740) - [Remove the
box_pointers
lint.] (rust-lang/rust#126018) - [Ensure the interpreter checks bool/char for validity when they are used in a cast.] (rust-lang/rust#126265)
- [Improve coverage instrumentation for functions containing nested items.] (rust-lang/rust#127199)
- Target changes:
- [Add Tier 3
no_std
Xtensa targets:] (rust-lang/rust#125141)xtensa-esp32-none-elf
,xtensa-esp32s2-none-elf
,xtensa-esp32s3-none-elf
- [Add Tier 3
std
Xtensa targets:] (rust-lang/rust#126380)xtensa-esp32-espidf
,xtensa-esp32s2-espidf
,xtensa-esp32s3-espidf
- [Add Tier 3 i686 Redox OS target:]
(rust-lang/rust#126192)
i686-unknown-redox
- [Promote
arm64ec-pc-windows-msvc
to Tier 2.] (rust-lang/rust#126039) - [Promote
wasm32-wasip2
to Tier 2.] (rust-lang/rust#126967) - [Promote
loongarch64-unknown-linux-musl
to Tier 2 with host tools.] (rust-lang/rust#126298) - [Enable full tools and profiler for LoongArch Linux targets.] (rust-lang/rust#127078)
- [Unconditionally warn on usage of
wasm32-wasi
.] (rust-lang/rust#126662) (see compatibility note below) - Refer to Rust's [platform support page][platform-support-doc] for more information on Rust's tiered platform support.
- [Add Tier 3
Libraries
- [Split core's
PanicInfo
and std'sPanicInfo
.] (rust-lang/rust#115974) (see compatibility note below) - [Generalize
{Rc,Arc}::make_mut()
to unsized types.] (rust-lang/rust#116113) - [Replace sort implementations with stable
driftsort
and unstableipnsort
.] (rust-lang/rust#124032) Allslice::sort*
andslice::select_nth*
methods are expected to see significant performance improvements. See the [research project] (https://github.com/Voultapher/sort-research-rs) for more details. - [Document behavior of
create_dir_all
with respect to empty paths.] (rust-lang/rust#125112) - [Fix interleaved output in the default panic hook when multiple threads panic simultaneously.] (rust-lang/rust#127397)
- Fix
Command
's batch files argument escaping not working when file name has trailing whitespace or periods (CVE-2024-43402).
Stabilized APIs
- [
core::error
] (https://doc.rust-lang.org/stable/core/error/index.html) - [
hint::assert_unchecked
] (https://doc.rust-lang.org/stable/core/hint/fn.assert_unchecked.html) - [
fs::exists
] (https://doc.rust-lang.org/stable/std/fs/fn.exists.html) - [
AtomicBool::fetch_not
] (https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicBool.html#method.fetch_not) - [
Duration::abs_diff
] (https://doc.rust-lang.org/stable/core/time/struct.Duration.html#method.abs_diff) - [
IoSlice::advance
] (https://doc.rust-lang.org/stable/std/io/struct.IoSlice.html#method.advance) - [
IoSlice::advance_slices
] (https://doc.rust-lang.org/stable/std/io/struct.IoSlice.html#method.advance_slices) - [
IoSliceMut::advance
] (https://doc.rust-lang.org/stable/std/io/struct.IoSliceMut.html#method.advance) - [
IoSliceMut::advance_slices
] (https://doc.rust-lang.org/stable/std/io/struct.IoSliceMut.html#method.advance_slices) - [
PanicHookInfo
] (https://doc.rust-lang.org/stable/std/panic/struct.PanicHookInfo.html) - [
PanicInfo::message
] (https://doc.rust-lang.org/stable/core/panic/struct.PanicInfo.html#method.message) - [
PanicMessage
] (https://doc.rust-lang.org/stable/core/panic/struct.PanicMessage.html)
These APIs are now stable in const contexts:
- [
char::from_u32_unchecked
] (https://doc.rust-lang.org/stable/core/char/fn.from_u32_unchecked.html) (function) - [
char::from_u32_unchecked
] (https://doc.rust-lang.org/stable/core/primitive.char.html#method.from_u32_unchecked) (method) - [
CStr::count_bytes
] (https://doc.rust-lang.org/stable/core/ffi/c_str/struct.CStr.html#method.count_bytes) - [
CStr::from_ptr
] (https://doc.rust-lang.org/stable/core/ffi/c_str/struct.CStr.html#method.from_ptr)
Cargo
- [Generated
.cargo_vcs_info.json
is always included, even when--allow-dirty
is passed.] (rust-lang/cargo#13960) - [Disallow
package.license-file
andpackage.readme
pointing to non-existent files during packaging.] (rust-lang/cargo#13921) - [Disallow passing
--release
/--debug
flag along with the--profile
flag.] (rust-lang/cargo#13971) - [Remove
lib.plugin
key support inCargo.toml
. Rust plugin support has been deprecated for four years and was removed in 1.75.0.] (rust-lang/cargo#13902)
Compatibility Notes
Usage of the
wasm32-wasi
target will now issue a compiler warning and request users switch to thewasm32-wasip1
target instead. Both targets are the same,wasm32-wasi
is only being renamed, and this [change to the WASI target] (https://blog.rust-lang.org/2024/04/09/updates-to-rusts-wasi-targets.html) is being done to enable removingwasm32-wasi
in January 2025.We have renamed
std::panic::PanicInfo
tostd::panic::PanicHookInfo
. The old name will continue to work as an alias, but will result in a deprecation warning starting in Rust 1.82.0.core::panic::PanicInfo
will remain unchanged, however, as this is now a different type.The reason is that these types have different roles:
std::panic::PanicHookInfo
is the argument to the panic hook in std context (where panics can have an arbitrary payload), whilecore::panic::PanicInfo
is the argument to the#[panic_handler]
in no_std context (where panics always carry a formatted message). Separating these types allows us to add more useful methods to these types, such asstd::panic::PanicHookInfo::payload_as_str()
andcore::panic::PanicInfo::message()
.The new sort implementations may panic if a type's implementation of
Ord
(or the given comparison function) does not implement a total order as the trait requires.Ord
's supertraits (PartialOrd
,Eq
, andPartialEq
) must also be consistent. The previous implementations would not "notice" any problem, but the new implementations have a good chance of detecting inconsistencies, throwing a panic rather than returning knowingly unsorted data.[In very rare cases, a change in the internal evaluation order of the trait solver may result in new fatal overflow errors.] (rust-lang/rust#126128)
Internal Changes
These changes do not affect any public interfaces of Rust, but they represent significant improvements to the performance or internals of rustc and related tools.
- [Add a Rust-for Linux
auto
CI job to check kernel builds.] (rust-lang/rust#125209)