Download Latest Version Starbug source code.tar.gz (35.0 MB)
Email in envelope

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

Home / v4.4
Name Modified Size InfoDownloads / Week
Parent folder
README.md 2026-03-09 4.4 kB
Starbug source code.tar.gz 2026-03-09 35.0 MB
Starbug source code.zip 2026-03-09 35.3 MB
Totals: 3 Items   70.3 MB 1

This release brings significant native mathematical enhancements to the Virtual Processor (VP), a brand-new centralized image format library, vast improvements to the Regular Expression engine, and a host of quality-of-life updates across the GUI and command-line tools.

✨ Core & Language Features

  • Lazy Quantifiers: The Regexp class now fully supports lazy quantifiers (*?, +?, and ??).
  • CScript Types: Added support for real and fixed types in CScript variables.
  • Smarter Array Pushing: (push array ...) is now significantly smarter. It will push object references for :list, but will flatten object data for any other type. For example, you can now push data directly from a :str into a :reals array, which is excellent for handling message data.
  • Stream Seeking: The String stream class now supports the :seek method, enabling the use of the (stream-seek) Lisp-level function.

🚀 Virtual Processor (VP) Improvements

  • Native Matrix Math: Added native VP support for mat4x4-mul, mat4x4-inv, mat4x4-vec4-mul, and mat4x4-vec3-mul.
  • Long Vectors: :reals :mat4x4_v4_mul and :reals :mat4x4_v3_mul now support long vectors.
  • Stream Operations: Added new VP functions for low-level stream manipulation:
  • (fill-bits stream (array bit_pool bit_pool_size) data num_bits cnt) -> stream
  • (copy-bits wstream rstream (array bit_pool bit_pool_size) (array bit_pool bit_pool_size) num_bits cnt) -> wstream
  • Graphics: Added native VP versions of the pixmap-read and pixmap-write functions.

🖼️ Graphics & Image Formats

  • New Image Library Structure: Created a new lib/image/ directory to centralize image format handlers.
  • .cwb Support: Introduced a new loader for the Whiteboard application format (.cwb). Added (CWB-info stream) and (CWB-load stream [scale]). You can now load and view .cwb files directly in the Images app or via any command using canvas-load.
  • TGA & CPM Improvements:
  • The TGA loader has been moved to a pure Lisp library.
  • CPM-load and CPM-save now utilize the RLE library, which has been improved with a new sliding window algorithm.
  • Both formats have been updated to use canvas-tile and string-stream line buffers.
  • Note: A VP helper function for faster Canvas writes during image imports is planned for the future.
  • Canvas Tiling: Promoted the Raymarch tile helper to a generic (canvas-tile canvas data x1 y1 x2 y2) -> area function. The Mandelbrot demo has been updated to use this new generic function.
  • Vector Library: Added (vector-bounds-2d paths) and (vector-point-in-polygon p paths winding_mode) to the vector lib.

📱 Apps & UI

  • Whiteboard: Added a new move mode with snap-to-grid functionality. Left-clicking draws in the front, while right-clicking draws in the back.
  • Strokes Widget: Added the :set_snap x y method.
  • Editor (cmd/edit.lisp): Added a new quiet mode (triggered via the -q option).

🐛 Bug Fixes

  • Regex Engine: Fixed a typo in the Regexp :search method ((const bind) -> (const bfind)) to properly enable the execution fast-path.
  • Regex & Editor: Updated the Buffer class, Regexp class, and the Editor app to handle blank line $ matches correctly.
  • Zero-Length Matches: Fixed the Edit class so it correctly highlights zero-length matches (which are now possible due to the new lazy quantifiers).
  • Buffer Cursor: Fixed the Buffer class :next_found_cursor method so it correctly moves the cursor to the start of the next line if a match occurs at the end of a line (i.e., includes \n).
  • Pixmap Conversion: Fixed the premul alpha format type test in :pixmap :as_argb, and resolved an issue with the pixel conversion cache in :pixmap :as_premul.

⚠️ API Changes & Tooling

  • Function Renames: pixmap-save and pixmap-info have been officially renamed to canvas-save and canvas-info.
  • CPM Save: Replaced the VP version of CPM-save with a new pure Lisp implementation: (CPM-save pixmap stream format) -> pixmap.
  • Windows Scripts: Updated all Windows .ps1 launch scripts to utilize the latest available options, bringing them fully inline with their .sh counterparts.

Enjoy

Chris

Source: README.md, updated 2026-03-09