Skip to content

[codex] Publish the LinxISA v0.57 PTO block contract#136

Merged
zhoubot merged 253 commits into
mainfrom
linx-isa-0.57
Jul 1, 2026
Merged

[codex] Publish the LinxISA v0.57 PTO block contract#136
zhoubot merged 253 commits into
mainfrom
linx-isa-0.57

Conversation

@zhoubot

@zhoubot zhoubot commented Jul 1, 2026

Copy link
Copy Markdown
Collaborator

Summary

Publishes the proposed LinxISA v0.57 PTO block contract and pins the downstream implementation branches:

  • adds the latest Linx block definition and v0.57 PTO encoding map
  • records the downstream migration contract for SuperNPUBench, TileOP API, LLVM, QEMU, and GFSIM
  • adds strict validators for v0.57 encoding scope and downstream readiness
  • updates the AVS QEMU smoke digest affected by the v0.57 QEMU behavior
  • pins the submodules for the v0.57 downstream PR series

Encoding scope

v0.57 intentionally encodes only concrete hardware-visible PTO instructions. It does not encode sync, communication, pipe lifecycle, or PTO IR-only surfaces. TFILLPAD and TCONCAT remain encoded instructions. TGET_SCALE_ADDR, GET_VAL, and SET_VAL are not present in the hardware map.

Final encoding shape:

  • 107 encoding rows covering 125 PTO instruction forms
  • TEPL: 92 rows, 0x00..0x5B
  • FIXP: 8 rows, 0x00..0x07
  • TMA: 5 rows, 0x00..0x04
  • CUBE: 2 rows, 0x00..0x01

Downstream PRs

Validation

  • python3 -m json.tool isa/v0.57/state/pto_encoding.json
  • python3 -m json.tool isa/v0.57/state/block_definition.json
  • python3 -m json.tool isa/v0.57/state/downstream_migration.json
  • python3 tools/isa/check_pto_v057_encoding.py --spec isa/v0.57/state/pto_encoding.json
  • python3 tools/isa/check_pto_v057_downstream.py --strict
  • bash tools/ci/check_repo_layout.sh
  • git diff --check
  • ninja -C compiler/llvm/build-linxisa-clang clang llc -j8
  • ninja -C emulator/qemu/build-linx qemu-system-linx64
  • cmake --build model/LinxCoreModel/build --target gfsim -j8
  • LLVM FileCheck: v057-fixp-tinsert-ttrans.ll
  • QEMU direct-boot finisher probe returned expected 0x55
  • GFSIM probes reached val=0x5555 pass
  • SuperNPUBench full build returned RC:0, 26 successful groups, 49 LinxISA ELFs, 56 PTO ISA ELFs, 0 failure markers

LinxISA Automation added 30 commits June 27, 2026 15:00
The benchmark/Linux hard-break flow should exercise the same QEMU binary that the local Linx bring-up lane builds and profiles. The runner already injected build-linx when QEMU was unset, but the machine-readable commands still advertised the legacy build path and direct copy/paste runs could validate a stale emulator.

Constraint: Explicit QEMU overrides remain the escape hatch for clean-build and external lanes.

Rejected: Depend only on runner-side environment injection | the JSON flow is also the durable handoff contract and must be correct when listed or copied.

Confidence: high

Scope-risk: narrow

Directive: Keep benchmark_qemu_linux_flow.json aligned with tools.bringup.paths.default_qemu_binary and the Linx QEMU skill's preferred local binary.

Tested: python3 -m json.tool docs/bringup/benchmark_qemu_linux_flow.json

Tested: python3 tools/bringup/run_benchmark_linux_flow.py --profile linux --list

Tested: bash tools/ci/check_repo_layout.sh

Tested: TIMEOUT=30 SKIP_BUILD=1 python3 kernel/linux/tools/linxisa/initramfs/boot_userspace_proof.py

Tested: TIMEOUT=60 SKIP_BUILD=1 python3 kernel/linux/tools/linxisa/initramfs/full_boot.py

Tested: TIMEOUT=120 ROOTFS_IMG=/tmp/linx-linux-rootfs-clean-out/rootfs.ext2 SKIP_BUILD=1 python3 kernel/linux/tools/linxisa/busybox_rootfs/boot.py

Tested: python3 avs/qemu/run_musl_smoke.py --mode phase-b --link both --qemu emulator/qemu/build-linx/qemu-system-linx64 --timeout 90

Tested: python3 tools/bringup/run_specint_fast_gate.py --profile pr --out-dir workloads/generated/specint-fast-pr-20260627-post-pathfix --qemu emulator/qemu/build-linx/qemu-system-linx64 --append-extra norandmaps --guest-heartbeat-sec 0 --heartbeat-sec 10

Not-tested: glibc runtime is not claimed green; current run reports glibc_runtime_variant_failure timeouts/traps in avs/qemu/out/glibc-smoke/summary.json
The latest reproducible benchmark lane now depends on QEMU commit 7e1981adf5f, which removes debug-memory text reads from Linx trap/block recovery and keeps Linux user fault resume state anchored to BSTART headers. Record the implementation and remaining cache/decode speedups in the SPECint performance plan.

Constraint: The fast SPECint gate is still a PR smoke over test/train 999.specrand_ir, not full 505/531 completion.

Rejected: Leave the superproject pinned at the prior QEMU commit | the rebuilt binary and validation evidence would then depend on uncommitted dirty QEMU source.

Confidence: medium

Scope-risk: moderate

Directive: Next QEMU speed work should measure 531 again and target bstart_cache/page-local decode caching before widening SPEC nightly coverage.

Tested: ninja -C emulator/qemu/build-linx qemu-system-linx64

Tested: emulator/qemu/build-linx/qemu-system-linx64 --version reports v10.2.0-943-g7e1981adf5f

Tested: CLANG=/Users/zhoubot/linx-isa/compiler/llvm/build-linxisa-clang/bin/clang LLD=/Users/zhoubot/linx-isa/compiler/llvm/build-linxisa-clang/bin/ld.lld QEMU=/Users/zhoubot/linx-isa/emulator/qemu/build-linx/qemu-system-linx64 LINX_DISABLE_TIMER_IRQ=0 python3 avs/qemu/run_tests.py --all --timeout 20

Tested: CLANG=/Users/zhoubot/linx-isa/compiler/llvm/build-linxisa-clang/bin/clang LLD=/Users/zhoubot/linx-isa/compiler/llvm/build-linxisa-clang/bin/ld.lld QEMU=/Users/zhoubot/linx-isa/emulator/qemu/build-linx/qemu-system-linx64 LINX_DISABLE_TIMER_IRQ=0 ./check_system_strict.sh

Tested: TIMEOUT=30 SKIP_BUILD=1 python3 kernel/linux/tools/linxisa/initramfs/boot_userspace_proof.py

Tested: python3 tools/bringup/run_specint_fast_gate.py --profile smoke --out-dir workloads/generated/specint-fast-smoke-20260627-qemu-7e1981 --qemu emulator/qemu/build-linx/qemu-system-linx64 --append-extra norandmaps --guest-heartbeat-sec 0 --heartbeat-sec 10

Not-tested: full SPECint 505/531 stress completion; glibc runtime remains failing separately
A post-fix 531.deepsjeng_r test-input sample shows that target-aware text reads fixed trap/block recovery provenance but not the hot CFI helper path. The remaining SPECint QEMU cost is still helper_linx_check_bstart_target calling cpu_memory_rw_debug from helper.c, with disabled diagnostic frames staying at zero.

Constraint: The 531 stress run was intentionally interrupted after sampling, so this is profile evidence rather than a correctness pass.

Rejected: Claim the target-read fix removed cpu_memory_rw_debug from all SPEC hot paths | the sample still shows it under helper_linx_check_bstart_target.

Confidence: high

Scope-risk: narrow

Directive: Next performance patch should target helper_linx_check_bstart_target and rerun the same 531 sample before changing SPEC nightly coverage.

Tested: sample 11083 10 -file workloads/generated/specint-qemu-profile-20260627-test-cpu-stress-qemu7e/profile/qemu-531-test-qemu7e.sample.txt

Tested: python3 tools/bringup/run_specint_fast_gate.py --profile pr --out-dir workloads/generated/specint-fast-pr-20260627-qemu-7e1981 --qemu emulator/qemu/build-linx/qemu-system-linx64 --append-extra norandmaps --guest-heartbeat-sec 0 --heartbeat-sec 10

Not-tested: 531.deepsjeng_r completion; stress run was stopped after profile collection
SPECint 531 profiling showed the helper-level BSTART cache was effectively disabled by revalidation on every hit. Pin the QEMU fix that trusts validated hits by default, records the measured hot-frame reduction, and refreshes the Linux call/ret audit so the current entry.o-hosted __switch_to path is checked instead of a stale switch_to.o path.

Constraint: Full musl sample-all is still red on ebarg_timer static and fork_exec_self shared runtime timeouts, so this does not claim libc closure.

Constraint: 531.deepsjeng_r stress was sampled and interrupted; full 531 correctness remains open.

Rejected: Treat the musl all-samples failure as caused by the cache patch | fork_exec_self shared also times out with LINX_BSTART_CACHE_REVALIDATE=1, and the audit-path failure was a stale object/encoding check.

Confidence: medium

Scope-risk: moderate

Directive: Next QEMU perf work should move helper_linx_check_bstart_target off cpu_memory_rw_debug or add a page-local decode cache with explicit invalidation.

Tested: ninja -C emulator/qemu/build-linx qemu-system-linx64

Tested: emulator/qemu/build-linx/qemu-system-linx64 --version reports v10.2.0-944-gf80300d12c8

Tested: CLANG=/Users/zhoubot/linx-isa/compiler/llvm/build-linxisa-clang/bin/clang LLD=/Users/zhoubot/linx-isa/compiler/llvm/build-linxisa-clang/bin/ld.lld QEMU=/Users/zhoubot/linx-isa/emulator/qemu/build-linx/qemu-system-linx64 LINX_DISABLE_TIMER_IRQ=0 python3 avs/qemu/run_tests.py --all --timeout 20

Tested: CLANG=/Users/zhoubot/linx-isa/compiler/llvm/build-linxisa-clang/bin/clang LLD=/Users/zhoubot/linx-isa/compiler/llvm/build-linxisa-clang/bin/ld.lld QEMU=/Users/zhoubot/linx-isa/emulator/qemu/build-linx/qemu-system-linx64 LINX_DISABLE_TIMER_IRQ=0 ./check_system_strict.sh

Tested: TIMEOUT=30 SKIP_BUILD=1 python3 kernel/linux/tools/linxisa/initramfs/boot_userspace_proof.py

Tested: TIMEOUT=60 SKIP_BUILD=1 python3 kernel/linux/tools/linxisa/initramfs/full_boot.py

Tested: bash tools/ci/check_linx_callret_crossstack.sh /Users/zhoubot/linx-isa/kernel/linux

Tested: bash -n tools/ci/check_linx_callret_crossstack.sh

Tested: bash tools/ci/check_repo_layout.sh

Tested: python3 tools/bringup/run_specint_fast_gate.py --profile pr --out-dir workloads/generated/specint-fast-pr-20260627-bstart-cache-clean --qemu emulator/qemu/build-linx/qemu-system-linx64 --append-extra norandmaps --guest-heartbeat-sec 0 --heartbeat-sec 10

Tested: sample 73423 10 -file workloads/generated/specint-qemu-profile-20260627-test-cpu-stress-bstart-cache/profile/qemu-531-test-bstart-cache.sample.txt

Not-tested: full 505/531 SPEC stress completion

Not-tested: full musl sample-all closure; current failures are ebarg_timer static and fork_exec_self shared timeouts
The SPECint gate previously treated the isolated 531.deepsjeng_r test-input stress run as a 300s budget. Profiling showed the run was still executing inside QEMU CFI target validation rather than failing correctness. The QEMU submodule now contains the target-read helper fix, and the root gate gives this isolated stress lane a measured 900s budget.

The performance plan records the before/after sample counts and keeps the remaining speedups explicit: page-local BSTART decode caching, separate instrumentation builds, and keeping 505/531 stress out of cheap PR smoke.

Constraint: 531 test stress needs about 468s on current QEMU, so 300s was a false-fail budget
Constraint: Full SPECint nightly breadth and train stress remain open
Rejected: Treat 300s timeout as a correctness failure | the 900s run exits 0 and the output hash matches
Confidence: medium
Scope-risk: moderate
Directive: Do not move 531 or 505 stress into PR smoke; keep page-local BSTART decode caching as the next QEMU perf lane
Tested: ninja -C emulator/qemu/build-linx qemu-system-linx64
Tested: emulator/qemu/build-linx/qemu-system-linx64 --version reports v10.2.0-945-g8f819f1df18
Tested: CLANG=... LLD=... QEMU=... LINX_DISABLE_TIMER_IRQ=0 python3 avs/qemu/run_tests.py --all --timeout 20
Tested: cd avs/qemu && CLANG=... LLD=... QEMU=... LINX_DISABLE_TIMER_IRQ=0 ./check_system_strict.sh
Tested: TIMEOUT=30 SKIP_BUILD=1 QEMU=... python3 kernel/linux/tools/linxisa/initramfs/boot_userspace_proof.py
Tested: TIMEOUT=60 SKIP_BUILD=1 QEMU=... python3 kernel/linux/tools/linxisa/initramfs/full_boot.py
Tested: python3 -m py_compile tools/bringup/run_specint_fast_gate.py
Tested: bash tools/ci/check_repo_layout.sh
Tested: python3 tools/bringup/run_specint_fast_gate.py --profile pr --out-dir workloads/generated/specint-fast-pr-20260627-target-read --qemu emulator/qemu/build-linx/qemu-system-linx64 --append-extra norandmaps --guest-heartbeat-sec 0 --heartbeat-sec 10
Tested: SPECINT_TEST_CPU_STRESS_TIMEOUT=900 python3 tools/bringup/run_specint_fast_gate.py --profile nightly --suite test-cpu-stress --out-dir workloads/generated/specint-nightly-test-cpu-stress-20260627-target-read-900 --qemu emulator/qemu/build-linx/qemu-system-linx64 --append-extra norandmaps --guest-heartbeat-sec 0 --heartbeat-sec 30
Tested: SPECINT_TEST_CPU_STRESS_TIMEOUT= python3 tools/bringup/run_specint_fast_gate.py --profile nightly --suite test-cpu-stress --out-dir workloads/generated/specint-dryrun-test-cpu-timeout-20260627 --qemu emulator/qemu/build-linx/qemu-system-linx64 --dry-run
Tested: python3 tools/bringup/run_specint_fast_gate.py --profile smoke --out-dir workloads/generated/specint-smoke-20260627-target-read-clean --qemu emulator/qemu/build-linx/qemu-system-linx64 --append-extra norandmaps --guest-heartbeat-sec 0 --heartbeat-sec 10
Not-tested: Full SPECint nightly breadth and train 505/531 stress
Not-tested: Full musl sample-all closure still has known ebarg_timer static and fork_exec_self shared failures from previous evidence
The all-train gate needs a fast way to distinguish deadlock from slow forward progress before widening timeouts. Add an explicit train-all profile, forward heartbeat/no-progress switches when the local SPEC runner supports them, and record the first all-train QEMU run against the heartbeat-enabled emulator.

Constraint: SPEC CPU2017 corpus and low-level tools/spec2017 runners are local workload state and remain ignored by default

Rejected: Put 505/531/557 back into PR smoke | train input reaches 900s while still making BPC progress

Confidence: medium

Scope-risk: moderate

Directive: Keep train-all opt-in; use QEMU heartbeat evidence to separate deadlock from live slow runs before changing gate timeouts

Tested: python3 -m py_compile tools/bringup/run_specint_fast_gate.py tools/spec2017/run_int_rate_qemu.py tools/spec2017/run_stage_qemu_matrix.py

Tested: ninja -C emulator/qemu/build-linx qemu-system-linx64

Tested: run_specint_fast_gate.py --profile train --dry-run --qemu emulator/qemu/build-linx/qemu-system-linx64 --qemu-heartbeat-interval 1000000000 --no-progress-timeout 180

Tested: run_specint_fast_gate.py --profile smoke --qemu-heartbeat-interval 1000000

Tested: SPECINT_TRAIN_ALL_TIMEOUT=900 run_specint_fast_gate.py --profile train --qemu-heartbeat-interval 1000000000 --no-progress-timeout 180 --continue-on-fail (999 passed; 9 failures categorized)

Not-tested: Correctness closure for failing train workloads
The train-all heartbeat run originally classified 500.perlbench_r as an execve ENOENT failure. Focused pre-exec diagnostics showed the static ELF is present and readable, and the Linux v0.56 fixup parser update moves execution past the first usercopy Oops. Record the new stop point as a kmem_cache_alloc_noprof null-cache Oops and keep the all-train loop pointed at the current blocker.

Constraint: SPEC train generated artifacts are ignored, so durable evidence has to be summarized in bring-up docs and checklists

Rejected: Keep chasing benchmark packaging | pre-exec stat/open/read validates the staged ELF path

Confidence: medium

Scope-risk: narrow

Directive: Treat BPC heartbeat progress as live execution evidence before increasing SPEC timeouts

Tested: bash tools/ci/check_repo_layout.sh

Tested: kernel vmlinux rebuild with run_linux_vmlinux_build_clean.sh --target vmlinux

Tested: focused 500.perlbench_r train reruns with QEMU heartbeat/fault trace under workloads/generated/specint-500-fixup-20260628 and specint-500-kmalloc-centered-trace-20260628

Not-tested: full SPECint train closure; 500 still stops at kmem_cache_alloc_noprof and the other train-all failures remain open
The train gate now has a tracked runner surface for all SPECint train benchmarks, preserves only the lightweight runner scripts under tools/spec2017, and carries failure classes from per-benchmark QEMU logs into matrix and fast-gate summaries. The bring-up log records the full 2026-06-28 train-all run, the BPC heartbeat evidence separating live-slow execution from deadlock, the QEMU profile samples, and the current per-benchmark solution lanes. Repin QEMU and Linux to the debug and filelock-init commits used by that evidence.

Constraint: SPEC corpus and local build products must remain ignored; only reusable runner code belongs in the repo.

Rejected: Keep train-all as an ad-hoc local command | future runs would lose benchmark coverage, QEMU path, heartbeat, and failure-class policy.

Rejected: Add SPEC corpus artifacts | licensing and workspace size constraints require generated outputs under workloads/generated only.

Confidence: high

Scope-risk: moderate

Directive: Keep train-all opt-in via --profile train; PR should remain on cheap smoke unless the gate policy is deliberately changed.

Tested: python3 -m py_compile tools/spec2017/run_int_rate_qemu.py tools/spec2017/run_stage_qemu_matrix.py tools/bringup/run_specint_fast_gate.py

Tested: SPECINT_TRAIN_ALL_TIMEOUT=600 train-all run at workloads/generated/specint-train-all-20260628-debug-v2

Tested: Post-rebuild focused train matrix over 999.specrand_ir and 541.leela_r at workloads/generated/specint-train-postdebug-classifier-20260628

Tested: ninja -C emulator/qemu/build-linx qemu-system-linx64

Tested: bash avs/qemu/check_system_strict.sh

Tested: python3 avs/qemu/run_tests.py --all --timeout 20

Tested: Linx vmlinux incremental build with in-repo clang

Not-tested: Full SPECint correctness closure; nine train benchmarks still have recorded failures or live-slow timeouts
The superproject needs to pin the RTL and skill submodule commits together so later agents get both the new InterfaceBundles packet and the updated LinxCore gate policy. The root commit stages only gitlink updates and leaves unrelated bring-up files untouched.

Constraint: rtl/LinxCore and skills/linx-skills are submodules with dirty unrelated worktrees

Rejected: Commit broader root bring-up files | unrelated to this Chisel interface slice

Confidence: high

Scope-risk: narrow

Directive: Update submodule pointers when reusable Chisel gates and matching skill policy change together

Tested: git diff --cached --check

Tested: git submodule status -- rtl/LinxCore skills/linx-skills

Not-tested: Full superproject workload matrix not run for this passive interface packet
The Chisel RTL lane now has its first frontend F4/D1 decode-window module and the skill package records the reusable gate/invariants for follow-on agents. Pinning both submodules gives the superproject a reproducible handoff point for the next decode/IB development loop.

Constraint: Root tree contains unrelated dirty docs/submodules that are intentionally left unstaged

Constraint: .omx plan and ledger updates are local ignored state, not versioned root artifacts

Rejected: Stage root documentation dirt | not part of this F4 Chisel slice

Confidence: high

Scope-risk: narrow

Directive: Future agents should start from rtl/LinxCore a8efeec and skills/linx-skills 42df686 for Phase 2 F4 work

Tested: git diff --cached --submodule=short

Tested: RTL commit gates recorded in submodule commit a8efeec

Tested: skill validation recorded in submodule commit 42df686

Not-tested: Full superproject gate matrix was not run because this commit only repins submodules
The Chisel frontend lane now includes a stateful FrontendInstructionBuffer and the skill package records its required gate and checkpoint ownership rule. This repins both submodules so the superproject has a reproducible Phase 2 frontend handoff point for later F4/D1 integration agents.

Constraint: Root tree contains unrelated dirty files and dirty submodules that are intentionally left unstaged

Constraint: .omx plan and ledger updates remain local ignored state

Rejected: Stage broad root bring-up/docs dirt | unrelated to this Chisel frontend FIFO slice

Confidence: high

Scope-risk: narrow

Directive: Future Phase 2 frontend agents should start from rtl/LinxCore d5791d2 and skills/linx-skills b1f572f

Tested: git diff --cached --submodule=short

Tested: RTL commit gates recorded in submodule commit d5791d2

Tested: skill validation recorded in submodule commit b1f572f

Not-tested: Full superproject strict cross-repo gate matrix was not run for this gitlink-only pin
The Chisel migration now has a versioned agent runbook in LinxCore and a matching linx-core skill update, so the superproject needs to point at those submodule SHAs. The LinxCoreModel gitlink is also advanced to the already-up-to-date main checkout used as the model evidence baseline for this planning pass.

Constraint: Root checkout has unrelated local docs and submodule dirt that must remain unstaged.\nConstraint: LinxCoreModel is the executable Janus Core reference for Chisel planning and QEMU-to-model comparison.\nRejected: Commit broad root documentation dirt | those edits pre-existed this scoped Chisel loop update.\nConfidence: high\nScope-risk: narrow\nDirective: Future Chisel module agents should start from rtl/LinxCore/docs/chisel/agent-loop.md and record skill-evolve decisions before repinning.\nTested: git diff --cached --submodule=short showed only model/LinxCoreModel, rtl/LinxCore, and skills/linx-skills gitlinks.\nTested: LinxCoreModel git pull --ff-only reported already up to date.\nTested: canonical and installed linx-core skills passed quick_validate.\nNot-tested: Superproject strict cross-repo gates, because this commit pins docs/skill/model planning state only and the root worktree has unrelated dirty changes.
The all-train SPECint lane now has a reproducible static phase-b baseline before runtime execution, and the bring-up logs record the current per-benchmark failures with QEMU BPC heartbeat evidence. The hard-break flow builds static SPEC binaries before fast/nightly runs and exposes heartbeat/no-progress switches without enabling QEMU heartbeat by default.

Constraint: Shared phase-b SPEC executables currently fail before even the 999 sentinel, while static phase-b is the only working correctness baseline
Rejected: Treat 505, 531, and 557 timeouts as deadlocks | QEMU heartbeat BPC/count evidence shows continued user-space progress
Confidence: medium
Scope-risk: moderate
Directive: Keep static train-all as the SPEC correctness gate until musl shared startup and C++ runtime packaging pass their dedicated smoke gates
Tested: python3 -m json.tool docs/bringup/benchmark_qemu_linux_flow.json; bash -n tools/spec2017/build_int_rate_linx.sh; ninja -C emulator/qemu/build-linx qemu-system-linx64; bash avs/qemu/check_system_strict.sh; python3 avs/qemu/run_tests.py --all --timeout 20; MODE=phase-b bash lib/musl/tools/linx/build_linx64_musl.sh; static SPEC train-all build/run artifacts under workloads/generated/specint-train-all-20260628-static; focused syscall ARGSTR smoke for 502.gcc_r
Tested: python3 avs/qemu/run_musl_smoke.py --mode phase-b --link both --sample all --qemu emulator/qemu/build-linx/qemu-system-linx64 --timeout 90 fails as recorded: static ebarg_timer timeout, shared fork_wait_raw_exit timeout
Not-tested: Full SPECint correctness remains open; only 999.specrand_ir passes the all-train static run
The superproject now points at the LinxCore RTL packet that adds FrontendDecodeIngress and the matching skills packet that makes the gate reusable for future Chisel agents.

