mirror of
https://github.com/ilyakooo0/urbit.git
synced 2024-12-12 15:01:38 +03:00
Better tools for test kernels.
This commit is contained in:
parent
d13c0b3ddc
commit
f79aa14786
163
arvo/test.hoon
163
arvo/test.hoon
@ -1,165 +1,24 @@
|
|||||||
!::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
?> ?=([@ @] .)
|
||||||
:::::: :::::: Preface ::::::
|
%. .
|
||||||
:::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|= [x=@ y=@]
|
||||||
?> ?=(@ .) :: atom subject
|
=- (add:all x y)
|
||||||
%. . :: fun with subject
|
^= all
|
||||||
|= cud=@ :: call it cud
|
=> %164
|
||||||
=- (mul:all 2 cud) :: multiply by 2
|
~% %k164 ~ ~
|
||||||
^= all :: assemble engine
|
|
||||||
=~ :: volume stack
|
|
||||||
%164 :: version constant
|
|
||||||
:::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
||||||
:::::: :::::: volume 0, version stub ::::::
|
|
||||||
:::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
||||||
~% %k.164 ~ ~ ::
|
|
||||||
|% ::
|
|
||||||
++ stub 164 :: version stub
|
|
||||||
-- ::
|
|
||||||
:::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
||||||
:::::: :::::: volume 1, Hoon models ::::::
|
|
||||||
:::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
||||||
~% %mood
|
|
||||||
+
|
|
||||||
~
|
|
||||||
|% ::
|
|
||||||
++ axis ,@ :: tree address
|
|
||||||
-- ::
|
|
||||||
:::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
||||||
:::::: :::::: volume 2, Hoon libraries and compiler ::::::
|
|
||||||
:::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
||||||
~% %hoon
|
|
||||||
+
|
|
||||||
==
|
|
||||||
%dec dec
|
|
||||||
==
|
|
||||||
|%
|
|%
|
||||||
::::::::::::::::::::::::::::::::::::::::::::::::::::: ::
|
++ add
|
||||||
:::: chapter 2a, basic unsigned math ::::
|
|
||||||
:: ::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
||||||
++ add :: add
|
|
||||||
~/ %add
|
~/ %add
|
||||||
|= [a=@ b=@]
|
|= [a=@ b=@]
|
||||||
^- @
|
^- @
|
||||||
?: =(0 a)
|
?: =(0 a) b
|
||||||
b
|
|
||||||
$(a (dec a), b +(b))
|
$(a (dec a), b +(b))
|
||||||
::
|
::
|
||||||
++ cap :: tree head
|
++ dec
|
||||||
~/ %cap
|
|
||||||
|= a=@
|
|
||||||
^- ?(%2 %3)
|
|
||||||
?- a
|
|
||||||
%2 %2
|
|
||||||
%3 %3
|
|
||||||
?(%0 %1) !!
|
|
||||||
* $(a (div a 2))
|
|
||||||
==
|
|
||||||
::
|
|
||||||
++ dec :: decrement
|
|
||||||
~/ %dec
|
~/ %dec
|
||||||
|= a=@
|
|= a=@
|
||||||
?< =(0 a)
|
?< =(0 a)
|
||||||
=+ b=0
|
=+ b=0
|
||||||
|- ^- @
|
|- ^- @
|
||||||
?: =(a +(b))
|
?: =(a +(b)) b
|
||||||
b
|
|
||||||
$(b +(b))
|
$(b +(b))
|
||||||
::
|
|
||||||
++ div :: divide
|
|
||||||
~/ %div
|
|
||||||
|= [a=@ b=@]
|
|
||||||
^- @
|
|
||||||
?< =(0 b)
|
|
||||||
=+ c=0
|
|
||||||
|-
|
|
||||||
?: (lth a b)
|
|
||||||
c
|
|
||||||
$(a (sub a b), c +(c))
|
|
||||||
::
|
|
||||||
++ gte :: greater-equal
|
|
||||||
~/ %gte
|
|
||||||
|= [a=@ b=@]
|
|
||||||
^- ?
|
|
||||||
!(lth a b)
|
|
||||||
::
|
|
||||||
++ gth :: greater-than
|
|
||||||
~/ %gth
|
|
||||||
|= [a=@ b=@]
|
|
||||||
^- ?
|
|
||||||
!(lte a b)
|
|
||||||
::
|
|
||||||
++ lte :: less-equal
|
|
||||||
~/ %lte
|
|
||||||
|= [a=@ b=@]
|
|
||||||
|(=(a b) (lth a b))
|
|
||||||
::
|
|
||||||
++ lth :: less-than
|
|
||||||
~/ %lth
|
|
||||||
|= [a=@ b=@]
|
|
||||||
^- ?
|
|
||||||
&(!=(a b) |-(|(=(0 a) &(!=(0 b) $(a (dec a), b (dec b))))))
|
|
||||||
::
|
|
||||||
++ mas :: tree body
|
|
||||||
~/ %mas
|
|
||||||
|= a=@
|
|
||||||
^- @
|
|
||||||
?- a
|
|
||||||
1 !!
|
|
||||||
2 1
|
|
||||||
3 1
|
|
||||||
* (add (mod a 2) (mul $(a (div a 2)) 2))
|
|
||||||
==
|
|
||||||
::
|
|
||||||
++ max :: maximum
|
|
||||||
~/ %max
|
|
||||||
|= [a=@ b=@]
|
|
||||||
^- @
|
|
||||||
?: (gth a b)
|
|
||||||
a
|
|
||||||
b
|
|
||||||
::
|
|
||||||
++ min :: minimum
|
|
||||||
~/ %min
|
|
||||||
|= [a=@ b=@]
|
|
||||||
^- @
|
|
||||||
?: (lth a b)
|
|
||||||
a
|
|
||||||
b
|
|
||||||
::
|
|
||||||
++ mod :: remainder
|
|
||||||
~/ %mod
|
|
||||||
|= [a=@ b=@]
|
|
||||||
^- @
|
|
||||||
?< =(0 b)
|
|
||||||
(sub a (mul b (div a b)))
|
|
||||||
::
|
|
||||||
++ mul :: multiply
|
|
||||||
~/ %mul
|
|
||||||
|= [a=@ b=@]
|
|
||||||
^- @
|
|
||||||
=+ c=0
|
|
||||||
|-
|
|
||||||
?: =(0 a)
|
|
||||||
c
|
|
||||||
$(a (dec a), c (add b c))
|
|
||||||
::
|
|
||||||
++ peg :: tree connect
|
|
||||||
~/ %peg
|
|
||||||
|= [a=@ b=@]
|
|
||||||
^- @
|
|
||||||
?- b
|
|
||||||
1 a
|
|
||||||
2 (mul a 2)
|
|
||||||
3 +((mul a 2))
|
|
||||||
* (add (mod b 2) (mul $(b (div b 2)) 2))
|
|
||||||
==
|
|
||||||
::
|
|
||||||
++ sub :: subtract
|
|
||||||
~/ %sub
|
|
||||||
|= [a=@ b=@]
|
|
||||||
^- @
|
|
||||||
?: =(0 b)
|
|
||||||
a
|
|
||||||
$(a (dec a), b (dec b))
|
|
||||||
--
|
--
|
||||||
. ==
|
|
||||||
|
@ -1,27 +0,0 @@
|
|||||||
!:
|
|
||||||
:: /=main=/bin/solid/hoon
|
|
||||||
::
|
|
||||||
=> .(- `[who=@p how=path]`-)
|
|
||||||
|= [est=time eny=@uw]
|
|
||||||
|= arg=~
|
|
||||||
=+ ^= cor
|
|
||||||
=< |= [x=@ y=@]
|
|
||||||
(add x y)
|
|
||||||
=> %164
|
|
||||||
|%
|
|
||||||
++ add
|
|
||||||
|= [a=@ b=@]
|
|
||||||
^- @
|
|
||||||
?: =(0 a) b
|
|
||||||
$(a (dec a), b +(b))
|
|
||||||
::
|
|
||||||
++ dec
|
|
||||||
|= a=@
|
|
||||||
?< =(0 a)
|
|
||||||
=+ b=0
|
|
||||||
|- ^- @
|
|
||||||
?: =(a +(b)) b
|
|
||||||
$(b +(b))
|
|
||||||
--
|
|
||||||
:_ ~ :_ ~
|
|
||||||
[%xx %sage [%easy0 %pill ~] cor]
|
|
@ -1,31 +0,0 @@
|
|||||||
!:
|
|
||||||
:: /=main=/bin/solid/hoon
|
|
||||||
::
|
|
||||||
=> .(- `[who=@p how=path]`-)
|
|
||||||
|= [est=time eny=@uw]
|
|
||||||
|= arg=~
|
|
||||||
=+ ^= cor
|
|
||||||
=< |= [x=@ y=@]
|
|
||||||
(add x y)
|
|
||||||
=> %164
|
|
||||||
~% %k164 ~ ~
|
|
||||||
|%
|
|
||||||
++ add
|
|
||||||
~/ %add
|
|
||||||
|= [a=@ b=@]
|
|
||||||
^- @
|
|
||||||
?: =(0 a) b
|
|
||||||
$(a (dec a), b +(b))
|
|
||||||
::
|
|
||||||
++ dec
|
|
||||||
~/ %dec
|
|
||||||
|= a=@
|
|
||||||
~| %decrement-underflow
|
|
||||||
?< =(0 a)
|
|
||||||
=+ b=0
|
|
||||||
|- ^- @
|
|
||||||
?: =(a +(b)) b
|
|
||||||
$(b +(b))
|
|
||||||
--
|
|
||||||
:_ ~ :_ ~
|
|
||||||
[%xx %sage [%easy1 %pill ~] cor]
|
|
Loading…
Reference in New Issue
Block a user