Evidence registers
Four tables that say what the compiler's evidence is, rather than what is left to do. They are source: check.py reads them, holds every row to the fixture corpus, the compiler's named-refusal tables and the target records, and generates constructs.matrix, prototypes.matrix and targets.matrix from them. Edit a row here and regenerate; never edit a matrix.
They were kept in ROADMAP.md while the first roadmap built the compiler, and moved here when it closed.
Construct inventory
One row for every [NNNN] either tour.md or spec.md defines. It is generated into constructs.matrix, where each row is joined with what the corpus claims per product target, read from fixture metadata together with darwin/parity.json, cortex-m/corpus.json and driver/fixture.json, and with every named refusal and the wording of its [1830] note.
- State.
executed: fixtures claim acceptance, emission and execution, and every applicable target outside the recorded gaps executes a claiming program.compiled: the observable behaviour is a compile-time verdict, acceptance with recorded IR or a refusal, that no run can observe more of; such a hosted row must also be in the hosted compile-time register below.deferred: the tour itself says DEFERRED and a live roadmap item owns the decision.transferred: the tour already assigns the construct to a named successor family.advisory: design, usage or process prose that adds no source behaviour a fixture could discriminate. A named refusal is not a state; it is part of a row. - Targets are
all(Linux x86-64, arm64 and RV64, FreeBSD x86-64 and arm64, macOS arm64 and Cortex-M),hosted,cortex-mornone;cortex-mis the Cortex-M family, todaycortex-m0alone, and a scope rather than a target's spelling.synthetic-32is a pre-Cortex model and applies to no construct.rv32, the RV32 firmware target, is no product target and has no column (D840): it runs the firmware corpus on two lanes, but [1270], [1400], [1570], [1610], [1730], [1830] and [1860] have their Cortex-M evidence only from records that are Cortex-M's alone, the derived driver, the firmware machine probe and fixtures that selectcortex-m0, so accounting every construct on it would open gaps no item owns. A fixture that names it is still held to a run there: a compile-time one selects--target=rv32, and a runtime or ABI one has a firmware corpus row an RV32 lane executes. Gaps are applicable targets without the state's evidence, and every gap needs an owning item. - Owners are live roadmap items or successor families. A finished owner, an unknown owner or an owner the disposition does not mention is refused. A disposition of "matrix evidence" means the generated row's evidence is the whole explanation.
check.py holds all of it on every full run, and scripts/tests/test_construct_inventory.py shows each refusal fires.
| Construct | State | Targets | Gaps | Owner | Disposition |
|---|---|---|---|---|---|
[0010] | executed | all | none | none | matrix evidence |
[0020] | executed | all | none | none | matrix evidence |
[0030] | executed | all | none | none | matrix evidence |
[0040] | executed | all | none | none | matrix evidence |
[0050] | executed | all | none | none | matrix evidence |
[0060] | executed | all | none | none | matrix evidence |
[0070] | executed | all | none | none | matrix evidence |
[0080] | executed | all | none | none | matrix evidence |
[0090] | executed | all | none | none | matrix evidence |
[0100] | executed | all | none | none | Atom name lists and D233's shared binding, field, parameter and return names are matrix evidence on all three targets. The inferred a, b := e shape and the declarations that keep one name are D233's recorded boundary, which the refusal note names. |
[0110] | executed | all | none | none | matrix evidence |
[0120] | executed | all | none | none | matrix evidence; a named refusal records the type source-form boundary |
[0130] | executed | all | none | none | matrix evidence |
[0140] | executed | all | none | none | matrix evidence |
[0150] | executed | all | none | Language evolution | The enabled widths are matrix evidence. D237 transfers u128 and i128 to Language evolution, triggered by a program that needs 128-bit arithmetic, and the checker's named refusal says so. Arbitrary packed widths are D228's, admitted only in packed fields [0730]. |
[0160] | executed | all | none | none | matrix evidence |
[0170] | executed | all | none | Language evolution | f32 and f64 are matrix evidence. D237 transfers f16 to Language evolution, triggered by a program that needs binary16 values, and the checker's named refusal says so. |
[0180] | executed | all | none | none | matrix evidence |
[0190] | executed | all | none | none | matrix evidence |
[0200] | executed | all | none | none | matrix evidence |
[0210] | executed | all | none | none | matrix evidence |
[0220] | executed | all | none | none | matrix evidence |
[0230] | executed | all | none | none | matrix evidence |
[0240] | executed | all | none | none | matrix evidence |
[0250] | executed | all | none | none | matrix evidence |
[0260] | executed | all | none | none | matrix evidence |
[0270] | executed | all | none | none | matrix evidence |
[0280] | executed | all | none | none | matrix evidence |
[0290] | executed | all | none | none | matrix evidence |
[0300] | executed | all | none | none | matrix evidence |
[0310] | executed | all | none | none | matrix evidence |
[0320] | executed | all | none | none | matrix evidence |
[0330] | executed | all | none | none | matrix evidence |
[0340] | executed | all | none | none | matrix evidence |
[0350] | executed | all | none | none | matrix evidence |
[0360] | executed | all | none | none | matrix evidence |
[0370] | executed | all | none | none | matrix evidence |
[0380] | executed | all | none | none | matrix evidence |
[0390] | executed | all | none | none | matrix evidence |
[0400] | executed | all | none | none | matrix evidence |
[0410] | executed | all | none | none | matrix evidence |
[0420] | executed | all | none | none | matrix evidence |
[0430] | executed | all | none | none | matrix evidence |
[0440] | executed | all | none | none | matrix evidence |
[0450] | executed | all | none | none | matrix evidence |
[0460] | executed | all | none | none | matrix evidence |
[0470] | executed | all | none | none | matrix evidence |
[0480] | executed | all | none | none | The one-atom optional pointer (D189) and D235's several-atom union, the atom's code beside the pointer, are matrix evidence on all three targets, with GDB and LLDB presentation of both cases. |
[0490] | advisory | none | none | none | Usage guidance: pointers serve hardware, the C boundary and library internals, while everyday code uses slices, handles and indices. It states no rule the compiler enforces or a fixture could discriminate; the operations it points to are [0430]-[0480]'s rows. |
[0500] | executed | all | none | none | D196 records offset and base_of as unneeded; D151 rejects slice_from; ordinary address conversion remains the implementation |
[0510] | executed | all | none | none | matrix evidence |
[0520] | executed | all | none | none | Array values, bounds and copies are matrix evidence; D241 adds whole-array discards and inferred literals of any element shape. Its checker refusals of the remaining forms are D241's recorded boundaries, which the note names, genuine type errors among them are L0301, and misused whole arrays are L0334. |
[0530] | executed | all | none | none | matrix evidence |
[0540] | executed | all | none | none | Zero images are matrix evidence. The local-array zeroed refusal is a guard no source reaches; D241 keeps it as a recorded boundary, and zeroed as an operand, which has no destination to take its type from, is L0328. |
[0550] | executed | all | none | none | matrix evidence |
[0560] | executed | all | none | none | Typed, counted and mixed repetition are matrix evidence, and a named refusal records the repetition source-form boundary. D241 records the count-less inferred initializer, non-scalar counted inference and zero lengths as the paragraph's boundary. |
[0570] | executed | all | none | none | matrix evidence; a named refusal records the indexing source-form boundary, which requires a named place |
[0580] | executed | all | none | none | matrix evidence |
[0590] | executed | all | none | none | D209 and matrix evidence |
[0600] | executed | all | none | none | matrix evidence |
[0610] | executed | all | none | none | matrix evidence |
[0620] | transferred | none | none | Language evolution | The tour keeps structure-of-arrays as a DEFERRED design record and now says Language evolution holds it, where the register in ROADMAP.md keeps its trigger, because none of the four derived programs is a simulation that needs one field contiguous. Nothing enables soa, which meets an ordinary parse error, and no named refusal is owed to a form the tour places outside the language. |
[0630] | executed | all | none | none | matrix evidence |
[0640] | executed | all | none | none | matrix evidence |
[0650] | executed | all | none | none | named refusal |
[0660] | executed | all | none | none | Scalar range subtypes are matrix evidence under D188. D236 records the struct-field, array-element, reference-target, addr and generic-argument positions as the paragraph's permanent boundary, and their named refusals say so. |
[0670] | executed | all | none | none | Both struct forms are matrix evidence, and a named refusal records the inline-struct source-form boundary. D241 adds whole-struct discards and inferred struct copies, makes misused struct values L0334 errors, and records the untyped literal and module-image forms as boundaries the note names. |
[0680] | executed | all | none | none | Variant declaration, storage, construction and matching are matrix evidence, and D241 gives payload arrays every ordinary array-field expression. A variant part as a value, a case outside its part and a copied part are D241's recorded boundaries, which the note names. |
[0690] | executed | all | none | none | matrix evidence |
[0700] | executed | all | none | none | matrix evidence |
[0710] | executed | all | none | none | matrix evidence |
[0720] | executed | all | none | none | matrix evidence; a named refusal records the all-of literal source-form boundary |
[0730] | executed | all | none | Companion tool and ecosystem | D228 packed images, encoded unions and named-boolean set fields are matrix evidence on all three targets, the derived driver on Cortex-M. D238 withdraws the set(X) former, whose unresolved application meets [1350]'s ordinary refusal. General SVD generation stays with Companion tool and ecosystem, as the paragraph says. |
[0740] | executed | all | none | none | D228 access modes and register operations are matrix evidence, including the generated RP2040 consumers and the derived driver. D238 withdraws the register(t, read:, write:, reset:) wrapper, which remains an ordinary parse error. |
[0750] | executed | all | none | none | Source order, optimal and C layout are matrix evidence. D239 withdraws per-field byte order; negative/r720-field-byte-order-withdrawn pins that big u16 is an ordinary field error. |
[0760] | executed | all | none | none | The enabled attributes are matrix evidence, including Cortex-M placement. D238 withdraws volatile with its pointer type and D239 withdraws big, little, weak, inline and noinline; negative/r720-machine-attribute-words-withdrawn pins link(weak). |
[0770] | executed | all | none | none | matrix evidence |
[0780] | executed | all | none | none | matrix evidence |
[0790] | executed | all | none | none | matrix evidence |
[0800] | executed | all | none | none | matrix evidence |
[0810] | executed | all | none | none | D196 states [0470]'s actual derivation cut; the pointer.integer-origin evidence pins its non-guarantee |
[0820] | executed | all | none | none | D212 withdraws the lexical block and builtin parameter type, and both keep a named withdrawal diagnostic; explicit ordinary allocator authority, capacity and cleanup replace the unsupported transitive escape promise |
[0830] | executed | all | none | none | matrix evidence |
[0840] | executed | all | none | none | matrix evidence |
[0850] | executed | all | none | none | D227 volatile scalar access is matrix evidence on all three targets. D238 withdraws the volatile ptr type; its named L0010 says the form is withdrawn and names the explicit volatile and register operations. |
[0860] | executed | all | none | none | matrix evidence |
[0870] | executed | all | none | none | matrix evidence |
[0880] | executed | all | none | none | matrix evidence |
[0890] | executed | all | none | none | none and noreturn have matrix evidence, and a noreturn body that can return is refused |
[0900] | executed | all | none | none | matrix evidence |
[0910] | executed | all | none | none | matrix evidence |
[0920] | executed | all | none | none | matrix evidence |
[0930] | executed | all | none | none | matrix evidence |
[0940] | executed | all | none | none | matrix evidence |
[0950] | executed | all | none | none | matrix evidence |
[0960] | executed | all | none | none | matrix evidence |
[0970] | executed | all | none | none | matrix evidence |
[0980] | executed | all | none | none | matrix evidence |
[0990] | executed | all | none | none | matrix evidence |
[1000] | executed | all | none | none | matrix evidence |
[1010] | executed | all | none | none | matrix evidence |
[1020] | executed | all | none | none | matrix evidence |
[1030] | executed | all | none | none | matrix evidence |
[1040] | executed | all | none | none | D192 and matrix evidence |
[1050] | executed | all | none | none | matrix evidence |
[1060] | executed | all | none | none | matrix evidence |
[1070] | executed | all | none | none | D185 and matrix evidence |
[1080] | executed | all | none | none | matrix evidence |
[1090] | executed | all | none | none | Unlabelled begin/end blocks and D234's labelled bare blocks, left by a break naming them with their cleanups run, are matrix evidence on all three targets. |
[1100] | executed | all | none | none | matrix evidence |
[1110] | executed | all | none | none | matrix evidence |
[1120] | executed | all | none | none | D187 and matrix evidence; the division, shift, bool, float and text edges it never removes are named there rather than refused |
[1130] | executed | all | none | none | matrix evidence |
[1140] | executed | all | none | none | matrix evidence |
[1150] | executed | all | none | none | matrix evidence |
[1160] | executed | all | none | none | matrix evidence |
[1170] | executed | all | none | none | matrix evidence |
[1180] | executed | all | none | none | Loop labels and D234's bare-block labels are matrix evidence on all three targets; continue naming a block and break with targeting one are refused. No derived program or core uses a label, break with or complete, so whether they earn their place is a Language evolution watch in the register; the construct stays implemented. |
[1190] | executed | all | none | none | matrix evidence |
[1200] | executed | all | none | none | matrix evidence |
[1210] | executed | all | none | none | matrix evidence |
[1220] | executed | all | none | none | matrix evidence |
[1230] | executed | all | none | none | matrix evidence |
[1240] | executed | all | none | none | matrix evidence |
[1250] | executed | all | none | none | matrix evidence |
[1260] | executed | all | none | none | matrix evidence |
[1270] | compiled | all | none | none | Hosted compile-time rule: conformance keys include their input tuples. The Cortex-M verdict is a run rather than an argument that the rule is target-neutral: negative/r740-cortex-conformance-input-keys compiles the colliding program for cortex-m0 and records the same L0317 report, byte for byte, as the two hosted targets make. |
[1280] | executed | all | none | none | matrix evidence |
[1290] | executed | all | none | none | matrix evidence; a named refusal records the type-parameter source-form boundary |
[1300] | executed | all | none | none | matrix evidence |
[1310] | executed | all | none | none | Evidence tables and D211's proved specialization and build report are matrix evidence; no delayed part remains. |
[1320] | executed | all | none | none | matrix evidence |
[1330] | executed | all | none | none | matrix evidence |
[1340] | executed | all | none | none | matrix evidence |
[1350] | executed | all | none | none | Parameterized declarations are matrix evidence. Malformed applications are D135's recorded boundary, and the named refusal says so, which negative/r740-parameterized-application-boundary pins byte for byte. set(X), which D238 withdrew, meets this refusal as an unresolved application. |
[1360] | executed | all | none | none | matrix evidence |
[1370] | executed | all | none | none | matrix evidence |
[1380] | executed | all | none | none | matrix evidence |
[1390] | executed | all | none | none | matrix evidence |
[1400] | compiled | all | none | none | Hosted compile-time rule: heterogeneous implicit boxing is refused. The Cortex-M verdict: negative/r740-cortex-inferred-element-mismatch records the same L0301 report there, byte for byte, as the two hosted targets make. |
[1410] | executed | all | none | none | matrix evidence |
[1420] | executed | all | none | none | matrix evidence |
[1430] | executed | all | none | none | D201 aliases retain file-local namespace lookup |
[1440] | executed | all | none | none | D201 selected imports retain original public declaration identities |
[1450] | executed | all | none | none | matrix evidence |
[1460] | executed | all | none | none | matrix evidence |
[1470] | transferred | none | none | Companion tool and ecosystem | Versions, origins, owner/package naming and the version-conflict error belong to Companion tool and ecosystem, which [1480] says arranges the roots so only one version is reachable, and the register in ROADMAP.md carries the transfer. The compiler's share is [1420]'s first-root rule, covered by the driver and resolution suites rather than a fixture claim. |
[1480] | executed | all | none | Companion tool and ecosystem | Explicit ordered roots are matrix evidence. Root defaults for the project, user home and system, fetching, version solving, locks and naming authority are Companion tool and ecosystem's, as the paragraph says. |
[1490] | executed | all | none | none | matrix evidence |
[1500] | executed | all | none | none | matrix evidence |
[1510] | executed | all | none | none | D202 and fixed assertion fixtures |
[1520] | executed | all | none | none | matrix evidence |
[1530] | executed | all | none | none | D202 and deterministic typed option cases |
[1540] | executed | all | none | none | matrix evidence |
[1550] | advisory | none | none | none | Toolchain policy: Landin keeps its own native backends, not LLVM or C. No fixture can discriminate it, and the claims once attached to it were D211, D229 and D230 evidence and were removed. Its concrete obligations are other rows' and lanes': the [1570] and [1650] conventions, [1990] firmware, the quality determinism rebuild and the native debugger frame checks. |
[1560] | executed | all | none | none | Compiler facts and assertions, linker.library, atomics, volatile and register operations and Cortex-M assembly and placement are matrix evidence; other tool operations meet named refusals. D240 withdraws the compiler vector intrinsics in favour of [0590]'s element-wise operators, pinned by negative/r720-vector-intrinsic-withdrawn. |
[1570] | executed | all | none | none | extern(c), extern(interrupt) and extern(naked) are matrix evidence; the derived driver's interrupt handlers execute on Cortex-M. aapcs, sysv, win64, Fortran and Swift are named as room for later conventions, not described constructs. |
[1580] | executed | hosted | none | none | The hosted C boundary is matrix evidence under D203--D205. The checker once had a [1580] refusal entry that nothing reached; the categories the paragraph lists are refused where they are written, as the C boundary's own L0346 naming [1580] and listing them, which negative/r740-c-category-boundary pins byte for byte. Cortex-M C signatures are not enabled, a restriction the register in ROADMAP.md keeps open. |
[1590] | executed | hosted | none | none | Hosted library linkage as the driver's -lNAME, with linker.directory and -L: runtime/c-library-directories on every hosted lane, Darwin's in the gate, with the refusals' end-to-end and negative fixtures; Cortex-M refuses the general C surface. |
[1600] | executed | hosted | none | none | Hosted C definitions are matrix evidence; Cortex-M C signatures are restricted. |
[1610] | executed | all | none | none | Native and C link names are matrix evidence on both hosts. The Cortex-M evidence executes outside the fixture corpus: the firmware-machine probe gives a module datum and a native function their link names, and its QEMU session resolves both written symbols in the linked image, recorded in compiler/tests/cortex-m/probes.json. The extern(c) half stays disabled there, a restriction the register in ROADMAP.md keeps open. |
[1615] | executed | all | none | none | Taught by [1996]'s fixtures: runtime/thread-storage-holds-its-instance on every target and abi/thread-storage-per-thread's four C threads on every hosted one. |
[1620] | executed | all | none | none | D227 scalar atomics, orderings and barriers are matrix evidence on all three targets. D240 transferred the wrapper type to Broader standard library, and core/atomic gives it: D500, D510 and D511, with runtime/library-shared-atomic on every target. |
[1630] | executed | all | none | none | The runtime assembly-* fixtures execute D248's operands on every target, Cortex-M0 under QEMU, and every hosted lane must execute assembly-operands's integer operands; the verifier refuses a register no arm64 block may name under both arm64 descriptions, and the lane's assembler refuses an instruction above the build's level and assembles it at that level (D255); platform/cortex_m and the freestanding CPU probe run them in the firmware lanes, and the GDB, LLDB and Cortex GDB sessions stop on a block's line. D630's float operands execute on every hosted lane and the M7's mps2-an500 lane through assembly-float-square-root and assembly-saved-float-registers, and a profile with no float registers, the reference and the AN505's among them, refuses one as its recorded boundary. |
[1640] | executed | cortex-m | none | none | Cortex-M placement, vectors and keep under D229 execute in the derived driver; hosted targets refuse placement by design. |
[1650] | executed | all | none | none | matrix evidence |
[1660] | executed | hosted | none | none | matrix evidence; the freestanding root is [0460]'s address literal |
[1670] | executed | all | none | none | matrix evidence |
[1675] | executed | all | none | none | Groups over fibre.whole and a round of turns, the first failure kept for join and a task's own overflow trapped are matrix evidence. The blocking host as a scheduler and a round that answers b first are hosted, and Cortex-M0's group over the round runs in the corpus and the lane's capacity control. turns_over refused for a scheduler alone is negative/fibre-turns-over-scheduler-only. |
[1680] | executed | hosted | none | none | Matrix evidence covers passing entry-minted capabilities and substituting the in-memory I/O provider. runtime/derived-hosted-memory also has an ordinary parameterless long_lines helper that calls heap.new(): D258 and capabilities.host-root-exclusion record that a parameter list cannot exclude an independent host root. The freestanding root is [0460]'s address literal. The language-evolution record remains open for a trusted-code need for checkable host exclusion or unaudited provider substitution, as well as for untrusted code; no such static boundary is claimed by these fixtures. |
[1690] | executed | all | none | none | matrix evidence |
[1700] | executed | all | none | none | matrix evidence |
[1710] | advisory | none | none | none | The admission test for a new language feature, a design-process rule. It adds no source behavior; the parked and watched items it governs are records in the register in ROADMAP.md. |
[1720] | executed | all | none | none | matrix and guarantee evidence; its stated non-guarantees execute |
[1730] | compiled | all | none | none | positive/range-subtypes' recorded IR shows a range-subtype value carrying its proof with no check under D188, a hosted compile-time rule in the audited register below; two claims that could not observe elision were dropped. The Cortex-M verdict is on that same fixture, which now also records an accepted cortex-m0 compilation of its own program. That verdict is acceptance and not a second recorded IR because the elision is a property of the target-neutral IR, which no target selects, and a duplicate program would have added a duplicate IR record for nothing. |
[1740] | executed | all | none | none | matrix evidence |
[1750] | executed | all | none | none | matrix evidence |
[1760] | executed | all | none | none | matrix evidence |
[1770] | executed | all | none | none | matrix evidence |
[1780] | executed | all | none | none | matrix evidence |
[1790] | executed | all | none | none | matrix evidence |
[1795] | executed | all | none | none | matrix evidence |
[1800] | executed | all | none | none | matrix evidence |
[1810] | executed | all | none | none | matrix evidence |
[1820] | executed | all | none | none | matrix evidence |
[1830] | compiled | all | none | none | Hosted compile-time rule: a refusal by name is a diagnostic and nothing executes it. negative/cortex-refused-type-named records the same L0304 report for cortex-m0, byte for byte, as the two hosted targets make. |
[1840] | executed | all | none | none | matrix evidence |
[1850] | executed | all | none | none | matrix evidence |
[1860] | compiled | all | none | none | Hosted compile-time rule. The Cortex-M verdict: negative/r740-cortex-name-declared-nowhere records the same L0201 report for cortex-m0, byte for byte, as the two hosted targets make. |
[1870] | executed | all | none | none | matrix evidence |
[1880] | executed | all | none | none | matrix evidence |
[1890] | executed | all | none | none | matrix evidence |
[1900] | executed | all | none | none | matrix evidence |
[1910] | executed | all | none | none | matrix evidence |
[1920] | executed | all | none | none | matrix evidence |
[1930] | executed | all | none | none | matrix evidence |
[1940] | executed | all | none | none | matrix evidence |
[1950] | executed | all | none | none | matrix evidence |
[1960] | executed | all | none | none | matrix evidence |
[1970] | executed | hosted | none | none | matrix evidence; the hosted entry shape |
[1975] | executed | hosted | none | none | matrix evidence; Cortex-M C boundaries are restricted |
[1980] | executed | all | none | none | matrix evidence |
[1990] | executed | cortex-m | none | none | D229 and D230 firmware and machine directives execute through compiler-owned firmware and the derived driver; hosted targets select them away. |
[1995] | executed | all | none | none | The stack builtins' round trip, a frame past its limit and a selected handler entered from a prologue execute on every target, Cortex-M0 included; a prepare too small is hosted; their refusals are negative/stack-builtins-argument-contract and negative/stack-builtins-target-synthetic-32. |
[1996] | executed | all | none | none | link(thread) instances execute on every target, ordinary module storage on Cortex-M0, laid by platform/linux's start in a static Linux program and by the C library otherwise; four C threads each reach their own on every hosted target, and a system.new() handle shared by two records into each one's cell; its refusals are the negative/thread-storage-* fixtures. |
[2000] | advisory | none | none | none | A doc comment gives a program no meaning, so no fixture can discriminate it; D254 records the attachment a tool shows, and the server suite's doc-comment case and hover session pin it. |
Hosted compile-time evidence
These rules are observed while compiling. Every other hosted row in the inventory requires a Linux runtime or ABI fixture with a program and an attributed construct; a compiled hosted row must appear here instead, with the fixtures that accept and refuse it. The metadata is an auditable claim, not proof of the source oracle's adequacy. This table does not withdraw any construct.
| Construct | Accepted | Refused | Rationale |
|---|---|---|---|
[1270] | positive/r490-conformance-input-keys | negative/conformance-collision, negative/r490-conformance-input-alias-collision | Whole-program conformance keys include normalized input tuples; unequal keys coexist and equal keys collide before runtime. |
[1400] | none | negative/local-array-literal-inferred-element-mismatch | Heterogeneous implicit boxing is deliberately absent; mismatched element types are rejected. Ordinary explicit any dispatch has separate executed rows. |
[1730] | positive/range-subtypes | none | A range-subtype value carries its proof between constrained positions; the recorded IR has no second check. A run cannot observe an elided check, so the row is here rather than among the advisory rows. |
[1830] | none | negative/float-type-not-enabled, negative/indexing-not-enabled | A construct the tour describes and the kernel has not enabled is refused with a diagnostic that names it and says what it is; the observable behaviour is that diagnostic. |
[1860] | none | negative/name-declared-nowhere, negative/condition-declaration-out-of-scope | Every name must resolve in its scope; the observable failure is a compiler diagnostic. |
Prototype derivation coverage
A row means the fixture is a completed executable or negative derivation of the named pressure, not merely that it uses a construct the prototype also used. Source line numbers in the generated prototypes.matrix are recovered from the finding labels, so moving prose cannot stale a hand-copied location, and each row's inputs, outputs and per-target results are derived from the fixture's own record rather than asserted here.
| Fixture | Prototype | Findings | Pressure |
|---|---|---|---|
firmware/derived-driver | P1 | X1, X2, X3, X4, X5, X6, X7, X8, X9 | complete driver/application and explicit declaration/finding adaptations in compiler/tests/driver/DERIVATION.md; compiler-owned QEMU reset and independent synthetic device protocol execution |
negative/r630-frame-dma | P1 | X6, X8 | tracked frame buffer cannot escape through a DMA descriptor |
abi/r630-dma-slice | P1 | X6, X8 | escaping ordinary slice, serialized external byte writes, completion boundary and ordinary reads/copy |
runtime/diagnostic-loggers-dispatch | P2 | Y1 | recoverable diagnostics use a bounded or streaming capability without becoming parser failure |
runtime/derived-parser | P2 | Y1, Y4, Y5, Y6, Y7 | a complete recursive parser builds an arena AST, logs and recovers from syntax faults, and propagates allocation or diagnostic-delivery failure through shared erased evidence |
runtime/derived-containers | P3 | Z1, Z2, Z3, Z4, Z5, Z6, Z7, Z8, Z9, Z10, Z11, Z12, Z13, Z14, Z15, Z16, Z17, Z18, Z19 | the complete client composes initialized containers, explicit and failing providers, sorting, tree and heterogeneous evidence; its derivation manifest distinguishes executable resolutions from preserved no-gap or superseded sketches |
negative/r470-container-entry-live-map | P3 | Z5, Z16 | a pointer-bearing enumerated entry keeps its map live across insertion and release |
negative/r470-container-entry-wrong-from | P3 | Z5 | entry extraction retains the exact map origin |
negative/r470-container-missing-order-evidence | P3 | Z2 | a constrained generic application call requires its concrete ordering conformance |
runtime/parameterized-struct-values | P3 | Z2 | type and fixed parameters on nominal values |
runtime/r250-references | P3 | Z3, Z18 | pointer/slice carriers and implicit conventions |
negative/borrowed-source-inout | P3 | Z5, Z16 | a derived view prevents moving its source |
runtime/variant-match-payload-bindings-update-storage | P3 | Z7, Z14 | pattern conventions and payload-free cases |
runtime/generic-declared-errors | P3 | Z9 | concept entries retain concrete declared errors |
runtime/generic-composed-evidence | P3 | Z11 | explicit direct and parent conformances compose |
negative/sink-through-dereference | P3 | Z12, Z13 | inout/sink place and permission boundary |
runtime/struct-literal-order-and-fill | P3 | Z17 | contextual anonymous aggregate construction |
runtime/undo-cleanups-follow-failure-edges | P3 | Z19 | failure cleanup moves its arguments at execution |
runtime/generic-parameterized-evidence | P3 | Z1, Z4 | parameterized providers receive target-derived evidence |
runtime/allocator-vec-pressure | P3 | Z6 | an escaping generic value parameter is vacuous for a scalar item and exact for a pointer item |
negative/parameterized-conformance-entry-signature-mismatch | P3 | Z1, Z4 | substituted provider signatures must agree |
runtime/derived-hosted-memory | P4 | W1, W2, W3, W4, W5, W6, W7 | the complete log-filter application selects filters and destinations from retained arguments, reads whole lines across arbitrary chunks, buffers messages with explicit retry, and closes handles through the supplied world |
runtime/r480-arena-independent-results | P4 | W7 | simultaneous ordinary allocations and helper-returned pointers, aggregates, slices, any and callback state remain independent; a helper-retained pointer survives the provider frame without passing a returned-value boundary |
runtime/r480-arena-nested-exhaustion | P4 | W3, W7 | explicitly backed nested providers exhaust independently and ordinary defer runs across normal, failure, return, break and continue exits |
negative/r480-callback-frame-escape | P4 | W6, W7 | ordinary callback-state aggregates retain the tracked frame escape refusal |
negative/r480-helper-frame-retention | P4 | W7 | a helper still cannot retain a tracked nonescaping frame reference in module storage |
runtime/constant-return-exits-with-its-code | P4 | W2 | hosted entry uses the ordinary no-argument shape |
runtime/generic-composed-evidence | P4 | W4 | a narrow concept composes rather than widening |
runtime/any-heterogeneous-dispatch | P4 | W6 | erased state retains mutable permission and dispatch identity |
negative/any-frame-origin-escape | P4 | W6 | erased state retains pointee origin |
runtime/derived-server-two-process | P5 | V1, V4, V7 | the complete derived server in a process of its own, started through io.programs and asked two requests by a client in another; the same source over the blocking provider answers one at a time and SIGTERM's default disposition ends it, and over the event provider answers the second first and its signal waiter stops it cleanly |
runtime/derived-server-fake-turns | P5 | V1, V2, V3, V4, V5, V6, V7, V8, V9, V14, V15 | the complete derived server's stopping routine and the prototype's client in one process over the fake network and signals on a round of turns: two requests in flight, the second answered first, and SIGTERM read as an event stopping the server cleanly |
Target applicability coverage
These are applicability assignments, not backend claims. A target is spelled as --target spells it. Fixture metadata makes the finer assignment and targets.matrix lists every fixture; a missing targets: is a gate failure. synthetic-32 is the executable target model used before the Cortex-M backend existed.
| Scope | Targets |
|---|---|
prototype-1 | cortex-m0, rv32 |
prototype-2 | linux-x86-64, linux-arm64, linux-rv64, darwin-arm64, freebsd-x86-64, freebsd-arm64 |
prototype-3 | linux-x86-64, linux-arm64, linux-rv64, darwin-arm64, freebsd-x86-64, freebsd-arm64, cortex-m0, rv32, synthetic-32 |
prototype-4 | linux-x86-64, linux-arm64, linux-rv64, darwin-arm64, freebsd-x86-64, freebsd-arm64 |