---
# System prepended metadata

title: Libs Meeting 2022-02-09
tags: [Minutes, Libs Meetings]

---

# Libs Meeting 2022-02-09

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

**Meeting Link**: https://meet.jit.si/rust-libs-meeting-ujepnbwg2lzqgt6wvrndwimi
**Attendees**: Amanieu, Jane, Josh Stone, Josh Triplett, Mara, Chris Denton, bstrie, The 8472, Mark

## Agenda

- [Open Action Items](https://hackmd.io/Uehlc0qUQfWfvY1swYWRgQ)
- Triage
- Windows API tour
- Anything else?

## Triage

### Critical

None

### Backports

- [1 `rust-lang/rust` `T-libs` `beta-nominated` items](https://github.com/rust-lang/rust/issues?q=label:T-libs+label:beta-nominated)
  - [[93697](https://github.com/rust-lang/rust/pull/93697)] *Fix hashing for windows paths containing a CurDir component*

### Prioritization Requested

- [1 `rust-lang/rust` `T-libs` `I-prioritize` items](https://github.com/rust-lang/rust/issues?q=label:T-libs+label:I-prioritize+is:open)
  - [[91417](https://github.com/rust-lang/rust/issues/91417)] *\`Instant + Duration\` produce wrong result on aarch64\-apple\-darwin*

### Nominated

None

### Regressions

None

## Windows API tour

Chris Denton, working on the Windows side of the standard library.

NT APIs: low level. Technically unstable.
Win32 APIs: the stuff we usually use. Stable. Implemented by Microsoft on top of the NT APIs.



![](https://i.imgur.com/tw8IdMH.png)

Originally NT kernel was meant as something to run different subsystems on (OS/2, posix, win32, ..). But over time, OS/2 and Posix were dropped. WSL1 was another attempt. But WSL2 is a virtual machine with an actual linux kernel.

https://docs.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-findfirstfilew#syntax

NT api mostly stable in practice, but not a promise. Win32 is the stable API.

No official or semi-official list of stable NT APIs; ask someone from Microsoft.

Current incarnations of Win32 APIs are increasingly becoming near-direct mappings to NT APIs.

Some discussion of versions and support: https://docs.microsoft.com/en-us/windows/whats-new/ltsc/

Paths in win32 have all kind of special names and restrictions on characters, meaning for `..` etc. NT paths are very raw.
Normalizing slashes to backslashes is done by Win32. NT leaves paths as is; it's up to the individual device to handle slashes/directories/etc.

Win32 file APIs can be slow. NT file APIs can be somewhat faster, but still slow due to various filters like virus scanners or indexers.

Detailed walkthrough of the `remove_dir_all` fix

Discussion about UCRT vs older C runtimes





