docs(mister): name the device-under-test repository, now that it exists - #434
Merged
Conversation
The spec described a "sibling repository (`RustyNES_MiSTer`)" with no link, because at the time there was nothing to link to. There is now: https://github.com/doublegate/RustyNES_MiSTer, private. Two additions beyond the URL, both about things a reader of this document needs and could not previously get. THE CROSS-REPOSITORY COUPLING IS NAMED, BECAUSE BREAKING IT IS SILENT `tb/checkpoint.h` over there reimplements `Observable::encode` from here, and `tb/checkpoint_selftest.cpp` asserts it against the same hardcoded vector `the_wire_encoding_is_pinned_to_a_fixed_vector` pins on this side. That pairing is the entire guard against the top-ranked risk at this rung: a packing disagreement between the two halves produces a hash mismatch indistinguishable from a wrong DUT, and it would be debugged as one. So the document now states plainly that changing `encode` here without changing `checkpoint.h` there breaks co-simulation in the way that is hardest to diagnose, and that the selftest is the first thing to run after touching either. A coupling that spans two repositories has nothing mechanical watching it, which is exactly why it has to be written where the person editing the encoding will read it. Verified rather than asserted before writing it down: both files were parsed and their pinned vectors compared byte for byte. rust: 16 bytes 08 07 06 05 04 03 02 01 f5 c5 23 81 a9 01 05 00 cpp : 16 bytes 08 07 06 05 04 03 02 01 f5 c5 23 81 a9 01 05 00 and the selftest re-run against merged main, all five checks green. Worth recording how that nearly went wrong: the first comparison was a `grep -A4` over the Rust array, which returned three bytes -- rustfmt had reformatted the literal one element per line, so the context window was too small. Three bytes against sixteen reads as a mismatch. The published comparison parses both literals properly instead. THE LICENCE HEDGE IN ADR 0037 IS RESOLVED, AND INVERTED ADR 0037 recorded that a GPL-2.0-ONLY file anywhere in the MiSTer framework's sys/ would force the RTL to GPL-2.0-or-later, and that the tabulation had to happen before any RTL existed. It has: all 57 files read and classified. There is no GPL-2.0-only file. Four are GPL-3.0-OR-LATER, and one of them is hps_io.sv, which is how a core receives a ROM and reaches the OSD -- no core functions without it. GPL-2.0-or-later combines upward into GPL-3; GPL-3.0-or-later does not reduce. The combined bitstream must therefore be GPL-3.0-or-later, which is already this project's licence. The hedge is inverted by the evidence rather than confirmed by it, and the decision is made with zero lines of RTL written rather than ten thousand -- which was the entire point of ordering the audit first. Docs only. No source, no manifests, no core.
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Antigravity review (Gemini via Ultra)Updates documentation to include the repository link, integration points, and license audit details for the device-under-test. Blocking issuesNone found. Suggestions
Nitpicks
Automated first-pass review by |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
docs/mister.mddescribed a "sibling repository (RustyNES_MiSTer)" with no link, because there was nothing to link to. There is now: https://github.com/doublegate/RustyNES_MiSTer (private).Two additions beyond the URL
The cross-repository coupling is named, because breaking it is silent
tb/checkpoint.hover there reimplementsObservable::encodefrom here, andtb/checkpoint_selftest.cppasserts it against the same hardcoded vectorthe_wire_encoding_is_pinned_to_a_fixed_vectorpins on this side.That pairing is the entire guard against the top-ranked risk at this rung: a packing disagreement between the two halves produces a hash mismatch indistinguishable from a wrong DUT, and would be debugged as one. So the doc now says plainly that changing
encodehere without changingcheckpoint.hthere breaks co-simulation in the hardest way to diagnose, and that the selftest is the first thing to run after touching either.A coupling spanning two repositories has nothing mechanical watching it — which is exactly why it belongs where the person editing the encoding will read it.
Verified rather than asserted before writing it down — both files parsed and their vectors compared byte for byte:
plus the selftest re-run against merged
main, five checks green.ADR 0037's licence hedge is resolved, and inverted
ADR 0037 recorded that a GPL-2.0-only file anywhere in the MiSTer framework's
sys/would force the RTL to GPL-2.0-or-later, and that the tabulation had to happen before any RTL existed. It has — all 57 files read and classified.There is no GPL-2.0-only file. Four are GPL-3.0-or-later, one being
hps_io.sv, which is how a core receives a ROM and reaches the OSD; no core functions without it. GPL-2.0-or-later combines upward into GPL-3 and GPL-3.0-or-later does not reduce, so the combined bitstream must be GPL-3.0-or-later — already this project's licence.The hedge is inverted by the evidence rather than confirmed by it, and the decision is made at zero lines of RTL rather than ten thousand, which was the point of ordering the audit first.
Docs only — no source, no manifests, no core.