Repository navigation
Another implementation's source is read only clean-room, and the tree names Linux only as a host platform or a libc interface - #902
Conversation
…cites one, or Linux, as authority The owner ruled: "Were not reimplementing linux and if we look at the code we use clean room procedure because i think linux has a bad license. We dont want to reference linux anywhere in our code." He confirmed that the same procedure covers permissively licensed code. Root CLAUDE.md folds the reading rule into Zero legacy's sentence against replicating older OSes, because whoever reads source is any agent, a general-purpose one included, and no reviewer can see what an agent read. implementer.md's design sentence takes values and test oracles in, names the vendor's documentation and the published specifications beside the published state of the art, and refuses another implementation's source as authority; it states that Linux is cited nowhere in the tree as an authority. reviewer.md's Fit makes such a citation a BLOCKER, and Prose stops exempting it as a source comment's citation. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015xhaydXCVRNscoccHYFUWy
|
Rulings on the two open questions.
The prompts say both in the fewest words, or the reviewer names it. |
|
Correction to ruling 1, on the owner's word. Running Linux as a black box reads none of its code, so it raises no licence or clean-room question.
Ruling 2 stands. |
|
Review of #902 at Net lines: 3 files, +20 −16, all of it in prompts; production and tests are both 0. BLOCKER
NOTE
SEND BACK |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015xhaydXCVRNscoccHYFUWy
…inux citations are filed Ruling 1 as corrected: a test's oracle for what hardware does is the vendor's document or ToyOS's own read checked against it; a reading captured under Linux is evidence, never a suite row; source, tests and manifests name Linux only as a host platform or a libc interface. Ruling 2: a fork's upstream source is the code being changed, and a ToyOS arm stands on the platform's own specification. The specification a clean-room reader writes goes to the builder in its brief. The reviewer's authority list matches the implementer's. The tree's existing breaches are filed in issues/the-tree-names-linux-as-an-authority.md. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015xhaydXCVRNscoccHYFUWy
|
Round 2 review of #902 at Net lines: 4 files, +67 −26. All of it is prompts and one new issue; production code and tests are both 0. Round-1 BLOCKERs
BLOCKER
NOTE
SEND BACK |
|
Ruling on the live case (round 2, NOTE 2). A host test may compare live against the host's own implementation of a published interface, such as the host's TCP or its |
…differential, and files sdk/libc's Linux citations Round-2 review of #902: Linux may be named as a host platform or as an interface defined outside ToyOS (a libc item, a firmware's _OSI string, a partition type), so the prompts no longer refuse acpiserver's _OSI or lib/gpt's partition type. The orchestrator's ruling on the live case is carried in the same words in both prompts: a host test may compare live against the host's own implementation of a published interface, and the specification decides where they disagree. Tests' refusal of another OS's readings is narrowed to readings of hardware. The issue's exit now covers sdk/libc/src, whose linkreq, sockopt and memreq take Linux as the authority for values. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015xhaydXCVRNscoccHYFUWy
|
Round 3 review of #902 at Net lines: 4 files, +75 −26. All of it is prompts and one new issue; production code and tests are both 0. Round-2 BLOCKERs
The round-2 NOTEs are taken up as follows:
BLOCKER
NOTE
SEND BACK |
…ssue names posix_io.rs and sigmask.rs Round-3 review of #902: reviewer.md's Tests admitted a reference implementation's recorded output committed with provenance even when it was captured under Linux, which the owner's rulings refuse and implementer.md already refuses. The issue's sdk/libc/src list now names every file its exit catches. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015xhaydXCVRNscoccHYFUWy
|
Round 4 review of #902 at Round-3 BLOCKER
Round-3 NOTE
BLOCKERNone. NOTENone. LAND |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015xhaydXCVRNscoccHYFUWy
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015xhaydXCVRNscoccHYFUWy
…tes Linux or Xen Both negative-control arms of the microcode row hung their benches: the read-back's panic came inside after_console, before power::init_reset decodes the reset and, on the AMD bench, before any clock can time the panic's bound, so the panel was held until a power cycle. The ruling on #886 (comment 6131006022) makes a failed read-back a refusal: by the SDM (Vol. 3A §12.11.7.1, §12.11.7.2 Example 12-10) and AMD's PPR 55922 (MSR0000_008B), MSR 8BH after a load is the revision the CPU runs, so a CPU that does not take an update runs what it reads back. The loader now says `refused <update>` with that read-back as `running`, holds it to the machine's like any other, and the boot goes on; the metal judge reds any refused line. By the owner's clean-room ruling (#902), the judge is no longer held to a Linux reading of either bench but to the update each maker's embedded file holds for it, Linux's amd_shas.c and the AMD bench's Linux capture are deleted with the digest test that read them, and every Linux and Xen citation is replaced by Intel's or AMD's document or removed. The word at patch offset 12 is named as AMD's parser names it, mc_patch_data_checksum. A panic before the reset register is read holds the machine for good: filed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015xhaydXCVRNscoccHYFUWy
…rocode Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015xhaydXCVRNscoccHYFUWy
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015xhaydXCVRNscoccHYFUWy
None of them touches a file this branch changes. #873 deletes issues/page-global-is-a-decision-nobody-has-made.md, which no file of this branch cites. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015xhaydXCVRNscoccHYFUWy
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015xhaydXCVRNscoccHYFUWy
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015xhaydXCVRNscoccHYFUWy
…the GPIO and MCHBAR ruling; the AMD bench's MMIO read is closed Round 5's review of #875. The track's finish and S3's exit asked every block loaded and no method refused on both benches, and readings equal to Linux's: the first is false under the owner's rulings (SSDT8, the AMD bench's ConfigWrite, the T14's two _INIs), and a reading under another OS is evidence, never an exit's oracle (#902). Both now state the ruled state, ACPI 6.5 deciding. The T14 issue records the owner's ruling on #875 (comment 6135767889): the GPIO pad write and the MCHBAR write stay refused, isolation deciding, and the row expects both _INIs by path. acpiserver-refuses-the-amd-benchs-dsdt-for-a-read-in-memory-mapped-io.md is closed: its exit is met. The policy was ruled (comment 6120173372), firmware::decide holds it with a host test of each arm, and the AMD bench's boot at ddc243e (639ce13 before round 6's reword, the same tree) read 16 of 17 tables loaded, SSDT8 the one refused as ruled, and \_S5 handed, SLP_TYPa=5: acpi_tables_loaded passed, judge exit 0 (https://github.com/ToyOSOrg/evidence/blob/063f2e24002d1f506a59c4440f6da9b300753f7a/round6/metal/amd-judge.log, and judged again at 5352b09 in round6/judge/fixed-amd.log, exit 0). Two issues name the branch's commits by their hashes after the reword. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015xhaydXCVRNscoccHYFUWy
The owner's ruling, in his words: "Were not reimplementing linux and if we look at the code we use clean room procedure because i think linux has a bad license. We dont want to reference linux anywhere in our code." He confirmed that the same procedure covers permissively licensed code. His two rulings on this pull request (comments 6131430437, and 6131731730 correcting ruling 1) are carried below. The wording is the orchestrator's brief's and the reviewer's named fixes, placed by this branch; none of it is presented as the owner's.
What changed
CLAUDE.md, Zero legacy. Another implementation's source, whatever its licence, is read only clean-room: one agent writes from it a specification of facts citing no implementation, keeping the provenance in its own evidence, and another builds from that specification alone, handed to it in its brief and never committed. It is in root because any agent may read source and general-purpose agents do not carryimplementer.md; no reviewer can see what an agent read. "Never committed" keeps line 18's "There are no spec documents" true.implementer.md, Measure, build, test. A design, a value or a test's oracle never takes its authority from another implementation's source; where the vendor's documentation, the published specifications or the published state of the art back it, it follows and cites them. Source, tests and manifests name Linux only as a host platform, or the name of an interface defined outside ToyOS (alibcitem, a firmware's_OSIstring, a partition type). A test's oracle for what hardware does is the vendor's document, or ToyOS's own read checked against it. Linux run as a black box, as a performance target or to observe hardware where its vendor's documents are silent, is a measurement kept in the evidence and the issues, and a reading captured under it is never committed as a test's oracle (ruling 1). A host test may compare live against the host's own implementation of a published interface, as a differential implementation; the specification decides where they disagree (the orchestrator's ruling, 6132075516).implementer.md, A fork. Upstream's source in a fork is the code being changed, not another implementation; a ToyOS arm stands on the platform's own specification, never on another platform's arm copied as its authority (ruling 2). Root does not grow for it: only an implementer edits a fork.reviewer.md, Fit. A BLOCKER each: a citation of another implementation's source as authority; Linux named in source, a test or a manifest but as a host platform, or the name of an interface defined outside ToyOS (alibcitem, a firmware's_OSIstring, a partition type). Its authority list is now the implementer's, for a design, a value or a test's oracle.reviewer.md, Tests. A test's oracle for what hardware does is the vendor's document or ToyOS's own read checked against it; a reading of hardware captured under another OS, timing included, is evidence and never a suite row. This replaces the sentence that admitted another OS's recorded output, and a timing held to another's read on the same machine. A reference implementation's recorded output stays an oracle when committed with its provenance and read hermetically, and never when it was captured under Linux, as the implementer is told (ruling 1, 6132075516); the live host differential is admitted in the implementer's words.reviewer.md, Forks. A ToyOS arm whose authority is another platform's arm is a BLOCKER.reviewer.md, Prose. A source comment's citation that Fit refuses is no longer exempt from being raised.issues/the-tree-names-linux-as-an-authority.md. The tree already breaks the rule. The issue is owned by the orchestrator. Its evidence is linux-mentions.txt, and its exit is agit grepthat prints nothing. It namessdk/libc/src'slinkreq.rs,sockopt.rs,memreq.rs,posix_io.rsandsigmask.rs, every file there its exit catches, beside the earlier breaches, and the two branches briefed to clear it: the source sweep (wt/toyos-linux-sweep) and thekernel/cpuvulndesign (wt/toyos-cpufacts).Decisions:
07b5879ee,sdk/libc/srcincluded. A path left out (sdk/libc/arch,system/acpiserver,lib/gptamong them) holds permitted names, such ascfg(target_os = "linux"),_OSI("Linux")or a partition type, that the grep would wrongly fail on.Checks
cargo run -- --ci hostatd825fc27e4c317603a0bf8212f60a0150125ea59: EXIT=0 ("Host: 76 step(s), all green"). The whole log, masked, is ci-host.log.git diff --shortstat origin/main...HEADgives 4 files changed, 78 insertions(+), 28 deletions(-).Unsure
Nothing open: the orchestrator ruled that
_OSI("Linux")is an interface name the prompts admit.🤖 Generated with Claude Code
https://claude.ai/code/session_015xhaydXCVRNscoccHYFUWy