Conversation
This was referenced Sep 13, 2026
Phase 5 of doc/nockapp-softfloat-rs-spec.md. Adds lagoon/nockapp/, a Cargo workspace with crates/lagoon-jets: Rust jets for all 28 hinted arms of the +la door on %i754 rays, computing with sdfloat/sdblas (sigilante/RustFloat) so a NockApp returns the bits the Hoon returns. Any input a jet does not handle punts to the Nock. Also: - hoon/: generated copy of the desk (scripts/sync-hoon.sh) with the jet parent `..part` rewritten to `..ut` for bare hoon-138, plus the test files and a runner exposing each test as its own trap. This replaces the hand-maintained copy proposed in PR #17. - lagoon-kick: driver that fires a hoonc --arbitrary trap under the jets, with NOCK_TEST_JETS (NockVM's jet-vs-Nock differential mode), a test filter, per-jet tracing and a sabotage self-check. - desk: +argmax/+argmin indexed the boxed extreme with ~[0 0], crashing on any rank but 2 in pure Hoon (the vere jet masked it); index with (reap (lent shape) 0). - doc/: the sdfloat spec with its implementation errata. Whole suite (153 tests) under test mode for all 28 jets: 1 failure, non-jet -- test-argmax hits a NockVM bug (the built-in `find` jet compares elements with raw_equals, missing equal indirect atoms; nockchain/nockchain#184). %mod follows the semantics reconciled in #78 (quotient rounded in the door mode, crash on a non-finite quotient): the jet punts there so the Nock crashes. Divergences between the Hoon and the vere C jets that the run surfaced (abs on -0/NaN, range/linspace element count, dot/cumsum fold order, commented-out ravel hint) are recorded in lagoon/nockapp/PORTING.md; the Rust follows the Hoon. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TgBnKsUPYzkoPZonjePnaq
sigilante
force-pushed
the
sigilante/nockapp-lagoon-jets
branch
from
September 13, 2026 07:54
691ab72 to
b5ab2b4
Compare
This was referenced Sep 13, 2026
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.
Replaces #17. Phase 5 of
doc/nockapp-softfloat-rs-spec.md:/lib/lagoonon NockVM, as a generated Hoon copy plus Rust jets.What
lagoon/nockapp/crates/lagoon-jets: Rust jets for all 28 hinted arms of the+ladoor on%i754rays, computing withsdfloat/sdblas(sigilante/RustFloat) so a NockApp returns exactly the bits the Hoon returns. Anything a jet does not handle punts to the Nock.hot_state()composes the hoon-138 built-ins withLAGOON_HOTforboot::setup.lagoon/nockapp/hoon/: generated byscripts/sync-hoon.shfromlagoon/deskandlibmath/desk, with the jet parent..partrewritten to..ut(hoonc compiles against bare hoon-138, which has nopart). That one token is the only difference from the desk, so the copy is generated rather than maintained by hand. hoonc handles/-and/+as-is; no sur move needed.lagoon-kick: driver that fires ahoonc --arbitrarytrap under the jets and runs each of the 153 lagoon tests as its own trap, withNOCK_TEST_JETS(NockVM's built-in jet-vs-Nock differential mode), a test filter, per-jet tracing and a sabotage self-check.+argmax/+argminindexed the boxed extreme with~[0 0], so any rank but 2 crashed in pure Hoon; the vere jet was masking it. Now(reap (lent shape) 0). Needs a ship build check before a vere release.Verification
Whole suite, all 28 hints in
NOCK_TEST_JETS: 153 tests, 1 failed, no jet mismatch, 1.5 s. The failure is non-jet:lagoon-compare-reduce/test-argmaxhits a NockVM bug: the built-infindjet compares elements withraw_equals, so a@rqfromcutnever matches an equal@rqfromrip. Filed as find jet misses indirect atoms: compares elements with raw_equals nockchain/nockchain#184.%modfollows the semantics #78 reconciled (quotient rounded in the door mode via+toi, crash on a non-finite quotient); the jet punts on a non-finite quotient so the Nock crashes, and all ten mod tests pass under test mode. Rebased onto main after #78–#81.Divergences between the Hoon and the vere C jets that the run surfaced (the Rust follows the Hoon; see
PORTING.md):+abskeeps-0and canonicalizes NaN;+range/+linspaceiterate where the C counts up front;+dot/+cumsumfold right to left; the~/ %ravelhint is commented out so that jet cannot fire.Not in this PR
%int2and the other kinds the C jets cover; jets for hoon-138's ownrs/rd/rh/rqdoors (next).🤖 Generated with Claude Code
https://claude.ai/code/session_01TgBnKsUPYzkoPZonjePnaq