57%

Prior-Art Ingestion (layer-1 prework)

Goal

Create a scoped, clean-room evidence set for VM design decisions without turning parser infrastructure into an unbounded prerequisite. The deliverable is an evidence classification and experiment backlog, not an architecture adoption: its spine is the semantic/physical split (ExecutableProgram frozen post-AIMS facts, BytecodeProgram verified typed operations, PhysicalVmPlan disposable projection), and lane leakage between those levels is rejected. This target owns provenance only — it produces extractor fixtures, pins, and evidence tables and cannot preempt the realization, execution, ISA, or parity owners that own behavior.

Implementation Sketch

  • Add only the C/Lua extractor support required by the selected source directories, with pinned grammars, parser samples, and query-family validation.
  • Ingest scoped interpreter/runtime directories from LuaJIT, Lua, CPython, QuickJS, wasm3, and mruby. Record repository revisions and non-zero symbol counts so later claims are reproducible.
  • Review LuaJIT .dasc dispatch sources directly because the graph cannot represent them; record that evidence separately rather than substituting wasm3 and claiming LuaJIT coverage.
  • Pin direct local-source studies of V8 and GHC beside LuaJIT. Keep graph-ingestion scope and design-study scope distinct when a repository or language is not represented by the extractor.
  • Produce a short decision table covering dispatch, instruction encoding, frames, errors, GC/RC boundaries, and portability. Each later design section cites the rows it actually uses.
  • Time-box reconnaissance. Missing graph richness may narrow a claim, but it must not silently expand into an unrelated intelligence-platform project.

Spec & Rules

  • Influence only; copy no implementation code.
  • A declared parser query family must either have a validated query or an explicit unsupported disposition.
  • Record exact repository revisions and source paths, including the DynASM blind spot.
  • Classify evidence as strict interpreter, JIT/tiered, compiler/lowering, or runtime architecture. Never use evidence from one lane to support a claim in another. Each lane carries permitted pressures and prohibited conclusions; a permitted pressure never licenses its prohibited conclusion.
  • Prior art exempts no hygiene family — PHASE/FLOW, TEST/COVER, SPEC, SSOT, WASTE, DESIGN, and INTEL rules all bind evidence ingestion, extractor authoring, and every derived hypothesis.
  • Architectural non-fallback constraints hold regardless of graph gaps: the DynASM blind spot is direct-review evidence, never graph coverage; the tree-walker and LLVM backends are not VM fallbacks; and physical planning is not a semantic owner.
  • No pre-existing external symbol is a do-not-touch constraint (the graph reports an empty constrained-symbol set); the binding constraints are architectural, not symbol-level.

Live LuaJIT Reconnaissance — 2026-07-14

The official rolling LuaJIT repository is cloned read-only at ${REFERENCE_REPOS_ROOT}/lang_repos/luajit and pinned for this prototype study at 3c4f9fe2052b8d08a917ac0d5f38563f0297b5a3. Directly inspected evidence includes src/lj_bc.h, src/lj_obj.h, src/lj_frame.h, src/lj_dispatch.c, src/lj_dispatch.h, src/lj_parse.c, and src/vm_x64.dasc.

The .dasc interpreter remains direct-review evidence rather than graph-derived evidence.

What -joff means

  • src/luajit.c::runargs accepts the joined -joff spelling as the -j control command off; src/luajit.c::dojitcmd resolves that command to src/lib_jit.c::jit_off, which calls luaJIT_setmode(..., LUAJIT_MODE_OFF).
  • In a fresh comparator process, apply -joff before loading the benchmark and assert that the benchmark does not re-enable the JIT. The Lua bytecode then runs through LuaJIT’s interpreter; no trace is recorded or entered.
  • -joff does not mean PUC Lua, a generic C interpreter, or “JIT with optimizer flags reduced.” It retains LuaJIT’s BCDEF bytecodes, parser shaping, tagged TValue slots, register-window frames, and DynASM-generated architecture-specific interpreter.
  • src/lj_dispatch.c::lj_dispatch_update selects the non-hotcounting interpreter handlers when the JIT mode is off. src/lj_trace.c::trace_stop patches bytecode to J-forms such as BC_JLOOP; that mechanism is JIT-only and is excluded from all -joff evidence.
  • Use pinned LuaJIT -joff only as the strict-interpreter speed and memory north star. Record LuaJIT JIT-on results, trace patching, hot counters, exits, and machine-code behavior only in the separately labeled tiered/JIT lane.

