Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: purescript/purescript-enums
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: cd373c5
Choose a base ref
...
head repository: purescript-lua/purescript-lua-enums
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: e85567b
Choose a head ref
  • 14 commits
  • 25 files changed
  • 3 contributors

Commits on Mar 30, 2024

  1. Configuration menu
    Copy the full SHA
    1fbe184 View commit details
    Browse the repository at this point in the history

Commits on Jun 14, 2026

  1. chore: normalize build tooling

    Replace the inherited bower CI (no bower.json in this fork) with a nix-based one that runs scripts/build, scripts/test (if present) and luacheck; make the scripts fail-fast; refresh stale flake inputs.
    Unisay committed Jun 14, 2026
    Configuration menu
    Copy the full SHA
    f7a6c16 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    6d5bd75 View commit details
    Browse the repository at this point in the history
  3. Merge pull request #1 from Unisay/chore/normalize-tooling

    chore: normalize build tooling (nix CI, fail-fast scripts, fresh flake)
    Unisay authored Jun 14, 2026
    Configuration menu
    Copy the full SHA
    3a9cdad View commit details
    Browse the repository at this point in the history
  4. chore: align CI to hardened canon, add AGENTS.md + CLAUDE.md

    CI: drop accept-flake-config (supply-chain risk; caches already pinned),
    run luacheck with --std lua51 --no-unused-args (matches the Lua 5.1 target
    and the curried-FFI idiom), invoke the test step via bash so it no longer
    needs the execute bit.
    
    AGENTS.md is the single instruction file the coding agents read natively;
    CLAUDE.md is a one-line @AGENTS.md import so Claude Code shares it. Also
    removes dead JavaScript-era package files. Tooling and docs only, no src/.
    Unisay committed Jun 14, 2026
    Configuration menu
    Copy the full SHA
    d584950 View commit details
    Browse the repository at this point in the history
  5. Merge pull request #2 from Unisay/chore/agents-md-and-canon-ci

    chore: align CI to the hardened canon, add AGENTS.md
    Unisay authored Jun 14, 2026
    Configuration menu
    Copy the full SHA
    68933b1 View commit details
    Browse the repository at this point in the history
  6. chore: point pslua + package-set links at purescript-lua org

    Repos moved from Unisay/* to the purescript-lua org. Update the pslua
    flake input and lockfile owner (same rev 94c13ce), the packages.dhall
    upstream-lua release URL, and the AGENTS.md links, so nothing relies on
    the old-owner redirect.
    Unisay committed Jun 14, 2026
    Configuration menu
    Copy the full SHA
    b6d0791 View commit details
    Browse the repository at this point in the history
  7. Merge pull request #3 from purescript-lua/chore/migrate-org-links

    chore: point pslua + package-set links at purescript-lua org
    Unisay authored Jun 14, 2026
    Configuration menu
    Copy the full SHA
    713bea1 View commit details
    Browse the repository at this point in the history
  8. chore: add treefmt formatting (nix fmt) and format the tree

    Wire treefmt via treefmt-nix: nixfmt, dhall format, purs-tidy (.tidyrc.json)
    and LuaFormatter for the FFI (.lua-format, kept over StyLua because it
    preserves the parentheses pslua's parser needs). `nix fmt` formats; the dev
    shell installs a content-based pre-commit hook and CI runs
    `nix fmt && git diff --exit-code` (content-based, since the in-place
    formatters bump mtime and would trip treefmt --fail-on-change). Lua lines
    budget 130 cols, matching the raised `luacheck --max-line-length`. The bulk
    of the diff is the first format pass.
    Unisay committed Jun 14, 2026
    Configuration menu
    Copy the full SHA
    cb7e095 View commit details
    Browse the repository at this point in the history

Commits on Jun 15, 2026

  1. Merge pull request #4 from purescript-lua/chore/treefmt

    chore: add treefmt formatting (nix fmt + pre-commit + CI check)
    Unisay authored Jun 15, 2026
    Configuration menu
    Copy the full SHA
    dd4d294 View commit details
    Browse the repository at this point in the history
  2. chore: harden pre-commit hook (tracked .githooks/ + core.hooksPath)

    Replace the dev-shell installer that wrote .git/hooks/pre-commit with a
    tracked .githooks/pre-commit wired via `git config core.hooksPath .githooks`.
    
    Fixes three issues with the old hook: it gated on `[ -d .git ]` (false in
    worktrees/submodules where .git is a file), it clobbered any existing
    .git/hooks/pre-commit on every `nix develop`, and `nix fmt … || exit 0`
    swallowed real formatter failures. The new hook skips only when `nix` is
    absent (CI is the authoritative gate) and otherwise blocks on a `nix fmt`
    failure or reformat.
    Unisay committed Jun 15, 2026
    Configuration menu
    Copy the full SHA
    add13d6 View commit details
    Browse the repository at this point in the history
  3. chore: bump pslua dev input to 62e3653

    Toolchain consistency: pin the pslua dev flake input to the current
    compiler main across the ecosystem. flake.lock only; the package set
    consumes sources + FFI, not this dev input, so no re-tag is needed.
    Unisay committed Jun 15, 2026
    Configuration menu
    Copy the full SHA
    b6fbce3 View commit details
    Browse the repository at this point in the history
  4. fix: Char <-> code point FFI speaks UTF-8, not raw bytes

    pslua compiles a PureScript Char as a Lua string of its UTF-8 bytes, so
    the Char FFI must use code points across the whole 0..65535 range:
    
    - toCharCode decoded only the first byte (`c:byte()`), so 'é' (U+00E9)
      gave 195 instead of 233 and `cardinality`/`fromEnum` were wrong above
      U+007F. It now decodes the first UTF-8 code point (JS c.charCodeAt(0)).
    - fromCharCode was bound to `string.char`, which errors above 255 and
      emits a lone raw byte for 128..255. It now UTF-8-encodes the code point
      (JS String.fromCharCode), so charToEnum/toEnum/succ/pred work for any
      Char instead of throwing above U+00FF.
    
    Adds a Lua 5.1 regression guard (test/regression/enum.lua) and a
    scripts/test runner.
    
    Fixes purescript-lua/purescript-lua#79
    Fixes purescript-lua/purescript-lua#80
    Unisay committed Jun 15, 2026
    Configuration menu
    Copy the full SHA
    88b3e10 View commit details
    Browse the repository at this point in the history
  5. fix: toCharCode must not crash on a lone code-unit byte

    The v6.1.1 rewrite assumed every Char is a complete UTF-8 sequence and
    read c:byte(2..4) unconditionally. But Data.String.CodeUnits slices a
    String byte-wise (toCharArray = s:sub(i,i)) and Data.String.CodePoints
    reassembles code points itself, so toCharCode is routinely called on a
    single lead/continuation byte — where c:byte(2) is nil and the arithmetic
    crashes (caught by the StringCodePoints eval golden on CI).
    
    Length-guard the decode: assemble the full code point only when the whole
    sequence is present (#c >= expected), else return the lead byte (the
    byte-in/byte-out behavior the CodePoints layer relies on). The Char-literal
    decoding from #79 is preserved. Adds lone-byte regression cases.
    
    Fixes purescript-lua/purescript-lua#102
    Unisay committed Jun 15, 2026
    Configuration menu
    Copy the full SHA
    e85567b View commit details
    Browse the repository at this point in the history
Loading