Skip to content

The way off eudplib, audited: seventeen steps, two silent misbuilds refused - #40

Merged
jeany55 merged 2 commits into
trigscript-4from
off-eudplib-audit
Oct 20, 2026
Merged

jeany55 merged 2 commits into
trigscript-4from
off-eudplib-audit

Conversation

@jeany55

@jeany55 jeany55 commented Oct 20, 2026

Copy link
Copy Markdown
Contributor

An audit of the plan's way off eudplib, after step 4 (math) turned up by accident while writing the arrays probe. It checks the list against everything the Python side does. It also fixes two places where a map of our own was built wrong without any message.

How it was checked:

  • Every program of the 93 probes given to the own emitter, then each statement and expression on its own, with every refusal counted.
  • About 230 scripts, one feature each.
  • The IR, kind by kind, against emit.ts and python/trigscript.py.
  • eudplib's injector, euddraft's driver and plugins, and fixmapdata.
  • Every tool that reads a build.

Twelve of the 93 probes build our way today (the five own-backend probes and seven measurement probes). No showpiece does.

Plan (docs/v4-plan.md). "The way off eudplib" goes from nine steps to seventeen, rewritten in place with the old numbers kept in brackets. A new section, "The way off eudplib, audited", records:

  • what the nine steps left out;
  • why the arithmetic stayed hidden: most refusals read "(no reason given)";
  • smaller things to fix along the way;
  • which showpiece waits on which step;
  • three decisions: the changeover, map protection, and Magenta in the same map;
  • a ledger, so the list stays complete.

New steps:

  • 5: the game's conditions and actions. The graph holds three kinds of record today.
  • 6: the game's memory.
  • 7: programs, owners and players. The start-up links only the owner's list.
  • 14: the build in the editor.
  • 15: the tools on maps of our own.
  • 16: the gate before the Python goes, since the "built both ways" check goes with it.

Fixed point, random numbers and u8/u16 join step 4. Errors join tasks.

Two silent misbuilds, now refusals:

  • print(…, { to: P2 }) and { to: AllPlayers } were shown to the owner alone, because the emitter never read to. The Python side shows the text to each player of the group in turn.
  • build-own cleared the map's triggers, which dropped trigger() records.

A test in tests/emitter.test.ts covers the first: it fails without the fix and passes with it. The suite: 1232 pass.

🤖 Generated with Claude Code

https://claude.ai/code/session_01T1CM9pLuTuAn3mgTEkjgVg

jeany55 and others added 2 commits October 19, 2026 22:16
…or other players, trigger() records

print(…, { to: P2 }) and { to: AllPlayers } were shown to the program's owner alone: the emitter never read `to`,
and Display Text shows to the current player, the owner. The Python side sets each player of the group current in
turn. Refused now, until a print does the same.

build-own clears the map's triggers, so a script's trigger() records were dropped. Refused now, until step 13 keeps
them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01T1CM9pLuTuAn3mgTEkjgVg
…venteen steps now

Every probe's programs, about 230 one-feature scripts, the IR against both backends, eudplib's own machinery and every
tool that reads a build, checked against the list after step 4 (numbers) was found by accident. New steps: the game's
conditions and actions, its memory, programs/owners/players, the build in the editor, the tools on maps of our own,
the gate before the Python goes. Fixed point, random and u8/u16 joined step 4; errors joined tasks. With the two
silent misbuilds found, the reason the arithmetic stayed hidden (refusals without reasons), the smaller things, which
showpiece waits on which step, three decisions, and a ledger so the list stays whole.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01T1CM9pLuTuAn3mgTEkjgVg
@jeany55
jeany55 merged commit 4e642bf into trigscript-4 Oct 20, 2026
1 check passed
@jeany55
jeany55 deleted the off-eudplib-audit branch October 20, 2026 04:20
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