Constraint: Root worktree has unrelated dirty docs/tools and submodule-local edits; only rtl/LinxCore and skills/linx-skills gitlinks are staged.

Rejected: Stage root documentation churn | it is unrelated to this Chisel packet.

Confidence: high

Scope-risk: narrow

Directive: Future agents should start from rtl/LinxCore a77e3a7 and skills/linx-skills a57f942 for the ingress packet unless intentionally rebasing the Chisel lane.

Tested: git diff --cached --submodule

Tested: git diff --cached --check

Tested: Chisel gate evidence recorded in rtl/LinxCore commit a77e3a7

Not-tested: Full superproject gate matrix; this commit only pins submodule pointers.
The superproject now references the LinxCore Chisel status contract and matching linx-core skill update for future integrated ROB/CMT agents.

Constraint: Root worktree contains unrelated dirty docs/tools and submodule-local edits; only rtl/LinxCore and skills/linx-skills gitlinks are staged.

Rejected: Stage root bring-up churn | it is unrelated to this ROB status packet.

Confidence: high

Scope-risk: narrow

Directive: Future ROB/CMT packets should start from rtl/LinxCore 848ac6d and skills/linx-skills 4bdc3f9 unless deliberately rebasing the Chisel lane.

Tested: git diff --cached --submodule

Tested: git diff --cached --check

Tested: Chisel gate evidence recorded in rtl/LinxCore commit 848ac6d

Not-tested: Full superproject gate matrix; this commit only pins submodule pointers.
The superproject now records the LinxCore RTL packet that adds the status-backed ROBEntryBank and the matching linx-core skill update. This keeps later agents on the exact RTL and workflow contract for the integrated ROB/CMT loop.

Constraint: The root working tree has unrelated bring-up/doc edits and the submodules retain unrelated dirty files; this commit stages only the rtl/LinxCore and skills/linx-skills gitlinks.

Rejected: Stage root .omx planning ledgers | they are local coordination state and are not visible in root git status.

Confidence: high

Scope-risk: narrow

Directive: Start the next ROB packet from the pinned gitlinks and keep flush-prune work on ROBEntryBank/CMT rather than ReducedCommitROB.

Tested: git diff --cached --submodule=short; git diff --cached --check; RTL and skill validation recorded in the submodule commits.

Not-tested: Full superproject strict_cross_repo gate; this is a gitlink-only repin after focused RTL and skill gates.
This advances the LinxCore RTL submodule to the ROBFlushPrune Chisel packet and advances linx-skills to the matching agent-loop guidance so future development agents start from the same gate and invariant set.

Constraint: Root commit only pins submodule SHAs; unrelated dirty root files and submodule worktree edits were left unstaged
Rejected: Include architecture and bringup document edits | they pre-existed this packet and are outside the ROB flush-prune scope
Confidence: high
Scope-risk: narrow
Directive: Keep future LinxCore Chisel packets paired with skill-loop updates when they add a reusable gate or invariant
Tested: git diff --cached --check at root; RTL and skill submodule gates recorded in child commits
Not-tested: full superproject AVS matrix after gitlink-only pin
The all-benchmark train gate now has updated evidence after the Linx gettimeofday fix, and a focused musl smoke sample covers the time syscall path that first poisoned the 502.gcc_r investigation.

Constraint: Existing SPEC train failures are still mixed correctness and performance failures
Rejected: Treat 502.gcc_r as a kernel fd-table failure | post-fix syscall trace shows no -EBADF returns around 200.c
Confidence: medium
Scope-risk: narrow
Directive: Continue 502 from userspace errno/file-state or compiler codegen, not open/fd kernel semantics, unless new syscall evidence contradicts this trace
Tested: python3 -m py_compile avs/qemu/run_musl_smoke.py; musl time_syscalls static smoke; full SPECint train-all QEMU run with heartbeat; focused 502 syscall/string traces
Not-tested: Full musl static/shared smoke after the new sample; SPEC correctness remains failing for nine train benchmarks
This advances the LinxCore RTL submodule to the ROBEntryBank flush-apply packet and advances linx-skills to the matching agent-loop rule so future agents inherit the same ROB/CMT phase priority and verification gates.

Constraint: Root commit only updates submodule gitlinks; unrelated root and submodule worktree edits were left unstaged
Rejected: Include ignored .omx state in the superproject commit | .omx is local coordination state under the root gitignore
Confidence: high
Scope-risk: narrow
Directive: Keep future Chisel ROB packets paired with skill updates when they add reusable phase or recovery invariants
Tested: git diff --cached --check at root; RTL and skill validations recorded in child commits
Not-tested: full superproject strict cross-repo matrix after gitlink-only pin
Advance the LinxCore RTL and linx-core skill submodules together so the superproject records the R10 ROBEntryBank native row-ID implementation and the corresponding agent rule.

Constraint: superproject is dirty with unrelated root docs, bringup files, qemu/musl submodules, and experimental work that must remain unstaged.
Rejected: Commit root documentation churn with this pin | unrelated local edits are outside the ROB row-ID packet.
Confidence: high
Scope-risk: narrow
Directive: Keep the RTL and linx-core skill pins in sync for ROB/CMT packet handoffs.
Tested: git diff --cached --check; staged submodule diff reviewed as only rtl/LinxCore and skills/linx-skills gitlink updates.
Not-tested: full superproject gate suite
Advance LinxCore RTL and linx-core skill pins together for the R11 dispatch/BROB-to-ROB allocation bridge.

Constraint: superproject has unrelated local docs, bringup artifacts, qemu/musl submodule dirt, and experimental work.
Rejected: Stage root-side dirty files with this pin | they are not part of the Chisel allocator packet.
Confidence: high
Scope-risk: narrow
Directive: Keep R11 RTL and skill pins together so future agents see the allocator gate and implementation in one superproject state.
Tested: git diff --cached --check; staged submodule diff reviewed as only rtl/LinxCore and skills/linx-skills gitlink updates.
Not-tested: full superproject strict gate suite
The superproject now points at the LinxCore Chisel packet that introduces FullBidRecoveryBridge and the linx-core skill packet that makes the new recovery BID handoff gate part of the agent loop.

Constraint: rtl/LinxCore and skills/linx-skills carry unrelated dirty worktrees, so only gitlinks are staged here
Rejected: Fold unrelated root bringup docs or submodule dirt into this pin | it would obscure the recovery handoff packet
Confidence: high
Scope-risk: narrow
Directive: Keep future recovery cleanup packets pinned separately from unrelated bringup or skill edits
Tested: git diff --cached --check
Tested: LinxCore packet gates recorded in rtl/LinxCore docs/chisel/verification/phase5-prep-evidence.md
Tested: linx-core skill quick_validate and scope guard
Not-tested: Full superproject CI
The all-SPECint train loop now uses the faster 300s gate, QEMU heartbeat evidence, and opt-in register dumps to classify each benchmark by its current first failure. The docs also record that a musl sysroot refresh must be followed by the SPEC C++ runtime overlay rebuild, because the oldmalloc fix moved 520/523 past allocator growth into later C++ runtime/TLS traps.\n\nConstraint: SPEC corpus and generated run artifacts are local or ignored; docs must carry stable commands and artifact paths\nRejected: Treat all user traps as oldmalloc | 520/523 now grow brk and trap later in C++/locale code\nRejected: Increase train timeout back to 600s | the 300s gate keeps all-benchmark triage faster while heartbeat proves live progress\nConfidence: high\nScope-risk: narrow\nDirective: Rebuild the spec-profile C++ runtime overlay after refreshing phase-b musl before SPEC C++ builds\nTested: ninja -C emulator/qemu/build-linx qemu-system-linx64\nTested: MODE=phase-b bash lib/musl/tools/linx/build_linx64_musl.sh\nTested: avs/qemu/run_musl_smoke.py static cpp17_smoke/malloc_printf/time_syscalls\nTested: final all SPECint static build manifest at workloads/generated/specint-build-after-oldmalloc-20260628/build_manifest_final.json\nTested: all-SPECint train gate at workloads/generated/specint-train-all-20260628-after-oldmalloc/specint_fast_gate_summary.json\nNot-tested: Correct SPEC outputs for failing workloads; only 999.specrand_ir currently passes
The superproject now points at the LinxCore Chisel packet that introduces RecoveryCleanupControl and the linx-core skill packet that makes its gate part of the recovery workflow.

