---
# System prepended metadata

title: Libs-API Meeting 2022-08-16
tags: [Minutes, Libs Meetings]

---

# Libs-API Meeting 2022-08-16

###### tags: `Libs Meetings` `Minutes`

**Meeting Link**: https://meet.jit.si/rust-libs-meeting-crxoz2at8hiccp7b3ixf89qgxfymlbwr
**Attendees**: Amanieu, David, Jane, Josh Triplett, Mara, The 8472, tshepang, vincenzopalazzo, Urgau

## Agenda

- Triage
- Anything else?

## Triage

### FCPs

20 rust-lang/rust T-libs-api FCPs


[dtolnay (5)](https://rfcbot.rs/fcp/dtolnay), [yaahc (13)](https://rfcbot.rs/fcp/yaahc), [m-ou-se (8)](https://rfcbot.rs/fcp/m-ou-se), [joshtriplett (7)](https://rfcbot.rs/fcp/joshtriplett), [BurntSushi (13)](https://rfcbot.rs/fcp/BurntSushi), [Amanieu (7)](https://rfcbot.rs/fcp/Amanieu)

### Nominated

- [9 `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/64102 *Tracking issue for \`std::hint::black\_box\`*
    - Plenty of checkboxes to continue.
    - We can stop this FCP and do a proper libs-api.
  - rust.tf/97015 *std::io: migrate ReadBuf to BorrowBuf/BorrowCursor*
    - New ReadBuf API
    - Question about naming. `.clone()` could be confusing
    - It's unstable for now, so doesn't matter too much. But maybe use `reborrow` rather than `clone()`. Using `clone` for non-Clone seems bad.
    - Commented that `reborrow` sounds reasonable.
  - rust.tf/99032 *Disable unwinding for \`catch\_unwind\` error payloads.*
    - Quite a hack.
    - Somewhat similar to David's "two vtables" suggestion from a  while ago, but more hacky.
    - If we disallow panic in drop, we could revert this.
    - Doesn't seem urgent.
    - David to take a look, probably.
  - rust.tf/99138 *Extend and expose API for {:x?} and {:X?} formatting*
    - instead introduce flags for derive(Debug)? "print this field as hex"
    - Mara to write up a summary of how `x?` currently works and what's wrong with it.
  - rust.tf/99898 *typeck: silence lint for "collision safe" items*
    - Mara should've replied, didn't yet. oops.
  - rust.tf/100196 *env::temp\_dir returns /private/tmp on Apple instead while /tmp is*
    - De-nominated. Waiting for reply about use case.
  - rust.tf/100422 *What's the correct \*wrapping\* value for \`ilog{|2|10}\`?*
    - Seems like we should handle this identical to division by zero. It's not just an overflow, it's mathematically undefined.
    - Registered a concern in the FCP.
  - rust.tf/100545 *regression: transmute\_copy validates sizing*
    - It seems like this panic could trigger for sound code that puts some struct into a larger allocation. E.g. T is a C struct with a (imaginary) variable size last field.
    - Such a thing should probably be written with ptr::read, though.
    - Looks like this caught real issues
    - Did it catch anything that was actually sound?
    - Probably should've gone through some kind of FCP, but probably not worth reverting.
  - rust.tf/100551 *regression: socket type changes*
    - Maybe Cargo should know about the broken crates and warn about it?
    - Just having them yanked might not be strong enough?
    - Based on analysis in the original issue, it's extremely likely that you'll just get an error from a syscall that gets a pointer to the updated types, since it doesn't look like the expected data.
    - Crater results show 'invalid arguments'.
    - Release notes might be good enough, since it doesn't seem to cause silent UB.

### Waiting on team

None

### 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)_

