harehare
mq
Blog
Docs
Changelog
Blog
Docs
Changelog
Overview
Branches
Benchmarks
Runs
Performance History
Latest Results
💄 style(mq-lang): use TokenId import instead of fully-qualified path in peephole
refactor/optimizer-ast-bytecode-split
8 hours ago
♻️ refactor(mq-lang): split optimizer into AST and bytecode-peephole layers Remove apply_tco_transforms from the AST optimizer: the Tarn VM's tail_call_outcome already turns self-tail-calls into an O(1)-stack frame replacement more generally, making the AST-level loop rewrite dead weight. Extract the bytecode peephole passes (superinstruction fusion, Push/Pop cleanup, no-op jump removal) out of tarn/bytecode.rs into a new tarn/peephole.rs module, mirroring optimizer.rs as the AST-level counterpart. No behavior change to the peephole passes themselves.
refactor/optimizer-ast-bytecode-split
8 hours ago
Merge pull request #2254 from harehare/feat/property-based-testing ✨ feat(mq-lang,mq-test): add gen module and @property annotation for property-based testing
main
8 hours ago
💄 style(mq-lang,mq-test): trim overlong comments in gen.mq and property test runner Shorten verbose rationale comments (esp. the _sub_seed collision-avoidance proof) down to the essential non-obvious points, matching this repo's existing terse doc-comment style. No behavior change.
feat/property-based-testing
9 hours ago
🐛 fix(mq-lang): fix nested generator sub-seed collisions `_sub_seed`'s two-multiplier affine mixer composed into another affine map when nested, so bumping an outer index by one and an inner index by one of the mixer's own multipliers (1000003) added the same amount to the product, aliasing e.g. `array(array(gen, 1000004), 2)`'s `[0][1000003]` with `[1][0]`. Any purely affine mixer has some such colliding pair, so the fix splits the intermediate value into hi/lo halves and swaps their significance before the final mix, which isn't an affine function of the seed. Also fixes the `gen::array` doc example's hardcoded expected output, which changed along with the RNG stream.
feat/property-based-testing
9 hours ago
🐛 fix(mq-lang,mq-test): fix seed collisions, generator arity, and shrink coverage `_sub_seed`'s radix-97 arithmetic aliased nested generator positions once an inner index reached 97 (e.g. array-of-array element [0][97] == [1][0]); replace it with a prime-modulus mix. `@property` generator arrays shorter than the parameter list silently passed None for missing parameters instead of failing; validate the length up front. `_shrink_array_elements`/ `_shrink_dict_values` only tried the most aggressive shrink candidate per element, so a search could get stuck when that candidate wasn't interesting; try every candidate instead.
feat/property-based-testing
10 hours ago
🐛 fix(mq-lang,mq-test): harden property-based testing against edge cases - ARRAY_LITERAL/DICT_LITERAL markers changed from `_array`/`_dict` (valid identifiers) to `[]`/`{}` (unwritable in source), closing a hole where a user-defined `_array`/`_dict` function was silently shadowed by literal desugaring. - `@property(count, ...)` with count <= 0 now runs zero cases instead of `range(0, count - 1)` still yielding seeds via inclusive/ auto-descending range. - `gen::array`/`gen::array_of` reject negative or inverted length bounds instead of silently building a descending range. - `_shrink_neighbors` no longer indexes an empty `args`, so a failing zero-arg `@property` reports the assertion failure instead of crashing during shrink. - `split_top_level_comma` is now string/escape aware so a `]` inside a `gen::string(...)` charset doesn't corrupt the default-count `@property(...)` form.
feat/property-based-testing
10 hours ago
Merge pull request #2322 from harehare/add-yield-generator-support ✨ feat(lang): add yield/generator support on the Tarn VM
main
11 hours ago
Latest Branches
CodSpeed Performance Gauge
0%
♻️ refactor(mq-lang): split optimizer into AST and bytecode-peephole layers
#2339
8 hours ago
37d6c18
refactor/optimizer-ast-bytecode-split
CodSpeed Performance Gauge
0%
✨ feat(mq-lang,mq-test): add gen module and @property annotation for property-based testing
#2254
9 hours ago
9028cf3
feat/property-based-testing
CodSpeed Performance Gauge
+19%
✨ feat(lang): add yield/generator support on the Tarn VM
#2322
23 hours ago
0b98a84
add-yield-generator-support
© 2026 CodSpeed Technology
Home
Terms
Privacy
Docs