Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions .github/workflows/norm-reference.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: Regenerate Nock reference table

on:
push:
paths:
- 'norm/tests.json'
- 'norm/generate.py'

permissions:
contents: write

jobs:
regenerate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: actions/setup-python@v5
with:
python-version: '3.x'

- name: Regenerate REFERENCE.md
run: python3 norm/generate.py

- name: Commit if changed
run: |
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git add norm/REFERENCE.md
git diff --cached --quiet || git commit -m "norm: regenerate REFERENCE.md"
git push
20 changes: 14 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,12 @@ Benchmark code evaluations for comparing Nock evaluation performance.

Benchmarks include:

- `.nock` files containing cells of `[subject formula]`
- `.hoon` source files for the Nock code.
- `.nock` files containing cells of `[subject formula]`.
- `.noun` jamfiles of the Nock code.
- `.hoon` source files for the Nock code (optional).
- `tests.json` with expected results for verification.

Generally speaking, benchmarks should be self-contained; they should not call out to additional libraries or include dependencies on even `/sys/hoon`. However, we do supply `tiny.nock` as a compiled version of `/lib/tiny` from Hoon 139K. This may be preferred for cases (like `ackermann`) which would otherwise require included more than six arms.
All benchmarks are self-contained; they do not call out to additional libraries or include dependencies on `/sys/hoon`. Each `.hoon` file inlines all required arms using the `|^` core pattern (see `ackermann.hoon` as the gold standard).

## Benchmarks

Expand All @@ -25,15 +26,20 @@ Generally speaking, benchmarks should be self-contained; they should not call ou
- [Fibonacci sequence (recursive generating function)](https://en.wikipedia.org/wiki/Fibonacci_sequence#Generating_function), `fibonacci`
- Factorial (tail-recursive), `factorial`

- [Matrix multiplication](https://en.wikipedia.org/wiki/Matrix_multiplication), `mmul`
- [SHA-512 hash](https://en.wikipedia.org/wiki/SHA-2), `sha512`

### Desired

- [Fibonacci sequence (Binet's formula)](https://en.wikipedia.org/wiki/Fibonacci_sequence#Relation_to_the_golden_ratio), `fibformula` (requires FP core)
- [Mandelbrot set](https://en.wikipedia.org/wiki/Mandelbrot_set), `mandelbrot` (easier with FP core)
- [Matrix multiplication](https://en.wikipedia.org/wiki/Matrix_multiplication), `mmul`
- [MD5 hash](https://en.wikipedia.org/wiki/MD5), `md5`
- [SHA-512 hash](https://en.wikipedia.org/wiki/SHA-2), `sha512`

## Reporting
## Nock Reference Tests

The `norm/` directory contains a comprehensive test suite of Nock 4K opcodes (0–11 plus autocons). See [`norm/README.md`](norm/README.md) and [`norm/REFERENCE.md`](norm/REFERENCE.md) for details.

## Running

Nock benchmarks supply the subject and the formula as a cell; no arguments are externally specified. In the Urbit Dojo, a benchmark may be run directly as:

Expand All @@ -44,6 +50,8 @@ Nock benchmarks supply the subject and the formula as a cell; no arguments are e

For cases for which a computation may run unreasonably long, the `%jinx` hint may be used to time-limit the computation: `~> %jinx.[~s100]`.

## Reporting

A benchmark report should include the following data:

1. Hardware (CPU chipset): `cat /proc/cpuinfo`, then report `model name` and number of cores (`siblings`)
Expand Down
2 changes: 1 addition & 1 deletion desk/bar/ackermann.nock
Original file line number Diff line number Diff line change
@@ -1 +1 @@
[[3 6] 8 [1 [6 [5 [1 0] 0 6] [4 0 7] 6 [5 [1 0] 0 7] [9 4 10 [3 [8 [9 5 0 1] 9 2 10 [6 0 14] 0 2] 1 1] 0 1] 9 4 10 [3 [8 [9 5 0 1] 9 2 10 [6 0 14] 0 2] 9 4 10 [7 8 [9 5 0 1] 9 2 10 [6 0 15] 0 2] 0 1] 0 1] 8 [1 0] [1 6 [5 [0 6] 1 0] [0 0] 8 [1 0] 8 [1 6 [5 [4 0 6] 0 30] [0 6] 9 2 10 [6 4 0 6] 0 1] 9 2 0 1] 0 1] 9 4 0 1]
[[3 6] 8 [1 [6 [5 [1 0] 0 6] [4 0 7] 6 [5 [1 0] 0 7] [9 4 10 [3 [8 [9 5 0 1] 9 2 10 [6 0 14] 0 2] 1 1] 0 1] 9 4 10 [3 [8 [9 5 0 1] 9 2 10 [6 0 14] 0 2] 9 4 10 [7 8 [9 5 0 1] 9 2 10 [6 0 15] 0 2] 0 1] 0 1] 8 [1 0] [1 6 [5 [1 0] 0 6] [0 0] 8 [1 0] 8 [1 6 [5 [0 30] 4 0 6] [0 6] 9 2 10 [6 4 0 6] 0 1] 9 2 0 1] 0 1] 9 4 0 1]
2 changes: 1 addition & 1 deletion desk/bar/ackermann.noun
Original file line number Diff line number Diff line change
@@ -1 +1 @@
���Ņ]��&va&~؅۸p\\� 3�� X� 79H� ���Od�C��0�h��:H�D ?6�y� D ;!?��!����� ��.�ƕ��� ظ0�]��9�L�o\$C��J�!��d�!����a�
���Ņ]��&va&~؅۸p\\� 3�� X� 79H� ���Od�C��0�h��:H�D ?6�y� D ;!?��!����� ��n�.�� �`q؅[�|���ƕA2d-�,�?H���� ��
Expand Down
1 change: 1 addition & 0 deletions desk/bar/add.nock
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[[1.000 2.000] 8 [1 [8 [1 0 0] [1 6 [5 [1 0] 0 12] [0 13] 9 2 10 [6 [8 [9 10 0 7] 9 2 10 [6 0 28] 0 2] 4 0 13] 0 1] 0 1] [8 [1 0] [1 6 [5 [1 0] 0 6] [0 0] 8 [1 0] 8 [1 6 [5 [0 30] 4 0 6] [0 6] 9 2 10 [6 4 0 6] 0 1] 9 2 0 1] 0 1] 8 [9 4 0 1] 9 2 10 [6 [0 14] 0 15] 0 2] 9 11 0 1]
2 changes: 2 additions & 0 deletions desk/bar/add.noun
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@

}p�����8��-6!\B:H� ��],H���!�ha'�'2�!,���[l�_v�6�O�ƯA��~,�pK�s���=H� ��=Ԕ���!��;L� X� s��A2d-�� �a�� ;L\
Expand Down
69 changes: 63 additions & 6 deletions desk/bar/atomcat.hoon
Original file line number Diff line number Diff line change
@@ -1,14 +1,71 @@
/+ tiny
::
=> tiny
::
:- .
=> m=@
:- 0
!=
^- ^
|^ ^- ^
=+ [m=(dec (bex 16)) n=(bex 15)]
:* (add m n)
(sub m n)
(mul m n) :: must be less than 2**31-1
(div m n)
(mod m n)
==
::
++ dec
|= a=@
?< =(0 a)
=+ b=0
|- ^- @
?: =(a +(b)) b
$(b +(b))
::
++ add
|= [a=@ b=@]
^- @
?: =(0 a) b
$(a (dec a), b +(b))
::
++ sub
|= [a=@ b=@]
^- @
?: =(0 b) a
$(a (dec a), b (dec b))
::
++ mul
|= [a=@ b=@]
^- @
=+ c=0
|-
?: =(0 a) c
$(a (dec a), c (add b c))
::
++ div
|= [a=@ b=@]
^- @
?< =(0 b)
=+ c=0
|-
?: (lth a b) c
$(a (sub a b), c +(c))
::
++ mod
|= [a=@ b=@]
^- @
?< =(0 b)
(sub a (mul b (div a b)))
::
++ bex
|= a=@
^- @
?: =(0 a) 1
(mul 2 $(a (dec a)))
::
++ lth
|= [a=@ b=@]
^- ?
?& !=(a b)
|-
?: =(0 a) &
?: =(0 b) |
$(a (dec a), b (dec b))
==
--
1 change: 1 addition & 0 deletions desk/bar/atomcat.nock
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[0 8 [1 [8 [1 0 0] [1 8 [1 0] 8 [1 6 [5 [1 0] 0 60] [0 6] 9 2 10 [60 8 [9 174 0 31] 9 2 10 [6 0 124] 0 2] 10 [6 8 [9 20 0 31] 9 2 10 [6 [0 125] 0 14] 0 2] 0 1] 9 2 0 1] 0 1] [[8 [1 0 0] [1 6 [5 [1 0] 0 12] [0 13] 9 2 10 [6 [8 [9 174 0 7] 9 2 10 [6 0 28] 0 2] 4 0 13] 0 1] 0 1] [8 [1 0] [1 6 [5 [1 0] 0 6] [1 1] 8 [9 4 0 7] 9 2 10 [6 [7 [0 3] 1 2] 7 [0 3] 9 2 10 [6 8 [9 174 0 7] 9 2 10 [6 0 14] 0 2] 0 1] 0 2] 0 1] [8 [1 0 0] [1 6 [5 [1 0] 0 13] [0 0] 8 [1 0] 8 [1 6 [8 [9 175 0 31] 9 2 10 [6 [0 124] 0 125] 0 2] [0 6] 9 2 10 [60 8 [9 47 0 31] 9 2 10 [6 [0 124] 0 125] 0 2] 10 [6 4 0 6] 0 1] 9 2 0 1] 0 1] [8 [1 0] [1 6 [5 [1 0] 0 6] [0 0] 8 [1 0] 8 [1 6 [5 [0 30] 4 0 6] [0 6] 9 2 10 [6 4 0 6] 0 1] 9 2 0 1] 0 1] 8 [1 0 0] [1 6 [6 [5 [0 12] 0 13] [1 1] 1 0] [6 [8 [1 6 [5 [1 0] 0 28] [1 0] 6 [5 [1 0] 0 29] [1 1] 9 2 10 [14 [8 [9 174 0 15] 9 2 10 [6 0 60] 0 2] 8 [9 174 0 15] 9 2 10 [6 0 61] 0 2] 0 1] 9 2 0 1] [1 0] 1 1] 1 1] 0 1] [8 [[8 [9 174 0 1] 9 2 10 [6 7 [0 3] 8 [9 42 0 1] 9 2 10 [6 7 [0 3] 1 16] 0 2] 0 2] 8 [9 42 0 1] 9 2 10 [6 7 [0 3] 1 15] 0 2] [8 [9 20 0 3] 9 2 10 [6 [0 12] 0 13] 0 2] [8 [9 47 0 3] 9 2 10 [6 [0 12] 0 13] 0 2] [8 [9 4 0 3] 9 2 10 [6 [0 12] 0 13] 0 2] [8 [9 86 0 3] 9 2 10 [6 [0 12] 0 13] 0 2] 8 [9 46 0 3] 9 2 10 [6 [0 12] 0 13] 0 2] [8 [1 0 0] [1 6 [5 [1 0] 0 13] [0 0] 8 [9 47 0 7] 9 2 10 [6 [0 28] 7 [0 3] 8 [9 4 0 7] 9 2 10 [6 [0 29] 7 [0 3] 8 [9 86 0 7] 9 2 10 [6 [0 28] 0 29] 0 2] 0 2] 0 2] 0 1] 8 [1 0 0] [1 6 [5 [1 0] 0 13] [0 12] 9 2 10 [6 [8 [9 174 0 7] 9 2 10 [6 0 28] 0 2] 8 [9 174 0 7] 9 2 10 [6 0 29] 0 2] 0 1] 0 1] 9 22 0 1]
2 changes: 2 additions & 0 deletions desk/bar/atomcat.noun
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
�kvqZ��b�]v�6�L(_bɐA��|� ��pM��!�ha'��� Z��.H��, �!�ha��~B|��A2�P b5�Q�8��m<�.!$C�®��@�&~� D ;a|�aU�P b�n<Yv�6�³��]� s(��d� Z؅_�cd�g� 2�v�J� 2��0���:��p
Ě�(Zv�6���F�f7�lvq�5� ��aɐA��F�0����A2d-(��d�w����:�v�Cx�P(b�n<Yv�!�Q�ٍ'�]v�0?���3H���C�8��n-�� ��h�؆��x��kvq؅�xr��O�]��'��A2d-���d \�A2d-�!����L� 2�vB�a��P(6����p(kv5� ס@ �!�ha��p�lvA2�:�A2d-��Ζ1 �u��nH��!�ha��p��!? ך]� F��e� D {���k�.H}��吖^� �ag�!-�f$�[��吖��dPw8[i�5�Q�8�p�n� �Aߡd�!�ha7T��7�-��pN �!�ha7d���p�lvA2�u(��d� Z�����: �a��u(��(Zv���h�!�ha7T��n(��d� Z�C�0\�q(�d0;�
Expand Down
69 changes: 63 additions & 6 deletions desk/bar/atomdog.hoon
Original file line number Diff line number Diff line change
@@ -1,14 +1,71 @@
/+ tiny
::
=> tiny
::
:- .
=> m=@
:- 0
!=
^- ^
|^ ^- ^
=+ [m=(dec (bex 32)) n=(bex 31)]
:* (add m n)
(sub m n)
(mul m n) :: must be less than 2**63-1
(div m n)
(mod m n)
==
::
++ dec
|= a=@
?< =(0 a)
=+ b=0
|- ^- @
?: =(a +(b)) b
$(b +(b))
::
++ add
|= [a=@ b=@]
^- @
?: =(0 a) b
$(a (dec a), b +(b))
::
++ sub
|= [a=@ b=@]
^- @
?: =(0 b) a
$(a (dec a), b (dec b))
::
++ mul
|= [a=@ b=@]
^- @
=+ c=0
|-
?: =(0 a) c
$(a (dec a), c (add b c))
::
++ div
|= [a=@ b=@]
^- @
?< =(0 b)
=+ c=0
|-
?: (lth a b) c
$(a (sub a b), c +(c))
::
++ mod
|= [a=@ b=@]
^- @
?< =(0 b)
(sub a (mul b (div a b)))
::
++ bex
|= a=@
^- @
?: =(0 a) 1
(mul 2 $(a (dec a)))
::
++ lth
|= [a=@ b=@]
^- ?
?& !=(a b)
|-
?: =(0 a) &
?: =(0 b) |
$(a (dec a), b (dec b))
==
--
1 change: 1 addition & 0 deletions desk/bar/atomdog.nock
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[0 8 [1 [8 [1 0 0] [1 8 [1 0] 8 [1 6 [5 [1 0] 0 60] [0 6] 9 2 10 [60 8 [9 174 0 31] 9 2 10 [6 0 124] 0 2] 10 [6 8 [9 20 0 31] 9 2 10 [6 [0 125] 0 14] 0 2] 0 1] 9 2 0 1] 0 1] [[8 [1 0 0] [1 6 [5 [1 0] 0 12] [0 13] 9 2 10 [6 [8 [9 174 0 7] 9 2 10 [6 0 28] 0 2] 4 0 13] 0 1] 0 1] [8 [1 0] [1 6 [5 [1 0] 0 6] [1 1] 8 [9 4 0 7] 9 2 10 [6 [7 [0 3] 1 2] 7 [0 3] 9 2 10 [6 8 [9 174 0 7] 9 2 10 [6 0 14] 0 2] 0 1] 0 2] 0 1] [8 [1 0 0] [1 6 [5 [1 0] 0 13] [0 0] 8 [1 0] 8 [1 6 [8 [9 175 0 31] 9 2 10 [6 [0 124] 0 125] 0 2] [0 6] 9 2 10 [60 8 [9 47 0 31] 9 2 10 [6 [0 124] 0 125] 0 2] 10 [6 4 0 6] 0 1] 9 2 0 1] 0 1] [8 [1 0] [1 6 [5 [1 0] 0 6] [0 0] 8 [1 0] 8 [1 6 [5 [0 30] 4 0 6] [0 6] 9 2 10 [6 4 0 6] 0 1] 9 2 0 1] 0 1] 8 [1 0 0] [1 6 [6 [5 [0 12] 0 13] [1 1] 1 0] [6 [8 [1 6 [5 [1 0] 0 28] [1 0] 6 [5 [1 0] 0 29] [1 1] 9 2 10 [14 [8 [9 174 0 15] 9 2 10 [6 0 60] 0 2] 8 [9 174 0 15] 9 2 10 [6 0 61] 0 2] 0 1] 9 2 0 1] [1 0] 1 1] 1 1] 0 1] [8 [[8 [9 174 0 1] 9 2 10 [6 7 [0 3] 8 [9 42 0 1] 9 2 10 [6 7 [0 3] 1 32] 0 2] 0 2] 8 [9 42 0 1] 9 2 10 [6 7 [0 3] 1 31] 0 2] [8 [9 20 0 3] 9 2 10 [6 [0 12] 0 13] 0 2] [8 [9 47 0 3] 9 2 10 [6 [0 12] 0 13] 0 2] [8 [9 4 0 3] 9 2 10 [6 [0 12] 0 13] 0 2] [8 [9 86 0 3] 9 2 10 [6 [0 12] 0 13] 0 2] 8 [9 46 0 3] 9 2 10 [6 [0 12] 0 13] 0 2] [8 [1 0 0] [1 6 [5 [1 0] 0 13] [0 0] 8 [9 47 0 7] 9 2 10 [6 [0 28] 7 [0 3] 8 [9 4 0 7] 9 2 10 [6 [0 29] 7 [0 3] 8 [9 86 0 7] 9 2 10 [6 [0 28] 0 29] 0 2] 0 2] 0 2] 0 1] 8 [1 0 0] [1 6 [5 [1 0] 0 13] [0 12] 9 2 10 [6 [8 [9 174 0 7] 9 2 10 [6 0 28] 0 2] 8 [9 174 0 7] 9 2 10 [6 0 29] 0 2] 0 1] 0 1] 9 22 0 1]
3 changes: 3 additions & 0 deletions desk/bar/atomdog.noun
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
�kvqZ��b�]v�6�L(_bɐA��|� ��pM��!�ha'��� Z��.H��, �!�ha��~B|��A2�P b5�Q�8��m<�.!$C�®��@�&~� D ;a|�aU�P b�n<Yv�6�³��]� s(��d� Z؅_�cd�g� 2�v�J� 2��0���:��p
Ě�(Zv�6���F�f7�lvq�5� ��aɐA��F�0����A2d-(��d�w����:�v�Cx�P(b�n<Yv�!�Q�ٍ'�]v�0?���3H���C�8��n-�� ��h�؆��x��kvq؅�xr��O�]��'��A2d-���d \�A2d-�!����L� 2�vB�a��P(6����p(kv5� ס@ �!�ha��p�lvA2�:�A2d-��Ζ1��0\�ݐ$C����l��0\kvA2ΖA2d-�!;s�5� �ΖCbz�.H�9�-����]� nΖCbz� �A��l9$���F������.H}��9H� ���Pm��p�lv�91H� ��ݐ�~�ٲ���֡d�!�ha7T�C�0\��: ס@lv�hq����5H� ���P7��$�!�ha��p
ġ@ ���P 
Expand Down
71 changes: 64 additions & 7 deletions desk/bar/atomgmp.hoon
Original file line number Diff line number Diff line change
@@ -1,14 +1,71 @@
/+ tiny
::
=> tiny
::
:- .
=> m=@
:- 0
!=
^- ^
=+ [m=(dec (bex 128)) n=(bex 128)]
|^ ^- ^
=+ [m=(dec (bex 128)) n=(bex 127)]
:* (add m n)
(sub m n)
(mul m n)
(div m n)
(mod m n)
==
::
++ dec
|= a=@
?< =(0 a)
=+ b=0
|- ^- @
?: =(a +(b)) b
$(b +(b))
::
++ add
|= [a=@ b=@]
^- @
?: =(0 a) b
$(a (dec a), b +(b))
::
++ sub
|= [a=@ b=@]
^- @
?: =(0 b) a
$(a (dec a), b (dec b))
::
++ mul
|= [a=@ b=@]
^- @
=+ c=0
|-
?: =(0 a) c
$(a (dec a), c (add b c))
::
++ div
|= [a=@ b=@]
^- @
?< =(0 b)
=+ c=0
|-
?: (lth a b) c
$(a (sub a b), c +(c))
::
++ mod
|= [a=@ b=@]
^- @
?< =(0 b)
(sub a (mul b (div a b)))
::
++ bex
|= a=@
^- @
?: =(0 a) 1
(mul 2 $(a (dec a)))
::
++ lth
|= [a=@ b=@]
^- ?
?& !=(a b)
|-
?: =(0 a) &
?: =(0 b) |
$(a (dec a), b (dec b))
==
--
1 change: 1 addition & 0 deletions desk/bar/atomgmp.nock
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[0 8 [1 [8 [1 0 0] [1 8 [1 0] 8 [1 6 [5 [1 0] 0 60] [0 6] 9 2 10 [60 8 [9 174 0 31] 9 2 10 [6 0 124] 0 2] 10 [6 8 [9 20 0 31] 9 2 10 [6 [0 125] 0 14] 0 2] 0 1] 9 2 0 1] 0 1] [[8 [1 0 0] [1 6 [5 [1 0] 0 12] [0 13] 9 2 10 [6 [8 [9 174 0 7] 9 2 10 [6 0 28] 0 2] 4 0 13] 0 1] 0 1] [8 [1 0] [1 6 [5 [1 0] 0 6] [1 1] 8 [9 4 0 7] 9 2 10 [6 [7 [0 3] 1 2] 7 [0 3] 9 2 10 [6 8 [9 174 0 7] 9 2 10 [6 0 14] 0 2] 0 1] 0 2] 0 1] [8 [1 0 0] [1 6 [5 [1 0] 0 13] [0 0] 8 [1 0] 8 [1 6 [8 [9 175 0 31] 9 2 10 [6 [0 124] 0 125] 0 2] [0 6] 9 2 10 [60 8 [9 47 0 31] 9 2 10 [6 [0 124] 0 125] 0 2] 10 [6 4 0 6] 0 1] 9 2 0 1] 0 1] [8 [1 0] [1 6 [5 [1 0] 0 6] [0 0] 8 [1 0] 8 [1 6 [5 [0 30] 4 0 6] [0 6] 9 2 10 [6 4 0 6] 0 1] 9 2 0 1] 0 1] 8 [1 0 0] [1 6 [6 [5 [0 12] 0 13] [1 1] 1 0] [6 [8 [1 6 [5 [1 0] 0 28] [1 0] 6 [5 [1 0] 0 29] [1 1] 9 2 10 [14 [8 [9 174 0 15] 9 2 10 [6 0 60] 0 2] 8 [9 174 0 15] 9 2 10 [6 0 61] 0 2] 0 1] 9 2 0 1] [1 0] 1 1] 1 1] 0 1] [8 [[8 [9 174 0 1] 9 2 10 [6 7 [0 3] 8 [9 42 0 1] 9 2 10 [6 7 [0 3] 1 128] 0 2] 0 2] 8 [9 42 0 1] 9 2 10 [6 7 [0 3] 1 127] 0 2] [8 [9 20 0 3] 9 2 10 [6 [0 12] 0 13] 0 2] [8 [9 47 0 3] 9 2 10 [6 [0 12] 0 13] 0 2] [8 [9 4 0 3] 9 2 10 [6 [0 12] 0 13] 0 2] [8 [9 86 0 3] 9 2 10 [6 [0 12] 0 13] 0 2] 8 [9 46 0 3] 9 2 10 [6 [0 12] 0 13] 0 2] [8 [1 0 0] [1 6 [5 [1 0] 0 13] [0 0] 8 [9 47 0 7] 9 2 10 [6 [0 28] 7 [0 3] 8 [9 4 0 7] 9 2 10 [6 [0 29] 7 [0 3] 8 [9 86 0 7] 9 2 10 [6 [0 28] 0 29] 0 2] 0 2] 0 2] 0 1] 8 [1 0 0] [1 6 [5 [1 0] 0 13] [0 12] 9 2 10 [6 [8 [9 174 0 7] 9 2 10 [6 0 28] 0 2] 8 [9 174 0 7] 9 2 10 [6 0 29] 0 2] 0 1] 0 1] 9 22 0 1]
2 changes: 2 additions & 0 deletions desk/bar/atomgmp.noun
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
�kvqZ��b�]v�6�L(_bɐA��|� ��pM��!�ha'��� Z��.H��, �!�ha��~B|��A2�P b5�Q�8��m<�.!$C�®��@�&~� D ;a|�aU�P b�n<Yv�6�³��]� s(��d� Z؅_�cd�g� 2�v�J� 2��0���:��p
Ě�(Zv�6���F�f7�lvq�5� ��aɐA��F�0����A2d-(��d�w����:�v�Cx�P(b�n<Yv�!�Q�ٍ'�]v�0?���3H���C�8��n-�� ��h�؆��x��kvq؅�xr��O�]��'��A2d-���d \�A2d-�!����L� 2�vB�a��P(6����p(kv5� ס@ �!�ha��p�lvA2�:�A2d-��Ζ1�a�õ���A2d-��Ζ1�? ך]� F��e� D {���k�.H}��吞^� �ag�!=�f$�[��吞��dPw8[��5�Q�8�p�n� �Aߡd�!�ha7T��7�-��pN �!�ha7d���p�lvA2�u(��d� Z�����: �a��u(��(Zv���h�!�ha7T��n(��d� Z�C�0\�q(�d0;�
Expand Down
24 changes: 18 additions & 6 deletions desk/bar/bigslot.hoon
Original file line number Diff line number Diff line change
@@ -1,8 +1,20 @@
/+ tiny
::
=> tiny
::
:- .
=> m=@
:- 0
!=
^- ^
|^ ^- ^
&100:(reap 100 ~)
::
++ reap
|= [a=@ b=*]
|- ^- *
?: =(0 a) ~
[b $(a (dec a))]
::
++ dec
|= a=@
?< =(0 a)
=+ b=0
|- ^- @
?: =(a +(b)) b
$(b +(b))
--
1 change: 1 addition & 0 deletions desk/bar/bigslot.nock
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[0 8 [1 [8 [1 0 0] [1 8 [1 6 [5 [1 0] 0 28] [1 0] [0 29] 9 2 10 [28 8 [9 10 0 15] 9 2 10 [6 0 60] 0 2] 0 1] 9 2 0 1] 0 1] [8 [1 0] [1 6 [5 [1 0] 0 6] [0 0] 8 [1 0] 8 [1 6 [5 [0 30] 4 0 6] [0 6] 9 2 10 [6 4 0 6] 0 1] 9 2 0 1] 0 1] 7 [8 [9 4 0 1] 9 2 10 [6 [7 [0 3] 1 100] 7 [0 3] 1 0] 0 2] 0 2.535.301.200.456.458.802.993.406.410.750] 9 11 0 1]
2 changes: 2 additions & 0 deletions desk/bar/bigslot.noun
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
�kvqZ��� �؄���%�ɐA�`��� ���!�ha'�Odr� 9��a������an���n�mv��f�]�%̇9���9$C��J�a��u����d��X�!�ha~�����
���0K`��������������d��*
Expand Down
1 change: 1 addition & 0 deletions desk/bar/dec.nock
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[1.000.000 8 [1 [8 [9 5 0 1] 9 2 10 [6 0 7] 0 2] 8 [1 0] [1 6 [5 [1 0] 0 6] [0 0] 8 [1 0] 8 [1 6 [5 [0 30] 4 0 6] [0 6] 9 2 10 [6 4 0 6] 0 1] 9 2 0 1] 0 1] 9 4 0 1]
1 change: 1 addition & 0 deletions desk/bar/dec.noun
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
 H�`qA� nr� D ;��-�pb7�K�`C��� ���0��o�� 2��0gǽA2�w�$��
1 change: 1 addition & 0 deletions desk/bar/factorial.nock
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[40 8 [1 [8 [1 1 1] [1 8 [1 0] 8 [1 6 [5 [1 0] 0 60] [0 6] 9 2 10 [60 8 [9 21 0 31] 9 2 10 [6 0 124] 0 2] 10 [6 8 [9 20 0 31] 9 2 10 [6 [0 125] 0 14] 0 2] 0 1] 9 2 0 1] 0 1] [[8 [1 0 0] [1 6 [5 [1 0] 0 12] [0 13] 9 2 10 [6 [8 [9 21 0 7] 9 2 10 [6 0 28] 0 2] 4 0 13] 0 1] 0 1] 8 [1 0] [1 6 [5 [1 0] 0 6] [0 0] 8 [1 0] 8 [1 6 [5 [0 30] 4 0 6] [0 6] 9 2 10 [6 4 0 6] 0 1] 9 2 0 1] 0 1] 8 [8 [1 0] [1 8 [1 1] 8 [1 6 [5 [0 30] 1 1] [0 6] 9 2 10 [30 8 [9 21 0 31] 9 2 10 [6 0 62] 0 2] 10 [6 8 [9 4 0 31] 9 2 10 [6 [0 14] 0 62] 0 2] 0 1] 9 2 0 1] 0 1] 9 2 10 [6 0 7] 0 2] 9 11 0 1]
1 change: 1 addition & 0 deletions desk/bar/factorial.noun
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
A� X\,��8��.�ƹ �K� 2����`5a?H� ���p~"�ha��d0:L� 2�v �'ćq�$CE�P4V,N��.�ƹ ��A2d-�`A2XM� 2�v��0n�*ۡh�� �8�8��m�;�lCM��� ���0��m�� 2��p��ơx�� Xl�[݃`q؅�p��b6H� ��A�aɐA����6�v,H�9L� 2�vCI8\��q;�C�8�A2d-졆�m� �C�
1 change: 1 addition & 0 deletions desk/bar/fibonacci.nock
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[10 8 [1 [8 [1 0 0] [1 6 [5 [1 0] 0 12] [0 13] 9 2 10 [6 [8 [9 10 0 7] 9 2 10 [6 0 28] 0 2] 4 0 13] 0 1] 0 1] [8 [1 0] [1 6 [5 [1 0] 0 6] [0 0] 8 [1 0] 8 [1 6 [5 [0 30] 4 0 6] [0 6] 9 2 10 [6 4 0 6] 0 1] 9 2 0 1] 0 1] 8 [8 [1 0] [1 6 [5 [0 6] 1 1] [1 1] 6 [5 [0 6] 1 2] [1 1] 8 [9 4 0 7] 9 2 10 [6 [7 [0 3] 9 2 10 [6 8 [9 10 0 7] 9 2 10 [6 0 14] 0 2] 0 1] 7 [0 3] 9 2 10 [6 8 [9 10 0 7] 9 2 10 [6 7 [0 3] 8 [9 10 0 7] 9 2 10 [6 0 14] 0 2] 0 2] 0 1] 0 2] 0 1] 9 2 10 [6 0 7] 0 2] 9 11 0 1]
1 change: 1 addition & 0 deletions desk/bar/fibonacci.noun
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
A4��� �؄p � ���.$�L� ���NOd����a���]����<6���an �a�abɐM�P(s4H���0G�`A��oq؅�0�cn���.܆�#*� X� s�� ���.�$C6Y�A�!��d�& ;!>��a���p) �!�,� ��A2d��~åp803r��Ì�h� �da�=�� d�9
Expand Down
Loading