2023-09-13
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 irsenv, a hierarchical environmant variable manager.
Thanks to sysid 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.
zerocopy - Implement traits for tuple types (and maybe other container types?)
zerocopy - Refactor version comparison logic in check_versions CI job
r3bl_rs_utils - Add styling support so that selected and unselected styles can be passed in
r3bl_rs_utils - Create a function that allows multiple selections from a list of strings
Ockam - Investigate and fix breaking changes in upgrading from nix crate 0.26.2 to 0.27.1
Hyperswitch - merchant account delete does not delete the merchant_key_store
If you are a Rust project owner and are looking for contributors, please submit tasks here.
382 pull requests were merged in the last week
debuginfo: add compiler option to allow compressed debuginfo sections
rustc_layout, rustc_abi: make sure the types are well-formed
add support to return value in StableMIR interface and not crash due to compilation error
allow redirecting subprocess stdout to our stderr etc. (redux)
avoid a source_span query when encoding Spans into query results
bubble up opaque <eq> opaque operations instead of picking an order
do not require associated types with Self: Sized to uphold bounds when confirming object candidate
don't ICE on associated type projection without feature gate in new solver
don't ICE when computing ctype's repr_nullable_ptr for possibly-unsized ty
don't require Drop for [PhantomData<T>; N] where N and T are generic, if T requires Drop
extract parallel operations in rustc_data_structures::sync into a new parallel submodule
improve diagnostic for generic params from outer items (E0401)
fix incorrect mutable suggestion information for binding in ref pattern like: let &b = a;
lint node for private_bounds/private_interfaces is the item which names the private type
lint on invalid usage of UnsafeCell::raw_get in reference casting
make unknown/renamed/removed lints passed via command line respect lint levels
print the path of a return-position impl trait in trait when return_type_notation is enabled
remove the unhelpful let binding diag comes from FormatArguments
replace rustc_data_structures dependency with rustc_index in rustc_parse_format
suggest iter_mut() where trying to modify elements from .iter()
use the same DISubprogram for each instance of the same inlined function within a caller
represent MIR composite debuginfo as projections instead of aggregates
miri: catch function calls where the argument is caller-invalid / the return value callee-invalid
use a specialized varint + bitpacking scheme for DepGraph encoding
cargo: fix: don't print _TOKEN suggestion when not applicable
cargo: fix: improve warning for both token & credential-provider
rustdoc: render private fields in tuple struct as /* private fields */
rustdoc: show inner enum and struct in type definition for concrete type
rustfmt: Prefer light_rewrite_comment if it is not a doccomment
rustfmt: fix checking if newline is needed before else in let-else statement
clippy: implied_bounds_in_impls: include (previously omitted) associated types in suggestion
clippy: slow_vector_initialization: use the source span of vec![] macro and fix another FP
clippy: check binary operators and attributes in disallowed_macros
clippy: ignore wildcards in function arguments and local bindings
clippy: preserve literals and range kinds in manual_range_patterns
clippy: rename incorrect_impls to non_canonical_impls, move them to warn by default
rust-analyzer: diagnose mismatched arg count for tuple struct patterns
rust-analyzer: diagnose private fields in record constructor
rust-analyzer: enable rust_analyzer for cfgs when code is being analyzed by rust-analyzer
rust-analyzer: implement builtin#format_args, using rustc's format_args parser
rust-analyzer: on type format '(', by adding closing ')' automatically
rust-analyzer: parse builtin# syntax and add typechecking for builtin#offset_of expression
Rusty Events between 2023-09-13 - 2023-10-11 🦀
[Monthly Meetup]https://www.meetup.com/boulder-elixir-rust/events/zvxcsryfcnbpb/)
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
It's very much a positive feedback loop: good tooling makes good tooling easier to build, so more of it gets built and the cycle repeats.
cargo-semver-checksstands on the shoulders of giants likerustcandrustdocand Trustfall. Remove any one of them (or even justrustc's high-quality diagnostics!) andcargo-semver-checkswouldn't have been a viable project at all.
Thanks to Vincent de Phily 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