luft/render/live-artifact-tests.lisp
A reporting failure does not turn release into a repeatable ownership claim over the already-detached native cohort.
The newer global revision remains pending and succeeds next boundary.
The complete last-known-good renderer cohort owned by one LUFT viewer.
(artifact)Build ARTIFACT's complete unpublished renderer and semantic mesh cohort.
(artifact candidate)Publish CANDIDATE and return a non-fatal retirement diagnostic, or NIL.
(artifact candidate)Release an unpublished renderer CANDIDATE.
(viewer diagnostic)Mirror DIAGNOSTIC into VIEWER's presentation state without owning it.
(&optional (viewer (gensym "VIEWER")))(artifact)Attempt pending source for ARTIFACT at its owning application boundary. Implementations must build away from installed state, publish only a complete candidate, preserve the last-known-good artifact on failure, and coalesce newer invalidations without performing GPU work in definition callbacks. Explicitly released…
(artifact)Return ARTIFACT's lifecycle status. Concrete artifacts normally use :BUILDING, :INSTALLED, :FAILED, :RELEASING, and :RELEASED. :FAILED means that the last attempt failed while the previous installed artifact, when any, remains usable.
Test whether two compatible scalars are equal.
(artifact)Return ARTIFACT's monotonically increasing installed revision.
(artifact)Return ARTIFACT's newest build or retirement diagnostic, or NIL.
(artifact)Explicitly and idempotently release ARTIFACT and its subscriptions. Release is terminal. Application owners remain responsible for calling this at a boundary where no new encoding can borrow the installed GPU resources.
Failed source never crosses the publication boundary.