Commit graph

12 commits

Author SHA256 Message Date
ca170a7e24 Grammars read quoted literals
Bjolang 0.2.0 reads a quoted literal with a grammar, and refuses #:tag
on a union case. The section on literals for your own types now declares
a def/grammar and shows its errors. The std/url summary says what the
compiler checks in a URL literal, and how a computed scheme, host or
port is made.

🤖 Generated with [ECA](https://eca.dev) (anthropic/claude-opus-4-7)

Co-Authored-By: eca-agent <git@eca.dev>
2026-10-17 18:03:35 +02:00
40f4783fa5 std/url: URLs read, written, resolved and percent-encoded
The standard library chapter gets std/url after std/http: the quoted
literal that encodes each value for its part, parse-url's strict reading,
the round trip, url-resolve, the decoded parts and the encoders.
modules/std/url.sz is the reference page, generated from (std url)'s docs.

🤖 Generated with [ECA](https://eca.dev) (anthropic/claude-opus-4-7)

Co-Authored-By: eca-agent <git@eca.dev>
2026-10-17 12:39:22 +02:00
f8cb9d3459 Benchmarking: (std bench) and bjo bench, with the card game
A new section 2.9 between Testing and Performance: time-it, a benchmark file
for the deck, how a benchmark is measured, setup and parameters, the menu,
--detail and --scaling, --compare-within, saving and comparing, --against
with --processes, the flags, and --serve. Every output is from a real run.
It shows the weakness of comparing two processes too: unchanged benchmarks
called faster or SLOWER by a few percent, and how --processes 6 settles it.

The standard library chapter gets std/bench, std/stopwatch says time-it is
(std bench)'s, and modules/std/bench/ has the reference pages for (std
bench), (std bench stats) and (std bench store).

🤖 Generated with [ECA](https://eca.dev) (anthropic/claude-opus-4-7)

Co-Authored-By: eca-agent <git@eca.dev>
2026-10-16 19:42:23 +02:00
11d435803c Modules: a module with submodules is its folder's page
(std test) and (std stm) were pages next to folders of their submodules, and
the std menu lists folders first, so each showed up twice, far apart. The
module page is now the folder's index.sz, so the menu has one entry for it,
and its submodules are listed at the top of the page and in the menu below.

(std test prop), (std test gen) and (std test expect) get pages, and the
standard library chapter says what they have and links to them.

🤖 Generated with [ECA](https://eca.dev)

Co-Authored-By: eca-agent <git@eca.dev>
2026-10-14 22:56:25 +02:00
fb90f971b4 Reference pages for the rest of std, and Part III sections on them
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>
2026-10-12 07:15:06 +02:00
56a5e7c141 Transactions: a guide in Part II, and reference pages for (std stm)
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>
2026-10-09 14:05:10 +02:00
82adbb03a4 (std atomic) has a reference page, and Part III a section on it
🤖 Generated with [ECA](https://eca.dev)

Co-Authored-By: eca-agent <git@eca.dev>
2026-10-09 08:25:26 +02:00
6cd4628e02 Numbered headings
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>
2026-10-08 21:35:59 +02:00
371f1685ca (std maths) has a reference page, and Part III a section on it
🤖 Generated with [ECA](https://eca.dev)

Co-Authored-By: eca-agent <git@eca.dev>
2026-10-06 20:09:22 +02:00
319c9df63e The prelude's reference, beside the other modules'
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>
2026-10-06 18:08:04 +02:00
27c7d64641 The manual as a site: a landing page, the chapters, and a page per module
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>
2026-10-01 18:37:22 +02:00
e54bd31d69 first commit 2026-10-01 11:36:18 +02:00