Stage M-B: autonomous events -- EV-DONE / EV-BORN / EV-DIED published by the kernel itself (FABRIC-3.9.0 §7.3, M-3..M-6)
- Permanent event channels 1/2/3 created at boot beside channel 0, exposed as FORTH constants EV-DONE / EV-BORN / EV-DIED; CHANNEL-CLOSE refuses 0..3. - sk_hermes_event(): `S" <name>" ON-...` as type 32 to every member except the VM it's about; never blocks -- undeliverable copies are dropped, counted (EV-DROPPED), printed and logged. - Fired for participants only: EV-DONE from the switch trampoline when real work runs dry (funded by the VM), EV-BORN at a LIVE VM's first naming (funded by the newborn), EV-DIED on KILL/reap after departure (funded by the root). VM.ev_real_work keeps event handling from firing EV-DONE, so mutual subscribers can't storm. Console evidence identical on amd64/aarch64/riscv64: one BORN per birth, one DONE per job run dry (2 queued -> 1), one DIED per KILL, no SEND in any job text; storm guard: exactly one reaction; channels 1-3 unclosable; non-joined VMs see nothing; EV-DROPPED 0. Flood probe (reverted): 32 delivered, 7 dropped and counted, never blocked, all heat returned. dict_hash set changes by the 4 words (546), identical across ISAs; acceptance passes with held=2048. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
b562e16ccf
commit
fe55038e9a
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user