Skip to content

Eliscript 0.0.1

Choose a tag to compare

@liuchong liuchong released this 15 Sep 15:35
· 142 commits to master since this release
v0.0.1
5f4ba0c

Eliscript 0.0.1

Eliscript is an Emacs Lisp-flavored language that compiles to modern
ECMAScript modules. The compiler is self-hosted: an Emacs Lisp seed compiles the
compiler that is written in Eliscript, and both generations produce byte-identical
output.

Install

npm install eliscript
npx eliscript --help

The tarball carries the generated compiler, so a consumer needs no Emacs.
Building the compiler from source does need Emacs; prepack runs that build, so
a published tarball is always derived from the sources it ships.

What is in this release

  • Compiler — Emacs Lisp seed, self-hosted compiler, deterministic formatter,
    versioned canonical IR, project graph planning with an incremental cache, and
    Source Maps that name .eli files.
  • Language — Lisp-shaped syntax with tail calls, macros, modules, protocols,
    immutable Records, deftype/reify protocol values, case/condp
    dispatch, and multi-arity named, anonymous, async, and portable functions.
  • Data — persistent List, Vector, Map, Set, and Queue with value equality,
    transients, lazy sequences, and transducers.
  • Runtime — host-free runtime semantics, frozen regular-expression
    patterns, and a long-lived Emacs-to-JavaScript worker.
  • Browser — an in-memory multi-file compile host, a module worker, and a
    compiler bundled for the browser. The
    playground compiles and
    runs Eliscript in the page; the documentation site's own behaviours are
    Eliscript compiled in the browser.
  • Emacs integration — eliscript-mode with Flymake diagnostics and
    eliscript-repl.
  • Command line — eliscript, eliscript-build, eliscript-check,
    eliscript-format, eliscript-eval, eliscript-org, eliscript-portable,
    eliscript-seed, eliscript-seed-build, and eliscript-watch.
  • dogfood — the static-site application under examples/dogfood/, and the
    packaged Action built from it.

Evidence

  • Retained core acceptance: 35 of 35 mandatory criteria pass, 0 incomplete, 0
    failed, all five evidence groups complete, and no blocking defects.
  • This revision: 457 tests across 115 files in the core suite, 210 across 23
    files in the application suite, and a browser matrix that drives Chromium,
    Firefox, and WebKit at three viewports each.
  • The published site is generated by the repository's own tooling and served
    from https://liuchong.org/eliscript/.

Known gaps

  • The Linux x64 compatibility cells are optional in the contract and carry no
    retained reports; macOS arm64 is the required acceptance platform.
  • The proving-ground specifications are marked In progress: the application is
    exercised by its tests and published, and its own acceptance set is not
    complete.
  • The dogfood Action is distributed as a standalone package; its Marketplace
    listing is a separate publication step.

License

GPL-3.0-or-later. The compiler and standard library sources ship with the
generated output they produce, which is the preferred form for modification.