Commit 9d13c06
committed
0.5.0 --- repin the C library, whose backends fixed a bounded transfer
openkal-musl 0.9.0 answers `truncate(2)`, repins openkal-linux 0.7.1 and
openkal-macos 0.6.1, and makes a build able to state which version of the C
library it holds.
WHAT A PROGRAM ABOVE THIS PACKAGE GETS. Two things that did not work now do,
and neither is a C++ problem --- both are `std::filesystem` reaching a system
call.
`std::filesystem::copy_file` reported `Resource temporarily unavailable` for two
ordinary files. libc++ opens a copy's source with `O_RDONLY | O_NONBLOCK |
O_BINARY`, which on a kernel is meaningless for a regular file and is ignored;
openkal-musl routes an `O_NONBLOCK` descriptor through the bounded-transfer path
and expresses `copy_file_range` as a read/write loop, so every byte of a file
copy went through it --- and the backends' `kal_timeout_read` decoded a borrowed
`kal_stream` handle with the decoder for an OWNED one, waiting upon the
descriptor below the one it then transferred upon. `EAGAIN` is not in libc++'s
fallback list, so it fell back neither to `sendfile` nor to a stream copy and
the error reached the caller verbatim.
`std::filesystem::resize_file` worked for no path at all, because libc++
expresses it as the name-shaped `truncate` and only the descriptor-shaped one
was answered.
Both reported in mcpplibs/openkal-linux#13.
AND A CONSUMER CAN NOW SAY WHAT IT BUILT. `OPENKAL_MUSL_TRACE=enosys` names the
C library's version before the program runs, whether or not anything is missing,
and `uname`'s release field carries it too. Two rounds of that issue were
answered against the wrong version because neither existed.
Also here: the two fetches of the installer retry transport failures. `--retry`
covers a transient HTTP status and a timeout and does not cover
`curl: (35) Recv failure: Connection reset by peer`, which is what a row of a
sibling repository's matrix met today, thirteen seconds in, with nothing wrong
in it.1 parent cd719e6 commit 9d13c06
3 files changed
Lines changed: 17 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
46 | 46 | | |
47 | 47 | | |
48 | 48 | | |
49 | | - | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
50 | 56 | | |
51 | 57 | | |
52 | 58 | | |
| |||
464 | 470 | | |
465 | 471 | | |
466 | 472 | | |
467 | | - | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
468 | 480 | | |
469 | 481 | | |
470 | 482 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
| 9 | + | |
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
4 | | - | |
| 4 | + | |
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| |||
208 | 208 | | |
209 | 209 | | |
210 | 210 | | |
211 | | - | |
| 211 | + | |
212 | 212 | | |
213 | 213 | | |
214 | 214 | | |
| |||
0 commit comments