| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| README.md | 2026-07-07 | 5.1 kB | |
| Sarsen source code.tar.gz | 2026-07-07 | 60.3 MB | |
| Sarsen source code.zip | 2026-07-07 | 60.6 MB | |
| Totals: 3 Items | 120.9 MB | 0 | |
This release is centered around an overhaul of the :plist (Property List)
subsystem and the native :font vector rendering pipeline.
1. Property List (:plist) Architecture
This release introduces a native Property List (:plist) implementation to
optimize memory density and lookup performance across core Lisp and Virtual
Processor structures:
-
New
:plistVP Class: Implements low-level, high-performance property list primitives includingpinsert,pfind,perase, andpfindi. -
Compiler Optimization: The
casemacro now compiles branches directly into a:plistlookup map where possible, falling back to a linear search otherwise.cmd/trace.lisphas been refactored to use this newcasebehavior, eliminating several legacy structures and helper functions.
-
Pcase Macro: Introduces the
pcasemacro, providing access to the underlying symbol lists to allow pre-loading, packing, and sorting of symbols to ensure consistentstr_hashslotcache hits. -
Core Integration: The
Lmap,Fmap,Lset,Fset, andlib/asm/scopes.inclibraries have been refactored to use the new:plistprimitives. -
System Tracking: Added
:plisttracking support to the systemstatscommand. -
Documentation: Added the technical document
docs/ai_digest/case_for_plist.mddetailing these changes.
2. Font and Vector Font (.ctf) Upgrades
The native vector font pipeline has been upgraded to a more compact, aligned, and feature-complete representation:
-
Native CTF Compiler (
cmd/ctf.lisp): Replaces the legacy C++ QtCTF dependency with a native Lisp application to compile, inspect, and upgrade ChrysaLisp Vector Fonts (.ctf) from TTF or OTF sources.- Includes a
-voption for detailed structural inspection,-cfor optical-kerning compilation, and-rfor regional codepoint filtering.
- Includes a
-
Unified 3.13 Coordinate Space: Upgrades the
.ctfformat to store all outlines and kerning pairs in a unified 3.13 fixed-point coordinate system.- Reduces coordinates and metadata to 16-bit
shortandushorttypes, reducing total.ctffile sizes by half.
- Reduces coordinates and metadata to 16-bit
-
Natural Alignment: Coordinates and commands are structured with strict padding in the writer, ensuring that 32-bit
plenandklenfields on all subsequent glyph records remain naturally 4-byte aligned in memory. -
Optical Auto-Kerning: Adds compile-time optical edge-tracing to the compiler and matching layout logic to the native
:fontVP class. -
QuadTo Support: Adds native support for quadratic Bezier spline drawing commands (Type 3) within
.ctffiles. -
Options Parser: Added
opt-numsto collect multiple numeric arguments from the command line into lists, used by the compiler to collect character ranges. -
Documentation: Added the technical document
ctf_command.mddetailing the format and tools.
3. Lisp Language and Compiler Enhancements
-
Non-Mutating Method Dispatch: The
(.)method call primitive no longer mutates the argument list passed to it.-
It now passes the exact same argument list to the callee, while the
defclassmacro automatically inserts a&skip binding. -
This allows method implementations to reflect on their own dispatch symbols.
-
-
Error Signaling Optimization: Swapped the argument order for the
:lisp :repl_errornative method, eliminating redundant register copying and saving approximately 1KB in the compiled boot image. -
List-Bind-Args Upgrades: Added extra sanity checks to
list-bind-args.- Supports
&&to ignore both source and destination elements, and&to skip source arguments.
- Supports
4. Tooling and System Updates
-
Tracer Refactoring: Rewrote
cmd/trace.lispusing a unified state vector and LIFO trace processing.- The refactoring captures previously missed edge cases and speeds up analysis, reducing a full system trace on Apple M4 to 0.30 seconds.
-
Clobber Protection: Added
+zero_clobber_funcsto the tracer to bypass unnecessary analysis on safe, non-clobbering functions. -
VDU Documentation Layout: The
docsapplication now strips common margins invdusections, matching the behavior offilesections.
5. Bug Fixes
-
File Stream Seeking: Fixed an offset calculation error in
file-streamrelative seeking, which now correctly adjusts for unread portions of the stream buffer. -
Regexp Input Safety: Fixed
Regexp:match?and:searchmethods to safely process empty string inputs. -
List Boundary Search: Fixed a boundary bug in
:list :findoccurring when the search start index equaled the end of the list. -
Write Number Division: Fixed a bug in
:host_os :pii_write_numcaused by using an incorrect division quotient.
Enjoy
Chris