An out-of-tree build copied to /tmp produced LuaJIT 2.1.1783773675. On the output-checked 100-doors workload with 200 outer iterations, thirty shell-free whole-process runs measured pinned LuaJIT -joff at 2.1 ms ± 0.2 ms and Python 3.12.3 at 18.0 ms ± 1.0 ms: LuaJIT was 8.49× faster.

This is the current machine-local north-star reading, not yet the frozen cross-machine benchmark record. The equivalent programs preserve workload and output, while language-specific table/list update semantics are recorded rather than assumed identical.

Observed LuaJIT design pressureOri influenceExplicit clean-room/non-adoption boundary
Compact 32-bit register instructions with operand-form-specific arithmetic, constants, table access, loop, call, and return opcodesMeasure a packed Ori encoding and statically typed operand-form specialization after realization/AIMS; specialize only from proved artifact facts.Do not copy opcode numbers, layouts, macros, bytecode emitter structure, or instruction bodies. Ori encoding is derived from ARC semantics and verifier needs.
Register-window frames and contiguous tagged slots keep call/return state smallKeep indexed contiguous session-local frames/register storage and make frame shape explicit in verified metadata.Do not import Lua stack-frame pointer tagging, native pointer aliasing, or dynamic Lua call conventions.
Replicated direct dispatch and architecture-specific instruction fast paths materially reduce baseline interpreter overheadProfile match-loop code generation, hot state placement, handler size, and optional generated portable fast loops; keep slow/error/runtime work behind narrow typed helpers.Do not use handwritten DynASM/native assembly or mutable dispatch patching in the portable production baseline.
Numeric loops, constants, calls/returns, and collection access avoid generic runtime work in the common pathAdd typed loop and collection operations only through an explicit optimizer/lowering pass with semantic expansion, provenance, verifier support, and unfused parity tests.Do not recognize benchmark names, source spellings, comparator state, or unproved local instruction shapes.
LuaJIT recovers dynamic facts using tags, hot counters, and JIT dispatch modesExploit Ori’s canonical types, closed callable census, ownership facts, and AIMS uniqueness before bytecode execution. Prototype guards/deoptimization only through the separately measured tier seam.Do not cite hot counters, J-form patching, trace recording, or generated machine code as -joff evidence; keep the strict lane free of tier mutation and runtime type rediscovery.

Pinned Local-Source Evidence Matrix — 2026-07-14

Repository and revisionExact inspected paths and symbolsDesign pressure, not imported design
LuaJIT 3c4f9fe2052b8d08a917ac0d5f38563f0297b5a3src/lj_bc.h::BCDEF; src/lj_obj.h::{BCIns,TValue}; src/lj_frame.h::frame_*; src/vm_x64.dasc::{ins_NEXT,ins_callt,ins_call}; src/lj_dispatch.c::{lj_dispatch_init,lj_dispatch_update}; src/lj_parse.c::parse_return; src/lj_trace.c::trace_stopCompact operand-form instructions, register locality, replicated interpreter dispatch, and call/return shaping are strict-lane pressures. J-form patching is tiered-lane evidence only.
V8 d8b528eda51e69585a4fec7ef1cb2420cce45e7dsrc/interpreter/bytecodes.h::{BYTECODE_LIST_WITH_UNIQUE_HANDLERS_IMPL,BYTECODE_LIST,SHORT_STAR_BYTECODE_LIST}; src/interpreter/bytecode-operands.h::OPERAND_TYPE_LIST; src/interpreter/bytecode-traits.h::BytecodeTraits; src/interpreter/interpreter-generator.cc::IGNITION_HANDLER; src/interpreter/interpreter-assembler.cc::{Dispatch,StarDispatchLookahead}; src/interpreter/bytecode-register-optimizer.{h,cc}::BytecodeRegisterOptimizer; src/interpreter/bytecode-array-writer.cc::BytecodeArrayWriter; src/sandbox/bytecode-verifier.{h,cc}::BytecodeVerifierDeclarative opcode/operand metadata, explicit materialization of register equivalences, variable-width physical encoding, selective lookahead fusion, and verify-before-use separation motivate independently authored Ori experiments.
GHC 4396a6f2a4c7799908e1e0b88a218a51d063fdcacompiler/GHC/ByteCode/Instr.hs::{BCInstr,ProtoBCO}; compiler/GHC/ByteCode/Asm.hs::assembleBCO; compiler/GHC/ByteCode/Types.hs::{UnlinkedBCO,BCOPtr}; compiler/GHC/ByteCode/Linker.hs::linkBCO; libraries/ghci/GHCi/ResolvedBCO.hs::{ResolvedBCO,ResolvedBCOPtr}; libraries/ghci/GHCi/CreateBCO.hs::{createBCOs,createBCO,linkBCO'}; rts/include/rts/Bytecodes.h::bci_*; rts/include/rts/storage/Closures.h::StgBCO; rts/Interpreter.c::{INSTRUCTION,NEXT_INSTRUCTION}ProtoBCO -> UnlinkedBCO -> ResolvedBCO -> StgBCO makes artifact readiness explicit. Computed-goto versus switch fallback exposes dispatch/portability pressure and the danger of manually synchronized opcode tables.

External clean-room prior art — 2026-07-14

Web-fetched sources are clean-room performance pressures, never implementation templates. Each is classified by lane and transfer judgment (V8 Ignition is already covered above as a pinned local source).

SourceTagPressureTransfer judgment
Ertl & Gregg, “The Structure and Performance of Efficient Interpreters”KNOWN-SOLUTIONIndirect branches can dominate interpreter time; host prediction and compiler output must be measured.Measurement premise only; no stable-Rust dispatch choice without macro evidence.
Shi et al. (VEE’05), register vs stack bytecodeKNOWN-SOLUTIONRegister bytecode may remove dynamic instructions and shuffles but increases fetch and size.Test typed registers against bytecode bytes, decode, and frame/register storage on mixed workloads.
PEP 659 (specializing adaptive interpreter)KNOWN-SOLUTIONRuntime opcode replacement, caches/counters, deoptimization.Mutable/tiered lane only; the strict bytecode lane stays frozen.
Context Threading (Berndl et al.)NOVEL/RESEARCH for OriNative call/return dispatch aligns host and virtual control flow.Tiered-lane refutation target; reject if it needs generated native code, nonportable assembly, or loses on the current corpus or code size.

Clean-room boundary by source

  • LuaJIT: do not copy opcode order/numbers, BCDEF rows, DynASM, handler bodies, dispatch tables, TValue, pointer-tagged frames, parser folds, GC/table semantics, trace patching, or exit machinery.
  • V8: do not copy bytecode lists, operand encodings, Ignition handlers, accumulator conventions, JavaScript feedback slots, tagged-value rules, inline caches, sandbox ABI, or generated-code machinery.
  • GHC: do not copy BCInstr, BCO encodings, stack-machine layout, StgBCO, lazy/thunk evaluation policy, RTS GC conventions, computed-goto tables, remote-link protocol, or loader/runtime object construction.
  • Ori: derive every opcode, value, frame, ownership, verifier, physical-layout, and tier decision from the Ori spec, closed ExecutableProgram, post-AIMS ARC, representation facts, real profiles, and parity tests. Preserve only abstract pressures and independently testable hypotheses.

Ori Synthesis: Semantic Bytecode Before Physical Execution

Use this as a prototype architecture hypothesis, not a frozen API:

ExecutableProgram
    -> BytecodeProgram
    -> immutable VerifiedBytecode
    -> pure, discardable PhysicalVmPlan
    -> VmSession::execute
  • Every ingested prior-art row maps to exactly one ownership level — artifact closure (ExecutableProgram), bytecode semantics (BytecodeProgram/VerifiedBytecode), or physical execution (PhysicalVmPlan). Blending levels is a PHASE/SSOT hazard.
  • VerifiedBytecode owns semantic instructions, CFG/call validity, type/representation proofs, exact ARC/AIMS expansion, source/effect/error order, resource ceilings, and an immutable identity.
  • PhysicalVmPlan owns only host execution choices: packed versus predecoded records, immediate forms, copy-coalesced register placement, handler/block layout, and accepted portable tracelets. It is derived purely from one VerifiedBytecode identity and cannot add, remove, reorder, or rediscover semantics.
  • VmSession owns all mutable execution state, dynamic values/handles, frames, heap, limits, output, counters, and cleanup. Neither verification nor physical planning owns run state.
  • A future JIT consumes the same verified region facts and explicit state maps through ori_engine; it does not turn PhysicalVmPlan into a hidden native fallback. Interpreter-only runs create no runtime machine code and perform no tier transitions.
  • Cache semantic verification and physical planning under separate versioned identities. A physical plan is always reconstructible and disposable; serialized semantic bytecode never becomes host-layout-dependent.

Falsifiable prototype implications

Ori hypothesisRequired real-VM observationReject or revise when
Generate opcode names, operand/type metadata, verifier rules, profiler classes, and physical decode metadata from one Ori-owned declaration.Adding an opcode produces exhaustive compiler/verifier/dispatch obligations; generated metadata reduces duplicate tables without enlarging the semantic surface.A consumer still maintains an independent semantic table, or generation hides ownership/error behavior that cannot be reviewed and parity-pinned.
Coalesce Copy and parallel moves from ARC CFG liveness/equivalence facts, materializing only at observable edges.Mixed call, branch, panic, collection, and RC programs execute fewer copy/move dispatches with identical values, source/effect order, and ownership traces.Flush/materialization metadata costs erase macro gains, or any edge requires runtime semantic reconstruction.
Select immediate and operand-form instructions from proved constant/type/representation facts.Numeric, branch, call, string, and collection slices improve together; verifier rejects wrong widths/types and the retained unfused expansion stays exact.Code/metadata growth, decode complexity, or mixed-program regressions outweigh dispatch savings.
Keep flat logical frames and typed slots while separating dynamic identity into generation-checked session handles.Call-heavy and aggregate-escape programs reduce frame/register bytes and call overhead while stale-handle, nesting, unwind, and leak tests remain exact.Frame compaction aliases dynamic values, reintroduces pervasive tags, or couples VM frames to compiled ABI layout.
Build selective verified tracelets from repeated 4-16-operation regions after verification.Numeric, string, file-pipeline, JSON, sharing/call, panic, and RC/COW cells reduce dispatch with bounded plan bytes and exact baseline-expansion parity.The matcher recognizes benchmark/source identity, changes quota/error/RC order, needs mutable global quickening state, or wins only one kernel.
Compare compact stable-Rust match dispatch, common/replicated handler layout, and planned-region entry without assuming computed goto or DynASM.Macro timing, host instructions, branch behavior, text/metadata bytes, and RSS jointly select a portable winner on every supported target class.A micro-dispatch win fails application workloads, increases memory/code slope, or requires foreign assembly/unsafe frame conventions.

The unified-declaration hypothesis (row 1) is admitted only when both endpoint sources prove duplicate semantics; no MISSING_ABSTRACTION is confirmed today, so distinct typed facts are retained rather than fused, avoiding SSOT drift. Its verification adds pins at the semantic-to-physical boundary (BytecodeProgram to PhysicalVmPlan), not only handler microtests.

These hypotheses combine LuaJIT’s strict-interpreter locality, V8’s declarative physicalization, and GHC’s explicit readiness stages with Ori’s static types and AIMS proofs. The proposed combination is Ori-owned and must earn promotion through real compiler execution, broad correctness/parity, speed, memory, and seam evidence; analogy is never sufficient.

The evidence matrix and hypothesis tables are a backlog, not an adopted architecture. Each hypothesis must be prototyped in the real ori_vm path, compared with the same unfused baseline on a non-singleton workload set, and classified as promote, revise, or reject.

Promotion requires repeatable macro improvement, evaluator/VM/compiled-consumer behavior parity, post-AIMS ownership-event parity, verifier coverage, clean seam fit, and acceptable portability/maintenance cost. Combining rows is allowed only when the combined variant is measured independently; improvements are not assumed additive.

All prototype and production code remains independently authored from Ori’s contracts. Prior art may identify a performance pressure or an experiment; only Ori semantics, measurements, parity tests, and hygiene gates can justify the resulting design.

Clean-Room Decision Matrix — 2026-07-14

  • Pinned revisions: LuaJIT 3c4f9fe2052b8d08a917ac0d5f38563f0297b5a3, V8 d8b528eda51e69585a4fec7ef1cb2420cce45e7d, GHC 4396a6f2a4c7799908e1e0b88a218a51d063fdca.
  • LuaJIT src/vm_x64.dasc is the DynASM graph blind spot — direct-review evidence only, never extractor/graph coverage.
  • Evidence-lane values classify the SOURCE evidence per Spec & Rules (strict interpreter / JIT-tiered / compiler-lowering / runtime-architecture); one lane’s evidence never supports another lane’s conclusion.
  • Ori artifact owners are the Ori Synthesis levels (ExecutableProgram frozen post-AIMS facts, VerifiedBytecode semantic instructions, PhysicalVmPlan disposable projection, VmSession run state).
  • Each row states its evidence lane, exact inspected paths, Ori artifact owner, non-adoption boundary, falsifiable hypothesis, and the four-axis promotion-or-rejection evidence later sections must produce.
Decision categoryEvidence laneExact inspected paths (pinned revision)Ori artifact ownerNon-adoption boundaryFalsifiable hypothesisPromotion / rejection evidence (speed / memory / parity / portability)
Dispatchstrict interpreter (JIT-tiered trace_stop excluded)LuaJIT src/vm_x64.dasc::{ins_NEXT,ins_callt,ins_call} (DynASM blind spot, direct review), src/lj_dispatch.c::{lj_dispatch_init,lj_dispatch_update}; V8 src/interpreter/interpreter-generator.cc::IGNITION_HANDLER, src/interpreter/interpreter-assembler.cc::{Dispatch,StarDispatchLookahead}; GHC rts/Interpreter.c::{INSTRUCTION,NEXT_INSTRUCTION}PhysicalVmPlan (handler/block layout, match-loop entry); VmSession executesNo DynASM/handwritten native asm and no mutable dispatch patching in the portable strict baseline; no V8 generated handlersPortable stable-Rust match dispatch with replicated/common handler layout and planned-region entry matches or beats computed-goto/DynASM without foreign asm (Falsifiable prototype implications row 6)speed: macro timing + host instruction/branch counts on the mixed corpus beat the unfused baseline, reject if a micro-dispatch win loses application workloads; memory: text/metadata bytes + RSS do not regress; parity: identical values + source/effect order across evaluator/VM/compiled consumers; portability: winner holds on every supported target class
Instruction encodingstrict interpreterLuaJIT src/lj_bc.h::BCDEF, src/lj_obj.h::BCIns; V8 src/interpreter/bytecodes.h, src/interpreter/bytecode-operands.h::OPERAND_TYPE_LIST, src/interpreter/bytecode-traits.h::BytecodeTraits, src/interpreter/bytecode-array-writer.cc::BytecodeArrayWriter; GHC rts/include/rts/Bytecodes.h::bci_*, compiler/GHC/ByteCode/Instr.hs::{BCInstr,ProtoBCO}, compiler/GHC/ByteCode/Asm.hs::assembleBCOVerifiedBytecode (semantic opcode/operand set); PhysicalVmPlan (packed-vs-predecoded physical encoding, immediate forms)No opcode numbers/BCDEF rows/V8 bytecode lists/GHC BCInstr copying; encoding derived from ARC semantics + verifier needsSelect immediate/operand-form instructions from proved constant/type/representation facts, and generate opcode/operand/verifier metadata from one Ori declaration (rows 3 + 1)speed: numeric/branch/call/string/collection slices improve together; memory: code/metadata growth does not outweigh dispatch savings and the unfused expansion stays exact; parity: verifier rejects wrong widths/types and decoded semantics equal the baseline; portability: encoding decodes on every target class from ARC/verifier facts
Framesstrict interpreterLuaJIT src/lj_frame.h::frame_*, src/vm_x64.dasc::{ins_callt,ins_call}; V8 src/interpreter/bytecode-register-optimizer.{h,cc}::BytecodeRegisterOptimizer; GHC rts/include/rts/storage/Closures.h::StgBCOVerifiedBytecode (frame-shape metadata); PhysicalVmPlan (register placement, copy coalescing); VmSession (run-state frames)No Lua pointer-tagged frames/native pointer aliasing/dynamic call conventions; no GHC stack-machine layout/StgBCOFlat logical frames + typed slots with dynamic identity in generation-checked session handles reduce frame bytes with exact unwind/leak behavior (row 4)speed: call-heavy/aggregate-escape programs reduce call overhead; memory: frame/register bytes reduce with no pervasive tags reintroduced; parity: stale-handle/nesting/unwind/leak tests exact and frames derive from post-AIMS facts; portability: no foreign/unsafe frame conventions and no coupling to compiled ABI
Errorsruntime architectureLuaJIT src/vm_x64.dasc unwind path, src/lj_parse.c::parse_return; JIT-tiered src/lj_trace.c::trace_stop exit machinery (excluded); GHC rts/Interpreter.c (error/interrupt handling); V8 src/interpreter/bytecodes.h (throw/rethrow bytecodes)VerifiedBytecode (source/effect/error order, resource ceilings); VmSession (unwind execution, cleanup)No Lua trace patching/exit machinery; no GHC lazy/thunk evaluation policyVM unwind reproduces the exact evaluator panic class and effect/error order for every mixed program (Ori Synthesis; errors rejection gate)speed: error-path cost not on the hot path and not regressed; memory: unwind cleanup leaks nothing; parity: exact evaluator/VM/compiled panic-class + effect-order parity, reject any lane that changes quota/error/RC order; portability: unwind identical across target classes
GC/RC boundariesruntime architectureLuaJIT src/lj_obj.h::TValue; V8 tagged-value/register-accumulator model via src/interpreter/bytecode-operands.h; GHC rts/include/rts/storage/Closures.h::StgBCO, libraries/ghci/GHCi/ResolvedBCO.hs::{ResolvedBCO,ResolvedBCOPtr}ExecutableProgram (frozen post-AIMS ownership/drop facts); VmSession (run-state cleanup); PhysicalVmPlan must not re-ownNo Lua GC/table semantics/TValue tagging; no V8 tagged-value rules/inline caches; no GHC RTS GC conventions/loader construction; derive from post-AIMS ARC factsCoalesce Copy and parallel moves from ARC CFG liveness/equivalence facts with identical ownership traces (row 2)speed: fewer copy/move dispatches with identical values; memory: zero leaked owners/storage/handles under ORI_CHECK_LEAKS; parity: post-AIMS ownership-event parity across executors with no second ownership calculus or runtime type rediscovery; portability: ownership facts consumed identically on every target class
Portabilitycompiler-lowering (+ strict interpreter)GHC rts/Interpreter.c::{INSTRUCTION,NEXT_INSTRUCTION} (computed-goto vs switch fallback); LuaJIT src/vm_x64.dasc (architecture-specific DynASM, non-portable, direct review); V8 src/interpreter/interpreter-generator.cc::IGNITION_HANDLER (per-arch generated handlers)PhysicalVmPlan (accepted portable tracelets, stable-Rust dispatch selection)No DynASM/foreign assembly/computed-goto tables; stable-Rust match dispatch onlyOne portable variant wins jointly on timing/host-instructions/text-and-metadata-bytes/RSS on every supported target class (row 6)speed: portable stable-Rust match dispatch wins jointly on timing + host instructions; memory: code/metadata bytes + RSS slope acceptable across targets; parity: identical behavior across target classes; portability: joint winner on every supported target class, foreign assembly/unsafe rejected

Each category row above is consumed under the strict/tiered permitted lane, consuming section, and rejection gate recorded in Downstream Consumer Registration; the two tables never restate one another. A category whose promotion/rejection evidence is not produced by its registered consuming section is unfunded prior art and is dropped, not carried as latent adoption pressure.

Downstream Consumer Registration

Each decision-matrix row is consumed by concrete downstream bytecode-vm sections under exactly one permitted lane; the rejection gate blocks any consumer from authorizing strict-lane mutation, a second semantic owner, or a benchmark-specific shortcut. strict = the immutable strict-interpreter lane; tiered = the separately measured tier/JIT lane.

Decision-matrix rowConsuming downstream section(s)Permitted laneRejection gate
Dispatch (replicated direct dispatch, match-loop codegen, handler layout)register-vm-dispatch (s-d34c4229), perf-grind-luajit-class (s-07271bdd)strictNo DynASM/handwritten native asm and no mutable dispatch patching in the portable strict baseline; a micro-dispatch win that fails application workloads is rejected.
Instruction encoding (compact operand-form, variable-width, immediate selection)isa-design (s-55a7979e), bytecode-compiler (s-bf63aada)strictVerifier rejects wrong widths/types; no opcode order/number or BCDEF-row copying; code/metadata growth outweighing dispatch savings rejects the row.
Frames (call/return shaping, register locality)executable-program-contract (s-ba8f2041), value-abi-runtime-alignment (s-f9b40534), register-vm-dispatch (s-d34c4229)strictNo pointer-tagged frames or foreign/unsafe frame conventions; frames derive from post-AIMS facts, never re-owned.
Errors (unwind, panic class)parity-verification (s-4b00387e), ori-run-test-integration (s-c22d62a9)strictExact evaluator/VM/compiled-consumer panic-class + effect-order parity; a lane that changes quota/error/RC order is rejected.
GC/RC boundariesaims-interprocedural-evidence-boundary (s-f03dffb9), parity-verification (s-4b00387e)strictPost-AIMS ownership-event parity required; no runtime type rediscovery or second ownership calculus in the strict lane.
Portability (stable-Rust match dispatch; no computed-goto/DynASM assumption)benchmark-infrastructure (s-b5d1f822), perf-grind-luajit-class (s-07271bdd)strictPortable winner must hold on every supported target class jointly on timing, host instructions, code/metadata bytes, and RSS; foreign assembly/unsafe is rejected.
Generated opcode/operand/verifier/decode metadata from one Ori declarationbytecode-compiler (s-bf63aada), tagged-built-in-callable-identity (s-374b9321)strictOne Ori-owned declaration; a consumer maintaining an independent semantic table or hiding ownership/error behavior from parity pins is rejected.
Selective verified tracelets / quickening / generated handlers / context threadingjit-handoff-contract (s-1fd9d2db)tieredNever admitted to the immutable strict lane; must carry a separate parity, memory, and portability lane and never cite hot counters / J-form patching / trace recording as -joff evidence.
Walking-skeleton end-to-end path (ExecutableProgram -> BytecodeProgram -> PhysicalVmPlan)walking-skeleton (s-0279c4d5), production-eval-architecture-contract (s-429b48fe), refined-canonical-ir-validation-contract (s-b43e52d6), uniform-evaluator-scalar-dispatch-altitude (s-dab8add2)strictNo re-owning post-AIMS facts; every physical variant compared against the same unfused mixed-corpus baseline.

Traceability: each listed downstream section cites the rows it actually uses; a row with no registered consumer is unfunded prior art and is dropped, not carried as latent adoption pressure. This registration owns provenance only; the executable, ISA, dispatch, and parity sections it hands rows to own behavior — a STRUCT/PHASE boundary the registration must not cross, and it never blocks a semantic-closure repair. prototype-retirement-and-production-hardening (s-7992d69b) is the terminal gate that deletes any prototype residue a registered row did not promote.

Layer Coverage

LayerDisposition
L1N/A: this section changes intelligence extraction, not the Ori parser.
L2N/A: no typechecking behavior changes.
L3N/A: no canonicalization behavior changes.
L4N/A: no ARC/AIMS behavior changes.
L5N/A: no evaluator behavior changes.
L6N/A: no LLVM debug backend behavior changes.
L7N/A: no LLVM release backend behavior changes.
L8N/A: no AOT behavior changes.
L9N/A: this is intelligence tooling with no execution semantics.
L10N/A: this section allocates no Ori runtime values.
L11N/A: it does not change the Ori language or spec corpus.
L12N/A: it has no compiler production entry point; extractor validation and graph-status criteria cover its tooling outputs.

Work Items

  • Add only the C/Lua extractor capability required for the declared VM-source directories; pin each grammar, validate every declared query family with positive and negative parser fixtures, and record an explicit unsupported disposition for any family not implemented.
  • Register and ingest the scoped, revision-pinned interpreter/runtime directories of LuaJIT, Lua, CPython, QuickJS, wasm3, and mruby; for every repository record exact paths, evidence lane, and VM-design question, and prove non-zero useful graph symbols while retaining explicit unsupported dispositions rather than substituting unrelated coverage.
  • Record the LuaJIT .dasc graph blind spot; directly inspect pinned LuaJIT, V8, and GHC sources; and publish a revisioned clean-room decision matrix for dispatch, encoding, frames, errors, GC/RC boundaries, and portability. Each row must state its evidence lane, exact paths, Ori artifact owner, non-adoption boundary, falsifiable hypothesis, and the speed, memory, parity, and portability promotion or rejection evidence required by later sections.
  • Register the concrete downstream benchmark, architecture, ISA, bytecode-compiler, and dispatch sections that consume each decision-matrix row, including the permitted lane and rejection gate, so prior-art influence remains traceable and cannot authorize strict-lane mutation, a second semantic owner, or benchmark-specific shortcuts.

Intel dossier — pointer and tier disposition

Dossier: prior-art-ingestion--s-fa0fd48c.intel.md (this section’s content/intel/ sidecar)

Read that dossier from line 1 through EOF before acting on this section. This block is a pointer and an audit record, never a substitute: not the BLUF, not a summary, not selected tiers.

Dossier tierTitleLinesDispositionWhere / why
00. Bottom line up front19integratedGoal
11. Target contract20integratedSpec & Rules
22. Terrain22integratedOri Synthesis: Semantic Bytecode Before Physical Execution
33. Code-graph recon23integratedOri Synthesis: Semantic Bytecode Before Physical Execution (Falsifiable prototype implications)
3D3D. Diagnostic / observability disposition13not_applicableThe tier itself states no purpose-built VM bytecode/dispatch diagnostic applies to evidence ingestion; the do-not-substitute-a-compiled-code-diagnostic hazard binds the downstream benchmark/parity sections this section registers (benchmark-infrastructure, parity-verification), not this section’s own headings. This section produces the clean-room evidence set and lane/rejection-gate registration, not the VM benchmark evidence capture.
3H3H. Hygiene constraints20integratedSpec & Rules
44. Cluster / family15integratedDownstream Consumer Registration
55. Conformance audit12integratedOri Synthesis: Semantic Bytecode Before Physical Execution (Falsifiable prototype implications)
66. Plan ownership14integratedGoal
77. Prior art - graph and external web research29integratedPinned Local-Source Evidence Matrix (External clean-room prior art)
88. Sentiment and issue signal13not_applicableNo imported issue corpus exists for Ori, so there is no sentiment/issue signal to ingest and nothing to classify. The verdict only reinforces retaining broad closure/error/ownership parity gates under TEST/COVER, which are already present in the Downstream Consumer Registration rejection-gate column and the Falsifiable prototype implications; community heat cannot choose an architecture, so it imposes no new heading change.
99. Coverage gaps and binding constraints22integratedSpec & Rules
1010. Recommended recon entry points23not_applicableThis tier is recon-execution ordering guidance (start at the shared contract, narrow through verification to physical execution, ingest declared C/Lua dirs, prototype immutable register/physical separation before adaptive, report strict and tiered separately). Its substance is already encoded structurally in the Implementation Sketch, the Ori Synthesis pipeline (ExecutableProgram -> BytecodeProgram -> VerifiedBytecode -> PhysicalVmPlan), the strict/tiered lane split in Downstream Consumer Registration, and the Work Items order; it prescribes how to perform recon rather than changing what a planned-work heading must say.