Repository navigation
ACT-Backend v1.7
Changes since v1.6, the TAIDL v2.13 pin:
- Moved the tests to act-env py3.14-jax0.11.2 and the pin to TAIDL v2.13 (#90)
- Checked formatting and linting in the workflow (#92)
- Generated a backend's sources in the tree's own layout (#93)
- Mapped the element types the e-graph has and refused the rest by name (#96)
- Refused the constructs the generator does not read, naming each one (#103)
- Renamed the examples to mini_trn and mini_trn_double (#104)
- Removed the container of a stopped run of exec.sh (#106)
- Let the docker scripts take --cpu and --cuda13 (#108)
- Checked a kernel's binary operations, and checked the selector's files only once (#110)
- Shortened the comments and docstrings (#111)
- Split the kernel reader into modules and dropped the constant N (#112)
- Made the docker scripts exit on a failed command or an unknown argument (#117)
- Left no earlier crate when a generation is refused (#119)
This release:
- The version is 1.7 in
pyproject.toml, inact_backend/__init__.pyand in the README's install line, and 1.7.0 in the generated crate'sCargo.tomlandCargo.lock. - This release pins TAIDL v2.13, and its tests install TAIDL-TO v2.6.
- A spec is written in the form TAIDL v2.13 reads, with
ENTRY {unnamed and input k as%In<k>, and a spec that TAIDL v2.13 refuses when it loads never reaches the backend. - A semantics may contain a rank-0 result, an attribute named by an operation word,
orand the two shifts, a constant written astrueorfalse, and thirteen element types, includingpred,f16andf32. - Generation raises
ValueError, naming the instruction and what is refused, for an element type the e-graph lacks, an address attribute in a semantics, a computational attribute that a rewrite cannot read, a division by a constant zero, an input marked in place, a constraint, and machine state. - A refused generation leaves no crate from an earlier one under
targets/<name>/backend/. - A kernel's binary operation that does not have exactly two operands ends the compile, which reports its operand count.
- A generated backend's sources are laid out like the tree's own, and the workflow runs the tree's formatters in check mode and ruff's default lints before the tests.
docker/cleanup.shanddocker/run.sh --persistentexit with the status of a faileddocker ps, anddocker/cleanup.shwith the status of a faileddocker rm.- The scripts write their errors to stderr, and
docker/cleanup.shrefuses an argument it does not know. - The examples are now
mini_trnandmini_trn_double, and their kernel's module isattention, which changes four lines of an assembly but no call. - Its 253 tests run against the installed wheel in
devanshdvj/act-env:py3.14-jax0.11.2with TAIDL-TO v2.6, on amd64 and arm64.