Repository navigation
luapure v0.1.1
Pre-release
Pre-release
Performance and documentation. No API or observable-behaviour change;
conformance stays at 30/33.
Changed
- Performance — arithmetic hot path. Inlined the monomorphic arith/bit fast
paths (OP_ADD/SUB/MUL, the bitwise ops, andOP_ADDI): replacing the
shared function-pointer helpers with per-op variants lets the int/float ops
inline as direct calls. A tight float loop drops from ~2.45× to ~2.2× PUC; the
in-repoArithHeavyExecbenchmark is ~10% faster (benchstat, no allocation
change). Behaviour is bit-identical. - Performance — pattern-match allocation.
string.find/match/gsubnow
recycle theirmatchStatethrough async.Poolinstead of allocating one per
call; pattern-heavy workloads drop ~17% byte churn and ~6% of allocations.
(string.gmatchkeeps a per-call state — it escapes into the iterator.)
Documentation
- Re-based the cross-engine benchmark table on steady-state runs: the
tree_build/string_buildworkloads are sized to ~100 ms+ so fixed costs no
longer inflate the ratios. Refresheddocs/BENCHMARKS.md,README.md, and
ROADMAP.md(now ~1.2–1.3× on table/string, ~2.2× on a tight float loop). - Added a Contributor Covenant code of conduct, GitHub issue forms, and a pull
request template.
Full changelog: v0.1.0...v0.1.1