Repository navigation
Eliscript 0.1.2
Highlights
- Unified Lisp execution and AOT compilation behind
eliscript, with shared.el/.elisemantics 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 |