Download Latest Version Quoin source code.zip (60.6 MB)
Email in envelope

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

Home / v5.1
Name Modified Size InfoDownloads / Week
Parent folder
Quoin source code.tar.gz 2026-08-05 60.3 MB
Quoin source code.zip 2026-08-05 60.6 MB
README.md 2026-08-05 2.3 kB
Totals: 3 Items   120.9 MB 3

Summary: :hmap & :hset Refactoring and System Impact

The core :hmap and :hset classes have been refactored to inherit directly from :list. By utilizing inline list storage for single-bucket structures, this eliminates dedicated heap memory allocations for bucket management.

Because :hmap serves as the foundation for lexical scoping environments and class vtables, eliminating these allocations removes multiple alloc/free cycles from every function and lambda invocation across the OS.

This optimization reduces complete system rebuild times on Apple M4 hardware from 0.074s down to 0.068s.

Key Changes

Core Architecture & Caching

  • Refactored :hmap and :hset to inherit directly from :list, eliminating extra heap allocations for bucket management during scope creation.

  • Switched the +str_hashslot cache field on interned symbols and strings to a strictly positive slot index.

  • Enabled cached +str_hashslot O(1) slot lookups in :pmap :find and :pmap :pinsert for both :sym and :str keys.

  • Reordered cache cleanup in :lisp :run to execute :font :flush prior to symbol flushing, preventing cross-referencing between font symbols and global symbols.

Collections & Class Hierarchy

  • Renamed the :plist class to :pmap for naming consistency.

  • Introduced the new :pset (property set) class.

  • Extended Lset, Fset, and Tree collections with support for :pset.

  • Updated the (atom?) predicate to correctly classify :pset and :pmap instances.

  • Restricted backing storage for the :dim multi-dimensional array class strictly to :nums vectors.

Tools & Command Line Utilities

  • Updated cmd/includes with parsing support for :pset and :pmap.

  • Added a multi-node parallel execution option (-j, --jobs) to cmd/ctf, enabling font compilation workloads to be distributed across cluster nodes.

  • Fixed Substr searching when given a :sym instance as source text.

Bug Fixes & Service Stability

  • Corrected a double-release race condition in the distributed lock service (service/lock/).

  • Added unit test coverage for :pset operations.

  • Updated reference documentation covering collection classes and the new :pset class.

Enjoy

Chris

Source: README.md, updated 2026-08-05