Skip to content

bringup: pin PTO ASLRef functional-model chain - #191

Draft
zhoubot wants to merge 22 commits into
mainfrom
codex/aslref-model-pins
Draft

zhoubot wants to merge 22 commits into
mainfrom
codex/aslref-model-pins

Conversation

@zhoubot

@zhoubot zhoubot commented Aug 31, 2026

Copy link
Copy Markdown
Collaborator

Summary

Consolidate the existing PTO 0.58.5 review projection and pin the new ARM-style
ASLRef functional-model chain:

The v0.58 model lock binds commits, trees, PTO release manifest, model lock,
model ABI, worker protocol, consumer modeling spec, and the validated
scalar/block/Tile result hashes. Any gitlink or identity mismatch fails closed.

This PR also carries the previously prepared PTO 0.58.5 ISA/docs/AVS projection.
Legacy Shared source variants are retired from the C codec; B.SUBVIEW and
B.ASSEMBLE remain explicitly decode-only in Sail until their carrier-state
semantics are implemented, rather than being silently modeled as no-ops.

Closes #190

Validation

  • bash tools/ci/check_repo_layout.sh
  • python3 tools/isa/build_golden.py --profile v0.58 --check
  • python3 tools/isa/validate_spec.py --profile v0.58
  • python3 tools/isa/check_canonical_v058.py --root .
  • python3 tools/bringup/check_avs_contract.py --matrix avs/linx_avs_v1_test_matrix.yaml
  • python3 tools/bringup/check_sail_model.py --require-parser --require-c-backend
  • mkdocs build --strict
  • (Optional) python3 tools/bringup/check_avs_profile_closure.py --matrix avs/linx_avs_v1_test_matrix.yaml --status avs/linx_avs_v1_test_matrix_status.json --tier pr
  • (Optional) bash tools/regression/run.sh

Additional validation:

  • python3 -m unittest discover -s tools/isa -p 'test_*.py': 38/38 PASS
  • compiler fixture tests: 16/16 PASS
  • python3 tools/isa/check_pto_functional_model_lock.py: PASS
  • documentation integrity/projection check: PASS
  • Sail parser, directed tests, coverage and C backend: PASS
  • SuperScalarModel dependency: 21/21 CTest plus three gfrun ELF cases PASS

Submodules (if touched)

  • Submodule SHAs are intentional and minimal
  • .gitmodules URLs remain in the LinxISA org
    • PTO architecture and reference-model owners intentionally use the PTO-ISA
      organization; this is validated by the exact component/model lock.
  • Any cross-repo change was merged upstream first
    • Deliberately false while this PR is Draft. The three dependency PRs remain
      open and must not be merged automatically.

Draft policy

Do not merge this PR until PTO-ISA/pto-spec#188, PTO-ISA/asl-model#2, and
LinxISA/SuperScalarModel#428 are reviewed and their final heads are repinned.

@zhoubot

zhoubot commented Aug 31, 2026

Copy link
Copy Markdown
Collaborator Author

Pinned draft dependencies: PTO-ISA/pto-spec#188, PTO-ISA/asl-model#2, and LinxISA/SuperScalarModel#428. Final gitlinks must be refreshed after review; do not merge automatically.

@zhoubot

zhoubot commented Aug 31, 2026

Copy link
Copy Markdown
Collaborator Author

Scope decision and downstream update: the functional-model lock intentionally carries only the three stop-PC result hashes. Host-exit is deferred to PTO-ISA/pto-spec#150. The tools/model codec gate is now handled by LinxISA/linx-model#19 (Issue #18) and pinned at e9f14d9228732f0589f309285cbc8aabaa698353.

@zhoubot

zhoubot commented Aug 31, 2026

Copy link
Copy Markdown
Collaborator Author

Downstream QEMU closure added: LinxISA/qemu#79 (Issue #78), pinned at b6fbb378a7614c0f8a8805b27e55b687eb088828. Local evidence: canonical TEPL selector gate passes with 85 operations, opcode metadata audit passes, and QEMU source regressions pass 25/25.

@jiale-wangOwO

Copy link
Copy Markdown
Contributor

Cross-repository decisions and merge order are now tracked in PTO-ISA/asl-model#7. This pinning PR must remain last and be refreshed only after the upstream model/spec/gfrun heads stabilize.

@zhoubot
zhoubot force-pushed the codex/aslref-model-pins branch from e5f35b8 to 28c3591 Compare September 1, 2026 19:45
@zhoubot

zhoubot commented Sep 2, 2026

Copy link
Copy Markdown
Collaborator Author

Scalar rollback refresh is staged in #193. It repins merged PTO-SPEC 33637171… and merged asl-model 3e775759…, restores Sail SrcRType/CSEL behavior, imports AGU raw-11 reservation and bit-granular HL.BFI, and passes the hosted Sail parser/C-backend/directed/AVS lane. #193 remains Draft because this base PR still has the private SuperScalarModel checkout blocker and the existing tools/model catalog freshness failure; neither was bypassed.

@jiale-wangOwO

Copy link
Copy Markdown
Contributor

Current CI diagnosis (2026-09-02):

  • model fails in linx_model_check_gen_minst_codec: the lock still points tools/model at bf9d73cff60009e9d40e7f3d240411d96af8cf87 (old catalog). The authoritative regenerated projection is isa: regenerate codec for PTO 0.58.5 linx-model#19, e9f14d9228732f0589f309285cbc8aabaa698353, tree 970ca59157a53349d2ccd75d942526f007df7acc. I prepared dependent PR fix: repin linx-model codec projection in #191 #194, which updates the gitlink and component-lock.v0.58.json together. It passes check_component_lock.py locally.
  • guards fails before any lock checks: git submodule update --init tools/SuperScalarModel cannot clone https://github.com/LinxISA/SuperScalarModel.git because that repository is private and the GitHub-hosted GITHUB_TOKEN has no access to sibling private repositories. This is an infrastructure permission issue, not a pin mismatch. The same access must be supplied to the trusted-push workflow, or a trusted runner must have a read credential. Do not make the consumer URL public or replace it with a different repository; the lock must continue to identify the actual consumer.
  • guard is the aggregate policy doing its intended fail-closed behavior because the trusted push result is not available.

Recommended order: merge/land linx-model#19, merge #194 into this branch, then configure a read-only organization credential (for example an organization GitHub App/PAT secret) for the private SuperScalarModel checkout in both CI workflows. Re-run guards/model before changing any remaining pins. The branch remains Draft until the exact leaf PRs are stable.

@jiale-wangOwO

Copy link
Copy Markdown
Contributor

I also prepared dependent PR #195 to fix the CI checkout blocker: #195

It adds explicit SUPERSCALARMODEL_READ_TOKEN handling to both the static and trusted-push workflows and documents the required least-privilege credential. The submodule URL and lock identity remain unchanged; no public mirror or fallback is introduced. A maintainer must add the repository secret (GitHub App/fine-grained token with read-only contents access to LinxISA/SuperScalarModel) before this can make the guards job progress past submodule initialization.

@jiale-wangOwO

Copy link
Copy Markdown
Contributor

To reduce the number of overlapping dependent PRs, consolidated the two fixes into dependent PR #196: #196

#196 supersedes and closes #194/#195. It atomically repins tools/model to the accepted linx-model#19 codec projection, makes the model job use its immutable authority checkout, and adds the least-privilege private SuperScalarModel checkout configuration to both workflows. No lock identity, fallback, or fail-closed policy is weakened.

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.

[bringup] Pin PTO ASLRef functional-model dependency chain

2 participants