examples/cuda-fanout: README — asm tier primitives landed

Reflects commit 4f03c48: spawn-process-stdio + flush-port now work
on asm tier. Updates the per-tier matrix accordingly.
This commit is contained in:
russell@unturf.com 2026-06-04 20:41:34 -04:00
parent 4f03c48e56
commit ceb497ac96
No known key found for this signature in database

View file

@ -107,12 +107,21 @@ Python's default stdout buffering, which masks the "ready" /
appear live. (Adding an explicit `flush-port` after the listening
print would fix this in the Scheme without needing `-u`.)
## Asm tier — client-only support
## Asm tier — `spawn-process-stdio` + `flush-port` now landed
The asm tier is **CLIENT-only**: it can call `(bend …)` and reach a
worker hosted on Python/C tier, but cannot host workers itself
because `spawn-process-stdio` would require asm-tier syscalls
(`fork+pipe+execve+dup2`) not yet wired.
The asm tier got both primitives in commit `4f03c48`:
```scheme
λ> (display (spawn-process-stdio "/bin/echo" (quote ("hi"))))
(#<port> . #<port>)
λ> (flush-port (car (spawn-process-stdio "/bin/true" (quote ()))))
;; (returns void)
```
Implementation: hand-written `pipe2 + fork + dup2 + execve` syscall
sequence (~200 LoC asm). `flush-port` is a no-op on asm tier because
ports are raw fds with no userspace buffering. See the commit message
for the stack-layout & critical `%r15`-is-the-heap-pointer note.
What works on asm today: