Define the spawn-time handoff a job process consumes before any application code runs: two inherited descriptors named by SWACTOR_ARENA_FD and SWACTOR_WAKE_FD, and a fixed 48-byte little-endian header at arena offset 0 naming one control-ring region. - Canonical header layout, shared parser, and a host writer that leases the header region and control ring disjointly under the arena's own placement law, zeroes the ring, stamps its generation, and returns the handoff (env map, inheritable arena and wake descriptors, host wake eventfd) only after every write completes. - Python binding gains swactor.run(main): map the arena read-only, take ground truth from fstat, validate through the shared parser, arm FD_CLOEXEC on the wake descriptor, close the arena descriptor after mapping, and drive main on asyncio with Context.data carrying the resolved state. Fail-fast BootstrapError before main on any defect. - Rewrite jobs/tiny_linear_inference.py against the approved path API and record the slice, invariants, and remaining bridge work in the handoff doc. Verified with 12 new data-plane bootstrap guarantee tests (parser defect table, fuzzed pages, writer round-trip), 29 binding tests across in-process and exec boundaries, and full data-plane and iroh-driver suites with no regressions.
20 lines
397 B
TOML
20 lines
397 B
TOML
[build-system]
|
|
requires = ["maturin>=1.7,<2"]
|
|
build-backend = "maturin"
|
|
|
|
[project]
|
|
name = "swactor"
|
|
version = "0.1.0"
|
|
requires-python = ">=3.9"
|
|
|
|
[dependency-groups]
|
|
dev = ["jupyter", "ipykernel", "pytest"]
|
|
|
|
[tool.uv]
|
|
cache-keys = [
|
|
{ file = "pyproject.toml" },
|
|
{ file = "Cargo.toml" },
|
|
{ file = "src/**/*.rs" },
|
|
{ file = "../../Cargo.toml" },
|
|
{ file = "../../src/**/*.rs" },
|
|
]
|