Latest Repo Discovered
AlgoID
JavaScript
·
MIT License
Top Contributor of the Month
10902 commits in all time
Jan 24, 2026 04:08 – Apr 24, 2026 04:08 UTC
Merge 4d0211eabd6e1d337e3bec95b9b0a320de5101e0 into af05a35d89d8ced9f1a6fff15e3c90e504042830
77b18d4c
pull/69/merge
1/24 ++ 0 --
refactor: check algorand-python dependency as well
4d0211ea
check-prod-puya
1/6 ++ 6 --
test: cover runtime-bytes / runtime-uint64 bit and byte op branches
Adds runtime-argument calls for getbit/setbit/getbyte/setbyte with constant indices large enough to be statically impossible, restoring 100% line coverage after the generic-index branches were added.
ccea5673
feat/statically-failing-op-validator
1/8 ++ 3 --
test: add coverage test case for StaticallyFailingOpValidator
Exercises every warning-emitting branch in statically_failing_op.py (both the top-level `_check` match arms and the three helpers' immediate-form / stack-form / None-fallthrough paths). Hits 100% line coverage of the validator via a single test case: coverage run -m pytest tests/test_compile.py -k statically_failing_ops -o addopts="" coverage report -m --include="src/puya/ir/validation/statically_failing_op.py" Overlaps deliberately with a handful of the existing regression_tests cases since this is targeted at coverage completeness rather than regression pinning.
8ef21e2e
feat/statically-failing-op-validator
55/7,680 ++ 0 --
refactor: split substring/substring3 and replace2/replace3 into separate cases
Same treatment as extract/extract3: each op has a fixed arg shape, so matching them separately lets the pattern encode the shape. Removes `_substring_start_end` and `_replace_start_and_bytes` helpers and their `*rest` unpacking plumbing. Revealed a missing OP test case, so added coverage.
5c6c21ce
feat/statically-failing-op-validator
52/1,518 ++ 1,323 --
refactor: make validator warning messages generic
Drop specific constant values from the reason strings so they describe the class of failure rather than the specific bad inputs, e.g.
+: 18446744073709551615 + 1 overflows uint64; will fail at runtime if reached
becomes
uint64 addition of constants overflows; will fail at runtime if reached
Specific values were useful while the validator was being bootstrapped but add noise for end users who can see the literal values at the source location anyway. Also drops the leading `{op.code}:` prefix since the op name is now folded into the reason text.
4822c739
feat/statically-failing-op-validator
1/29 ++ 45 --
refactor: apply generic constant-index handling to setbit, getbyte, setbyte
Mirrors the recent getbit change: match a constant-bytes shape first (tight bound against the constant length), then fall through to a generic case that catches cases where the index is known constant but the first arg is runtime — index >= 8 * MAX_BYTES_LENGTH (or MAX_BYTES_LENGTH for byte ops) is statically impossible regardless of the runtime value.
d52e1c73
feat/statically-failing-op-validator
1/24 ++ 7 --