Skip to content

Releases: luthersystems/elps

v1.48.1

14 May 15:15
481f82d

Choose a tag to compare

What's Changed

Defensive

  • Nil-guards + defer recover in error rendering chain (#278) — prevents (*ErrorVal).Error / baseMessage / ErrorMessage / Condition / FunName / WriteTrace / errorCellMessage from panicking when fed a malformed *ErrorVal (nil receiver, nil Cells[i], corrupted Cells[0].Native interface). Well-formed errors render identically.
  • log.Printf on every defensive guard branch so operators see when corruption fires the fallback path — silently swallowing a recovered panic in ErrorMessage would hide the upstream bug the guard is meant to surface.

This is purely defensive. The root cause of the malformed-Native-interface corruption (downstream consumer reported SIGSEGV addr=0x14 inside ErrorMessage's Cells[0].Native type switch — see #279) remains unknown; this release just ensures the diagnostic path never crashes the process while we investigate.

Full Changelog: v1.48.0...v1.48.1

v1.48.0

13 May 21:04
de1665c

Choose a tag to compare

What's Changed

Bug fixes

  • fix(lisp): identity-guard singleton mutation in stampMacroExpansion (#275) — fixes process-wide corruption of Bool(true)/Bool(false) singletons during macro expansion. Closes #274.
  • fix(lisp): capture Go panic stack on recovered phylum panics (#272)
  • fix: silence GetFunName BUG: log spam from libschema validators (#273)

New API

  • lisp.FunInPackage, lisp.MacroInPackage, lisp.SpecialOpInPackage — package-bound LFun constructors so embedders avoid the package-less LFun log spam.
  • lisp.TakeSingletonSnapshot / SingletonSnapshot.Verify — test-infrastructure helpers for detecting singleton mutation.

Safeguards (so the singleton bug class can't silently regress)

  • TestMain in lisp/ snapshots all three singletons; fails the suite if any drifted.
  • elpstest.Runner snapshots per-test and reports the offending lisp test.
  • New //go:build elpscheck tag enables per-call integrity verification in Bool()/Nil(); CI runs make test-elpscheck.
  • New make race target runs the full suite under -race; CI runs it.

Dependencies

  • build(deps-dev): Bump fast-uri from 3.1.0 to 3.1.2 in /editors/vscode (#270)

Full Changelog: v1.47.2...v1.48.0

v1.47.2

05 May 21:18
c249a7e

Choose a tag to compare

What's Changed

Fixed

  • Windows build failure (go install github.com/luthersystems/elps@latest and any Windows compile) caused by a broken tliron/kutil@v0.3.11 API mismatch with termenv. Bumped kutil to v0.3.27. (#268, closes #267)

CI

  • Added a Build (Windows) job to .github/workflows/elps.yml so Windows-only compile regressions are caught on every PR.

Full Changelog: v1.47.1...v1.47.2

v1.47.1

09 Apr 16:26
27df661

Choose a tag to compare

What's Changed

Full Changelog: v1.47.0...v1.47.1

v1.47.0

03 Apr 02:27
6d794d7

Choose a tag to compare

What's Changed

  • fix: analyzer false positives, MCP cross-file diagnostics, macro expansion, and semantic audit (#262) @sam-at-luther

Highlights

  • Analysis-time macro expansion: MacroExpander interface + EnvMacroExpander expands user macros during static analysis, resolving symbols introduced by macro templates (lambda params, let bindings, etc.)
  • Workspace macro loading: LoadWorkspaceMacros replays preamble forms (in-package, use-package, export, defmacro, defun, set) in load-tree DFS order, mirroring runtime (load) behavior
  • Embedder API: Set Env on LintConfig — elps handles workspace package creation, import resolution, and macro expansion automatically
  • Analyzer fixes: cond else/true (#258), MCP cross-file diagnostics (#259), set PutGlobal semantics (#260), bare-file DefaultPackage resolution
  • Semantic audit: macrolet scope, qualified-symbol data argument, thread-first/thread-last explicit handling

Issues closed

Fixes #258, #259, #260, #261

Full Changelog: v1.46.2...v1.47.0

v1.46.2

01 Apr 05:25
d8ed8e8

Choose a tag to compare

What's Changed

Full Changelog: v1.46.1...v1.46.2

v1.46.1

31 Mar 23:23
4289798

Choose a tag to compare

What's Changed

Full Changelog: v1.46.0...v1.46.1

v1.46.0

28 Mar 03:55
408420a

Choose a tag to compare

What's Changed

  • fix: LSP diagnostic positions, shadowing noise, and cross-file use-package (#252) @sam-at-luther
  • feat: load-tree package inference, keyword hover docs, EndPos everywhere (#253) @sam-at-luther

Full Changelog: v1.45.0...v1.46.0

v1.45.0

27 Mar 01:03
9e5202e

Choose a tag to compare

What's Changed

Full Changelog: v1.44.1...v1.45.0

v1.44.1

25 Mar 18:16
9f90246

Choose a tag to compare

What's Changed

  • chore(vscode): placeholder version + highlight #^ same as lambda by @sam-at-luther in #244

Full Changelog: v1.44.0...v1.44.1