lumbda/asm
russell@unturf.com 7c99df99cf
asm tier: fork-self + waitpid-nonblock + exit-immediate + sleep primitives
Cross-tier API parity with c-tier (81ac49e) + python-tier — all three
lumbda runtimes now share the substrate for fork-per-accept patterns.

Implementation: direct syscalls (no libc):
- SYS_FORK=57 → bi_forkself, returns 0/pid via make_int
- SYS_WAIT4=61 + WNOHANG=1 → bi_waitpid_nonblock, returns pid or 0
- SYS_EXIT=60 → bi_exit_immediate (same as bi_exit on asm — no atexit
  to bypass; present for cross-tier API parity)
- SYS_NANOSLEEP=35 → bi_sleep, stack-allocated timespec (tv_sec=N,
  tv_nsec=0), returns VAL_VOID

Built + tested in vm-runner.sh VM (Ubuntu 2G/2vCPU): both lumbda
and lumbda-gc + fork-cycle test = 3/3 children reap clean, exit-
immediate returns to parent waitpid correctly. Same behavioral
contract as c-tier (commit 81ac49e) and python-tier.
2026-06-11 09:30:31 -04:00
..
lumbda bend port flip: 9091 → 8320 (BEND mnemonic) 2026-06-06 15:06:18 -04:00
lumbda-full bend port flip: 9091 → 8320 (BEND mnemonic) 2026-06-06 15:06:18 -04:00
lumbda-full.o bend port flip: 9091 → 8320 (BEND mnemonic) 2026-06-06 15:06:18 -04:00
lumbda-gc bend port flip: 9091 → 8320 (BEND mnemonic) 2026-06-06 15:06:18 -04:00
lumbda-gc.o bend port flip: 9091 → 8320 (BEND mnemonic) 2026-06-06 15:06:18 -04:00
lumbda.o bend port flip: 9091 → 8320 (BEND mnemonic) 2026-06-06 15:06:18 -04:00
lumbda.s asm tier: fork-self + waitpid-nonblock + exit-immediate + sleep primitives 2026-06-11 09:30:31 -04:00
Makefile asm/lumbda-full: quasiquote + define-macro + prelude (ticket 0005) 2026-04-24 12:02:12 -04:00
test.sh asm: rest args, cadr, sort, let* — Scheme port of Zoë's favorites runs 2026-04-24 09:01:32 -04:00