Repository navigation
§10 exec-contract Slice 1: SyscallAbi paradigm + real Linux x86-64 syscall surface - #4870
Merged
Merged
Conversation
…86-64 syscall surface First increment of the ctrl §10 execution-contract substrate layer (consume-don't-fork; structure + discipline per ctrl PR #1603, endorsed by zesty-swift). Adds: - std/os/invocation.dag: SyscallEntry + SyscallAbi as the first invocation paradigm. Modeled OPEN (omni: any cited syscall table is data, not a model edit). SyscallAbi is a RECORD; the StableInvocationSurface coproduct is born multi-variant in Slice 2 when LibraryApiBoundary (Windows/macOS) arrives (facts-first arms). Uses only Int/NonEmptyStr/ List/records — no distribution-enum imports, so v2-green standalone. - extdeps/runtime/syscalls/linux.dag: real x86-64 syscall subset (read=0, write=1, mmap=9, execve=59, exit=60) cited to arch/x86/entry/syscalls/syscall_64.tbl, with green-by-execution witnesses on each number. Real values per the operator's anchor-to-real-specs requirement; spot-checkable against the cited table. Scope: structural-only; the satisfies-reuse (shared compute_fabric kernel) + OS-catalog attach are staged for snappy-stag's verified v2 flip-SHA (Option + single-variant-enum + G3). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…on-abi-module) Review flag (zesty-swift): convention: "sysv_amd64_syscall" is a raw string soft-ref to extdeps/runtime/abi/sysv_amd64.dag (not yet authored). Born-marked dissolve-on-abi-module — becomes a typed CallingConvention reference when that module lands (model-facts-as-identity, not a raw string duplicating the abi identity). Tracked debt, not silent stopgap. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
briansrls
marked this pull request as ready for review
June 14, 2026 16:10
… the claim-witness corpus Review flag (zesty-swift): the 5 anchoring witnesses (witness_read_number_is_0 … witness_exit_number_is_60) existed but were not standing-gated. Enroll them in the claim-witness corpus (shard b — trivial Int-equality, negligible shard time) so CI exercises them green-by-execution (closes the by-execution gate) AND a future edit that breaks a real syscall number now fails CI. Counts updated: total 30→35, shard_b 15→20 (shard_a 15 + shard_b 20 = 35). Keystone rationale: a wrong syscall NR breaks the native=real-contract thesis, so these are corpus-worthy keystones. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…(source-root mismatch) The v4 claim-witness corpus gate hardcodes --source-root src/v4; under that root the dsl/-tree imports (std.os.invocation, std.types) don't resolve, so the dsl/ entry failed to load -> v4_claim_witness_corpus_b RED. Revert the 5 enrollments (counts 35->30, shard-b 20->15). The real syscall-number falsifiers stay in linux.dag, verified via a dsl-rooted claim-run; note added explaining why they're not in the v4 corpus. A dsl-rooted claim-run standing gate is the right follow-on home. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… gate enabler zesty-swift routed the missing dsl-rooted claim-run standing gate to swift-stag (CI owner); every future §10 dsl/ witness hits the same wall. Make the note traceable to that owned follow-on instead of a bare "follow-up". Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… bound dissolution) Cursor RC (valid, verified vs docs/modeling-discipline.md Practice 4): the convention born-mark named the trigger but lacked the gate-kind + a bound dissolution plan. Now: - GATE KIND: feature:sysv-amd64-abi-module (the typed CallingConvention substrate doesn't exist). - MISSING PRIMITIVE: CallingConvention type in extdeps/runtime/abi/sysv_amd64.dag. - BOUND TASK: work-item node://adhoc-51cfc897-db0 (#1603 §6 Slice 1), which lands that module. - DISSOLUTION 🟡→🟢: convention NonEmptyStr -> typed CallingConvention ref when it lands. Binds the born-mark to owned, tracked work (same lesson as the dsl-rooted gate note). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
briansrls
pushed a commit
that referenced
this pull request
Jun 14, 2026
…f-owned probe Remove dsl/std/os/invocation.dag and dsl/extdeps/runtime/syscalls/linux.dag (smart-hawk's §10 substrate, PR #4870 — owned by them, not this lane). Remove the 5 §10 syscall enrollment rows. Replace with a minimal self-owned dsl/-root probe witness (dsl/test/claim/corpus_gate_dsl_root_probe.dag) enrolled in shard b, proving the parametric gate can host dsl/-rooted entries end-to-end without a dependency on #4870. The §10 syscall witnesses enroll as a fast-follow once both this gate and #4870 have landed in main. Counts: shard b 15→16 (+1 probe), global 30→31. Shard a unchanged. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4 of 5 tasks
…tion detail to PR
Cursor RC (5 findings, valid; verified by zesty-swift vs modeling-discipline Practice 9 which
supersedes Practice-4-in-file): the inline 🟡 + feature:/consumer: gate stays a ONE-LINE tag on
the carrier; the verbose gate-kind/missing-primitive/bound-task/dissolution analysis relocates to
the PR description + commit message. No substrate change — pure form.
- invocation.dag: de-prosed the header to path + Scope + Anchor (Slice-2 coproduct plan,
v2-resolver notes, omni rationale move to PR review).
- invocation.dag SyscallAbi.convention (the authority carrier where the stringly deferral
originates): added one-line `// 🟡 feature:sysv-amd64-abi-module`.
- linux.dag: collapsed the 8-line 🟡 block to the one-line tag; removed the process-meta
corpus/swift-stag note (no in-file parallel ledger, P5) — it lives here in the commit + the PR.
RELOCATED Practice-4 content (the convention 🟡):
GATE KIND: feature — typed CallingConvention substrate does not exist yet.
MISSING PRIMITIVE: CallingConvention type in extdeps/runtime/abi/sysv_amd64.dag
(register-arg order rdi/rsi/rdx/r10/r8/r9; nr+ret in rax; r10 not rcx — modeled as identity).
BOUND TASK: work-item node://adhoc-51cfc897-db0 = #1603 §6 Slice 1 (worker warm-ibex-822).
DISSOLUTION 🟡→🟢: convention NonEmptyStr -> typed CallingConvention ref when sysv_amd64.dag lands.
The dsl-rooted corpus note relocates: these 5 witnesses are NOT in the v4 corpus (it is
src/v4-rooted; dsl/ imports don't resolve there). Their standing CI home is #4874's parametric
dsl-rooted corpus gate; enrollment of these 5 is the named fast-follow once #4874 + #4870 land.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
briansrls
force-pushed
the
session/smart-hawk-763-os-exec-slice1
branch
from
June 14, 2026 17:55
b9e5f80 to
c675a1c
Compare
briansrls
added a commit
that referenced
this pull request
Jun 14, 2026
Standalone dissolution PR (DECOUPLE): targets main after #4870 lands. Mechanism (b) per zesty-swift: ArchitecturalRegister open identity in std, Amd64Gpr cited atoms in extdeps, plain CallingConvention total map, SyscallAbi.convention typed (no generics). Dissolves feature:sysv-amd64-abi-module. Co-authored-by: Cursor <cursoragent@cursor.com>
1 of 2 tasks
Apply strict allowlist form to linux.dag + invocation.dag: line-1 path, one-line Scope, one Anchor URL, one-line 🟡 tags only. Rationale moved here: - linux.dag: real x86-64 syscall NRs from syscall_64.tbl (kernel 6.8); invented numbers break native=real-contract thesis (operator requirement). - invocation.dag: SyscallEntry = stable (number, name, man(2) arity); SyscallAbi = syscall table + register convention (convention defers to extdeps/runtime/abi). Substantive: deleted linux.dag register-convention narration (rdi/rsi/rdx/r10…) — dual-representation vs 🟡 deferral to sysv_amd64.dag (#4877); not relocated. Co-authored-by: Cursor <cursoragent@cursor.com>
briansrls
added a commit
that referenced
this pull request
Jun 14, 2026
Standalone dissolution PR (DECOUPLE): targets main after #4870 lands. Mechanism (b) per zesty-swift: ArchitecturalRegister open identity in std, Amd64Gpr cited atoms in extdeps, plain CallingConvention total map, SyscallAbi.convention typed (no generics). Dissolves feature:sysv-amd64-abi-module. Co-authored-by: Cursor <cursoragent@cursor.com>
briansrls
added a commit
that referenced
this pull request
Jun 14, 2026
…robe (#4874) * WIP: CI consolidation slice-1: make the claim-witness corpus gate SOURCE-ROOT * feat(ci): parametric source-root corpus gate + dsl/ root + §10 syscall witnesses Makes the claim-witness corpus gate SOURCE-ROOT-PARAMETRIC by deriving --source-root from each entry path prefix (src/v4/* → src/v4, dsl/* → dsl) instead of hardcoding src/v4. Adds dsl/ as a second root and enrolls smart-hawk's 5 §10 syscall-number witnesses as the first dsl/-rooted standing-gated CI consumers. Changes: - scripts/v4-claim-witness-corpus-gate.sh: add derive_source_root(); rewrite batch_green_pass to group entries by source-root and make one claim_batch call per root; rewrite perturb_one_row to copy the derived root tree (not hardcoded src/v4); fix ExpectFail loop. - dsl/std/os/invocation.dag: new — SyscallEntry + SyscallAbi types (§10 execution-contract layer, std.os.invocation module). - dsl/extdeps/runtime/syscalls/linux.dag: new — Linux x86-64 syscall surface (Slice-1 subset) + 5 witness functions; in-file note updated from one-shot to standing-gated. - claim_witness_corpus_ci_runner.dag: enroll 5 §10 syscall witnesses in shard b; update counts (shard b 15→20, global 30→35). Falsifier contract (by-execution required): 1. 5 §10 witnesses GREEN under --source-root dsl in CI. 2. Perturb-red: broken witness reds the gate. 3. Load-failure-reds: wrong root / missing import must red, not false-green. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix(ci): decouple from smart-hawk substrate; prove dsl/-root with self-owned probe Remove dsl/std/os/invocation.dag and dsl/extdeps/runtime/syscalls/linux.dag (smart-hawk's §10 substrate, PR #4870 — owned by them, not this lane). Remove the 5 §10 syscall enrollment rows. Replace with a minimal self-owned dsl/-root probe witness (dsl/test/claim/corpus_gate_dsl_root_probe.dag) enrolled in shard b, proving the parametric gate can host dsl/-rooted entries end-to-end without a dependency on #4870. The §10 syscall witnesses enroll as a fast-follow once both this gate and #4870 have landed in main. Counts: shard b 15→16 (+1 probe), global 30→31. Shard a unchanged. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: Brian Searls <briansearls1@gmail.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
briansrls
added a commit
that referenced
this pull request
Jun 14, 2026
…main) (#4877) * exec-contract ABI: dissolve convention 🟡 via mechanism (b) Standalone dissolution PR (DECOUPLE): targets main after #4870 lands. Mechanism (b) per zesty-swift: ArchitecturalRegister open identity in std, Amd64Gpr cited atoms in extdeps, plain CallingConvention total map, SyscallAbi.convention typed (no generics). Dissolves feature:sysv-amd64-abi-module. Co-authored-by: Cursor <cursoragent@cursor.com> * exec-contract #4877: honest witness posture (E-10 RC) Relabel syscall/convention witnesses: typed+reviewed via local `--source-root dsl --claim-run` (PR receipt), not green-by-execution until dsl-rooted claim-run gate enrolls them (consumer:dsl-rooted-claim-run-gate). Apply Practice-9 de-prose to linux.dag; delete register narration (dual-rep). Co-authored-by: Cursor <cursoragent@cursor.com> * exec-contract #4877: drop unused SyscallRole enum Align abi.dag comments with the record encoding — CallingConvention uses one field per closed role set, not a SyscallRole map key type. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Cursor <cursoragent@cursor.com>
briansrls
added a commit
that referenced
this pull request
Jun 15, 2026
…1) (#4882) * §10 exec-contract: ArchitectureProfile — join arch tag + CallingConvention + StackLayout First std substrate piece on the gunbos lane after SyscallAbi/sysv_amd64 (#4870/#4877). ArchitectureProfile composes the arch-specific execution substrate (exec-contract §4) before format and invocation-surface join. - dsl/std/architecture_profile.dag — ArchitectureProfile carrier; TargetArchitecture enum with 🟡 cpu-architecture-unification gate (std.cpu.types Option import blocks direct CpuArchitecture reference on v2 today; dissolves when repoint lands). - dsl/extdeps/runtime/architecture/x86_64_linux.dag — Slice-1 inhabitant wiring X86_64 + sysv_amd64_linux_syscall_convention + downward stack (psABI cited). Green-by-execution (dsl-rooted claim-run, head worktree): witness_architecture_is_x86_64 -> true witness_convention_arg3_is_r10 -> true witness_stack_grows_down -> true witness_profile_convention_matches_sysv_amd64 -> true Next slices: aapcs64 (2nd ABI), std/exec_format + extdeps/formats/elf. Co-authored-by: Cursor <cursoragent@cursor.com> * align ArchitectureProfile with zesty M9 rulings (smart-hawk-763) Replace interim TargetArchitecture enum with CpuArchitecture attach. Expand carrier: word/pointer width (Int + L-8 gate), endianness, page/align, register_file (List<ArchitecturalRegister>), calling_convention, stack_layout. Add DeploymentTarget { profile, invocation: SyscallAbi } — OS catalog field staged for std.os.types v2 flip; StableInvocationSurface coproduct Slice 2. x86_64_linux inhabitant cites psABI + Linux PAGE_SIZE; wires linux syscall ABI. Claim-run blocked on std.cpu.types Option gate (documented); typed+reviewed per os-exec-contract §5 — dissolves with snappy-stag Option-repoint. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(exec-contract): restore v2-green ArchitectureProfile after CpuArchitecture import The M9 alignment commit imported std.cpu.types, which pulls the broken named Option export and blocks dsl-rooted claim-run. Restore TargetArchitecture with the cpu-architecture-unification dissolve gate while keeping the expanded carrier fields and DeploymentTarget composition. Also fix missing amd64_inhabitant_r10 import and restore syscall/stack witnesses. Green-by-execution (dsl-rooted claim-run): witness_architecture_is_x86_64 -> true witness_word_width_is_64 -> true witness_page_size_is_4096 -> true witness_convention_arg3_is_r10 -> true witness_stack_grows_down -> true witness_deployment_invocation_matches_linux_abi -> true Co-authored-by: Cursor <cursoragent@cursor.com> * ci: retrigger after runner thread-spawn flake on v4_lens_gate + corpus_b Both jobs failed at cargo compile with EAGAIN thread spawn on self-hosted runners (~1m in); unrelated to dsl/ ArchitectureProfile changes. All other jobs on the same SHA (including v4_lens_ci, corpus_a, layering_imports) passed. Co-authored-by: Cursor <cursoragent@cursor.com> * docs(exec-contract): ground TargetArchitecture + invocation dissolve gates Strengthen cpu-architecture-unification comment with the concrete v2 claim-run failure (std.cpu.types → named Option import). Add 🟡 stable-invocation-surface- coproduct tag on DeploymentTarget.invocation per review feedback. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(exec-contract): add 🟢 TERMINAL disposition on Endianness coproduct Per modeling-discipline Practice 4/9: every new std/ coproduct needs a one-line 🟢/🟡/🔴 classification. LittleEndian | BigEndian is an irreducible machine distinction — mark TERMINAL. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Cursor <cursoragent@cursor.com>
briansrls
added a commit
that referenced
this pull request
Jun 15, 2026
…lice 1 #2) (#4889) * §10 exec-contract: ArchitectureProfile — join arch tag + CallingConvention + StackLayout First std substrate piece on the gunbos lane after SyscallAbi/sysv_amd64 (#4870/#4877). ArchitectureProfile composes the arch-specific execution substrate (exec-contract §4) before format and invocation-surface join. - dsl/std/architecture_profile.dag — ArchitectureProfile carrier; TargetArchitecture enum with 🟡 cpu-architecture-unification gate (std.cpu.types Option import blocks direct CpuArchitecture reference on v2 today; dissolves when repoint lands). - dsl/extdeps/runtime/architecture/x86_64_linux.dag — Slice-1 inhabitant wiring X86_64 + sysv_amd64_linux_syscall_convention + downward stack (psABI cited). Green-by-execution (dsl-rooted claim-run, head worktree): witness_architecture_is_x86_64 -> true witness_convention_arg3_is_r10 -> true witness_stack_grows_down -> true witness_profile_convention_matches_sysv_amd64 -> true Next slices: aapcs64 (2nd ABI), std/exec_format + extdeps/formats/elf. Co-authored-by: Cursor <cursoragent@cursor.com> * align ArchitectureProfile with zesty M9 rulings (smart-hawk-763) Replace interim TargetArchitecture enum with CpuArchitecture attach. Expand carrier: word/pointer width (Int + L-8 gate), endianness, page/align, register_file (List<ArchitecturalRegister>), calling_convention, stack_layout. Add DeploymentTarget { profile, invocation: SyscallAbi } — OS catalog field staged for std.os.types v2 flip; StableInvocationSurface coproduct Slice 2. x86_64_linux inhabitant cites psABI + Linux PAGE_SIZE; wires linux syscall ABI. Claim-run blocked on std.cpu.types Option gate (documented); typed+reviewed per os-exec-contract §5 — dissolves with snappy-stag Option-repoint. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(exec-contract): restore v2-green ArchitectureProfile after CpuArchitecture import The M9 alignment commit imported std.cpu.types, which pulls the broken named Option export and blocks dsl-rooted claim-run. Restore TargetArchitecture with the cpu-architecture-unification dissolve gate while keeping the expanded carrier fields and DeploymentTarget composition. Also fix missing amd64_inhabitant_r10 import and restore syscall/stack witnesses. Green-by-execution (dsl-rooted claim-run): witness_architecture_is_x86_64 -> true witness_word_width_is_64 -> true witness_page_size_is_4096 -> true witness_convention_arg3_is_r10 -> true witness_stack_grows_down -> true witness_deployment_invocation_matches_linux_abi -> true Co-authored-by: Cursor <cursoragent@cursor.com> * ci: retrigger after runner thread-spawn flake on v4_lens_gate + corpus_b Both jobs failed at cargo compile with EAGAIN thread spawn on self-hosted runners (~1m in); unrelated to dsl/ ArchitectureProfile changes. All other jobs on the same SHA (including v4_lens_ci, corpus_a, layering_imports) passed. Co-authored-by: Cursor <cursoragent@cursor.com> * docs(exec-contract): ground TargetArchitecture + invocation dissolve gates Strengthen cpu-architecture-unification comment with the concrete v2 claim-run failure (std.cpu.types → named Option import). Add 🟡 stable-invocation-surface- coproduct tag on DeploymentTarget.invocation per review feedback. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(exec-contract): add 🟢 TERMINAL disposition on Endianness coproduct Per modeling-discipline Practice 4/9: every new std/ coproduct needs a one-line 🟢/🟡/🔴 classification. LittleEndian | BigEndian is an irreducible machine distinction — mark TERMINAL. Co-authored-by: Cursor <cursoragent@cursor.com> * §10 exec-contract: aapcs64 ABI + aarch64_linux ArchitectureProfile (Slice 1 #2) Second ABI inhabitant for Linux aarch64: cited AAPCS64 syscall register convention (x0–x5 args, x8 NR, x0 return) with AArch64Gpr atoms inhabiting ArchitecturalRegister, plus aarch64 syscall subset and ArchitectureProfile/DeploymentTarget inhabitant. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(exec-contract): replace form-3 unit-in-name Int fields with Measure carriers HARD-BLOCK cascade: ArchitectureProfile word/page/alignment fields used flat Int with units in field names (form 3). Repoint to BitWidth (Measure<Information, One>) and ByteSize (Measure<Memory, One>) with bit_width/byte_size constructors. Also fix money_micros_count to accept Measure<Currency, Micro> so std.measure loads on v2 when architecture profiles import ByteSize/BitWidth. Co-authored-by: Cursor <cursoragent@cursor.com> * docs(measure): snappy gate-1 clearance — BitWidth P4 checkpoint + #4885 dissolve mark Information first-inhabitant precedent comment + deferred byte<->bit conversion trigger. money_micros_count inline kept pre-#4885 with explicit consumer mark citing #4885 dissolution (coordinate with snappy-stag-903). Co-authored-by: Cursor <cursoragent@cursor.com> * ci: retrigger v4_lens_ci_perturb (srv2 bad-ref checkout flake) v4_lens_ci_perturb (0) failed at Checkout: fatal: bad object refs/remotes/origin/session/fierce-ram-162; ci aggregator failed on deps. Co-authored-by: Cursor <cursoragent@cursor.com> * ci: retrigger ci_floor_parity (srv1 sccache EAGAIN flake) ci_floor_parity failed on fece259 with sccache Resource temporarily unavailable (os error 11) on srv1-15; parity tests themselves passed on retry. --------- Co-authored-by: Cursor <cursoragent@cursor.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
First increment of the ctrl §10 execution-contract substrate layer (consume-don't-fork; ctrl-driven, lands in gunbc, per zesty-swift's approval). Structure + discipline per ctrl PR #1603 (endorsed for dep-graph coherence).
What
dsl/std/os/invocation.dag—SyscallEntry+SyscallAbi, the first invocation paradigm of the omni surface model (any cited syscall table is data, not a model edit).SyscallAbiis a record; theStableInvocationSurfacecoproduct is born multi-variant in Slice 2 whenLibraryApiBoundary(Windows/macOS) lands — facts-first arms. Uses onlyInt/NonEmptyStr/List/records — no distribution-enum imports, so v2-green standalone. (Slice-2 coproduct plan, v2-resolver notes, and the omni-invariant rationale live in docs(r3): split row-85 Gap 5 after bounded adapter landing #1603 §0/§3, not in the file — Practice 9 in-file form.)dsl/extdeps/runtime/syscalls/linux.dag— real x86-64 subset read=0, write=1, mmap=9, execve=59, exit=60, cited toarch/x86/entry/syscalls/syscall_64.tbl, with green-by-execution witnesses on each number.The convention 🟡 — Practice-4 dissolution content (relocated from the file per Practice 9)
The in-file mark is the one-line tag
// 🟡 feature:sysv-amd64-abi-moduleon the authority carrier (SyscallAbi.convention: NonEmptyStrin invocation.dag, where the stringly deferral originates) and on its linux.dag inhabitant. The bound dissolution detail:feature— the typedCallingConventionsubstrate does not exist yet.CallingConventiontype inextdeps/runtime/abi/sysv_amd64.dag(System V AMD64: integer-arg register order rdi/rsi/rdx/r10/r8/r9; syscall nr + return in rax; r10 not rcx — SYSCALL clobbers rcx/r11 — modeled as identity, not text).node://adhoc-51cfc897-db0(= docs(r3): split row-85 Gap 5 after bounded adapter landing #1603 §6 Slice 1), in flight under workerwarm-ibex-822, which landssysv_amd64.dag.conventionchanges fromNonEmptyStrto a typedCallingConventionreference, deleting the raw-string identity duplication.Green-by-execution receipt (E-10 Q2/Q3)
The five witnesses assert each real syscall NR (
witness_read_number_is_0…witness_exit_number_is_60). Run via a dsl-rooted claim-run (these modules live in thedsl/tree, so--source-root dsl, notsrc/v4):Receipt — run by snappy-stag-903 on the governed gunbc v2 runner (isolated worktree under
ctrl-build), head-pinned to 8d0a63f:Five
true, zero diagnostics — x86-64 sysv-amd64 numbers confirmed by execution (read=0, write=1, mmap=9, execve=59, exit=60).Standing CI gate (honest status): these witnesses have no executing standing gate yet — the v4 claim-witness corpus is
src/v4-rooted and cannot loaddsl/imports. Their standing home is #4874's parametric dsl-rooted corpus gate (derive_source_root, swift-stag/stern-bear); enrollment of these 5 is the named fast-follow (authored by me) once both #4874 and #4870 land. So: green-by-execution is shown above (receipt pending); standing execution is consumer-gated on #4874.Modeling rationale (relocated from the files per Practice 9 strict-allowlist form)
The files carry only path + terse Scope + Anchor URL + one-line tags; the rationale lives here:
syscall_64.tbl(kernel 6.8) —read=0, write=1, mmap=9, execve=59, exit=60;arg_countfollows the man(2) prototype. An invented number would break the native=real-modeled-contract thesis (operator hard-requirement).linux.dag— that would be a second authority for what theconvention🟡 defers to. Their single home is the ABI module (extdeps/runtime/abi/sysv_amd64.dag, the stacked dissolution PR exec-contract ABI: dissolve convention 🟡 (mechanism b, standalone -> main) #4877).Anchoring
All five syscall numbers verified against
syscall_64.tblby zesty-swift + two review bots; the operator's anchor-to-real-specs hard requirement is met (no invented values).Out of scope (staged for the verified v2 flip-SHA)
The
satisfies-reuse (shared compute_fabric kernel, possibly lifting a genericEligibility<Witness,Reason>) and the OS-catalog attach — both inherit the catalog's v2 gate (Option-repoint + single-variant-enum + G3, per snappy-stag). gunbc merge queue is frozen — no merge urgency.