io interface (first pass)
This commit is contained in:
@@ -807,7 +807,14 @@
|
||||
ordinary float `/` remains the unchecked IEEE infinity/NaN escape hatch
|
||||
- migrated `std/mem`, `std/arraylist`, and the compound-assignment example to `div_trunc`
|
||||
|
||||
33. design io interface
|
||||
33. explicit I/O provider (implemented)
|
||||
- `main` may take one canonical `@std/io Io`; parameterless entry points remain valid
|
||||
- the compiler supplies a file-hidden macOS provider through an external no-argument C wrapper
|
||||
- readers and writers pair an explicit provider with `stdin`, `stdout`, or `stderr`
|
||||
- `read` and `write` validate provider counts; `write_all` handles partial writes and no progress
|
||||
- the system provider uses unbuffered libc `read`/`write`, retries interruption, and allocates nothing
|
||||
|
||||
34. re-exports so `std` can re-export e.g. `ArrayList(T)`, so users can do `std.ArrayList(i32)` instead of `std.arraylist.ArrayList(i32)`, while still using `std.arraylist.append(&values, 420)`. thinking this would be nice ergonomically.
|
||||
|
||||
## A word on unchecked casts
|
||||
|
||||
|
||||
Reference in New Issue
Block a user