Skip to content

Releases: mmcdole/lunar

Lunar v0.1.3

Choose a tag to compare

@mmcdole mmcdole released this 16 Sep 18:34

Lunar v0.1.3 fixes heap-limit enforcement while garbage collection is stopped, improves table access and native call entry, and reorganizes the runtime and tests.

  • Enforce Options.MaxHeapBytes while garbage collection is stopped. #11
  • Reduce repeated work in table access and dynamic key classification. #13, #18
  • Reuse reserved stack windows for fixed native calls and remove redundant stack clearing. #15
  • Organize runtime files and tests by subsystem, share nested call validation, and remove unused helpers. The library's public API is unchanged.
  • Remove unsupported CBOR benchmark execution modes and simplify table traversal in the benchmark adapter.
  • Add PUC Lua comparisons and update benchmark reports.

The cleanup showed an approximately 8% spectral-norm slowdown on the local default build relative to the code immediately before the cleanup. Source and linker experiments strongly support binary placement sensitivity; changing function alignment removed the gap in the diagnostic build. The cleanup retains the default build settings. See the measurements and limitations.

Full changelog

Lunar v0.1.2

Choose a tag to compare

@mmcdole mmcdole released this 05 Sep 05:34
1472786

Lunar v0.1.2 fixes a panic in tail calls through __call and adds Table.Tree() conversion.

  • Fix a Go panic in tail calls through __call when the caller fills its value stack. #9
  • Add Table.Tree() to convert supported Lua tables into nested Go maps and slices. #6
  • Improve compiler errors for local-variable and upvalue limits, and correct error line numbers for generic for iterator calls. #5
  • Add the official Lua 5.1 conformance suite with documented exclusions and platform adjustments. #5

Full changelog

Lunar v0.1.1

Choose a tag to compare

@mmcdole mmcdole released this 06 Aug 16:30
68bc043

Lunar v0.1.1 fixes a compiler panic in binary expressions after large constant pools.

  • Keeps function-call results in the correct register position when a numeric constant must spill beyond the RK range.
  • Adds regression coverage for #2.

Lunar v0.1.0

Choose a tag to compare

@mmcdole mmcdole released this 01 Aug 06:43

Lunar v0.1.0 is the first public release.

  • Adds Lua 5.2-style goto and labels to Lunar's Lua 5.1 language, with lexical-scope checks and correct captured-upvalue handling.
  • Finalizes the embedding APIs, including construction-time standard-library selection through Options.Libraries and explicit script loading through ScriptLoader.