# Backlog Bonanza 2022-01-26 [GitHub query](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AC-tracking-issue+label%3AT-lang+sort%3Acreated-asc) ## What are we DOING? * Take things that have been unstable for a while and "disposition them". * Goal: Everything that is nightly only has one or more of the following labels, indicating the blocker(s) to stabilizing it: * S-tracking-ready-to-stabilize: Needs a stabilization PR (good to go :train:) * S-tracking-needs-to-bake: Needs time to bake (set a date? other criteria?) * S-tracking-impl-incomplete: Not code complete or blocking bugs * S-tracking-unimplemented: Implementation not begun * S-tracking-design-concerns: Blocking design concerns * This might be "doesn't quite seem to deliver value we hoped for" or "something doesn't feel right" * S-tracking-perma-unstable * Internal implementation detail of rustc, stdlib * S-tracking-needs-investigation Attendance: Felix, Josh, Scott, Mark, Jane # Tracking issue for the msp430-interrupt calling convention/ABI #38487 Link: https://github.com/rust-lang/rust/issues/38487 * Is there a need to tie this to the msp430-none-elf's targets stability (tier 3)? * Should there be a per-target feature gate? * Error on other targets? * language guarantee vs. implementation detail of rustc specifically? * Is this convention actually being used? * For now: * Check whether being used and good design -- needs-summary * Maybe an amendment to the stability RFC (1105?) around calling conventions * Potentially may want a just "interrupt" convention that does things for each target. * pnkfelix: Some evidence other toolchains are doing something akin to this with an interrupt keyword. * Josh to post a summary comment. # Tracking issue: declarative macros 2.0 #39412 Link: https://github.com/rust-lang/rust/issues/39412 * Some recent conversation around this space * Design concerns * e.g., how to declare hygiene appropriately * Some iteration on the general area of macros (from petrochenkov, notably) * but no immediate expectation of forward progress # Tracking issue for the x86-interrupt calling convention #40180 Link: https://github.com/rust-lang/rust/issues/40180 * Original proposal indicated no stabilization without an RFC * Likely needs an RFC, per the above * Mark: but maybe one describing interrupt CC in general rather than one dedicated to each target's specificity * Does this always end up in inline assembly? * no, not necessarily; not required * Tagged needs-summary for now, to identify what the design work is like. * Josh to write a comment up. # Tracking issue for trait aliases #41517 Link: https://github.com/rust-lang/rust/issues/41517 * wg-traits territory * needs-summary for them to give an opinion on next steps here * pnkfelix to write up a summary # Tracking issue for RFC 1868: A portability lint #41619 Link: https://github.com/rust-lang/rust/issues/41619 * No implementation yet (S-unimplemented) * RFC looks approximately accurate, but design concerns not *yet* known (needs an impl to discover them) * Generally very much desired by various teams; standard library expansion on a platform-specific area is semi-blocked on this. * David left (possibly inaccruate) comment: https://github.com/rust-lang/rust/issues/41619#issuecomment-1022489056 # Tracking issue for unsized tuple coercion #42877 Link: https://github.com/rust-lang/rust/issues/42877 ```rust= fn main() { let _: &(i32, [i32]) = &(3, [3, 3]) as _; // error[E0658]: unsized tuple coercion is not stable enough for use and is subject to change } ``` * Mark: potentially blocked on tuple layout concerns * If tuples are just structs, then seems obvious * But may want to have fancier tuple unpacking/reshuffling down the line, so design concerns? * Does anyone using this? * Mark to write up a comment. # Tracking issue for RFC 2033: Experimentally add coroutines to Rust #43122 Link: https://github.com/rust-lang/rust/issues/43122 * Niko just yesterday expressed interest in generalized coroutines * Underpins generators/async fn * Not yet ready to stabilize * S-needs-summary * Not entirely clear what current state is * S-design-concerns * At least input/output from `yield` points # non-lexical lifetimes (NLL) tracking issue #43234 Link: https://github.com/rust-lang/rust/issues/43234 * Original NLL already shipped? * There are some bits that aren't yet stabilized/shipped * Compiler test suite is different between NLL and not (nll-migrate mode) * Active work on pushing forward NLL full stabilization (closing out nll migration pieces), rough target of this year * S-impl-incomplete * but no design concerns known # Tracking issue for RFC 1937: ? in main #43301 Link: https://github.com/rust-lang/rust/issues/43301 * Most of this is done shipped and stabilized * `Termination` trait is still not stable, main leftover piece * project error handling is working on Termination * open question around representation of exit code (i32?), particularly on platform-specificity * Is there enough expertise available to answer questions? * Is this a libs issue, or lang? * Is life before/after main a library problem? * probably some overlap with lang, but minimal * Return from `fn main` is lang in general, but that part is good * S-tracking-design-concerns over the exit code piece * help-wanted for a driver to resolve these * Josh Triplett can give expertise on what the platform bits are