Constraint: Root and submodule worktrees contain unrelated dirty files, so this commit stages only rtl/LinxCore and skills/linx-skills gitlinks
Rejected: Include root bringup or architecture edits | they are unrelated to the recovery cleanup-intent packet
Confidence: high
Scope-risk: narrow
Directive: Keep future recovery consumer wiring pins separate from unrelated QEMU, AVS, or architecture work
Tested: git diff --cached --check
Tested: LinxCore packet gates recorded in rtl/LinxCore docs/chisel/verification/phase5-prep-evidence.md
Tested: linx-core skill quick_validate and scope guard
Not-tested: Full superproject CI
Advance the LinxCore Chisel lane to the R14 STQFlushPrune packet and pin the matching linx-core skill update. The repin keeps the root manifest aligned with the RTL/docs commit and the reusable skill gate for future LSU recovery agents.

Constraint: Superproject repin is gitlink-only while unrelated root and submodule edits remain dirty
Constraint: rtl/LinxCore=1fe34e73b384c2d76a7235083df2ad302bae2973 and skills/linx-skills=e1b42786ce7f0a053f88bdae3a5af438994a243e
Rejected: Bundle unrelated architecture/QEMU/workload edits | they pre-existed and are outside the R14 Chisel packet
Confidence: high
Scope-risk: narrow
Directive: Future LSU/STQ recovery packets should start from the pinned STQFlushPrune gate and keep full STQ mutation out of ROBFlushPrune
Tested: bash tools/chisel/build_chisel.sh
Tested: bash tools/chisel/run_chisel_tests.sh --only STQFlushPrune
Tested: bash tools/chisel/run_chisel_tests.sh --only RecoveryCleanupControl
Tested: bash tools/chisel/run_chisel_tests.sh --only FullBidRecoveryBridge
Tested: bash tools/chisel/run_chisel_tests.sh --only FlushControl
Tested: bash tools/chisel/run_chisel_tests.sh --only ROBFlushPrune
Tested: bash tools/chisel/run_chisel_tests.sh --only ROBEntryBank
Tested: bash tools/chisel/run_chisel_rob_bookkeeping.sh --reduced-rob
Tested: python3 tools/chisel/trace_schema_adapter.py --self-test
Tested: bash tools/chisel/run_chisel_qemu_crosscheck.sh --dry-run
Tested: bash tools/chisel/run_chisel_reduced_rob_xcheck.sh
Tested: python3 /Users/zhoubot/.codex/skills/.system/skill-creator/scripts/quick_validate.py /Users/zhoubot/linx-isa/skills/linx-skills/linx-core
Tested: python3 /Users/zhoubot/linx-isa/skills/linx-skills/scripts/check_skill_change_scope.py --repo-root /Users/zhoubot/linx-isa/skills/linx-skills --base origin/main
Not-tested: Full root PR strict closure; this packet is a Chisel submodule repin with local Chisel and adapter gates
Advance the LinxCore Chisel lane to the R15 STQEntryBank packet and pin the matching linx-core skill update. This keeps the superproject pointed at the first STQ row-state owner and the reusable gate future LSU agents must run.

Constraint: Superproject repin is gitlink-only while unrelated root and submodule edits remain dirty
Constraint: rtl/LinxCore=54b164bd98e692359ef60607e2820ab396514c5a and skills/linx-skills=4d726682476b086e0c153426c36266c665ed911f
Rejected: Bundle unrelated root/QEMU/workload edits | they pre-existed and are outside the R15 Chisel packet
Confidence: high
Scope-risk: narrow
Directive: Future STQ memory-side packets should build around STQEntryBank and keep storeCommitQ/SCB/MDB/data-array/forwarding owners separate
Tested: bash tools/chisel/build_chisel.sh
Tested: bash tools/chisel/run_chisel_tests.sh --only STQEntryBank
Tested: bash tools/chisel/run_chisel_tests.sh --only STQFlushPrune
Tested: bash tools/chisel/run_chisel_tests.sh --only RecoveryCleanupControl
Tested: bash tools/chisel/run_chisel_tests.sh --only FlushControl
Tested: bash tools/chisel/run_chisel_tests.sh --only ROBEntryBank
Tested: bash tools/chisel/run_chisel_rob_bookkeeping.sh --reduced-rob
Tested: python3 tools/chisel/trace_schema_adapter.py --self-test
Tested: bash tools/chisel/run_chisel_qemu_crosscheck.sh --dry-run
Tested: bash tools/chisel/run_chisel_reduced_rob_xcheck.sh
Tested: python3 /Users/zhoubot/.codex/skills/.system/skill-creator/scripts/quick_validate.py /Users/zhoubot/linx-isa/skills/linx-skills/linx-core
Tested: python3 /Users/zhoubot/linx-isa/skills/linx-skills/scripts/check_skill_change_scope.py --repo-root /Users/zhoubot/linx-isa/skills/linx-skills --base origin/main
Not-tested: Full root PR strict closure; this packet is a Chisel submodule repin with local Chisel and adapter gates
The Chisel LinxCore lane advanced from STQ row-state ownership to a separate storeCommitQ ordering owner. The superproject now points at the LinxCore packet and matching linx-core skill update so future agents start from the same gate and owner boundary.

Constraint: Root worktree has unrelated AVS/QEMU/workload edits, so this commit stages only the rtl/LinxCore and skills/linx-skills gitlinks.

Rejected: Defer the skills repin | later agents use the skill text before packet docs, so the R16 gate should travel with the RTL pin.

Confidence: high

Scope-risk: narrow

Directive: Keep future STQ memory-side commits gitlink-only at the root unless they intentionally change superproject-owned runners or docs.

Tested: git -C /Users/zhoubot/linx-isa diff --cached --submodule=short

Tested: LinxCore a9e5f3a gates documented in submodule commit

Tested: linx-skills b088e77 skill validation documented in submodule commit

Not-tested: Full superproject PR strict closure; unrelated dirty root files remain outside this packet.
The Chisel LinxCore lane now exposes a bank-side committed-row free mask for the store commit queue. The root pin moves both the RTL submodule and the matching linx-core skill update together so later LSU agents inherit the same owner boundary.

Constraint: Root worktree has unrelated AVS/QEMU/workload edits, so this commit stages only rtl/LinxCore and skills/linx-skills gitlinks.

Rejected: Commit root docs with this packet | the only root-owned change needed here is submodule provenance.

Confidence: high

Scope-risk: narrow

Directive: Keep future STQ memory-side packets gitlink-only at the root unless they intentionally change superproject-owned runners or docs.

Tested: git -C /Users/zhoubot/linx-isa diff --cached --submodule=short

Tested: LinxCore 61ab554 gates documented in submodule commit

Tested: linx-skills 573be7d skill validation documented in submodule commit

Not-tested: Full superproject PR strict closure; unrelated dirty root files remain outside this packet.
All SPECint train benchmarks now run through a bounded diagnostic loop that can distinguish live execution from deadlock. The root flow records the new QEMU heartbeat/TP evidence, tracks the SPEC helper scripts needed to reproduce static C/C++ builds, raises the initramfs launcher stack limit, and adds a musl TP-preservation smoke for syscall/runtime handoff coverage.

Constraint: SPEC CPU2017 workloads are private and ignored, so the reproducible public surface is the runner/build tooling plus generated artifact paths.

Constraint: C++ SPEC binaries must enter through musl _start; bypassing startup with -e main skips TLS/runtime initialization.

Rejected: Leave SPEC build helpers ignored | future agents would reproduce the old C++ main-entry failure.

Rejected: Treat every timeout as deadlock | heartbeat/BPC progress shows several cases are live throughput limits.

Confidence: high

Scope-risk: moderate

Directive: Keep the PR SPEC gate on test/train smoke; use --profile train or SPECINT_TRAIN_ALL_TIMEOUT for all-benchmark diagnostics.

Directive: Use LINX_TP_TRACE_SSR and LINX_TP_TRACE_READS only for focused runs, not train-all profiling.

Tested: ninja -C emulator/qemu/build-linx qemu-system-linx64

Tested: bash -n tools/spec2017/build_int_rate_linx.sh tools/spec2017/linx_cc.sh tools/spec2017/linx_cxx.sh tools/spec2017/reextract_cpu2017.sh

