Make real actor systems invariant for actor-semantic tests #42
Labels
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
nsaspy/star-lang#42
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Context
StarLang now has two distinct actor layers that must stay distinct:
starlang-runtimeowns deterministic StarLang actor semantics and the realstar-mailboxexecution path.star-sento-compatowns translation to a concrete Sento/cl-gserver actor runtime.The current migration ledger already names concrete Sento extraction plus deterministic/Sento lifecycle equivalence as the exact next actor-runtime slice. However, the final
star-sento-compattests still prove most operations with injected lambdas, and the Nix test environment does not currently install/run the concrete Sento backend.This issue makes the testing invariant explicit before that extraction proceeds.
Non-negotiable invariant
A wiring/unit test may still inject functions to prove that a port forwards arguments correctly. Such a test cannot count as evidence that the concrete actor behavior works.
Required layers
1. Deterministic semantic layer
Keep
starlang-runtimeas the fast semantic oracle. Its tests must instantiate the actual final runtime and actualstar-mailboximplementation. The deterministic scheduler is allowed and desirable.2. Concrete Sento integration layer
Add a test-only integration system/environment that loads Sento/cl-gserver and boots a real actor system while preserving
star-sento-compatas a soft production dependency if desired.Provide test helpers such as:
with-real-actor-systemwith unconditional teardown viaunwind-protect;3. Full actor-system fixture
The integration suite must exercise a small but complete multi-actor topology, not a single receiver plus direct host-language calls. Minimum useful topology:
All actor-to-actor behavior under assertion travels through actor refs and mailboxes.
4. Lifecycle-equivalence contract
Compare the deterministic and concrete Sento-backed paths for the semantics the adapter claims to support:
tell;star-sento-compatentry points where the current backend supports it.Restart/generation and watch must not be declared equivalent until the final adapter has explicit semantics and real integration evidence for them.
5. CI gate
Every PR that changes actor runtime/compat semantics must run both:
The current
flake.nixtest environment must be extended so the concrete integration job has the required Sento dependency and actually runs the final compatibility tests. Actor thread/process teardown is part of pass/fail correctness.Ownership constraints
starlang-runtime/ protocol systems, not in Sento.star-sento-compat.star-supervisorowns StarLang supervision policy after base lifecycle equivalence is green; do not bury policy in the compat adapter.prototype/should be moved behind finalstar-sento-compatentry points as the migration matrix requires.Immediate implementation slice
Follow
docs/implementation-slices/ACTOR-RUNTIME-MIGRATION-MATRIX.md:star-sento-compat;Known follow-up, not hidden scope creep
Research already identifies synchronous nested
starlang-runtimeaskas a separate semantic gap: A -> B -> A deterministically times out rather than providing split-phase mailbox progress. Do not disguise that as solved by this adapter/test slice. Track/implement split-phase ask separately after the concrete backend and semantic oracle share a proven base contract.Acceptance criteria
sleep.Primary repo/research references
docs/implementation-slices/ACTOR-RUNTIME-MIGRATION-MATRIX.mddocs/implementation-slices/FINAL-RUNTIME-OWNERSHIP-ACTORS-INGEST.mdstarlang-runtime/src/runtime.lispstarlang-runtime/tests/starlang-runtime-tests.lispstar-sento-compat/src/runtime-port.lispstar-sento-compat/src/sento-adapter.lispstar-sento-compat/tests/star-sento-compat-tests.lispstarintel-auto-research/roam/design/star-lang/STAR-LANG-002-durable-actor-runtime.orgstarintel-auto-research/roam/research/star-lang/STAR-LANG-RESEARCH-013-cl-gserver-runtime-facade.orgstarintel-auto-research/roam/research/star-lang/STAR-LANG-RESEARCH-024-proof-obligations-for-documents-actors-and-ingest.orgstarintel-auto-research/roam/research/star-lang/STAR-LANG-RESEARCH-025-verification-experiment-program-for-actor-ingest.org