Epic: make StarLang safely embeddable in StarIntel services #57
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#57
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?
Goal
Make StarLang a stable embeddable Common Lisp library/runtime that
starintel-serverand other StarIntel services can load in-process without depending onprototype/, private implementation packages, CLI entrypoints, global process state, or ad-hoc host callbacks.The first concrete downstream consumer is
starintel-serverdocument matching/transforms from server issue #44 /STAR-RESEARCH-051. Matcher definitions and matcher evaluation semantics are moving into StarLang. The server should embed StarLang and provide typed host/application ports; it should not grow a second matcher DSL or retain a Common Lisp callback registry.Related StarLang gates:
prototype/Downstream seed:
Current readiness determination
NOT READY YET as a stable production embedding boundary.
There is substantial usable implementation already:
starlang-runtimeexposes concrete actor/runtime/dispatcher APIs;But the production embedding boundary is not complete:
prototype/star-lang-api.lispdelegates tostar-lang.core-surface.prototype,star-lang.loader, constructor-runtime, and document-runtime prototype-era ownership;starlang-compilerdoes not yet own the complete closed parser → expand → validate → normalized IR pipeline;This epic is therefore the consumer-facing readiness gate for embedding. It does not replace #47/#52; it defines the stable API and integration proof those efforts must expose to downstream services.
Required public embedding surface
Create final-system, documented APIs with no prototype package dependency for at least:
Compiler / program lifecycle
Runtime lifecycle
Host ports / capabilities
.starsource or normalized IR;Matcher / document-transform support
Add a StarLang-owned bounded matcher/transform semantic surface sufficient for
STAR-RESEARCH-051:The matcher language must be StarLang. Do not expose PCRE strings plus Lisp callbacks as the canonical model. Native Common Lisp implementation details may exist inside the StarLang runtime for closed primitives, but downstream hosts invoke StarLang semantics, not those implementation functions directly.
Downstream integration contract
starintel-servermust be able to:.starmatcher/transform definitions;The server remains authoritative for persistence, authentication/authorization, deployment policy, runtime resource admission, and canonical ingest. StarLang remains authoritative for language semantics and matcher/transform evaluation.
Required isolation and safety properties
READ/EVALof.starsource;quit, terminate SBCL, or enter an interactive debugger.Implementation slices
Slice 1 — embedding API contract and RED tests
Slice 2 — final compiler embedding path
Slice 3 — final runtime embedding path
starlang-runtime;Slice 4 — StarLang matcher/transform semantics
Slice 5 — StarIntel integration proof
Using a test consumer or
starintel-serverintegration branch:.starURL matcher/transform;Acceptance gate:
STARLANG_EMBED_READYDo not claim StarLang production-embedding readiness until all are true:
starlang-compilerowns the complete production compiler path.*.prototypepackage.starlang-prototypeor files underprototype/..startransform through final systems only.Non-goals
prototype/star-lang-api.lispcan be called today.Definition of done
This epic closes when
STARLANG_EMBED_READYis green and a StarIntel consumer can depend only on released/final StarLang systems to compile and execute bounded StarLang programs in-process, including the matcher/transform vertical required by server #44.