Tested: python3 -m py_compile tools/spec2017/run_int_rate_qemu.py tools/spec2017/run_stage_qemu_matrix.py tools/bringup/run_specint_fast_gate.py tools/spec2017/prepare_phaseb_static_images.py avs/qemu/run_musl_smoke.py

Tested: python3 -m json.tool docs/bringup/benchmark_qemu_linux_flow.json

Tested: python3 tools/bringup/run_specint_fast_gate.py --profile train --dry-run --out-dir workloads/generated/specint-fast-gate-dryrun-20260628-heartbeat-stacklimit

Tested: python3 avs/qemu/run_musl_smoke.py --mode phase-b --link static --sample tp_preserve --qemu emulator/qemu/build-linx/qemu-system-linx64 --append 'lpj=1000000 loglevel=8 console=ttyS0 kfence.sample_interval=0 norandmaps' --timeout 180 --out-dir avs/qemu/out/musl-tp-preserve-final-20260628

Tested: python3 tools/spec2017/run_stage_qemu_matrix.py --stage b --input-set train --transports initramfs --timeout 180 --qemu-heartbeat-interval 50000000 --no-progress-timeout 120 --guest-heartbeat-sec 0 --append-extra norandmaps --out-dir workloads/generated/specint-train-all-20260628-heartbeat-stacklimit/run

Not-tested: Full refrate SPEC input
Repin the LinxCore RTL and linx-skills submodules so the superproject records the Chisel STQCommitDrain packet and the matching LinxCore skill invariant.

Constraint: Superproject history must preserve submodule provenance for multi-agent Chisel bring-up

Rejected: Repin unrelated dirty root files | this packet only changes the LinxCore and linx-skills gitlinks

Confidence: high

Scope-risk: narrow

Tested: bash tools/chisel/run_chisel_tests.sh --only STQCommitDrain

Tested: bash tools/chisel/build_chisel.sh

Tested: bash tools/chisel/run_chisel_tests.sh --only STQCommitQueue

Tested: bash tools/chisel/run_chisel_tests.sh --only STQEntryBank

Tested: bash tools/chisel/run_chisel_tests.sh --only STQFlushPrune

Tested: bash tools/chisel/run_chisel_tests.sh --only RecoveryCleanupControl

Tested: bash tools/chisel/run_chisel_tests.sh --only FlushControl

Tested: bash tools/chisel/run_chisel_tests.sh --only ROBEntryBank

Tested: bash tools/chisel/run_chisel_rob_bookkeeping.sh --reduced-rob

Tested: python3 tools/chisel/trace_schema_adapter.py --self-test

Tested: bash tools/chisel/run_chisel_qemu_crosscheck.sh --dry-run

Tested: bash tools/chisel/run_chisel_reduced_rob_xcheck.sh

Tested: bash tools/chisel/run_chisel_top_xcheck.sh

Tested: bash tools/chisel/run_chisel_verilator_lint.sh

Tested: python3 /Users/zhoubot/.codex/skills/.system/skill-creator/scripts/quick_validate.py /Users/zhoubot/linx-isa/skills/linx-skills/linx-core

Tested: python3 /Users/zhoubot/linx-isa/skills/linx-skills/scripts/check_skill_change_scope.py --repo-root /Users/zhoubot/linx-isa/skills/linx-skills --base origin/main

Not-tested: Full live frontend/backend QEMU trace compare; top still emits reduced synthetic commit rows
LinxISA Automation added 28 commits July 1, 2026 14:06
R151 adds model and QEMU git context to the common Chisel cross-check manifest and records the reusable rule in the LinxCore skill. Repin the superproject to the pushed LinxCore and linx-skills commits so the evidence script and the agent workflow advance together.

Constraint: Superproject has unrelated dirty bringup/docs/tool files and dirty submodule worktrees

Rejected: Stage all local changes | unrelated work predates this packet and is not required for R151

Confidence: high

Scope-risk: narrow

Directive: Keep LinxCore and linx-skills repins paired when a packet changes both RTL evidence tooling and skill policy

Tested: LinxCore R151 gates passed before submodule repin

Tested: linx-core skill quick_validate and scope guard passed before submodule repin

Not-tested: Full superproject clean-tree gate because unrelated local changes remain
The emulator PR now includes the review cleanup that moves Linx block lookahead away from debugger memory reads and onto translator code fetches. The superproject pin is advanced so the top-level v0.57 flow consumes that reviewed QEMU state.

Constraint: Keep the root update to the submodule pointer only.

Confidence: high

Scope-risk: narrow

Tested: git diff --submodule=short -- emulator/qemu

Tested: QEMU build and v0.57 finisher probe passed in emulator/qemu
Advance the superproject to the LinxCore R152 commit that isolates reduced BFU body-cut arming from the latched prediction payload.

Constraint: Keep the superproject pin aligned with the pushed LinxCore branch for reproducible generated-RTL replay evidence
Confidence: high
Scope-risk: narrow
Tested: LinxCore R152 focused Chisel tests and generated-RTL replay before pinning
Not-tested: Full superproject matrix; unrelated dirty files are intentionally unstaged
Advance the skills submodule to the R152 linx-core guidance that records the temporary BFU cut-arm diagnostic contract.

Constraint: Keep superproject governance aligned with pushed LinxCore and linx-skills branches
Confidence: high
Scope-risk: narrow
Tested: linx-core skill quick_validate and skill change-scope guard before pinning
Not-tested: Full superproject matrix; unrelated dirty files are intentionally unstaged
The LLVM PR now has exact coverage for v0.57 absolute TileReg descriptor ids and MC handling for the full explicit tile namespace. Advance the superproject pin so the top-level v0.57 flow consumes that reviewed compiler state.

Constraint: Root commit is limited to the LLVM submodule pointer.

Confidence: high

Scope-risk: narrow

Tested: python3 tools/isa/check_pto_v057_downstream.py --strict

Tested: git diff --check -- compiler/llvm

Tested: LLVM direct FileCheck/MC coverage in compiler/llvm
The v0.57 block definition now treats T0 through T255 as the canonical assembly reference syntax for the 8-bit TileReg namespace. The documentation and machine-readable state describe T0 as the direct spelling of the existing source-only zero tile, and the superproject pins LLVM to the matching parser/printer update.

Constraint: v0.57 is the current profile, so this records the latest block definition rather than a legacy comparison.

Constraint: Encoded id 0 remains source-only padding; compiler-generated destinations start at T1.

Rejected: Recast T0 as an ordinary destination tile | would contradict the existing block definition and downstream descriptor execution.

Rejected: Expand this docs pin into a 256-physical-register LLVM allocator change | not required for direct descriptor references and would broaden the migration scope.

Confidence: high

Scope-risk: narrow

Directive: Keep docs, JSON state, and LLVM printer syntax synchronized whenever TileReg reference syntax changes.

Tested: python3 -m json.tool for isa/v0.57 meta, tile_reg, block_definition, downstream_migration JSON

Tested: python3 tools/isa/check_pto_v057_encoding.py --spec isa/v0.57/state/pto_encoding.json

Tested: python3 tools/isa/check_pto_v057_downstream.py --strict

Tested: bash tools/ci/check_repo_layout.sh

Tested: LLVM build and descriptor FileCheck gates passed in compiler/llvm
This repins LinxCore to the R153 resolved BFU body-window commit and linx-skills to the matching skill-evolve guidance. Other root-level edits remain unstaged.

Constraint: Superproject must cite the exact LinxCore and skills SHAs used by the pushed bring-up evidence
Rejected: Include root architecture and bringup edits | they were pre-existing unrelated worktree changes
Confidence: high
Scope-risk: narrow
Directive: Keep this repin gitlink-only unless the corresponding module/docs changes are intentionally staged in the superproject
Tested: LinxCore R153 focused Chisel tests and 4000-row generated-RTL replay passed before repin; linx-core skill quick_validate and scope guard passed
Not-tested: Full strict_cross_repo PR tier
The superproject needs to reference the LinxCore commit that adds the R154 resolved body-end source arbiter and generated-RTL replay evidence. This is a gitlink-only repin so unrelated dirty docs, bring-up files, and skills worktree changes remain outside the commit.

