Repository navigation
Confluence
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@Netservice. -
New Desktop Applications & CLI Tools: Rich GUI additions including
Weather,Crypto,World Sun Clock, andNews(Hacker News reader),
alongside the newcurlHTTP client CLI andclustermonitoring 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
prognfor
if/ifnelse bodies, modernizedvp-rdef/vp-fdefregister 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.inendpoints through
lib/net/http.incandlib/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
MdMarkdown formatting component.
-
-
Interactive Terminal in GUI Mode:
-
Running
./run.sh -flaunches 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.
- Launch scripts now accept
-
Graceful GUI Teardown:
- Selecting
Quitin theLogoutapplication cleanly tears down the GUI
service via RPC and terminates Node 0, leaving the host pristine.
- Selecting
-
Clock & Canvas Enhancements:
-
Updated
Clockand reviewed underlying date routines in
lib/date/date.inc. -
Expanded
Canvasdemo capabilities and added theOpcodecanvas demo.
-
Networking & Distributed Services
-
Zero-Configuration Link Auto-Discovery (
link -a):-
Servers started with
link -l [port] -abroadcast periodic UDP beacons
on port 3334 announcing their TCP listening port. -
Clients started with
link -alisten for peer beacons and automatically
negotiate TCP links to join the cluster. -
Servers run without
-aoperate 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
@Netservice 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).
- Command-line HTTP client supporting request methods (
-
Network Link Fragment Unification:
-
Introduced
:sys_link :in_fragfor shared handling of incoming fragments. -
Unified
:host_net :into share:sys_mail :inparcel 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.
- Added
Kernel & System Infrastructure
-
Bounded RPC Mailbox Reads:
-
Introduced
(mail-read-timeout mbox [timeout_us]) -> msg | :nil(aliased
asmail-timeout-read) insys/lisp.incwith architecture-scaled
defaults. -
Updated all system client
*-rpcfunctions to use timeouts to prevent
unbounded blocking on unresponsive tasks.
-
-
Host Machine Identification:
- Added
(system-id) -> nodeidkernel primitive retrieving the persistent
unique host machine identifier.
- Added
-
PII Process Termination:
- Added
(pii-exit)to allow cooperative shutdown of the host process.
- Added
-
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:
-
ifandifnnow support implicitprognevaluation in else branches:
(if tst form [else_form ...])and(ifn tst form [else_form ...]). -
Updated
whenandunlessmacros to leverage this behavior, ensuring
both evaluate strictly to:nilwhen their condition is not met.
-
-
Register Binding Macro Cleanup:
vp-rdefandvp-fdefnow expand cleanly to standardbindforms
with&ignoresupport, simplifying register extraction.
-
Orthogonal CPM Asynchronous Pipeline:
- Restructured the asynchronous CPM image loading/saving pipeline into a
streamlined, composable stage-based model.
- Restructured the asynchronous CPM image loading/saving pipeline into a
-
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.
-