Open
Conversation
63 test cases covering all 12 opcodes (0-11) plus auto-cons, as subject/formula/result triples in machine-legible JSON with generated Markdown reference table. Includes Python scripts to regenerate the Markdown (generate.py) and validate against a live runtime via urbit eval (validate.py). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Matrix multiplication (mmul): 10x10 procedurally generated matrices, uses /lib/tiny with a turn extension. SHA-512 (sha512): hashes 'abc' (3 bytes), extends tiny with ror, net, inv, run arms needed for the SHA-512 algorithm. Implementation follows the shal arm from hoon.hoon. Moves both from Desired to Supplied in README. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Replace /+ tiny imports with inlined arms using |^ core pattern. All arms are compiled into the nock formula via !=, making each benchmark fully self-contained without external library dependencies. Files converted: atomcat, atomdog, atomgmp, bigslot, mmul, sha512, sieve Also fixes: - con (binary OR) implementation: was computing XOR, now correct - Replace bloq/step/bite stdlib types with bare @ types - Use raw noun types (*) for list-like structures Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Regenerate ackermann and sieve nock/noun files with current compiler. Add nock/noun files for: add, atomcat, atomdog, atomgmp, bigslot, dec, factorial, fibonacci, mmul, sha512. .nock files contain the [subject formula] cell as compact text. .noun files contain the jammed binary representation. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
New: desk/bar/tests.json with expected results for all 12 benchmarks. Each entry has name, description, subject, default_subject, and result. Slow benchmarks use smaller test subjects (e.g. factorial 5 not 40). Hardcoded benchmarks (atomcat/dog/gmp, sha512) have results computed via stdlib since naive Nock is too slow to verify directly. Fix: atomgmp.hoon used n=(bex 128) which made m < n, causing sub to underflow. Changed to n=(bex 127) to match the atomcat/dog pattern where m=(dec (bex N)), n=(bex N/2). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Collaborator
Author
|
This adds Nock, jammed noun, and Hoon examples along with a battery of Nock subject/formula/result triplets for each opcode. |
Collaborator
Author
|
I can merge unilaterally but if anyone at UF can review I'd appreciate it. @dozreg-toplud @matthew-levan @midden-fabler |
- Document that all benchmarks are now self-contained (no /+ tiny) - List .hoon, .nock, .noun, and tests.json as included files - Add Nock Reference Tests section pointing to norm/ - Rename 'Reporting' to 'Running' for the execution instructions section Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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.
63 test cases covering all 12 opcodes (0-11) plus auto-cons, as subject/formula/result triples in machine-legible JSON with generated Markdown reference table.
Includes Python scripts to regenerate the Markdown (generate.py) and validate against a live runtime via urbit eval (validate.py).