Skip to content

v0.6.0

Choose a tag to compare

@daniel-makerx daniel-makerx released this 20 Feb 03:32
· 1904 commits to main since this release

v0.6.0 (2024-02-20)

Breaking Changes

  • many functions and classes under puyapy can now be found in puyapy.op. Values that are constant for a transaction in the puyapy.op.Global and puyapy.op.Transaction classes are now typed as final class vars instead of methods

  • Classes related to group transactions are now under the puyapy.gtxn module

  • The following op code classes were renamed:

    Original name New name
    AppGlobals AppGlobal
    AppLocals AppLocal
    Transaction Txn
    TransactionGroup GTxn
    InnerTransaction ITxn
    InnerTransactionGroup GITxn
    CreateInnerTransaction ITxnCreate
    Ecdsa ECDSA
    Ec EC
  • --output-cssa-ir and --output-parallel-copies-ir CLI options have been removed, and --output-final-ir is now --output-destructured-ir to better reflect its position in the compiler chain.

  • The default debug level is now 1, and only one TEAL file will be emitted for each program. To get back the previous default behaviour of only outputting an unannotated teal file, pass -g0.

Feature

  • improve coalescing by performing before sequentialisation, thus reducing chances of interference (a29fba9)

  • reduce number of iterations required by optimiser by enabling fixed point iteration within ControlOp simplifier optimisation step (b7b27d3)

  • add simple pass to collapse constants repeated >= 2 times by using a dupn (47d90d6)

  • add duplicate block elimination as a post-SSA optimisation, at -O2 or above since it can mess with debugging info quite a bit (c13d8fe)

  • add API for creating and submitting inner transactions (#98) (6b76183)

  • move ops into their own module (7678a7e)

  • fix generated class names that are acronyms (#91) (bd3f222)

Fix

  • reduce number of iterations required in TEAL optimiser (597b939)

  • reduce number of iterations required in RCE optimizer, and ensure dominator set is stable by sorting it (2af7135)

  • if simplifying a control op by inlining a block then ensure successor phi arguments are also updated (bdbdb11)