Skip to content

Offer twelve programs, and stop promising Run it cannot keep - #34

Merged
onatozmenn merged 1 commit into
mainfrom
a-picker-of-programs
Aug 1, 2026
Merged

Offer twelve programs, and stop promising Run it cannot keep#34
onatozmenn merged 1 commit into
mainfrom
a-picker-of-programs

Conversation

@onatozmenn

Copy link
Copy Markdown
Contributor

The picker listed all twenty-eight examples and exactly one of them can be started on this page. That is the complaint this fixes.

Run was being offered for six programs that cannot run here. Twenty-one of the corpus are libraries and the page already said so. The other seven have a main, and six of those want the filesystem, which a page does not have. Run was on for them, and pressing it answered with a list of capabilities rather than anything about the program:

this page does not offer `Io.list` yet
this page does not offer `Io.read` yet

So describe asks for that too now. needs sits next to runs in the index, both answers from the artifact, and the note says which of the two it is: "Wants Io.list, Io.read, which this page has no filesystem for. Its 13 tests still run."

The corpus is not a menu. About half of it is one language feature at a time, written so the compiler's own tests have something to read. sink has no main and no tests, so there is nothing on this page it can do. names is one half of an import whose other half is not here. diverge is about non-termination. A visitor scrolling past those is being shown the inside of somebody's test suite.

The picker shows twelve programs a person would recognise, hello first because it is the one that starts. The other sixteen are still served, still asked about by tools/check.mjs, and still open by name. The list lives in tools/artifact.mjs next to the code that asks the compiler, because both tools need it, and check.mjs fails when it names a file the corpus no longer has, so a promoted example shortens the menu loudly rather than quietly.

Three line kinds were printing as raw JSON. summary, property and refused all arrived with 0.2.3 and the page's render had no arm for them, so a test run ended with a literal {"kind":"summary","passed":9,"failed":0} under the results. Now:

pass two doubles to four
pass twice its contract, 100 cases, seed 0x5eed1234abcd0001
2 passed, 0 failed

and a program that does not check says so with a button through to Check, where the reasons are, rather than repeating them.

Checked in a browser against the pinned artifact: hello runs and prints, logs says why it cannot, tree and tic_tac_toe pass their tests, a contract shows its property and seed, and a broken module offers "Show the error" and lands on DEED4001.

Written with AI assistance.

The picker listed all twenty-eight and exactly one of them could be
started here. Twenty-one are libraries, which the page already said. The
other six have a `main` and want the filesystem, and for those the page
turned Run on, let it be pressed, and answered with a list of
capabilities instead of anything about the program.

So `needs` is recorded next to `runs`, both asked of the artifact, and
the note says which of the two it is.

The rest of it is that the corpus is not a menu. About half is one
language feature at a time, written so the compiler's own tests have
something to read, and scrolling past `sink`, `names` and `diverge`
shows a visitor the inside of a test suite. Twelve programs a person
would recognise, `hello` first because it is the one that starts. The
other sixteen are still here and still open by name.

Three line kinds the pinned build sends were falling through to the
default arm and printing as raw JSON: `summary`, `property` and
`refused`. All three arrived with 0.2.3.
@onatozmenn
onatozmenn merged commit 26b9bdd into main Aug 1, 2026
1 check passed
@onatozmenn
onatozmenn deleted the a-picker-of-programs branch August 1, 2026 17:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant