Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
LIBNAME = tileop-api
VERSION = 0.59.0
VERSION = 0.58.7
HEADERS = $(wildcard include/*.h) $(wildcard include/*.hpp) include/jcore include/cpu_sim include/aarch64 include/common
TILEOP_API_REVISION ?= $(shell git rev-parse HEAD 2>/dev/null || printf unknown)
TILEOP_API_REVISION_IS_EXACT ?= $(shell test -z "$$(git status --porcelain --untracked-files=all 2>/dev/null)" && printf 1 || printf 0)
Expand Down Expand Up @@ -53,7 +53,7 @@ install:
echo '#define PTO_TILEOP_API_REVISION_HPP'; \
echo ''; \
echo '#define PTO_TILEOP_API_VERSION "$(VERSION)"'; \
echo '#define PTO_TILEOP_API_SPEC_VERSION "0.59.0"'; \
echo '#define PTO_TILEOP_API_SPEC_VERSION "0.58.7"'; \
echo '#define PTO_TILEOP_API_REVISION "$(TILEOP_API_REVISION)"'; \
echo '#define PTO_TILEOP_API_REVISION_IS_EXACT $(TILEOP_API_REVISION_IS_EXACT)'; \
echo ''; \
Expand Down
29 changes: 10 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,8 @@
# Linx TileOP API

Header-only C++ TileOP bindings for the LinxISA / PTO ISA 0.59.0 architectural
contract. The checked-in catalog and documentation are generated against the
published PTO ISA `v0.59.0.0` release (commit `b016532`, ABI
`pto-isa-0.59.0-mode-function-v1`). The release manifest records
`specification_status: draft` and limits implementation conformance to
`b-fpatr-and-tcvt-e8m0-asl-proven-other-numeric-domains-unproven`; this binding
carries that identity without claiming a finalized specification or full
numeric conformance. The semantic engine inventory remains the LinxISA v0.58
authority projection, whose 119-operation Tile catalog is byte-identical to the
release catalog.
Header-only C++ TileOP bindings for the LinxISA / PTO ISA 0.58.7 architectural contract.
The checked-in catalog and documentation are generated against the PTO ISA 0.58.7
baseline (`0.58.7.0`, ABI `pto-isa-0.58.7-mode-function-v1`).

Installed headers expose their provenance through
`<common/pto_tileop_api_revision.hpp>`. `PTO_TILEOP_API_VERSION` and
Expand All @@ -19,7 +12,7 @@ Installed headers expose their provenance through
allow consumers to reject toolchains that predate a required fix.

The normative operation inventory comes from the checked-in PTO catalog at
[`contracts/pto-isa-0.59.0-tile-operations.json`](contracts/pto-isa-0.59.0-tile-operations.json).
[`contracts/pto-isa-0.58.7-tile-operations.json`](contracts/pto-isa-0.58.7-tile-operations.json).
The public bindings retain the unique compiled `BSTART.TEPL` carrier for VEC/SFU
source compatibility and emit the named TLSU/CUBE operation forms accepted by
the current Linx compiler. The generated engine index is a wrapper compatibility
Expand All @@ -32,7 +25,7 @@ view, not a replacement for the PTO ASL/NDF semantics.
- [CUBE operations](docs/tileop-usage/cube/matrix-matrix/TMATMUL.md)
- [Tile and Shared-register constraints](docs/tileop-usage/concepts/tile-constraints.md)
- [Layout helpers](docs/tileop-usage/layout-and-rearrangement/layout/TCONCAT.md)
- [PTO ISA 0.59.0 CUBE layout operations](docs/tileop-usage/layout-and-rearrangement/layout/TPERMUTE.md)
- [PTO ISA 0.58.7 CUBE layout operations](docs/tileop-usage/layout-and-rearrangement/layout/TPERMUTE.md)
- [Comparison operations](docs/tileop-usage/elementwise-tile-tile/logical/TCMP.md)
- [TEXPDIF](docs/tileop-usage/elementwise-tile-tile/transcendental/TEXPDIF.md)
- [Sorting operations](docs/tileop-usage/irregular-and-complex/sorting/TSORT.md)
Expand All @@ -44,20 +37,18 @@ view, not a replacement for the PTO ASL/NDF semantics.
make check
```

Target compilation requires a Linx LLVM build supporting the PTO ISA 0.59.0
Target compilation requires a Linx LLVM build supporting the PTO ISA 0.58.7
encoding ABI. The old PTO ISA 0.58.3 Linx LLVM requirement belongs only to the
historical migration fixtures under `test/tileop_api` and
`docs/tileop-usage/migration/pto-0583-migration.md`; it is not the current API
baseline. Run the catalog and documentation checks before target compilation.

To refresh the pinned projection, provide the clean, exact reviewed LinxISA
v0.58 authority commit together with a clean checkout of `PTO-ISA/pto-spec` at
the `v0.59.0.0` release commit:
To refresh the pinned projection from the clean, exact reviewed LinxISA
authority commit recorded by the generator:

```sh
python3 tools/sync_pto_isa_0590_contract.py \
/path/to/linx-isa/isa/v0.58/linxisa-v0.58.json \
--pto-root /path/to/pto-spec
python3 tools/sync_linxisa_v058_contract.py \
/path/to/linx-isa/isa/v0.58/linxisa-v0.58.json
python3 tools/generate_engine_docs.py
make check
```
24 changes: 9 additions & 15 deletions contracts/README.md
Original file line number Diff line number Diff line change
@@ -1,25 +1,19 @@
# LinxISA contract projections

`pto-isa-0.59.0-tile-operations.json` is the checked-in machine-readable snapshot
of the published PTO ISA 0.59.0.0 release Tile catalog. It records all 119 accepted direct
`pto-isa-0.58.7-tile-operations.json` is the checked-in machine-readable snapshot
of the PTO ISA 0.58.7 active Tile catalog. It records all 118 accepted direct
operations plus the catalog's deleted and rejected inventories. Its source of
truth is `PTO-ISA/pto-spec/spec/catalog/tile-operations.json`; refresh it only
from the `v0.59.0.0` release commit `b0165320a4b575b18d2f4d93faf40178f661ab49`
and review the resulting diff. These bytes are identical to the PTO 0.58.7
development golden catalog (SHA-256 533db9b8...); only the surrounding encoding
identity moved to the release.
from the pinned PTO release and review the resulting diff.

`linxisa-v0.58-engine-ops.json` is a generated, provenance-pinned projection of
the LinxISA v0.58 authority onto the PTO ISA 0.59.0.0 release encoding identity.
It records operation ownership and encodings; it does not claim that this
repository implements every projected operation. There is no LinxISA 0.59
profile, so the LinxISA `source` stays v0.58 and the development-golden lock it
carried is preserved under `pto_source.development_lock`:
`linxisa-v0.58-engine-ops.json` remains a generated, provenance-pinned
**historical** LinxISA/PTO 0.58.3 projection. It is retained only for legacy
engine/compiler compatibility tests and must not be used to claim current
operation availability:

```bash
python3 tools/sync_pto_isa_0590_contract.py \
/path/to/linx-isa/isa/v0.58/linxisa-v0.58.json \
--pto-root /path/to/pto-spec
python3 tools/sync_linxisa_v058_contract.py \
/path/to/linx-isa/isa/v0.58/linxisa-v0.58.json
```

The catalog drives current operation inventory and documentation checks. ASL/NDF
Expand Down
Loading
Loading