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:
parent
4f03c48e56
commit
ceb497ac96
1 changed files with 14 additions and 5 deletions
|
|
@ -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:
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue