Skip to content

Zymbol-Lang v0.0.6

Choose a tag to compare

@OscarEEspinozaB OscarEEspinozaB released this 07 Jun 18:05

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 .zy sources migrated.

🚀 Improved

  • Standalone binaries embed bytecode instead of source (~60% smaller). zymbol build now compiles to bytecode at build time (bincode) and links only zymbol-bytecode + zymbol-vm (2 crates instead of 7). Zero lex/parse/compile at startup. serpiente: 2.2 MB → 901 KB. Foundation for the upcoming .zyb format. Motivated by #1 (thanks @wux4an).

✨ Added

  • VM << input parity — new ReadLine bytecode instruction; numeric cast and TUI raw-mode suspend/restore handled. --vm now 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, RESET command.
  • Typed test wildcards in golden files — ***int***, ***float***, ***num***, ***time***, ***date***, ***path***, plus expected_compare.sh --regen --smart.
  • New E2E categoriestests/input/ (8 tests, .input companion files) and 4 new tests/tui/ golden files.
  • REPL test harness — headless ReplTestHarness enabling 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) via MoveTo(0,0) on entry.
  • VM <<| — blocking key input now propagates an error in headless mode, matching the tree-walker; @vm-skip removed from all 3 manual TUI tests.

✅ Validation

  • cargo test: 820 / 820 pass
  • vm_compare.sh (tree-walker vs VM parity): 478 / 478 PASS, 0 SKIP
  • expected_compare.sh (all): 464 / 464 pass
  • zymbol-repl unit + integration + CLI: 48 / 48 pass

Full Changelog: v0.0.5...v0.0.6