Skip to content

0.3.0.0

Latest

Choose a tag to compare

@Unisay Unisay released this 25 Jun 08:07
0.3.0.0
5ea38a5

Added

  • pslua is now a first-class Spago backend. With
    workspace.backend.cmd: pslua in spago.yaml, spago build links the
    project to Lua, and a new --run <Module>.<entry> flag lets spago run and
    spago test compile an entry point, execute it with lua, and forward the
    interpreter's exit code (#117).
  • Projects consume the published Lua package set through
    workspace.packageSet.url in spago.yaml: the PureScript Registry baseline
    with the Lua FFI forks overlaid.

Changed

  • Migrated the toolchain to the current Spago (spago.yaml + spago.lock and
    the PureScript Registry), replacing the Dhall-based configuration (#55).
  • Deeply nested Effect/ST do-blocks (magic-do) and other deep monadic
    spines are flattened so the generated Lua stays under the interpreter's
    syntactic nesting limit (#46, #104, #108).
  • The Nix toolchain moved to purescript-overlay for a pinned purs
    0.15.16 and Spago 1.0.4 (#54).

Fixed

  • De Bruijn indices are lowered correctly when a binder is removed, closing a
    class of silent miscompilations (#56).
  • Eta reduction no longer rewrites programs unsoundly (#32); shift,
    substitute, and free-reference counting now respect sequential Let
    scoping (#37).
  • Array-literal pattern binders read 1-based Lua indices instead of 0-based
    (#49).
  • Char literals are escaped correctly, and table literals are parenthesised
    before they are indexed.
  • The parent directory of --lua-output-file is created when it is missing
    (#61).