# Libs-API Meeting 2022-10-04
###### tags: `Libs Meetings` `Minutes`
**Meeting Link**: https://meet.jit.si/rust-libs-meeting-crxoz2at8hiccp7b3ixf89qgxfymlbwr
**Attendees**: Amanieu, David, Josh Triplett, Mara, Thom, Chris, Urgau
## Agenda
- Triage
- Anything else?
## Triage
### FCPs
21 rust-lang/rust T-libs-api FCPs
[joshtriplett (6)](https://rfcbot.rs/fcp/joshtriplett), [dtolnay (4)](https://rfcbot.rs/fcp/dtolnay), [Amanieu (8)](https://rfcbot.rs/fcp/Amanieu), [m-ou-se (9)](https://rfcbot.rs/fcp/m-ou-se), [BurntSushi (14)](https://rfcbot.rs/fcp/BurntSushi), [yaahc (15)](https://rfcbot.rs/fcp/yaahc)
### Nominated
- [6 `rust-lang/rust` `I-libs-api-nominated` items](https://github.com/rust-lang/rust/issues?q=label:I-libs-api-nominated+is:open)
- rust.tf/99939 *Sort tests at compile time, not at startup*
- Just needs to be reviewed. Doesn't need libs-api approval.
- rust.tf/100021 *made \`unreachable\_unchecked\` panic in debug mode*
- Seems good, but shouldn't unwind.
- Left a comment.
- rust.tf/101698 *Constify \`TypeId\` ordering impls*
- Seems like a hash or similar will always suffice for this. Which means this change is fine.
- Nominated for compiler team to check.
- rust.tf/101899 *#95295 causes unsoundness in multiple existing crates*
- Amanieu: Letting a size greater than isize::MAX reach the global allocator is already UB, because of LLVM optimizations that understand allocations.
- "library UB" vs "language UB"? Should Layout have a niche?
- Is there a reason to have a niche?
- LLVM could remove checks, if it knows that it's always < isize::MAX.
- Problem is that we're changing the requirements for from_size_align_unchecked.
- Adding a check to it for the new requirement would 'fix' the issue, but not desirable because it defeats the purpose of the unchecked version.
- We could only check it in debug mode, by purposely causing an overflow (with inherit-overflow-checks) on >= isize::MAX. Doesn't fix anything for release mode though.
- Alternative is to deprecate the existing function, add an assert in it, and have a new unchecked function with the new requirement.
- Mara to comment.
- rust.tf/101991 *Stabilize proc\_macro Span::source\_text*
- Should it fail on any joined span? Or only for extreme cases like in the example.
- Hard to answer. We should check what people do with joined spans / source_text.
- The assert2 crate would use this with a joined span, to get the span of the entire expression.
- We probably need some rule like 'it only works for tokens from the macro invocation itself'.
- We consider the extreme case a bug that should be fixed, without breaking the assert2 case (stringifying an expression).
- Is it a blocking bug?
- Josh: Yes?
- David, Mara: No
- Of all the weird things people can do in macros, this one is very far down the list.
- David to reply / resolve concerns.
- rust.tf/102225 *Allow const iterator implementations*
- This would mean committing to never add a non-const method to the Iterator trait.
- Maybe partially (non-)const traits should just be a thing. (Just like `where Self: Sized` on methods for exclusion from trait objects.)
- How const traits work is still experimental, so it's hard for us to make decisions around it, since it's not clear yet what it means.
- As long as this has no stable effect, it's fine to merge. But these questions should be tracked for const trait stabilizations.
- That's already tracked using `#[rustc_const_unstable]`.
- [1 `rust-lang/rfcs` `I-libs-api-nominated` items](https://github.com/rust-lang/rfcs/issues?q=label:I-libs-api-nominated+is:open)
- rust.tf/rfc3271 *RFC: Add more support for fallible allocations in Vec*
- `try_` prefix already used on e.g. `try_insert` for maps, meaning something else. `try_push` could mean multiple things (try within capacity (without allocating?)
- Mara: Feels like a similar issue as with lock poisoning: having two interfaces: one for manual error handling, one for just panicking/ignoring the issue (without verbosity like unwrap everywhere). Rust doesn't have the right tools to express this nicely. :(
### Waiting on team
- [1 `rust-lang/rust` `T-libs-api` `S-waiting-on-team` items](https://github.com/rust-lang/rust/issues?q=label:T-libs-api+label:S-waiting-on-team+is:open)
- rust.tf/99032 *Disable unwinding for \`catch\_unwind\` error payloads.*
### Needs decision
None
### Stalled Tracking Issues
- [30 `rust-lang/rust` `T-libs-api` `C-tracking-issue` items](https://github.com/rust-lang/rust/issues?q=label:T-libs-api+label:C-tracking-issue+is:open+sort:updated-asc)
- rust.tf/79676 *Tracking Issue for \`backtrace\_frames\`*
- rust.tf/42839 *Peer credentials on Unix socket*
- rust.tf/55132 *Tracking issue for thread::Builder::spawn\_unchecked*
- rust.tf/66893 *Tracking issue for atomic\_mut\_ptr*
- rust.tf/72505 *Tracking issue for \`#!\[feature(const\_float\_classify)\]\`*
## Actions
- [ ] Reply to all issues/PRs discussed in this meeting, or add them to the [open action items](https://hackmd.io/ovrbJj6CRduRgSA0Wzg2zg).
_Generated by [fully-automatic-rust-libs-team-triage-meeting-agenda-generator](https://github.com/rust-lang/libs-team/tree/main/tools/agenda-generator)_