From 4960381c6735ba981d2c35c1d2175b388931917e Mon Sep 17 00:00:00 2001 From: "russell@unturf.com" Date: Mon, 20 Apr 2026 15:50:26 -0400 Subject: [PATCH] portal-rng: add (random-seed-from-os!) across all three tiers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ticket 0002 — reads 8 bytes from /dev/urandom (little-endian u64) and seeds xoshiro256**. Opt-in kernel entropy for stochastic runs; the default stays deterministic (k=0 at startup), so ticket 0001's portal-reproducibility contract is unchanged. Real-world flow now one call away: Machine A: (random-seed-from-os!) + run simulation + portal-save Machine B: portal-resume — same stream, bit-for-bit All three impls fail loud on /dev/urandom trouble (LispErr in Python and C, stderr + exit(1) in asm) — no silent fallback to a weak seed. Tests: - tests/functional.lsp: 2 new shared asserts (entropic + replay) - asm/test.sh: 2 new asm-local checks (149 total, was 147) - make test-all green across Python (205), C (205), asm (149) Whitepaper §7.5 gains one sentence noting the OS-seed path. unmoad: zero new findings in added code. --- asm/lumbda | Bin 57560 -> 57984 bytes asm/lumbda-gc | Bin 62192 -> 62616 bytes asm/lumbda-gc.o | Bin 66296 -> 66960 bytes asm/lumbda.o | Bin 57104 -> 57768 bytes asm/lumbda.s | 69 ++++++++++-- asm/test.sh | 2 + c/portal.c | 17 +++ docs/tickets/0002-os-entropy-seed.md | 110 ++++++++++++++++++ lumbda.py | 12 ++ tests/functional.lsp | 14 +++ whitepaper/lumbda-whitepaper.html | 1 + whitepaper/lumbda-whitepaper.pdf | 160 ++++++++++++++------------- whitepaper/lumbda-whitepaper.rst | 2 + 13 files changed, 306 insertions(+), 81 deletions(-) create mode 100644 docs/tickets/0002-os-entropy-seed.md diff --git a/asm/lumbda b/asm/lumbda index 1ef3a7b3211693920750812c541428933de5eb46..bb1c8183b818eddca86f0abd555061250ed915f3 100755 GIT binary patch literal 57984 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 literal 66296 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 diff --git a/asm/lumbda.o b/asm/lumbda.o index 7470d5cfc7c9e8dcf963888651a4025095474a4e..c940b87a0eb7cecbf19b80b45987f2057f9de969 100644 GIT binary patch literal 57768 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 oxap2*KcxSTQ+=wr+W(2Eah%cc= void +# Reads 8 bytes from /dev/urandom, interprets as little-endian u64, +# seeds xoshiro256**. Opt-in entropy for stochastic runs; determinism +# remains the default. See docs/tickets/0002-os-entropy-seed.md. +bi_random_seed_from_os: + # open("/dev/urandom", O_RDONLY, 0) + movq $SYS_OPEN, %rax + leaq s_dev_urandom(%rip), %rdi + movq $O_RDONLY, %rsi + xorq %rdx, %rdx + syscall + testq %rax, %rax + js .brsfo_fail + movq %rax, %rbx # fd + # read 8 bytes into stack slot + subq $8, %rsp + movq $SYS_READ, %rax + movq %rbx, %rdi + movq %rsp, %rsi + movq $8, %rdx + syscall + cmpq $8, %rax + jne .brsfo_short + movq (%rsp), %rdi # seed = little-endian u64 + addq $8, %rsp + pushq %rbx # save fd across rng_seed call + call rng_seed + popq %rbx + # close(fd) + movq $SYS_CLOSE, %rax + movq %rbx, %rdi + syscall + movq $VAL_VOID, %rax + RET_VAL +.brsfo_short: + addq $8, %rsp + # fall through to fail with same error (urandom unavailable / short) +.brsfo_fail: + movq $SYS_WRITE, %rax + movq $2, %rdi + leaq err_rng_urandom(%rip), %rsi + movq $err_rng_urandom_len, %rdx + syscall + movq $SYS_EXIT, %rax + movq $1, %rdi + syscall + bi_vector: # (vector e1 e2 ...) — build from remaining args in %r12 # Count args diff --git a/asm/test.sh b/asm/test.sh index d8e1058..d40ce07 100644 --- a/asm/test.sh +++ b/asm/test.sh @@ -62,6 +62,8 @@ check "random-int-2" "(begin (random-seed! 42) (random-int 1000000) (random-i check "random-reseed" "(begin (random-seed! 42) (random-int 1000000) (random-seed! 42) (random-int 1000000))" "558742" check "random-state-len" "(begin (random-seed! 42) (length (random-state)))" "8" check "random-state-restore" "(begin (random-seed! 42) (define s (random-state)) (random-int 1000000) (random-state! s) (random-int 1000000))" "558742" +check "random-os-entropic" "(begin (random-seed-from-os!) (define a (random-state)) (random-seed-from-os!) (not (equal? a (random-state))))" "#t" +check "random-os-replay" "(begin (random-seed-from-os!) (define s (random-state)) (define v (random-int 1000000)) (random-state! s) (= v (random-int 1000000)))" "#t" check "odd?" "(odd? 3)" "#t" check "odd?-even" "(odd? 4)" "#f" check "even?" "(even? 4)" "#t" diff --git a/c/portal.c b/c/portal.c index 7eee21b..8d5ad26 100644 --- a/c/portal.c +++ b/c/portal.c @@ -5,6 +5,7 @@ * Serializes environment bindings and full continuations. */ #include "lumbda.h" +#include /* ═══════════════════════════════════════════════════════════════════════════ * Portal checkpoint — thread-local signal for mid-execution save @@ -801,10 +802,26 @@ static Value builtin_random_state_bang(Value *args, int nargs, Env *env) { return VAL_VOID; } +/* Opt-in kernel entropy seed. See docs/tickets/0002-os-entropy-seed.md. */ +static Value builtin_random_seed_from_os(Value *args, int nargs, Env *env) { + (void)args; (void)env; + if (nargs != 0) lisp_error("random-seed-from-os!: expected 0 args"); + int fd = open("/dev/urandom", O_RDONLY); + if (fd < 0) lisp_error("random-seed-from-os!: cannot open /dev/urandom"); + uint64_t k = 0; + ssize_t n = read(fd, &k, sizeof k); + close(fd); + if (n != (ssize_t)sizeof k) + lisp_error("random-seed-from-os!: short read from /dev/urandom"); + rng_seed(k); + return VAL_VOID; +} + void register_portal_builtins(Env *env) { env_define(env, intern("portal-checkpoint!"), VAL_BUILTIN(builtin_portal_checkpoint)); env_define(env, intern("portal-save!"), VAL_BUILTIN(builtin_portal_checkpoint)); env_define(env, intern("random-seed!"), VAL_BUILTIN(builtin_random_seed_bang)); + env_define(env, intern("random-seed-from-os!"), VAL_BUILTIN(builtin_random_seed_from_os)); env_define(env, intern("random"), VAL_BUILTIN(builtin_random)); env_define(env, intern("random-int"), VAL_BUILTIN(builtin_random_int)); env_define(env, intern("random-state"), VAL_BUILTIN(builtin_random_state)); diff --git a/docs/tickets/0002-os-entropy-seed.md b/docs/tickets/0002-os-entropy-seed.md new file mode 100644 index 0000000..00db2a1 --- /dev/null +++ b/docs/tickets/0002-os-entropy-seed.md @@ -0,0 +1,110 @@ +# 0002 — `(random-seed-from-os!)` pulls kernel entropy + +**Status:** open +**Reporter:** fox (response to 0001 follow-up) +**Implementer:** blackops +**Opened:** 2026-04-20 + +## Problem + +Ticket 0001 gave us xoshiro256\*\* with deterministic startup seed `k = 0` +and explicit `(random-seed! k)`. Two processes running the same program +produce the same stream. That is the point — it is what lets a portal +round-trip reproduce state across machines. + +But determinism has a dual cost: a program that wants a *different* +stream per run must seed itself from outside. Without a kernel-entropy +hook, users have to hand-roll one by opening `/dev/urandom` and folding +bytes into an integer. That is defect-prone (wrong endianness, short +read not handled, FD left open) and duplicates in every caller. + +fox's note: *"a random seed from os on at least one side is very +important"* — because the common real-world flow is: + +1. Machine A seeds from kernel entropy (`random-seed-from-os!`). +2. Machine A runs a stochastic simulation for a while. +3. Machine A portal-saves — state captured, including xoshiro256\*\* state. +4. Machine B portal-resumes — continues the *same* stream bit-for-bit. + +Step 1 is missing today. This ticket adds it. + +## Goals + +1. One builtin, all three impls: `(random-seed-from-os!)`. +2. Reads 8 bytes from `/dev/urandom`, interprets as little-endian `u64`, + calls existing `rng_seed`. No new PRNG, just a different seed source. +3. Returns void; user captures `(random-state)` if they want to replay. +4. Fail-loud on I/O error (missing `/dev/urandom`, short read) — we do + not silently fall back to a weak seed. + +## Non-goals + +- Blocking `/dev/random` (entropy-exhaustion semantics). `urandom` is the + right default; `man 4 urandom` confirms it is cryptographically strong + after boot. +- `getrandom(2)` syscall. Portable to older kernels matters more than + saving one open/read/close. +- Any silent use of OS entropy on startup. The existing `k = 0` default + stays; determinism remains the default, kernel entropy is opt-in. +- `/dev/urandom` emulation on non-Linux. Lumbda targets Linux x86_64; + other platforms earn their own ticket. + +## API + +``` +(random-seed-from-os!) → void +``` + +Reads exactly 8 bytes from `/dev/urandom`, little-endian, passes the +resulting `u64` to the same `rng_seed` path as `(random-seed!)`. After +return, `(random-state)` reflects the new state, and the portal system +captures it unchanged. + +Errors (fail-loud): +- `/dev/urandom` cannot be opened → error + exit(1) in asm; `LispErr` + in Python + C. +- Short read (fewer than 8 bytes) → same treatment. + +## Implementation + +Python (~3 lines): + +```python +def _rng_seed_from_os(): + with open('/dev/urandom', 'rb') as f: + b = f.read(8) + if len(b) != 8: raise LispErr('random-seed-from-os!: short read') + _rng_seed(int.from_bytes(b, 'little', signed=False)) +``` + +C (~10 lines): `open` / `read` / `close` on `/dev/urandom`, then call +existing `rng_seed(uint64_t)`. + +Asm (~30 lines): `SYS_OPEN`, `SYS_READ`, `SYS_CLOSE` with an 8-byte +stack slot, then `call rng_seed`. New data: +`s_dev_urandom: .asciz "/dev/urandom"`. Error message follows the +existing `err_rng_*` pattern. + +## Test plan + +1. **Unit** — `(random-seed-from-os!)` runs without error in each tier. +2. **Entropic** — two consecutive `(random-seed-from-os!)` calls in + the *same* process produce different streams (with overwhelming + probability). Asserted via `(not (equal? state-a state-b))`. +3. **Determinism preserved** — `(random-seed-from-os!)` + capture via + `(random-state)` + reseed with `(random-state! saved)` produces the + original stream. This proves the OS seed plugs cleanly into the + portal path from 0001. + +## Deliverables + +- [ ] `docs/tickets/0002-os-entropy-seed.md` (this ticket) +- [ ] Python: `lumbda.py` — helper + builtin binding +- [ ] C: `c/portal.c` — helper + builtin + `register_portal_builtins` +- [ ] Asm: `asm/lumbda.s` — new `BI_RANDOMSEEDFROMOS`, dispatch, + `bi_random_seed_from_os`, data strings +- [ ] `tests/functional.lsp` — 2 shared assertions +- [ ] `asm/test.sh` — 2 asm-local checks +- [ ] Whitepaper §7.5 — one sentence noting the OS-seed option +- [ ] `make test-all` green +- [ ] `unmoad` clean on changed files diff --git a/lumbda.py b/lumbda.py index 0262e3e..c8a8d04 100644 --- a/lumbda.py +++ b/lumbda.py @@ -2026,6 +2026,17 @@ def _rng_state_from_halves(halves): _rng_state[i] = (hi << 32) | lo +def _rng_seed_from_os(): + """Read 8 bytes from /dev/urandom and seed xoshiro256**. Opt-in entropy + for stochastic runs; determinism remains the default (seed=0 at startup). + See docs/tickets/0002-os-entropy-seed.md.""" + with open('/dev/urandom', 'rb') as f: + b = f.read(8) + if len(b) != 8: + raise LispErr('random-seed-from-os!: short read from /dev/urandom') + _rng_seed(int.from_bytes(b, 'little', signed=False)) + + # Default seed = 0 at module load so (random) without (random-seed!) is # deterministic and non-zero. All three impls agree on this startup state. _rng_seed(0) @@ -3550,6 +3561,7 @@ def make_global_env(): # ── Random (xoshiro256**) — portal-serialized across all three impls ──── d(S('random-seed!'), lambda a, _: _rng_seed(int(_num(a[0]))) or VOID) + d(S('random-seed-from-os!'), lambda a, _: _rng_seed_from_os() or VOID) d(S('random'), lambda a, _: _rng_random_float()) d(S('random-int'), lambda a, _: _rng_random_int(int(_num(a[0])))) d(S('random-state'), lambda a, _: _P(_rng_state_to_halves())) diff --git a/tests/functional.lsp b/tests/functional.lsp index a632ea2..2500023 100644 --- a/tests/functional.lsp +++ b/tests/functional.lsp @@ -82,6 +82,20 @@ (random-state! saved-state) (assert-equal "random-state-restore" (random-int 1000000) 558742) +;; random-seed-from-os! pulls kernel entropy; two calls differ w/ overwhelming +;; probability. Ticket: docs/tickets/0002-os-entropy-seed.md. +(random-seed-from-os!) +(define os-state-a (random-state)) +(random-seed-from-os!) +(define os-state-b (random-state)) +(assert-true "random-seed-from-os-entropic" (not (equal? os-state-a os-state-b))) +;; Capture via (random-state) still works after OS seed — ties 0002 to 0001. +(random-seed-from-os!) +(define os-snapshot (random-state)) +(define os-next1 (random-int 1000000)) +(random-state! os-snapshot) +(assert-equal "random-seed-from-os-replay" (random-int 1000000) os-next1) + ;;; ═══════════════════════════════════════════════════════════════ ;;; Comparison ;;; ═══════════════════════════════════════════════════════════════ diff --git a/whitepaper/lumbda-whitepaper.html b/whitepaper/lumbda-whitepaper.html index 84dd702..ea98c1d 100644 --- a/whitepaper/lumbda-whitepaper.html +++ b/whitepaper/lumbda-whitepaper.html @@ -1833,6 +1833,7 @@ bi_portal_resume:
  • S-expression portal: one line — (random-state! '(w0_lo w0_hi …)) — which every tier already evaluates. No format change. The language really is the wire format.

  • Builtins shared across all three: (random-seed! k), (random-int n), (random-state), (random-state! lst). Python and C also export (random) returning a float in [0, 1); the asm tier has no floats, so this one builtin is omitted by construction. All three tiers seed with k = 0 at process startup, so a program that never calls random-seed! still gets a non-zero, deterministic stream.

    +

    A fifth shared builtin — (random-seed-from-os!) — reads 8 bytes from /dev/urandom and seeds xoshiro256** with them, so the typical real-world flow (Machine A seeds from kernel entropy → runs simulation → portal-saves → Machine B resumes the same stream bit-for-bit) is one call away. Determinism stays the default; kernel entropy is opt-in and fails loud if /dev/urandom is unavailable. Ticket: docs/tickets/0002-os-entropy-seed.md.

    Verification: tests/portal-cross-test.sh runs a 3×3 producer × consumer matrix where each tier writes a portal file capturing the RNG state, every other tier reads it, draws the next 5 values, and the values must match bit-for-bit against a baseline the producer also wrote into the file. All 9 cells green. The baseline for seed=42 is 558742 543102 559009 124193 317476 … — identical in Python, C, and asm, identical after any portal round-trip through any format.

    Ticket: docs/tickets/0001-portal-rng.md. Contributed by Zoë Trout, whose question — does the portal tech keep the random list seed which will allow transferring random entropy between processes when continuing a simulation? — surfaced a gap we had not noticed. The earlier claim portal = portable machine state carried a silent asterisk: deterministic code only. That asterisk is now gone.

    diff --git a/whitepaper/lumbda-whitepaper.pdf b/whitepaper/lumbda-whitepaper.pdf index 115bf43..aa14eeb 100644 --- a/whitepaper/lumbda-whitepaper.pdf +++ b/whitepaper/lumbda-whitepaper.pdf @@ -622,7 +622,7 @@ endobj endobj 73 0 obj << -/Author () /CreationDate (D:20260420112032-04'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20260420112032-04'00') /Producer (ReportLab PDF Library - \(opensource\)) +/Author () /CreationDate (D:20260420155007-04'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20260420155007-04'00') /Producer (ReportLab PDF Library - \(opensource\)) /Subject (\(unspecified\)) /Title (lumbda.) /Trapped /False >> endobj @@ -805,12 +805,12 @@ endobj endobj 108 0 obj << -/Dest [ 42 0 R /XYZ 57.02362 765.0236 0 ] /Next 109 0 R /Parent 101 0 R /Prev 107 0 R /Title (7.6 Cross-Process Benchmarks) +/Dest [ 42 0 R /XYZ 57.02362 723.0236 0 ] /Next 109 0 R /Parent 101 0 R /Prev 107 0 R /Title (7.6 Cross-Process Benchmarks) >> endobj 109 0 obj << -/Dest [ 42 0 R /XYZ 57.02362 443.8236 0 ] /Next 110 0 R /Parent 101 0 R /Prev 108 0 R /Title (7.7 Mismatch Cases: Graceful Degradation) +/Dest [ 42 0 R /XYZ 57.02362 401.8236 0 ] /Next 110 0 R /Parent 101 0 R /Prev 108 0 R /Title (7.7 Mismatch Cases: Graceful Degradation) >> endobj 110 0 obj @@ -7147,7 +7147,7 @@ endstream endobj 156 0 obj << -/Length 8366 +/Length 8989 >> stream 1 0 0 1 0 0 cm BT /F1 12 Tf 14.4 TL ET @@ -7278,13 +7278,19 @@ Q q 1 0 0 1 57.02362 179.8236 cm q +BT 1 0 0 1 0 50 Tm 1.829104 Tw 12 TL /F1 10 Tf 0 0 0 rg (A fifth shared builtin \227 ) Tj /F5 10 Tf (\(random-seed-from-os!\)) Tj /F1 10 Tf ( \227 reads 8 bytes from ) Tj /F5 10 Tf (/dev/urandom) Tj /F1 10 Tf ( and seeds) Tj T* 0 Tw 2.747223 Tw (xoshiro256** with them, so the typical real-world flow ) Tj /F4 10 Tf (\(Machine A seeds from kernel entropy ) Tj /F6 10 Tf 12 TL (\256) Tj /F4 10 Tf 12 TL ( runs) Tj T* 0 Tw .313223 Tw (simulation ) Tj /F6 10 Tf 12 TL (\256) Tj /F4 10 Tf 12 TL ( portal-saves ) Tj /F6 10 Tf 12 TL (\256) Tj /F4 10 Tf 12 TL ( Machine B resumes the same stream bit-for-bit\)) Tj /F1 10 Tf ( is one call away. Determinism) Tj T* 0 Tw 4.219168 Tw (stays the default; kernel entropy is opt-in and fails loud if ) Tj /F5 10 Tf (/dev/urandom) Tj /F1 10 Tf ( is unavailable. Ticket:) Tj T* 0 Tw /F5 10 Tf (docs/tickets/0002-os-entropy-seed.md) Tj /F1 10 Tf (.) Tj T* ET +Q +Q +q +1 0 0 1 57.02362 113.8236 cm +q BT 1 0 0 1 0 50 Tm 1.928941 Tw 12 TL /F1 10 Tf 0 0 0 rg (Verification: ) Tj /F5 10 Tf (tests/portal-cross-test.sh) Tj /F1 10 Tf ( runs a 3\3273 producer \327 consumer matrix where each tier) Tj T* 0 Tw .217417 Tw (writes a portal file capturing the RNG state, every other tier reads it, draws the next 5 values, and the values) Tj T* 0 Tw .365464 Tw (must match bit-for-bit against a baseline the producer also wrote into the file. All 9 cells green. The baseline) Tj T* 0 Tw .232397 Tw (for seed=42 is ) Tj /F5 10 Tf (558742) Tj ( ) Tj (543102) Tj ( ) Tj (559009) Tj ( ) Tj (124193) Tj ( ) Tj (317476) Tj ( ) Tj (\205) Tj /F1 10 Tf ( \227 identical in Python, C, and asm, identical) Tj T* 0 Tw (after any portal round-trip through any format.) Tj T* ET Q Q q -1 0 0 1 57.02362 125.8236 cm +1 0 0 1 57.02362 83.82362 cm q -BT 1 0 0 1 0 38 Tm 1.177835 Tw 12 TL /F3 10 Tf 0 0 0 rg (Ticket:) Tj /F1 10 Tf ( ) Tj /F5 10 Tf (docs/tickets/0001-portal-rng.md) Tj /F1 10 Tf (. Contributed by ) Tj /F3 10 Tf (Zo\353 Trout) Tj /F1 10 Tf (, whose question \227 ) Tj /F4 10 Tf (does the) Tj T* 0 Tw .328556 Tw (portal tech keep the random list seed which will allow transferring random entropy between processes when) Tj T* 0 Tw .598726 Tw (continuing a simulation?) Tj /F1 10 Tf ( \227 surfaced a gap we had not noticed. The earlier claim ) Tj /F4 10 Tf (portal = portable machine) Tj T* 0 Tw (state) Tj /F1 10 Tf ( carried a silent asterisk: ) Tj /F4 10 Tf (deterministic code only) Tj /F1 10 Tf (. That asterisk is now gone.) Tj T* ET +BT 1 0 0 1 0 14 Tm 1.177835 Tw 12 TL /F3 10 Tf 0 0 0 rg (Ticket:) Tj /F1 10 Tf ( ) Tj /F5 10 Tf (docs/tickets/0001-portal-rng.md) Tj /F1 10 Tf (. Contributed by ) Tj /F3 10 Tf (Zo\353 Trout) Tj /F1 10 Tf (, whose question \227 ) Tj /F4 10 Tf (does the) Tj T* 0 Tw .328556 Tw (portal tech keep the random list seed which will allow transferring random entropy between processes when) Tj T* 0 Tw ET Q Q @@ -7292,27 +7298,33 @@ endstream endobj 157 0 obj << -/Length 9926 +/Length 10316 >> stream 1 0 0 1 0 0 cm BT /F1 12 Tf 14.4 TL ET q -1 0 0 1 57.02362 751.8236 cm +1 0 0 1 57.02362 741.0236 cm +q +BT 1 0 0 1 0 14 Tm .598726 Tw 12 TL /F4 10 Tf 0 0 0 rg (continuing a simulation?) Tj /F1 10 Tf ( \227 surfaced a gap we had not noticed. The earlier claim ) Tj /F4 10 Tf (portal = portable machine) Tj T* 0 Tw (state) Tj /F1 10 Tf ( carried a silent asterisk: ) Tj /F4 10 Tf (deterministic code only) Tj /F1 10 Tf (. That asterisk is now gone.) Tj T* ET +Q +Q +q +1 0 0 1 57.02362 709.8236 cm q BT 1 0 0 1 0 2.2 Tm 13.2 TL /F2 11 Tf .133333 .133333 .133333 rg (7.6 Cross-Process Benchmarks) Tj T* ET Q Q q -1 0 0 1 57.02362 707.8236 cm +1 0 0 1 57.02362 665.8236 cm q BT 1 0 0 1 0 26 Tm 2.703647 Tw 12 TL /F1 10 Tf 0 0 0 rg (Producer process A saves state to a file; consumer process B starts fresh, loads the file, continues.) Tj T* 0 Tw 10.67759 Tw (Wall-clock time for both processes end-to-end, 50 iterations, same-laptop. ) Tj /F3 10 Tf (Reproduce:) Tj /F1 10 Tf T* 0 Tw /F5 10 Tf (make) Tj ( ) Tj (bench-portal) Tj /F1 10 Tf ( \(source: ) Tj /F5 10 Tf (tests/portal-benchmark.sh) Tj /F1 10 Tf (\).) Tj T* ET Q Q q -1 0 0 1 57.02362 701.8236 cm +1 0 0 1 57.02362 659.8236 cm Q q -1 0 0 1 57.02362 503.8236 cm +1 0 0 1 57.02362 461.8236 cm q 1 1 1 rg n 0 198 481.2283 -18 re f* @@ -7518,32 +7530,32 @@ Q Q Q q -1 0 0 1 57.02362 503.8236 cm +1 0 0 1 57.02362 461.8236 cm Q q -1 0 0 1 57.02362 461.8236 cm +1 0 0 1 57.02362 419.8236 cm q BT 1 0 0 1 0 26 Tm .698334 Tw 12 TL /F1 10 Tf 0 0 0 rg (The asm) Tj /F6 10 Tf 12 TL (\256) Tj /F1 10 Tf 12 TL (asm cross-process is ~160\327 faster than Python) Tj /F6 10 Tf 12 TL (\256) Tj /F1 10 Tf 12 TL (Python. The binary & S-expression portals are) Tj T* 0 Tw .812256 Tw (within 10% of each other on this workload \227 the bottleneck is process startup, not serialization. For larger) Tj T* 0 Tw (heaps the binary format pulls further ahead; for portability, S-expression always wins.) Tj T* ET Q Q q -1 0 0 1 57.02362 430.6236 cm +1 0 0 1 57.02362 388.6236 cm q BT 1 0 0 1 0 2.2 Tm 13.2 TL /F2 11 Tf .133333 .133333 .133333 rg (7.7 Mismatch Cases: Graceful Degradation) Tj T* ET Q Q q -1 0 0 1 57.02362 410.6236 cm +1 0 0 1 57.02362 368.6236 cm q 0 0 0 rg BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (A usable persistence layer fails well. What happens when the consumer meets unexpected input?) Tj T* ET Q Q q -1 0 0 1 57.02362 404.6236 cm +1 0 0 1 57.02362 362.6236 cm Q q -1 0 0 1 57.02362 254.6236 cm +1 0 0 1 57.02362 212.6236 cm q 1 1 1 rg n 0 150 481.2283 -18 re f* @@ -7776,10 +7788,10 @@ Q Q Q q -1 0 0 1 57.02362 254.6236 cm +1 0 0 1 57.02362 212.6236 cm Q q -1 0 0 1 57.02362 188.6236 cm +1 0 0 1 57.02362 146.6236 cm q BT 1 0 0 1 0 50 Tm 1.476556 Tw 12 TL /F1 10 Tf 0 0 0 rg (All defects surfaced & fixed during benchmark development: an asm segfault on ) Tj /F5 10 Tf (\(define) Tj ( ) Tj (x\)) Tj /F1 10 Tf ( without a) Tj T* 0 Tw 1.838453 Tw (value \(now binds to ) Tj /F5 10 Tf (VOID) Tj /F1 10 Tf (\), an asm portal-resume that accepted short headers \(now verifies ) Tj /F5 10 Tf (sys_read) Tj /F1 10 Tf T* 0 Tw 1.204272 Tw (returned a full 48 bytes & sanity-checks heap metadata\), a Python ) Tj /F5 10 Tf (file) Tj ( ) Tj (not) Tj ( ) Tj (found) Tj /F1 10 Tf ( error reporting the) Tj T* 0 Tw 1.304862 Tw (outer script path instead of the inner missing file \(now uses ) Tj /F5 10 Tf (FileNotFoundError.filename) Tj /F1 10 Tf (\). Graceful) Tj T* 0 Tw (degradation is not free; it is tested.) Tj T* ET Q @@ -12724,63 +12736,63 @@ xref 0002525313 00000 n 0002536448 00000 n 0002543919 00000 n -0002552338 00000 n -0002562317 00000 n -0002567970 00000 n -0002578510 00000 n -0002588031 00000 n -0002597336 00000 n -0002599378 00000 n -0002612868 00000 n -0002628356 00000 n -0002638138 00000 n -0002647160 00000 n -0002654073 00000 n -0002663708 00000 n -0002671841 00000 n -0002679929 00000 n -0002687227 00000 n -0002689430 00000 n -0002691714 00000 n -0002692140 00000 n -0002692175 00000 n -0002692210 00000 n -0002692245 00000 n -0002692280 00000 n -0002692315 00000 n -0002692350 00000 n -0002692385 00000 n -0002692420 00000 n -0002692455 00000 n -0002692491 00000 n -0002692527 00000 n -0002692563 00000 n -0002692599 00000 n -0002692635 00000 n -0002692671 00000 n -0002692707 00000 n -0002692743 00000 n -0002692779 00000 n -0002692815 00000 n -0002692851 00000 n -0002692887 00000 n -0002692923 00000 n -0002692959 00000 n -0002692995 00000 n -0002693031 00000 n -0002693067 00000 n -0002693103 00000 n -0002693139 00000 n -0002693175 00000 n -0002693211 00000 n -0002693247 00000 n -0002693283 00000 n -0002693319 00000 n -0002693355 00000 n +0002552961 00000 n +0002563331 00000 n +0002568984 00000 n +0002579524 00000 n +0002589045 00000 n +0002598350 00000 n +0002600392 00000 n +0002613882 00000 n +0002629370 00000 n +0002639152 00000 n +0002648174 00000 n +0002655087 00000 n +0002664722 00000 n +0002672855 00000 n +0002680943 00000 n +0002688241 00000 n +0002690444 00000 n +0002692728 00000 n +0002693154 00000 n +0002693189 00000 n +0002693224 00000 n +0002693259 00000 n +0002693294 00000 n +0002693329 00000 n +0002693364 00000 n +0002693399 00000 n +0002693434 00000 n +0002693469 00000 n +0002693505 00000 n +0002693541 00000 n +0002693577 00000 n +0002693613 00000 n +0002693649 00000 n +0002693685 00000 n +0002693721 00000 n +0002693757 00000 n +0002693793 00000 n +0002693829 00000 n +0002693865 00000 n +0002693901 00000 n +0002693937 00000 n +0002693973 00000 n +0002694009 00000 n +0002694045 00000 n +0002694081 00000 n +0002694117 00000 n +0002694153 00000 n +0002694189 00000 n +0002694225 00000 n +0002694261 00000 n +0002694297 00000 n +0002694333 00000 n +0002694369 00000 n trailer << /ID -[<0317565ca3c256fb6011c65bb1ae607c><0317565ca3c256fb6011c65bb1ae607c>] +[] % ReportLab generated PDF document -- digest (opensource) /Info 73 0 R @@ -12788,5 +12800,5 @@ trailer /Size 210 >> startxref -2693391 +2694405 %%EOF diff --git a/whitepaper/lumbda-whitepaper.rst b/whitepaper/lumbda-whitepaper.rst index 01d9e12..b41b06a 100644 --- a/whitepaper/lumbda-whitepaper.rst +++ b/whitepaper/lumbda-whitepaper.rst @@ -805,6 +805,8 @@ Lumbda addresses this across all three tiers with one shared PRNG: **xoshiro256\ Builtins shared across all three: ``(random-seed! k)``, ``(random-int n)``, ``(random-state)``, ``(random-state! lst)``. Python and C also export ``(random)`` returning a float in ``[0, 1)``; the asm tier has no floats, so this one builtin is omitted by construction. All three tiers seed with ``k = 0`` at process startup, so a program that never calls ``random-seed!`` still gets a non-zero, deterministic stream. +A fifth shared builtin — ``(random-seed-from-os!)`` — reads 8 bytes from ``/dev/urandom`` and seeds xoshiro256\*\* with them, so the typical real-world flow *(Machine A seeds from kernel entropy → runs simulation → portal-saves → Machine B resumes the same stream bit-for-bit)* is one call away. Determinism stays the default; kernel entropy is opt-in and fails loud if ``/dev/urandom`` is unavailable. Ticket: ``docs/tickets/0002-os-entropy-seed.md``. + Verification: ``tests/portal-cross-test.sh`` runs a 3×3 producer × consumer matrix where each tier writes a portal file capturing the RNG state, every other tier reads it, draws the next 5 values, and the values must match bit-for-bit against a baseline the producer also wrote into the file. All 9 cells green. The baseline for seed=42 is ``558742 543102 559009 124193 317476 …`` — identical in Python, C, and asm, identical after any portal round-trip through any format. **Ticket:** ``docs/tickets/0001-portal-rng.md``. Contributed by **Zoë Trout**, whose question — *does the portal tech keep the random list seed which will allow transferring random entropy between processes when continuing a simulation?* — surfaced a gap we had not noticed. The earlier claim *portal = portable machine state* carried a silent asterisk: *deterministic code only*. That asterisk is now gone.