Skip to content

ACT-Backend v1.9

Choose a tag to compare

@DEVANSH-DVJ DEVANSH-DVJ released this 17 Oct 08:44
· 61 commits to master since this release
05ea99d

Changes since v1.8, how a compile ends and what it writes:

  • Reported a dropped candidate with the allocator's reason (#144)
  • Ended a compile that finds no assembly with status 1 and one line on stderr (#146)
  • Prepared the output path first and wrote the output only when complete (#150)
  • Named every limit of a compile and reported which one ended it (#153)
  • Exited 1 when a required flag is missing (#155)
  • Made an unreadable kernel end the compile with the no-assembly line (#157)
  • Read each kernel attribute by name and refused what the reader cannot read (#163)
  • Made a strided slice or clashing shapes end the compile with the no-assembly line (#166)
  • Read a kernel's root from its ROOT mark (#168)
  • Made a kernel line the reader cannot split end the compile with the no-assembly line (#170)
  • Extracted the last e-graph after the iteration limit (#172)
  • Kept the log directory private to its compile and out of the assembly's header (#177)
  • Printed the search's progress only under --verbose (#179)

This release:

  • The version is 1.9 in pyproject.toml, in act_backend/__init__.py and in the README's install line, and 1.9.0 in the generated crate's Cargo.toml and Cargo.lock.
  • A compile that finds no assembly, including one with an unreadable kernel or a failing cost model, ends with one line on stderr that says why, exits with status 1 as a usage error does, and leaves no output.
  • The usage errors and that line are lowercase after Error:, with no final period.
  • A usage error leaves an earlier output untouched, and an output path or log directory that the backend cannot write ends the compile before its search.
  • A compile prints on stdout only the candidates it drops unless given --verbose, and ends its search after one second, or sooner once the time since the start exceeds ten times the time of its best candidate; its no-assembly line says which limit ended it.
  • The kernel reader reads each attribute by name, the root from its ROOT mark, and a rank-0 value as one element, declared as () in the assembly, and it ends the compile with a message naming anything it cannot read.
  • A compile given no --log keeps its candidates in its own directory, which it leaves in place, and one given --log writes into that directory and removes nothing in it.
  • The assembly's header names the kernel's path.
  • The two examples compile attention.hlo to the same assembly as in v1.8, except for the header's # Input file: line.
  • Its 324 tests run against the installed wheel in devanshdvj/act-env:py3.14-jax0.11.2 with TAIDL-TO v2.6, on amd64 and arm64.