Releases: wippyai/go-lua
Releases · wippyai/go-lua
Release list
v1.5.21
- Infer generic parameters nested inside metatypes and preserve those parameters through substitution.
- Select a unique most-specific fixed-arity overload for contextual typing while retaining safe union fallback for ambiguous, incomparable, and variadic candidates.
- Preserve the refined return type of assert-style helpers when their truthy success effect matches the normal return value.
- Narrow optional and falsy return expansions structurally, including generic instantiations and channel-select flows, without introducing recursive-type loops.
- Add order-independence, ambiguity, variadic, assertion, generic, and channel regression coverage.
v1.5.20
- Resolve indexed writes at their full field path so later element assignments cannot corrupt earlier field reads or widen a field to its enclosing record.
- Preserve declared map value domains across aliases, branches, loops, bracket paths, guarded optionals, and placeholder refinement.
- Fence register-propagation peepholes at resolved jump targets so erased casts and non-nil assertions cannot make short-circuit results skip their consumer.
- Add regression coverage across constructor fields, assignments, keys, calls, arithmetic, concatenation, comparisons, casts, assertions, and both short-circuit arms.
v1.5.19
- Preserve sole root and tail-called Go frames across coroutine yields so
ResumeandResumeIntoreportResumeYieldinstead of false successful completion. - Return resume arguments correctly through direct Go entry functions, Lua tail calls, nested
coroutine.resume, andcoroutine.wrap. - Restore parent/current-thread state and terminate the child when a resume encounters a canceled context.
- Contain invalid yielded-thread state with an explicit run error and consistent thread cleanup.
- Add regression coverage across default, 128-slot, and 384-slot registries, forced registry growth, repeated thread reuse, zero/one/multiple resume values, and cancellation before start or after yield.
- Keep existing tail-call and coroutine performance stable with unchanged allocation counts.
v1.5.18
- Fix the compiler's
LOADNILpeephole so it cannot merge across jump targets, preventing generic-foror nilexpressions from reading uninitialized registers. - Make direct
xpcallcatch errors and invoke message handlers consistently underDoStringand APIPCall. - Clear protected-call continuation metadata when error paths discard frames, preventing stale continuations from corrupting later Go-backed calls.
- Preserve yielding Go-call continuations through tail-returned
pcallwrappers and return results correctly from resumed root Go functions. - Restore Lua upvalue capture in inspected stack frames.
- Add Wippy-shaped resumed-thread/register-pressure coverage across baseline and configured registry sizes.
v1.5.17
- Accept valid large encoded manifests while retaining explicit decoder resource ceilings and malformed-length rejection.\n- Add large-manifest round-trip and corrupted collection-length coverage.\n- Restore executable cross-platform CI, repository-wide lint, race, fuzz, and benchmark validation.
v1.5.16
Changes since v1.5.15:
- Harden runtime type validation system (#25)
- Fixture-based test harness with 331 suites and type system gap tracking (#26)
- Fix parser: allow void return type with named parameters in record fields (#27)
- Fix constraint solver non-determinism and test isolation (#28)
- Parser void return completion and qualified type fixtures (#29)
- Apply gofmt