Constraint: LinxCore module evidence landed in rtl/LinxCore before superproject repin
Rejected: Include root documentation and bring-up dirt | unrelated pre-existing workspace changes
Confidence: high
Scope-risk: narrow
Directive: Keep this commit gitlink-only; do not infer closure for strict_cross_repo from the module replay alone
Tested: LinxCore R154 unit/top/generated-RTL replay gates before repin
Not-tested: full strict_cross_repo PR gate after repin
Pin the superproject to the LinxCore R155 commit that keeps local BFU body-end feedback pending until replay-qualified selection. This lets downstream agents consume the exact Chisel module, harness counters, docs, and 4000-row QEMU/Verilator replay evidence from the superproject branch.

Constraint: Superproject worktree has unrelated dirty docs, bringup outputs, experimental files, and a dirty skills submodule that must remain unstaged
Rejected: Repin skills or bringup artifacts in this commit | unrelated to the LinxCore R155 RTL evidence
Confidence: high
Scope-risk: narrow
Directive: Keep future LinxCore RTL evidence repins scoped to the gitlink unless the packet intentionally changes cross-repo scripts or skills
Tested: LinxCore commit 6900b91 R155 focused Chisel tests and 4000-row QEMU/Verilator replay passed before repin
Tested: git diff --cached --submodule=short -- rtl/LinxCore
Not-tested: Full strict_cross_repo; full CoreMark RTL completion
Pin the superproject to the LinxCore R156 packet that proves pending runtime body-end feedback is active-header eligible before it is promoted into source selection. The gitlink now carries the diagnostic checker, tests, harness mismatch gate, docs, and 4000-row replay evidence.

Constraint: Superproject worktree still has unrelated dirty docs, bringup outputs, experimental files, and a dirty skills submodule
Rejected: Bundle unrelated docs or skills changes | outside the R156 LinxCore evidence packet
Confidence: high
Scope-risk: narrow
Directive: Keep future LinxCore evidence repins scoped unless the packet intentionally changes cross-repo tools or skills
Tested: LinxCore commit e1b0611 R156 focused Chisel tests and 4000-row QEMU/Verilator replay passed before repin
Tested: git diff --cached --submodule=short -- rtl/LinxCore
Not-tested: Full strict_cross_repo; replay-free BFU source selection; full CoreMark RTL completion
LinxCore R157 promotes active-header-qualified BFU runtime body-end feedback into the resolved source path and retains replay proof through a promoted-runtime oracle. Pin the superproject to that pushed submodule SHA so the LinxISA branch records the verified RTL packet.

Constraint: Superproject pins must reference the pushed submodule SHA used for the generated-RTL evidence.

Confidence: high

Scope-risk: narrow

Directive: Keep rtl/LinxCore pinned to a pushed commit; do not repoint to a dirty local submodule state.

Tested: LinxCore generated/r157-promoted-runtime-source-4000-rtl-replay compared=3280 mismatches=0; promoted oracle replay matches=159 mismatches=0 overwrites=0.

Not-tested: Full superproject PR strict closure; this is a gitlink-only repin after module-owned gates.
The superproject now mirrors the LinxCore architecture contract that treats LinxCoreModel as the executable Janus Core reference for behavior-sensitive RTL work. The gitlink is advanced to the LinxCore commit that records the active model branch and checked SHA.

Constraint: Superproject branch linx-isa-0.57 pins model/LinxCoreModel at 3c0878d and LinxCore at ba73c36

Rejected: Pin only the submodule without mirrored docs | the superproject architecture view would remain stale

Confidence: high

Scope-risk: narrow

Directive: Keep superproject LinxCore architecture mirror synchronized with rtl/LinxCore/docs/architecture when model-reference contracts change

Tested: git diff --check in /Users/zhoubot/linx-isa

Tested: staged diff audit limited to four architecture docs plus rtl/LinxCore gitlink

Not-tested: full superproject architecture lint
The superproject now points at the LinxCore commit that records the R158 10000-row live CoreMark QEMU-to-Chisel proof. This keeps the pin lane aligned with the latest reduced RTL evidence while leaving unrelated bring-up worktree edits out of the commit.

Constraint: Existing superproject worktree has unrelated dirty bring-up docs/tools and skills/linx-skills state

Rejected: Stage all local superproject changes | unrelated bring-up edits are outside the LinxCore R158 packet

Confidence: high

Scope-risk: narrow

Directive: Do not cite this as a full clean-superproject closure gate; the R158 manifest reports dirty superproject state from unrelated files

Tested: staged diff audited as rtl/LinxCore gitlink only

Tested: LinxCore R158 10000-row live CoreMark xcheck compared 8851 rows with zero mismatches

Not-tested: full superproject strict closure
The superproject now points at the LinxCore commit that records the R159 20000-row reduced live CoreMark proof. This keeps the pin lane aligned with the latest pushed RTL evidence while leaving unrelated bring-up worktree edits out of the commit.

Constraint: Existing superproject worktree has unrelated dirty bring-up docs/tools and skills/linx-skills state

Rejected: Stage all local superproject changes | unrelated bring-up edits are outside the LinxCore R159 packet

Confidence: high

Scope-risk: narrow

Directive: Do not cite this as a full clean-superproject closure gate; the R159 manifest reports dirty superproject state from unrelated files

Tested: staged diff audited as rtl/LinxCore gitlink only

Tested: LinxCore R159 20000-row live CoreMark xcheck compared 18137 rows with zero mismatches

Not-tested: full superproject strict closure
The LinxCore submodule now points at the R160 reduced live-QEMU/CoreMark evidence commit, preserving the 50000-row generated-RTL comparator proof in the superproject lane.

Constraint: The root checkout already has unrelated bring-up and skills changes, so this commit stages only the rtl/LinxCore gitlink.

Rejected: Include generated report artifacts in the superproject | the LinxCore docs and generated run directory already identify the manifest and report paths.

Confidence: high

Scope-risk: narrow

Directive: Keep future LinxCore evidence pins gitlink-only unless a root-level gate or manifest also changes intentionally.

Tested: git diff --submodule=short -- rtl/LinxCore

Tested: LinxCore R160 50000-row live-QEMU generated-RTL cross-check passed before repin

Not-tested: Full LinxCore RTL CoreMark emulation under Verilator
The LinxCore submodule now points at the R161 reduced live-QEMU/CoreMark evidence commit, preserving the 100000-row generated-RTL comparator proof in the superproject lane.

Constraint: The root checkout still contains unrelated bring-up and skills changes, so this commit stages only the rtl/LinxCore gitlink.

Rejected: Stage unrelated root bring-up files | they are not part of the LinxCore evidence pin.

Confidence: high

Scope-risk: narrow

Directive: Keep this lane gitlink-only unless a future packet intentionally updates root-level evidence manifests.

Tested: git diff --submodule=short -- rtl/LinxCore

Tested: LinxCore R161 100000-row live-QEMU generated-RTL cross-check passed before repin

Not-tested: Full LinxCore RTL CoreMark emulation under Verilator
The LinxCore submodule now points at the R162 reduced live-QEMU/CoreMark evidence commit, preserving the 200000-row generated-RTL comparator proof in the superproject lane.

Constraint: The root checkout still has unrelated bring-up and skills changes, so this commit stages only the rtl/LinxCore gitlink.

Rejected: Stage unrelated root dirty files | they are outside the LinxCore evidence packet.

Confidence: high

Scope-risk: narrow

Directive: Keep future reduced-CoreMark evidence pins gitlink-only unless root-level manifests intentionally change.

Tested: git diff --submodule=short -- rtl/LinxCore

Tested: LinxCore R162 200000-row live-QEMU generated-RTL cross-check passed before repin

Not-tested: Full LinxCore RTL CoreMark emulation under Verilator
The LinxCore submodule now points at the R163 documentation commit that records the 400000-row reduced CoreMark live-QEMU/Verilator proof. This keeps the superproject branch aligned with the pushed LinxCore evidence packet while leaving unrelated bring-up edits unstaged.

Constraint: Superproject worktree contains unrelated dirty bring-up files that are intentionally not part of this pin.

Rejected: Stage all dirty superproject files | they are outside the RTL CoreMark evidence packet.

Confidence: high

Scope-risk: narrow

Directive: Keep future LinxCore evidence pins gitlink-only unless the run also updates canonical superproject gate metadata.

Tested: LinxCore R163 gate passed with compared=370994 and mismatches=0; git diff --check passed in the submodule.

