The primitive benchmarks are one table with all six columns, Bjolang's
two, Go's two and Hopac's two, with the introduction once and what each
comparison says after it. What each operation allocates is one paragraph
for all three.
The service section has a new run on the current runtime. Go with as
much memory as .NET has the shortest tail at 250k/s on four cores;
Bjolang has it at every higher load. Over three runs the row at 500k/s
on all cores moved too much to rank, and the text says so.
🤖 Generated with [ECA](https://eca.dev)
Co-Authored-By: eca-agent <git@eca.dev>
A chain of two fibers no longer moves between cores when the inline
budget runs out, and the skewed choose takes 181 ns at best, not 230.
The ring rows move by a nanosecond or two, and the spawn row to 210 ns.
The text says that the spawn row is slow only on many cores: on two or
four, the current scheduler spawns faster than the pool did.
🤖 Generated with [ECA](https://eca.dev)
Co-Authored-By: eca-agent <git@eca.dev>
The ring, spawn and choose rows are measured again. Spawn and choose cost
about twice what they did, with the scheduler that replaced the .NET
pool, and several sentences no longer held: an event synced alone costs
nothing over chan-put, a choose allocates 56 bytes, and Hopac's choose
stays ahead with a cancel IVar.
A new section gives bench/service against Go and Hopac: the closed loop,
and the open loop with latency taken from when a request was due.
🤖 Generated with [ECA](https://eca.dev)
Co-Authored-By: eca-agent <git@eca.dev>
Part I's pattern matching chapter gets a section on (:at-least lo),
(:at-most hi), (:between lo hi), (:greater-than lo) and (:less-than hi):
what each matches, that they nest like any pattern, that the bounds are
literals, and that the ranges of integers and characters are added up
by the exhaustiveness check while those of doubles are not. The section
on exhaustiveness shows a counterexample in a gap between ranges.
The table of literals lists decimal and bigint, and the comment in the
inference example says which binding is pinned.
🤖 Generated with [ECA](https://eca.dev)
Co-Authored-By: eca-agent <git@eca.dev>
Pages for (std eq), (std clr-ord), (std monad), (std effect),
(std hashset), (std orderedset), (std orderedmap), (std inbox),
(std ports), (std net), (std test), (std simpletest), (std stopwatch)
and (std syntax-match), and for the five (std mutable ...) modules in
a directory of their own, as (std stm) has. Part III has a short
section on each group with links to its pages.
🤖 Generated with [ECA](https://eca.dev) (anthropic/claude-opus-5-5)
Co-Authored-By: eca-agent <git@eca.dev>
The Scopes section shows a with-scope in a defun, and own!, own-disposable
and release!. The Macros section has a section on by-colour.
🤖 Generated with [ECA](https://eca.dev) (anthropic/claude-opus-5-5)
Co-Authored-By: eca-agent <git@eca.dev>
Part II's section on concurrency has a new subsection, "Shared state:
atomics and transactions": when to share data instead of sending it,
locations and atomically, the rules for a transaction function, waiting
with tx-retry, a transaction as an event in a choose, tx-or-else, the
queue, map and counter, and what transactions cost. The examples use
the card game and were compiled and run.
Part III has a section on std/stm that links the four reference pages:
(std stm), and (std stm queue), (std stm map) and (std stm counter) in
a directory of their own, as (text xml) has.
🤖 Generated with [ECA](https://eca.dev)
Co-Authored-By: eca-agent <git@eca.dev>
The manual numbers its parts, sections and subsections, 1, 1.1, 1.1.1, in
its table of contents too. The titles that numbered themselves no longer
do: Part III is "The standard library", 3, and the appendices are 4.1 to
4.4 rather than A to D. The std/random section after the appendices is
gone; Part III has it.
🤖 Generated with [ECA](https://eca.dev)
Co-Authored-By: eca-agent <git@eca.dev>
It said less than Appendix D does, and some of it was no longer true:
Appendix D covers bjomode.el and samizdat-mode.el.
🤖 Generated with [ECA](https://eca.dev)
Co-Authored-By: eca-agent <git@eca.dev>
modules/std/prelude.sz is the prelude's page, made from the docs the
prelude was compiled with, builtins included. Part III starts with the
prelude and links to it, instead of pointing at Docs/prelude.org.
🤖 Generated with [ECA](https://eca.dev)
Co-Authored-By: eca-agent <git@eca.dev>
The REPL no longer relies on rlwrap. Say what it does at a terminal
instead (history, Enter continuing an open form), how Tab completes,
and that :complete gives editors the same completions.
🤖 Generated with [ECA](https://eca.dev)
Co-Authored-By: eca-agent <git@eca.dev>
The Go table is refreshed with a new run (the numbers moved within the
noise), and the section gains a Hopac part: the same rows on the same
.NET runtime, plain and with every operation raced against a cancel
IVar, with what the numbers show. Hopac is ahead without cancellation
and far behind with one shared cancel IVar, and allocates more.
🤖 Generated with [ECA](https://eca.dev)
Co-Authored-By: eca-agent <git@eca.dev>
The channels section introduces chan-put and chan-get beside the event
forms. A new section compares the CML benchmarks with their Go twins, with
Bjolang measured both syncing events and with chan-put/chan-get and Go both
plain and racing ctx.Done(), and says what Bjolang has that Go does not:
events as values and structured scopes.
🤖 Generated with [ECA](https://eca.dev)
Co-Authored-By: eca-agent <git@eca.dev>
- (.field value), and get, try-get, set and update for reading and copying
along a path of fields and keys, with ref-set in the generic operations.
- please-hoist-i-promise-i-am-not-naughty, in the macros section.
- (std set) is (std hashset), and the collector is hash-setting.
🤖 Generated with [ECA](https://eca.dev) (anthropic/claude-opus-4-5)
Co-Authored-By: eca-agent <git@eca.dev>
The clause table, stopping early and nesting use the new names, and
count-lines uses :until instead of a counter that only drove the loop.
🤖 Generated with [ECA](https://eca.dev) (anthropic/claude-opus-5-5)
Co-Authored-By: eca-agent <git@eca.dev>
There are no releases, so the section now says so, and gives the clone and
the build in the order Compiling.org has them: the runtime, the compiler,
the standard library. Updating is a pull and bjo rebjo. The editor support
paragraph links the repository it mentions.
🤖 Generated with [ECA](https://eca.dev) (anthropic/claude-opus-5-5)
Co-Authored-By: eca-agent <git@eca.dev>
index.sz is a landing page pointing to the manual, now manual.sz, and to
modules/, where each library module has a page made by @generate-docs from
the docs it was compiled with. The chapters gain appendices, and part III
links each module to its page. glasnost's page cache is ignored.
🤖 Generated with [ECA](https://eca.dev) (anthropic/claude-opus-5-5)
Co-Authored-By: eca-agent <git@eca.dev>