Download Latest Version Pipsqueak source code.zip (78.8 MB) Google Add to Preferred Sources
Home / v6.1
Name Modified Size InfoDownloads / Week
Parent folder
Confluence source code.tar.gz 2026-09-18 62.1 MB
Confluence source code.zip 2026-09-18 62.5 MB
README.md 2026-09-18 7.7 kB
Totals: 3 Items   124.6 MB 0

Release Notes

Summary of Major Highlights

This release introduces major distributed networking capabilities, rich internet and desktop applications, enhanced system resilience, and runtime refinements:

  • Zero-Configuration Network Discovery: Automatic peer discovery and cluster joining over LAN via UDP beacons (link -a), backed by host UDP bindings and the @Net service.

  • New Desktop Applications & CLI Tools: Rich GUI additions including Weather, Crypto, World Sun Clock, and News (Hacker News reader), alongside the new curl HTTP client CLI and cluster monitoring command.

  • Three-Tier Service Scopes & Persistent System Identity: Clear scoping with * (Global across bridges), @ (System-wide on single machine), and local (per-node) prefixes, anchored by (system-id).

  • Resilient Timeouts & Clean Teardown: Standardized mail-read-timeout across all RPC client interfaces to prevent deadlocks, graceful GUI exit down to a pristine state via (pii-exit), and stable network settlement with (net-quiet).

  • Core Language & Build Enhancements: Multi-branch implicit progn for if/ifn else bodies, modernized vp-rdef/vp-fdef register binding, streamlined asynchronous CPM pipelines, and quiet builds (*build_verb*).


Desktop Applications & GUI

  • Weather App (apps/desktop/weather/app.lisp):

    • Desktop weather forecasting tool consuming wttr.in endpoints through lib/net/http.inc and lib/net/json.inc.

    • Performs asynchronous, non-blocking data acquisition on worker tasks.

    • Displays 2D procedural vector weather icons, weather metric cards, a 3-day forecast view, and quick city buttons with persistent state.

  • Crypto Ticker (apps/desktop/crypto/app.lisp):

    • Live cryptocurrency market monitoring consuming Coinranking endpoints.

    • Features real-time 24-hour procedural vector sparkline graphs with smooth curve interpolation and area shading.

    • Calculates 24-hour high/low spreads and persists user settings in crypto.tre.

  • World Sun Clock (apps/desktop/sunclock/app.lisp):

    • Visualizes spherical solar ephemeris and cartography on an equirectangular world map.

    • Renders subsolar zenith positioning, solar terminator curves with twilight bands, and day/night state across global continents.

    • Provides sunrise, sunset, solar noon, and day length calculations across world cities.

    • Supports interactive time navigation (-1h, +1h, -1d, +1d, Now) and automated daylight progression animation.

  • News Reader (apps/desktop/news/app.lisp):

    • Live Hacker News feed reader with category filtering across Top, Newest, Show HN, Ask HN, and Jobs.

    • Uses master-detail navigation with feed parsing via node-hnapi.herokuapp.com.

    • Renders story summaries and nested discussions using ChrysaLisp's native Md Markdown formatting component.

  • Interactive Terminal in GUI Mode:

    • Running ./run.sh -f launches Node 0 with a background TUI terminal beneath the GUI compositor.

    • Integrates native EOF stream termination in PII and TUI layers to enable direct command piping from the host shell (e.g. echo "tests" | ./run.sh -f).

  • Multi-Screen Session Configuration:

    • Launch scripts now accept -g <count> to specify the number of GUI sessions, defaulting to 1.
  • Graceful GUI Teardown:

    • Selecting Quit in the Logout application cleanly tears down the GUI service via RPC and terminates Node 0, leaving the host pristine.
  • Clock & Canvas Enhancements:

    • Updated Clock and reviewed underlying date routines in lib/date/date.inc.

    • Expanded Canvas demo capabilities and added the Opcode canvas demo.


Networking & Distributed Services

  • Zero-Configuration Link Auto-Discovery (link -a):

    • Servers started with link -l [port] -a broadcast periodic UDP beacons on port 3334 announcing their TCP listening port.

    • Clients started with link -a listen for peer beacons and automatically negotiate TCP links to join the cluster.

    • Servers run without -a operate in standard manual mode without broadcasting beacons.

  • Host UDP Socket Interface:

    • Added non-blocking UDP socket bindings in host PII (host_net_udp_bind, host_net_udp_send, host_net_udp_recv) supporting port reuse and broadcast delivery.

    • Exposed via the Node 0 @Net service through (net-beacon-rpc) and (net-discover-rpc).

  • Hierarchical Service Scoping:

    • Service names now follow a three-tier naming convention:

      • * Prefix: Global cluster services across link bridges.

      • @ Prefix: System-wide services shared across nodes on a single host.

      • No Prefix: Node-local services.

  • Cluster Inspection Tool (cmd/cluster.lisp):

    • New command inspecting cluster topology, node task counts, memory allocation, stack watermarks, host architectures (cpu/os/abi), and declared services.

    • Supports -v (--verbose) for live probe status and -t (--timeout) for custom probe timeouts.

  • HTTP Client CLI (cmd/curl.lisp):

    • Command-line HTTP client supporting request methods (-X), custom headers (-H), request payloads (-d), response headers (-i), head requests (-I), and silent execution (-s).
  • Network Link Fragment Unification:

    • Introduced :sys_link :in_frag for shared handling of incoming fragments.

    • Unified :host_net :in to share :sys_mail :in parcel assembly routines.

  • Network Settlement Helper:

    • Added (net-quiet [delay_us] [stable_count] [last_cnt]) -> (node_id ...) to verify that node count remains constant across successive intervals before proceeding with distributed tasks.

Kernel & System Infrastructure

  • Bounded RPC Mailbox Reads:

    • Introduced (mail-read-timeout mbox [timeout_us]) -> msg | :nil (aliased as mail-timeout-read) in sys/lisp.inc with architecture-scaled defaults.

    • Updated all system client *-rpc functions to use timeouts to prevent unbounded blocking on unresponsive tasks.

  • Host Machine Identification:

    • Added (system-id) -> nodeid kernel primitive retrieving the persistent unique host machine identifier.
  • PII Process Termination:

    • Added (pii-exit) to allow cooperative shutdown of the host process.
  • Bridge Node Cleanup:

    • Removed legacy (lisp-node?) and (cpp-node?) checks in favor of self-hosted system-to-system bridging.

    • Purged obsolete machine-specific cluster test scripts.


Language, Compiler & Build System

  • Control Flow Syntax Simplification:

    • if and ifn now support implicit progn evaluation in else branches: (if tst form [else_form ...]) and (ifn tst form [else_form ...]).

    • Updated when and unless macros to leverage this behavior, ensuring both evaluate strictly to :nil when their condition is not met.

  • Register Binding Macro Cleanup:

    • vp-rdef and vp-fdef now expand cleanly to standard bind forms with &ignore support, simplifying register extraction.
  • Orthogonal CPM Asynchronous Pipeline:

    • Restructured the asynchronous CPM image loading/saving pipeline into a streamlined, composable stage-based model.
  • Quiet Compilation Mode:

    • Added the *build_verb* configuration setting (defaulting to 0) to suppress compilation output.

    • Verbose diagnostic output can be enabled using make -v 1.

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