Not-tested: Superproject strict cross-repo gate; this is a gitlink-only pin over existing unrelated dirt.
The LinxCore submodule now points at the R164 documentation commit that records the 800000-row reduced CoreMark live-QEMU/Verilator proof. This keeps the superproject branch aligned with the pushed LinxCore evidence packet while leaving unrelated bring-up and submodule edits unstaged.

Constraint: Superproject worktree contains unrelated dirty files and submodules that are intentionally not part of this pin.

Rejected: Stage all dirty superproject files | they are outside the RTL CoreMark evidence packet.

Confidence: high

Scope-risk: narrow

Directive: Keep future LinxCore evidence pins gitlink-only unless the run also updates canonical superproject gate metadata.

Tested: LinxCore R164 gate passed with compared=742422 and mismatches=0; git diff --check passed in the submodule.

Not-tested: Superproject strict cross-repo gate; this is a gitlink-only pin over existing unrelated dirt.
The LinxCore topic now contains the R165 documentation packet for the 1600000-row reduced live-QEMU/Verilator CoreMark proof. This superproject commit advances only the LinxCore submodule pointer so downstream agents can reproduce the latest submitted evidence from the project-level topic.

Constraint: The main superproject worktree has unrelated dirty bring-up gate and QEMU files, so this pin was made in a clean temporary worktree from origin/linx-isa-0.57.

Rejected: Commit from the dirty main superproject worktree | it would risk staging unrelated gate outputs or QEMU edits.

Confidence: high

Scope-risk: narrow

Directive: Keep future evidence pins limited to the relevant submodule gitlink unless the packet intentionally changes superproject-owned gates or docs.

Tested: Superproject git diff --cached --submodule=log showed only rtl/LinxCore 9f251686..8801b5bc; git diff --check --cached.

Not-tested: Re-running the R165 Verilator/QEMU gate from the temporary superproject worktree.
The LinxCore topic now contains the R166 documentation packet for the 3200000-row reduced live-QEMU/Verilator CoreMark proof. This advances the superproject topic to the latest submitted LinxCore evidence without touching other submodules or bring-up gates.

Constraint: The active main superproject worktree can contain unrelated local state; this pin was made in a clean temporary worktree from origin/linx-isa-0.57.

Rejected: Commit from the main superproject worktree | it would make unrelated local files part of the staging decision.

Confidence: high

Scope-risk: narrow

Directive: Keep evidence-pin commits limited to the submodule gitlink unless the packet intentionally changes superproject-owned artifacts.

Tested: Superproject git diff --cached --submodule=log showed only rtl/LinxCore 8801b5bc..a71ff68c; git diff --check --cached.

Not-tested: Re-running the R166 Verilator/QEMU gate from the temporary superproject worktree.
The LinxCore submodule now contains the verified R167 ownership extraction for scalar-done to block-retire sequencing. Repinning the superproject keeps the canonical 0.57 lane reproducible without staging unrelated emulator or experimental worktree changes.

Constraint: Superproject pin must be gitlink-only because the main checkout has unrelated qemu and experimental dirt

Rejected: Commit from the dirty main superproject checkout | would risk staging unrelated local state

Confidence: high

Scope-risk: narrow

Directive: Keep future LinxCore RTL packet pins gitlink-only unless a cross-repo artifact intentionally changes with the packet

Tested: git diff --cached --submodule=short showed only rtl/LinxCore a71ff68c -> bd2cea47

Not-tested: No superproject-wide build rerun; LinxCore R167 gates are recorded in the submodule commit and docs ledger
The LinxCore submodule now contains the verified R168 extraction of reduced marker lifecycle state into BCTRL. Repinning the 0.57 lane preserves the submitted R168 evidence while keeping unrelated emulator and experimental changes out of the commit.

Constraint: Superproject pin must remain gitlink-only from a clean worktree

Rejected: Commit from the dirty main superproject checkout | unrelated local emulator/qemu and experimental state is present

Confidence: high

Scope-risk: narrow

Directive: Keep marker-lifecycle follow-up pins separate from unrelated qemu/model maintenance unless their evidence requires a cross-repo change

Tested: git diff --cached --submodule=short showed only rtl/LinxCore bd2cea47 -> 43a75026

Not-tested: No superproject-wide build rerun; LinxCore R168 gates are recorded in the submodule commit and docs ledger
The superproject pin advances the Chisel RTL lane to R169 so downstream agents consume the ROB marker-retire source boundary with the matching docs and focused gate evidence.

Constraint: Canonical checkout has unrelated qemu/docs/tools and experimental dirt, so the gitlink-only pin was created from a clean worktree.

Confidence: high

Scope-risk: narrow

Directive: Keep this commit gitlink-only; do not absorb local emulator/qemu, docs, tools, or experimental workspace state into LinxCore pins.

Tested: LinxCore R169 focused gates and 6000-row CoreMark reduced xcheck

Tested: git diff --check

Not-tested: superproject strict cross-repo closure
The superproject pin advances the Chisel RTL lane to R170 so downstream agents get the policy-free marker retire-source serializer boundary on top of the R169 ROB source publication.

Constraint: Canonical checkout has unrelated qemu/docs/tools and experimental dirt, so the gitlink-only pin was created from a clean worktree.

Confidence: high

Scope-risk: narrow

Directive: Keep this commit gitlink-only; lifecycle integration and recovery behavior belong in LinxCore, not the pin commit.

Tested: LinxCore R170 serializer and adjacent lifecycle gates

Tested: git diff --check

Not-tested: superproject strict cross-repo closure
The R171 LinxCore packet makes marker retire-source preservation part of the backend ROB deallocation handshake while keeping lifecycle policy deferred. This superproject change advances only the rtl/LinxCore gitlink so pin-lane consumers use the verified Chisel packet.

Constraint: Canonical /Users/zhoubot/linx-isa checkout contains unrelated dirty bring-up/spec files, so this repin was made from a clean worktree at origin/linx-isa-0.57.\nRejected: Commit from the canonical checkout | would risk staging unrelated dirty superproject files.\nConfidence: high\nScope-risk: narrow\nDirective: Keep this commit gitlink-only; do not mix superproject docs or workload changes into LinxCore repins.\nTested: git diff --check\nTested: git diff --cached --submodule=short\nNot-tested: Full superproject strict_cross_repo; LinxCore packet gates ran in the submodule before this repin.
Advance rtl/LinxCore from the R171 marker retire-source serializer integration to R172, where serialized retired marker rows feed BlockMarkerLifecycle through row-owned block BID evidence.

Constraint: The canonical superproject checkout is dirty with unrelated local files, so this repin is made from a clean worktree and stages only the rtl/LinxCore gitlink.

Confidence: high

Scope-risk: narrow

Directive: Keep superproject repins gitlink-only unless a cross-repo artifact must intentionally move with the submodule.

Tested: git diff --check in /Users/zhoubot/.codex/worktrees/r172-linx-isa

Tested: LinxCore R172 gates passed before repin, including BlockMarkerLifecycle, BlockMarkerRetireSourceSerializer, DecodeRenameROBPath, LinxCoreFrontendFetchRfAluTraceTop, and generated/r172-retired-marker-lifecycle-6000-qemu-elf-xcheck with compared=5137 mismatches=0.

Not-tested: no full superproject workload rerun; this commit changes only the rtl/LinxCore gitlink.
Advance rtl/LinxCore from R172 retired marker lifecycle consumption to R173 marker retire-source recovery pruning.

Constraint: Canonical superproject checkout remains dirty with unrelated local files, so this repin is made from a clean worktree and stages only rtl/LinxCore.

Confidence: high

Scope-risk: narrow

Directive: Keep superproject repins gitlink-only unless a cross-repo artifact intentionally moves with the submodule.

Tested: git diff --check in /Users/zhoubot/.codex/worktrees/r173-linx-isa

Tested: LinxCore R173 gates passed before repin, including BlockMarkerRetireSourceSerializer, DecodeRenameROBPath, LinxCoreFrontendFetchRfAluTraceTop, and generated/r173-marker-retire-source-flush-prune-6000-qemu-elf-xcheck with compared=5137 mismatches=0.

Not-tested: no full superproject workload rerun; this commit changes only the rtl/LinxCore gitlink.
@zhoubot zhoubot merged commit 8d7582a into main Jul 1, 2026
1 check passed
@zhoubot zhoubot deleted the linx-isa-0.57 branch July 1, 2026 14:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant