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
.dascdispatch 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::runargsaccepts the joined-joffspelling as the-jcontrol commandoff;src/luajit.c::dojitcmdresolves that command tosrc/lib_jit.c::jit_off, which callsluaJIT_setmode(..., LUAJIT_MODE_OFF).- In a fresh comparator process, apply
-joffbefore 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. -joffdoes not mean PUC Lua, a generic C interpreter, or “JIT with optimizer flags reduced.” It retains LuaJIT’sBCDEFbytecodes, parser shaping, taggedTValueslots, register-window frames, and DynASM-generated architecture-specific interpreter.src/lj_dispatch.c::lj_dispatch_updateselects the non-hotcounting interpreter handlers when the JIT mode is off.src/lj_trace.c::trace_stoppatches bytecode to J-forms such asBC_JLOOP; that mechanism is JIT-only and is excluded from all-joffevidence.- Use pinned LuaJIT
-joffonly 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 pressure | Ori influence | Explicit clean-room/non-adoption boundary |
|---|---|---|
| Compact 32-bit register instructions with operand-form-specific arithmetic, constants, table access, loop, call, and return opcodes | Measure 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 small | Keep 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 overhead | Profile 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 path | Add 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 modes | Exploit 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 revision | Exact inspected paths and symbols | Design pressure, not imported design |
|---|---|---|
LuaJIT 3c4f9fe2052b8d08a917ac0d5f38563f0297b5a3 | src/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_stop | Compact 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 d8b528eda51e69585a4fec7ef1cb2420cce45e7d | src/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}::BytecodeVerifier | Declarative 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 4396a6f2a4c7799908e1e0b88a218a51d063fdca | compiler/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).
| Source | Tag | Pressure | Transfer judgment |
|---|---|---|---|
| Ertl & Gregg, “The Structure and Performance of Efficient Interpreters” | KNOWN-SOLUTION | Indirect 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 bytecode | KNOWN-SOLUTION | Register 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-SOLUTION | Runtime opcode replacement, caches/counters, deoptimization. | Mutable/tiered lane only; the strict bytecode lane stays frozen. |
| Context Threading (Berndl et al.) | NOVEL/RESEARCH for Ori | Native 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,
BCDEFrows, 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. VerifiedBytecodeowns semantic instructions, CFG/call validity, type/representation proofs, exact ARC/AIMS expansion, source/effect/error order, resource ceilings, and an immutable identity.PhysicalVmPlanowns 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 oneVerifiedBytecodeidentity and cannot add, remove, reorder, or rediscover semantics.VmSessionowns 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 turnPhysicalVmPlaninto 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 hypothesis | Required real-VM observation | Reject 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, V8d8b528eda51e69585a4fec7ef1cb2420cce45e7d, GHC4396a6f2a4c7799908e1e0b88a218a51d063fdca. - LuaJIT
src/vm_x64.dascis 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 (
ExecutableProgramfrozen post-AIMS facts,VerifiedBytecodesemantic instructions,PhysicalVmPlandisposable projection,VmSessionrun 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 category | Evidence lane | Exact inspected paths (pinned revision) | Ori artifact owner | Non-adoption boundary | Falsifiable hypothesis | Promotion / rejection evidence (speed / memory / parity / portability) |
|---|---|---|---|---|---|---|
| Dispatch | strict 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 executes | No DynASM/handwritten native asm and no mutable dispatch patching in the portable strict baseline; no V8 generated handlers | Portable 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 encoding | strict interpreter | LuaJIT 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::assembleBCO | VerifiedBytecode (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 needs | Select 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 |
| Frames | strict interpreter | LuaJIT 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::StgBCO | VerifiedBytecode (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/StgBCO | Flat 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 |
| Errors | runtime architecture | LuaJIT 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 policy | VM 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 boundaries | runtime architecture | LuaJIT 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-own | No 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 facts | Coalesce 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 |
| Portability | compiler-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 only | One 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 row | Consuming downstream section(s) | Permitted lane | Rejection gate |
|---|---|---|---|
| Dispatch (replicated direct dispatch, match-loop codegen, handler layout) | register-vm-dispatch (s-d34c4229), perf-grind-luajit-class (s-07271bdd) | strict | No 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) | strict | Verifier 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) | strict | No 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) | strict | Exact evaluator/VM/compiled-consumer panic-class + effect-order parity; a lane that changes quota/error/RC order is rejected. |
| GC/RC boundaries | aims-interprocedural-evidence-boundary (s-f03dffb9), parity-verification (s-4b00387e) | strict | Post-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) | strict | Portable 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 declaration | bytecode-compiler (s-bf63aada), tagged-built-in-callable-identity (s-374b9321) | strict | One 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 threading | jit-handoff-contract (s-1fd9d2db) | tiered | Never 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) | strict | No 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
| Layer | Disposition |
|---|---|
| L1 | N/A: this section changes intelligence extraction, not the Ori parser. |
| L2 | N/A: no typechecking behavior changes. |
| L3 | N/A: no canonicalization behavior changes. |
| L4 | N/A: no ARC/AIMS behavior changes. |
| L5 | N/A: no evaluator behavior changes. |
| L6 | N/A: no LLVM debug backend behavior changes. |
| L7 | N/A: no LLVM release backend behavior changes. |
| L8 | N/A: no AOT behavior changes. |
| L9 | N/A: this is intelligence tooling with no execution semantics. |
| L10 | N/A: this section allocates no Ori runtime values. |
| L11 | N/A: it does not change the Ori language or spec corpus. |
| L12 | N/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
.dascgraph 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 tier | Title | Lines | Disposition | Where / why |
|---|---|---|---|---|
| 0 | 0. Bottom line up front | 19 | integrated | Goal |
| 1 | 1. Target contract | 20 | integrated | Spec & Rules |
| 2 | 2. Terrain | 22 | integrated | Ori Synthesis: Semantic Bytecode Before Physical Execution |
| 3 | 3. Code-graph recon | 23 | integrated | Ori Synthesis: Semantic Bytecode Before Physical Execution (Falsifiable prototype implications) |
| 3D | 3D. Diagnostic / observability disposition | 13 | not_applicable | The 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. |
| 3H | 3H. Hygiene constraints | 20 | integrated | Spec & Rules |
| 4 | 4. Cluster / family | 15 | integrated | Downstream Consumer Registration |
| 5 | 5. Conformance audit | 12 | integrated | Ori Synthesis: Semantic Bytecode Before Physical Execution (Falsifiable prototype implications) |
| 6 | 6. Plan ownership | 14 | integrated | Goal |
| 7 | 7. Prior art - graph and external web research | 29 | integrated | Pinned Local-Source Evidence Matrix (External clean-room prior art) |
| 8 | 8. Sentiment and issue signal | 13 | not_applicable | No 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. |
| 9 | 9. Coverage gaps and binding constraints | 22 | integrated | Spec & Rules |
| 10 | 10. Recommended recon entry points | 23 | not_applicable | This 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. |