2023-12-06
Hello and welcome to another issue of This Week in Rust! Rust is a programming language empowering everyone to build reliable and efficient software. This is a weekly summary of its progress and community. Want something mentioned? Tag us at @ThisWeekInRust on Twitter or @ThisWeekinRust on mastodon.social, or send us a pull request. Want to get involved? We love contributions.
This Week in Rust is openly developed on GitHub and archives can be viewed at this-week-in-rust.org. If you find any errors in this week's issue, please submit a PR.
This week's crate is symbols, a utility to quickly create proc-macros to solidify database tables into enums enabling compile time foreign key checks.
Thanks to Marco Napetti for the self-suggestion!
Please submit your suggestions and votes for next week!
Always wanted to contribute to open-source projects but did not know where to start? Every week we highlight some tasks from the Rust community for you to pick and get started!
Some of these tasks may also have mentors available, visit the task page for more information.
nodes/models miscnodesNodeManagerWorker for node / node statusderive feature doesn't change API surfaceall-jobs-succeeded CI job depends on all other jobsIf you are a Rust project owner and are looking for contributors, please submit tasks here.
369 pull requests were merged in the last week
add an assume that the index is inbounds to slice::get_unchecked
rustc_span: Use correct edit distance start length for suggestions
rustc_hir_typeck: Fix ICE when probing for non-ASCII function alternative
constProp: correctly remove const if unknown value assigned to it
coverage: skip spans that can't be un-expanded back to the function body
dispose llvm::TargetMachines prior to llvm::Context being disposed
dont suggest ! for path in function call if it has generic args
eagerly return ExprKind::Err on yield/await in wrong coroutine context
explain a good reason for why LocalValue does not store the type of the local
fix the issue of suggesting unwrap/expect for shorthand field
give dev-friendly error message for incorrect config profiles
handle recursion limit for subtype and well-formed predicates
more targeted errors when extern types end up in places they should not
pass +forced-atomics feature for riscv32{i,im,imc}-unknown-none-elf
perform LTO optimisations with wasm-ld + -Clinker-plugin-lto
report errors in jobserver inherited through environment variables
restrict what symbols can be used in #[diagnostic::on_unimplemented] format strings
tweak parsing recovery of enums, for exprs and match arm patterns
warn against using intrinsics that leave the scope of our memory model
codegen, miri: fix computing the offset of an unsized field in a packed struct
miri: support 'promising' alignment for symbolic alignment check
miri: SIMD bitmasks: use 'round up to multiple of 8' rather than 'clamp to at least 8'
expand in-place iteration specialization to Flatten, FlatMap and ArrayChunks
cargo resolver: De-prioritize no-rust-version in MSRV resolver
cargo: fixes error count display is different when there's only one error left
cargo: have cargo add --optional <dep> create a <dep> = "dep:<dep> feature
cargo: include declared list of features in fingerprint for -Zcheck-cfg
clippy: missing_asserts_for_indexing: accept length equality checks
clippy: option_if_let_else: do not trigger on expressions returning ()
clippy: redundant_guards: catch is_empty, starts_with and ends_with on slices and strs
clippy: expanding lint blocks_in_if_conditions to check match expr as well
rust-analyzer: don't make MissingMatchArms diagnostic for empty match body
rust-analyzer: improve error handling for top-level let statements
Rusty Events between 2023-12-06 - 2024-01-03 🦀
If you are running a Rust event please add it to the calendar to get it mentioned here. Please remember to add a link to the event too. Email the Rust Community Team for access.
Please see the latest Who's Hiring thread on r/rust
NVIDIA's firmware, Airlie said, comes with a set of include files that, in turn, define structures that change over time. To deal with these changes, the driver is going to need some sort of automated ABI generation; he noted that the developers working on the Apple M1 GPU driver have run into the same problem. This problem could be made easier to tackle, he suggested, if the driver were, like the M1 driver, to be rewritten in Rust.
– Jonathan Corbet paraphrasing David Airlie on Linux Weekly News
Thanks to Brian Kung for the suggestion!
Please submit quotes and vote for next week!
This Week in Rust is edited by: nellshamrell, llogiq, cdmistman, ericseppanen, extrawurst, andrewpollack, U007D, kolharsam, joelmarcey, mariannegoldin, bennyvasquez.
Email list hosting is sponsored by The Rust Foundation