Download Latest Version Obelisk source code.tar.gz (60.0 MB)
Email in envelope

Get an email when there's a new version of ChrysaLisp

Home / v4.6
Name Modified Size InfoDownloads / Week
Parent folder
Obelisk source code.tar.gz 2026-05-03 60.0 MB
Obelisk source code.zip 2026-05-03 60.4 MB
README.md 2026-05-03 4.7 kB
Totals: 3 Items   120.4 MB 1

Release Notes

This release brings substantial improvements across the ChrysaLisp ecosystem, highlighted by the integration of LZ4 compression, significant enhancements to the Regular Expression engine, and a massive expansion of the internal architecture documentation (the AI Digest).

A fast LZ4 library has been introduced, integrating directly into stream handling, CLI tools, and the CPM image format (which now features a layered RAW -> RLE -> LZ4 pipeline). The task pipeline architecture has also been upgraded with a new open-pipe modes list, enabling robust task pinning and distribution via the new | and ! operators.

Additionally, the GUI and bundled applications have received notable updates. The Docs app now supports advanced Markdown rendering (strikethrough, highlights, bold-italics, and proper bullets) powered by the new (splice) functionality. Finally, the Mandelbrot demo has been updated to demonstrate a much more efficient boundary scan algorithm.


✨ New Features

  • LZ4 Compression Integration:
  • Added a new LZ4 library (lib/streams/lz4.inc).
  • Added new lz4 and unlz4 command-line apps.
  • Added LZ4 layer support to the .cpm image format. Compression is now an optional layered pipeline: RAW -> RLE -> LZ4.
  • Task Pipelines: Added an optional modes list to (open-pipe tasks [modes]). The Pipe class now uses this to implement the new | (distribution) and ! (pinning) operators.
  • Ring Buffers: Added :sys_mem :copy_to_ring, :sys_mem :copy_from_ring, and :sys_mem :copy_in_ring (for non-overlapping copies) methods for efficient ring buffer operations.

🛠 API & Command Line Changes (Breaking)

  • CLI Rename: Renamed the tee command to save.
  • Standard Library: Renamed the (num-intern) function to (num) to match the convention of (sym).
  • GUI / Fonts: Renamed *env_toolbar_font* (and related font environment variables) to *env_symbol_font*.
  • Method Promotion: Promoted the (canvas-tile canvas data x1 y1 x2 y2) function to a native Canvas method: (. canvas :tile data x1 y1 x2 y2).
  • Signature Updates:
  • Swapped the parameter order for map! and filter! optionals. Signatures are now: (filter! lambda seq [start end out]) and (map! lambda seqs [start end out]).
  • Swapped the order of optional arguments on (CPM-save canvas stream type [rle lz4 ident]).

📈 Enhancements & Optimizations

  • Docs App Formatting: Added support for strikethrough, highlight, and bold-italic in the text handler. Also added support for the Entypo bullet symbol (0xe979) for * bullets.
  • Docs App Performance: Upgraded the parse-line function to use the new (splice) functionality for faster rendering.
  • Mandelbrot Demo: Updated to demonstrate a highly efficient boundary scan algorithm.
  • Standard Library Improvements:
  • Added a :size method to all Set classes.
  • The (reflow) function now accepts optional indent string and tab_width arguments.
  • Optimized the processing of optional arguments for the (!) iterators.
  • CLI Improvements: Added the -s, --stdout flag to the time and save (formerly tee) commands to pass data through to stdout (defaults to :nil).
  • Image Processing: canvas-save now accepts any number of optional arguments and passes them through to the specific file format save function.
  • VM / Debugging: The Validate build mode now clears float registers to NaN on each task restore.

🐛 Bug Fixes

  • Regex Engine: Fixed the +? lazy quantifier to correctly prioritize the loop exit over the repetition.
  • Regex Tests: Added comprehensive unit tests for lazy quantifiers (*?, +?, and ??) in tests/text/test_lazy.lisp, including mixed lazy and greedy scenarios.
  • Macros: Fixed the set-str macro to prevent the potential double-evaluation of the val argument.
  • Mandelbrot Demo: Removed the (vp-sub-ff :f0 :f0) zeroing trick, as it caused issues on x64 MacBooks (caught by the new NaN register clearing feature).
  • CLI: Fixed cmd/slice.lisp so that it properly clamps the slice to the actual line length.

📚 Documentation (The AI Digest)

Massive expansion of the docs/ai_digest/ directory to help developers (and AI assistants) better understand the ChrysaLisp architecture:

  • Added regexp_system.md detailing the NFA-based engine.
  • Added type_system.md.
  • Added exceptions.md.
  • Added task_pipelines.md.
  • Added type_philosophy.md.
  • Added flow_through.md.
  • Added cscript_compiler.md.
  • Added cscript_skills.md.
  • Added docs_rendering.md.
Source: README.md, updated 2026-05-03