diff options
Diffstat (limited to 'docs/typ/building.typ')
| -rw-r--r-- | docs/typ/building.typ | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/docs/typ/building.typ b/docs/typ/building.typ index 85f2dfbb..6a2758ad 100644 --- a/docs/typ/building.typ +++ b/docs/typ/building.typ @@ -229,15 +229,14 @@ use `.cloud9 = .{ .path = "../cloud9" }` while editing both. cloud9's own == Writes through a mount <writes-through-a-mount> A mount cuts a big write into pieces of at most one message (msize 65536, -less the header), and each command line runs once it is whole. A write -that does not fill its message is whole, so its last line runs even -without a newline (`printf Save > exec`), unless it is a multiple of 4096 -bytes: that is where a writer's buffer (stdio, a mount's page cache) -filled and cut a line, so its tail waits for the next write or the close. -A line held to the close (such a tail, or an `Edit` block never ended) -runs there, and its failure is only in the log, as its `err` record: the -close reports no error, and the write that sent it had already succeeded. -So a script that needs a line's result ends the write with a newline. +less the header), anywhere, and each command line runs once its newline +comes; nothing is read into a write's size. A last line with no newline +(`printf Save > exec`) runs when the file is closed, as does an `Edit` +block never ended, and its failure is then only in the log, as its `err` +record: the close reports no error, and the write that sent it had +already succeeded. So a script that needs a line's result ends it with a +newline. A line over 1 MiB is refused once, and the rest of it, through +its newline, is dropped. == Listeners <listeners> |
