Zymbol-Lang v0.0.6
Keyword-free symbolic language release. Highlights below; full detail in CHANGELOG.md.
⚠️ Breaking
FatArrow=>is now the universal "maps-to" separator — replaces:/<=in match arms (pattern => result), import aliases (<# path => alias), and export renames (#> { fn => pub }). All.zysources migrated.
🚀 Improved
- Standalone binaries embed bytecode instead of source (~60% smaller).
zymbol buildnow compiles to bytecode at build time (bincode) and links onlyzymbol-bytecode+zymbol-vm(2 crates instead of 7). Zero lex/parse/compile at startup. serpiente: 2.2 MB → 901 KB. Foundation for the upcoming.zybformat. Motivated by #1 (thanks @wux4an).
✨ Added
- VM
<<input parity — newReadLinebytecode instruction; numeric cast and TUI raw-mode suspend/restore handled.--vmnow supports interactive input. - REPL upgrades — unicode-width cursor alignment (CJK/emoji/pIqaD), word navigation (
Ctrl+Left/Right,Ctrl+W,Alt+D), persistent~/.zymbol_history, batch/piped-stdin mode,RESETcommand. - Typed test wildcards in golden files —
***int***,***float***,***num***,***time***,***date***,***path***, plusexpected_compare.sh --regen --smart. - New E2E categories —
tests/input/(8 tests,.inputcompanion files) and 4 newtests/tui/golden files. - REPL test harness — headless
ReplTestHarnessenabling 48 unit/integration/CLI tests.
🐛 Fixed
- BUG-007 — semantic checker rejected recursive integer functions (
gcd,fibonacci) after GAP-Z008; added bidirectional(Float, Int)numeric compatibility. - GAP-Z009 — named functions now retain their module aliases when passed as higher-order-function values.
- TUI-FIX-01 —
<<inside a>>|block no longer freezes the terminal (raw-mode suspend/restore). - TUI-FIX-02 —
>>|now starts the cursor at (1,1) viaMoveTo(0,0)on entry. - VM
<<|— blocking key input now propagates an error in headless mode, matching the tree-walker;@vm-skipremoved from all 3 manual TUI tests.
✅ Validation
cargo test: 820 / 820 passvm_compare.sh(tree-walker vs VM parity): 478 / 478 PASS, 0 SKIPexpected_compare.sh(all): 464 / 464 passzymbol-replunit + integration + CLI: 48 / 48 pass
Full Changelog: v0.0.5...v0.0.6