8872 commits in all time Dec 23, 2025 10:36 – Mar 23, 2026 10:36 UTC
TruszczynskiA pera-ios
Merge 8affffdb5b6cab31892740804c40bf952949867a into 654ac173084ee7663d46cf1821d89684994b05cb
Git Commit a3635573 Branch pull/314/merge Document 1/10 ++ 2 --
TruszczynskiA pera-ios
PERA-3709 - Joint Account - Unkey rekeyed account
- Fixed issue with unkeying joint account. Now JA unkey transaction will be sign with correct owner accounts.
Git Commit 8affffdb Branch feature/PERA-3709 Document 1/10 ++ 2 --
achidlow puya
feat: extend GVN to eliminate redundant pure subroutine calls
InvokeSubroutine with target.pure and identical argument VNs now
receives the same value number, eliminating duplicate calls.
Catches redundant _puya_lib.bytes_.is_substring calls across
three test contracts.

Net impact: -72 bytes / -51 ops at O1.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Git Commit f2c216d2 Branch gvn Document 79/1,236 ++ 2,948 --
achidlow puya
feat: extend GVN to handle multi-target assignments
Operations like addw and decode_bytes return multiple values. GVN now
numbers these by storing all target registers in the expression table,
enabling elimination of duplicate multi-return ops.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Git Commit 8f87164a Branch gvn Document 168/11,234 ++ 11,820 --
achidlow puya
feat: extend GVN to number pure zero-arg intrinsics
Remove the `and args` guard so GVN numbers immediate-only pure ops
like txn, txna, arg, etc. These are deterministic within a transaction
and frequently duplicated after inlining.

Net impact: -1177 bytes / -773 ops at O1 across the test suite.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Git Commit cce6d066 Branch gvn Document 300/129,596 ++ 168,141 --
achidlow puya
refactor: simplify GVN internals
- Remove unused get_register_vn method
- Replace save/restore full-dict-copy scoping with delta-based
  push_scope/pop_scope (tracks only keys added per scope)
- Extract _try_replace helper to unify replacement logic (4 call sites)
- Extract _index_vns helper for shared ExtractValue/ReplaceValue pattern
- Add _ScopeDelta attrs class and _Snapshot TypeAlias to eliminate
  repeated tuple type annotations

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Git Commit bcb3434a Branch gvn Document 1/95 ++ 93 --
achidlow puya
chore: compile all
Git Commit f4f90506 Branch gvn Document 300/39,550 ++ 49,471 --
achidlow puya
disable CSE but retain redundant assert removal
Git Commit b909538f Branch gvn Document 2/68 ++ 66 --
achidlow puya
fix: exclude slot-backed ArrayLength from GVN
ArrayLength can read through slot indirection when its base has a
SlotType. The underlying value changes across stores, so these are
not pure functions of their operand VNs. Only number ArrayLength
when the base is a stack value.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Git Commit b8a8c6c3 Branch gvn Document 104/15,192 ++ 11,177 --
achidlow puya
chore: update from_awst snapshots for GVN
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Git Commit a34f1152 Branch gvn Document 1/9 ++ 9 --
achidlow puya
feat: add Global Value Numbering (GVN) optimization pass
Hash-based GVN that assigns canonical value numbers to SSA definitions
and eliminates redundant computations across the dominator tree.
Complements the existing CSE pass by catching deeper equivalences
(value identity through operand VNs, commutative reorderings,
redundant phis).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Git Commit a393eb45 Branch gvn Document 300/40,185 ++ 26,844 --
Merge 95abc23081a0160c098ba7c09344a02775c044cc into d0ff3b68eb6cfb3641b16ac9b7fcd14733c8349d
Git Commit 4e142be1 Branch pull/575/merge Document 15/641 ++ 38 --
chore: show ARC-20 and ARC-62 data
Git Commit 95abc230 Branch feat/arc-89 Document 2/80 ++ 3 --
Merge 170b74aa8d8cf38f3b35c5f2bfbff84a48fee271 into d0ff3b68eb6cfb3641b16ac9b7fcd14733c8349d
Git Commit 2abc8f2e Branch pull/575/merge Document 14/581 ++ 18 --
achidlow puya-ts
?
Git Commit 58eb2a2f Branch biguint-decode-investigation Document 76/9,803 ++ 10,110 --
achidlow puya-ts
tho
Git Commit fe09370f Branch biguint-decode-investigation Document 56/299 ++ 272 --
daniel-makerx puya
Merge 0493beed75465c4b3e1a02d2cf1f27711d58cfe8 into 849e87ab2dbe46afc5cd7f06cbdb2dc8247a70f7
Git Commit 8cfa8536 Branch pull/640/merge Document 300/453,385 ++ 301,970 --
achidlow puya
chore: compile all
Git Commit 0493beed Branch ir-array-pop-additional-all-array-types Document 300/862 ++ 667 --
achidlow puya
improve error message on attempted pop from empty dynamic array
Git Commit 64f877b0 Branch ir-array-pop-additional-all-array-types Document 2/3 ++ 3 --
achidlow puya
linting
Git Commit d4e1dca9 Branch ir-array-pop-additional-all-array-types Document 2/3 ++ 6 --
achidlow puya
given that AWST ArrayConcat doesn't (can't) validate operands, restore previous behaviour of invalid type combinations being a code/user error rather than an internal error
Git Commit 84319660 Branch ir-array-pop-additional-all-array-types Document 2/12 ++ 20 --
achidlow puya
add test for read and write of static/fixed size array of dynamic sized elements, where the elements are not themselves byte-length or mutli-byte-length arrays
Git Commit 42d91a1d Branch ir-array-pop-additional-all-array-types Document 58/17,709 ++ 0 --