Skip to content

Unify active identity to PTO ISA 0.59.0.0 and add TLEA wrapper - #286

Merged
VV0003 merged 2 commits into
linxfrom
feat/pto-0590-identity-tlea
Oct 20, 2026
Merged

VV0003 merged 2 commits into
linxfrom
feat/pto-0590-identity-tlea

Conversation

@WLDFA

@WLDFA WLDFA commented Oct 20, 2026

Copy link
Copy Markdown
Collaborator

目标

将活动编码身份统一到 PTO ISA v0.59.0.0 发布基线,统一 0.58.7/v058 的活动命名,并为 TLEA 增加 wrapper 与 usage 页。

变更

① 编码身份 / ABI / projection-SHA → PTO v0.59.0.0

  • 身份载体改到 0.59.0:verify_pto_identity.py 的 ELF note、pto_tileop_api_revision.hpp、Makefile、engine-ops 的 pto_source、engine 契约测试。
  • 同步器改为读取 release manifest(保持 fail-closed),重命名 sync_linxisa_v058_contract.py → sync_pto_isa_0590_contract.py。
  • 身份值已对照只读的 PTO-ISA/pto-spec v0.59.0.0(commit b016532)核验:ABI pto-isa-0.59.0-mode-function-v1、projection SHA 91509080…、release 字段 0.59.0。
  • 诚实边界:保留真实 LinxISA v0.58 来源(无 0.59 profile),development-golden 锁记录在 pto_source.development_lock;发布 manifest 自身为 draft、数值 conformance 受限,均如实记录。119 操作 catalog 与 0.58.7 逐字节一致,仅 encoding identity 变化。

② 0.58.7/v058 命名统一

  • contracts/pto-isa-0.58.7-tile-operations.json → pto-isa-0.59.0-tile-operations.json,并更新全部引用。历史/迁移材料保留旧版本身份,未做机械替换。

③ TLEA wrapper + usage 页 + 解卡文档生成器

  • 依据发布 ASL(TLEA.asl、lea-operands.asl)在 jcore/template_asm.hpp 新增 JCORE wrapper:selector 0x2E、VEC、S32/U32/S64/U64 → S64/U64 字节偏移、仅 RowMajor,对 CUBE_M32/Shared 编译期 fail-closed。
  • 新增 usage 页(解除文档生成器卡住)、更新 support-status.md(按后端分别声明:仅 JCORE,无 CPU-sim/AArch64)、新增契约与能力测试、正/负向目标 fixture。

验证

  • make check:exit 0(catalog alignment = PTO 0.59.0.0 release 119 项;120 个 usage 示例编译通过,含 TLEA)。
  • 主机侧模板实例化(asm 置空):TLEA 正向编译、8 个负向按预期 static_assert 拒绝。
  • 真实目标工具链(llvm-project dev-llvm15_56 @ 084bbc311):Tlea 编到对象,反汇编确认 BSTART.TEPL 46 字节偏移 bundle 正确;run_negatives.sh 中 8 个 TLEA 用例全部通过。

说明:本次只提交 Linx-TileOP-API 的改动。目标工具链更新(src/llvm-project 与 LLVM 重建)不属于本仓库,不在此 PR 内。

🤖 Generated with Claude Code

WLDFA and others added 2 commits October 20, 2026 14:54
Move the active encoding identity (ABI, encoding-projection SHA-256, ELF
release field) from the PTO 0.58.7 development golden to the published PTO ISA
v0.59.0.0 release (commit b016532); unify the 0.58.7/v058 active naming; add
the TLEA JCORE inline-asm wrapper and its usage page.

- Identity carriers -> 0.59.0: verify_pto_identity.py ELF note,
  pto_tileop_api_revision.hpp, Makefile, engine-ops pto_source, engine-contract
  test. Rework the sync tool to read the release manifest (fail-closed), renamed
  sync_linxisa_v058_contract.py -> sync_pto_isa_0590_contract.py.
- Keep the real LinxISA v0.58 source (no 0.59 profile) and record the
  development-golden lock under pto_source.development_lock. The 119-op Tile
  catalog is byte-identical between 0.58.7 and 0.59.0.0; only the encoding
  identity moved. Release manifest status is draft and numeric conformance is
  limited; recorded faithfully.
- Rename contracts/pto-isa-0.58.7-tile-operations.json ->
  pto-isa-0.59.0-tile-operations.json; historical/migration material keeps its
  old-version identity.
- TLEA (selector 0x2E, VEC; S32/U32/S64/U64 -> S64/U64 byte offsets, RowMajor;
  fail-closed on CUBE_M32/Shared): wrapper in jcore/template_asm.hpp, usage
  page, support-status, engine-contract + capability tests, positive/negative
  target fixtures. Backends declared separately (JCORE only; no CPU sim/AArch64).

Verified: make check (exit 0); host-shim template instantiation; and on the
updated Linx toolchain, real target compile + disassembly of the TLEA bundle
and all 8 TLEA negative static_asserts.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Reconcile with upstream #282 (TLEA binding) / #283 (0.59.0 display relabel) /
#284 while keeping the full active-identity migration to the PTO ISA v0.59.0.0
release.

- Identity/naming (this PR's delta): keep the full move — ABI
  pto-isa-0.59.0-mode-function-v1, encoding-projection SHA 91509080..., ELF note,
  contracts/pto-isa-0.59.0-tile-operations.json, engine-ops pto_source release
  provenance, reworked sync_pto_isa_0590_contract.py. This supersedes #283's
  display-only relabel, which left verify_pto_identity / the contract filename /
  engine-ops at 0.58.7.
- TLEA: adopt upstream #282's wrapper and TLEA.md; drop this branch's duplicate
  TLEA wrapper, its TLEA-specific tests, and the Tlea/TleaNegatives target
  fixtures + harness wiring (upstream's binding is canonical). Keep the shared
  selector-46 reassignment in the engine-contract test.
- support-status TLEA row updated to upstream's wrapper (RowMajor + CUBE_M32).
- Regenerated generated/engines.md.

make check passes (exit 0).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@VV0003
VV0003 merged commit 0150baa into linx Oct 20, 2026
2 checks passed
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.

2 participants