The package set for pslua, the PureScript-to-Lua compiler backend. It collects the core PureScript libraries as Lua forks: each fork keeps the upstream PureScript sources and replaces the JavaScript FFI with Lua that runs on Lua 5.1.
src/packages.json is the source of truth: it lists only
the Lua forks. Each psc-* release folds it onto a pinned upstream PureScript
registry set and publishes the result as packages.json, a complete set you
consume directly with the new spago.
Point workspace.packageSet.url at a released packages.json:
workspace:
packageSet:
url: https://github.com/purescript-lua/purescript-lua-package-sets/releases/download/psc-0.15.15-20260624/packages.jsonThat set already carries the Lua forks in place of their JavaScript-targeting
upstreams, so you just list what you need under package.dependencies: no
extraPackages block and no merge. Releases are tagged
psc-0.15.15-<YYYYMMDD>[-N];
latest-compatible-sets.json records the most
recent one.
The set targets the new spago (spago.yaml/spago.lock). spago 0.21 / Dhall is
no longer supported.
The Lua forks in this set. Each keeps its upstream PureScript API and ships a Lua
FFI in place of the JavaScript one. The package name is the key in
src/packages.json; note that the OpenResty bindings are keyed lua-ngx.
Every other package in the set is an unmodified PureScript package that needs no Lua-specific FFI.
CONTRIBUTING.md is the practical canon: the toolchain, the
Lua 5.1 and FFI rules, CI, and the release process. The reasoning behind each
rule is recorded as an ADR under docs/adr/. Read the ADRs before a
decision that affects the whole set, and add one after making such a decision.
