# 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