Skip to content

Eliscript v0.1.2

Latest

Choose a tag to compare

@liuchong liuchong released this 03 Nov 01:01
· 20 commits to master since this release
v0.1.2
1162cde

Eliscript 0.1.2

Highlights

  • Unified Lisp execution and AOT compilation behind eliscript, with shared .el/.eli semantics and the maintained Lisp runtime.
  • Correct lexical and dynamic scope, feature loading, delayed after-load forms, error handling, and extension activation across GNU Emacs, the JavaScript interpreter, and generated AOT modules.
  • Real async continuations preserve dynamic/special bindings across pending waits, nested loops, conditions, cleanup, cancellation, and bounded channels without replaying completed effects.
  • Keymap prefixes preserve live inheritance, nested composition, precedence, copying, and independent writes through copied views.
  • WASM and C/native ABI emission preserves scalar truth values, comparison operand order, memory boundaries, negative zero, and statement/value distinctions.
  • The compiler runs as JavaScript; JavaScript, WASM, and native are output targets. WASM/native compiler-host variants are not part of this release.

Verification

The reviewed compiler/runtime changes passed independent cross-review at 8c7b7ef, including 139 tests / 786 assertions, 30 Emacs tests, strict byte compilation, CLI checks, and nine contract/integrity gates. Release preparation separately passed the full 35-test JavaScript bootstrap suite (including exact stage2/stage3 comparison), eight package-surface tests and nine release-integration tests. The final 4,783,469-byte tarball passed clean installation, installed .el/.eli interpretation and AOT, and real shared-source JavaScript/WASM/native execution with authenticated stage3 identity and released runtime roots. The existing 5 MB budget and debug assets are preserved; npm publication uses these exact tested bytes.

Requires Node.js >=24.0.0 / Bun >=1.4.0 as declared by the package. Backend-specific native compilation requires the corresponding platform toolchain.

测试与四维性能基准摘要

  • 对比维度: Emacs 30.2 (当前最新版) | 上一个大版本: N/A (尚无上一大版本) | 上一个最近的小版本: v0.1.1 | 最新版: v0.1.2
  • 完整测试与基准报告附件: 详见 Release 附件 eliscript-0.1.2-benchmark-report.md 与 eliscript-0.1.2-benchmark-report.json
基准工作负载 最新版耗时 vs Emacs Lisp vs 上一大版本 vs 上一小版本
first(Vector, N=10,000) 0.08 µs (0.00008 ms) 1.62x N/A 1.01x
last(Vector, N=10,000) 0.44 µs (0.00044 ms) 46.36x N/A 1.00x
take-last(64, N=10,000) 4.55 µs (0.00455 ms) 4.45x N/A 0.98x
[VALUE_EQUAL] / compare(sameVec, N=10,000) 0.25 µs (0.00025 ms) 70.97x N/A 0.48x
sort(Vector, N=10,000) 1.102 ms 1.20x N/A 0.98x
group-by(x % 100, N=10,000) 0.744 ms 3.63x N/A 1.04x
frequencies(1,000 keys, N=100,000) 8.036 ms 2.03x N/A 1.05x
12,000-depth Zipper (down*12k + path + replace + root) 2.626 ms 1.50x N/A 1.34x
score-values(N=10,000 x 10 rounds) 1.259 ms 16.58x N/A 1.00x