leanprover / leanprover/subverso
Follow up on transport, test setup, and documentation review
Nobody has claimed this yet.
- Dominant language
- Lean
- Stars
- 8
- Forks
- 14
- Avg merge
- 14h 54m
- Merged PRs (30d)
- 5
Description
These findings came from the review of #239 and are intentionally deferred to a separate SubVerso cleanup.
- Fix netstring framing under short reads in
src/SubVerso/Helper/Netstring.lean. The reader stops at the payload length although it also expects the terminator in that buffer. Reproduced: malformed3:ab,is accepted asab; valid3:abc,is rejected when the read returns the three payload bytes before the comma. Read the payload and terminator separately, and cover empty payloads and truncated frames. - Repair and activate
Tests.testNetstrings. It is not called by the test driver'smain, and its long-input loop doubles a string 100 times. Replace that case with bounded inputs and a stream that deliberately returns short reads before enabling the test. This is separate from the elaboration-time tests inInternalTests.lean, which already run duringlake build. - Update the nightly workflow's demo setup. It builds
demodirectly, but the demo'sno-moddependency is generated by the test driver under.builds. The obsolete setup step gates the test step. Use the existing preparation/test driver, and correct the demo lakefile's outdated comment about a Git dependency. - Remove deleted source files when refreshing cached test projects.
Tests.prepareProjectoverlays current files onto cached project/dependency trees; obsolete files can survive. Synchronize sources while preserving build artifacts, and verify that removing or renaming a module produces the same test inputs with and without restored caches. - Correct the older README instructions. Module extraction produces an object with
dataanditems, rather than a top-level array; helper startup requires arguments not shown in the current instructions. - Investigate typed internal representations for reflow-format payloads and saved examples. Reflow data is currently JSON inside strings, and the example environment stores JSON. Establish the compatibility requirements first, then consider keeping typed values internally and serializing at transport/export boundaries.
- Consider a named result record for
checkSignature. It returns highlighted output, diagnostics, source text, source positions, and info trees. This is optional API cleanup, deferred to keep #239 focused.
The framing failures above were confirmed with Lean probes. The representation changes are design investigations, not demonstrated correctness defects.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the confirmed framing failures in src/SubVerso/Helper/Netstring.lean and the inactive Tests.testNetstrings, then inspect the nightly workflow, demo lakefile, Tests.prepareProject, README, and InternalTests. Treat the representation and checkSignature items as separate design investigations; the issue is done only when its selected cleanup areas have tests or verified setup and documentation updates.
Written by the indexing model from the issue text.
Assessment
- Domain
- build-system, ci-cd, documentation, testing
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100