mirror of
https://github.com/urbit/shrub.git
synced 2024-12-01 06:35:32 +03:00
Merge branch 'release/next-sys' into jb/co-norm
* release/next-sys: pill: solid zuse: rewrites |base16 for clarity, simplicity, specificity zuse: adds basic tests for |base16 zuse: adds |base16 hex $oct en/decoder eyre: prevent binding in reserved namespaces pill: solid zuse: removes redundant definitions of $mite and $octs ames: print failed scrys
This commit is contained in:
commit
88d9510111
@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:7e4edc51f2f314a5236deb4a975d6364cca2164f104b6656446d52ba61ac3e45
|
oid sha256:2291d9c0febd6ccd7538571ab1e41409f6808b12e5b3d3b0cb3e0fbf8c1bc8aa
|
||||||
size 19166792
|
size 6319141
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|_ ato/@
|
|_ ato/@
|
||||||
++ grab |%
|
++ grab |%
|
||||||
++ noun @
|
++ noun @
|
||||||
++ mime |=({* p/octs:eyre} q.p)
|
++ mime |=([* p=octs] q.p)
|
||||||
--
|
--
|
||||||
++ grow |%
|
++ grow |%
|
||||||
++ mime [/application/x-urb-unknown (as-octs ato)]
|
++ mime [/application/x-urb-unknown (as-octs ato)]
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
++ grab
|
++ grab
|
||||||
|%
|
|%
|
||||||
++ mime
|
++ mime
|
||||||
|= [p=mite:eyre q=octs:eyre]
|
|= (pair mite octs)
|
||||||
=/ wan=wain (to-wain q.q)
|
=/ wan=wain (to-wain q.q)
|
||||||
?> ?=(^ wan)
|
?> ?=(^ wan)
|
||||||
%+ murn t.wan
|
%+ murn t.wan
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
::
|
::
|
||||||
++ grab :: convert from
|
++ grab :: convert from
|
||||||
|%
|
|%
|
||||||
++ mime |=({p/mite:eyre q/octs:eyre} (to-wain q.q))
|
++ mime |=((pair mite octs) (to-wain q.q))
|
||||||
++ noun wain :: clam from %noun
|
++ noun wain :: clam from %noun
|
||||||
--
|
--
|
||||||
++ grow
|
++ grow
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
::
|
::
|
||||||
++ grab :: convert from
|
++ grab :: convert from
|
||||||
|%
|
|%
|
||||||
++ mime |=([p=mite:eyre q=octs:eyre] (to-wain q.q))
|
++ mime |=((pair mite octs) (to-wain q.q))
|
||||||
++ noun wain :: clam from %noun
|
++ noun wain :: clam from %noun
|
||||||
--
|
--
|
||||||
++ grow
|
++ grow
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
|%
|
|%
|
||||||
++ noun pill
|
++ noun pill
|
||||||
++ mime
|
++ mime
|
||||||
|= [p=mite:eyre q=octs:eyre]
|
|= (pair mite octs)
|
||||||
=+ o=(pair ,* ,*) :: ,*)
|
=+ o=(pair ,* ,*) :: ,*)
|
||||||
=+ (,[boot-ova=* kernel-ova=(list o) userspace-ova=(list o)] (cue q.q))
|
=+ (,[boot-ova=* kernel-ova=(list o) userspace-ova=(list o)] (cue q.q))
|
||||||
=/ convert
|
=/ convert
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
++ grab
|
++ grab
|
||||||
|%
|
|%
|
||||||
++ mime
|
++ mime
|
||||||
|= [mite:eyre p=octs:eyre]
|
|= [mite p=octs]
|
||||||
|^ (rash q.p both-parser)
|
|^ (rash q.p both-parser)
|
||||||
++ key-val
|
++ key-val
|
||||||
|* [key=rule val=rule]
|
|* [key=rule val=rule]
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
++ grab
|
++ grab
|
||||||
|%
|
|%
|
||||||
++ mime
|
++ mime
|
||||||
|= [mite:eyre p=octs:eyre]
|
|= [mite p=octs]
|
||||||
|^ (rash q.p both-parser)
|
|^ (rash q.p both-parser)
|
||||||
++ key-val
|
++ key-val
|
||||||
|* [key=rule val=rule]
|
|* [key=rule val=rule]
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
::
|
::
|
||||||
++ grab :: convert from
|
++ grab :: convert from
|
||||||
|%
|
|%
|
||||||
++ mime |=({p/mite:eyre q/octs:eyre} (to-wain q.q))
|
++ mime |=((pair mite octs) (to-wain q.q))
|
||||||
++ noun wain :: clam from %noun
|
++ noun wain :: clam from %noun
|
||||||
--
|
--
|
||||||
++ grow
|
++ grow
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
--
|
--
|
||||||
++ grab
|
++ grab
|
||||||
|%
|
|%
|
||||||
++ mime |=({p/mite:eyre q/octs:eyre} q.q)
|
++ mime |=((pair mite octs) q.q)
|
||||||
++ noun @t
|
++ noun @t
|
||||||
++ txt of-wain:format
|
++ txt of-wain:format
|
||||||
--
|
--
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
--
|
--
|
||||||
++ grab
|
++ grab
|
||||||
|%
|
|%
|
||||||
++ mime |=({p/mite:eyre q/octs:eyre} q.q)
|
++ mime |=((pair mite octs) q.q)
|
||||||
++ noun @t
|
++ noun @t
|
||||||
++ txt of-wain:format
|
++ txt of-wain:format
|
||||||
--
|
--
|
||||||
|
@ -756,6 +756,8 @@
|
|||||||
=([%$ %da now] lot)
|
=([%$ %da now] lot)
|
||||||
=(%$ syd)
|
=(%$ syd)
|
||||||
==
|
==
|
||||||
|
?. for.veb.bug.ames-state ~
|
||||||
|
~> %slog.0^leaf/"ames: scry-fail {<[why=why lot=lot now=now syd=syd]>}"
|
||||||
~
|
~
|
||||||
:: /ax/protocol/version @
|
:: /ax/protocol/version @
|
||||||
:: /ax/peers (map ship ?(%alien %known))
|
:: /ax/peers (map ship ?(%alien %known))
|
||||||
|
@ -1772,6 +1772,12 @@
|
|||||||
|= [=binding =action]
|
|= [=binding =action]
|
||||||
^- [(list move) server-state]
|
^- [(list move) server-state]
|
||||||
=^ success bindings.state
|
=^ success bindings.state
|
||||||
|
:: prevent binding in reserved namespaces
|
||||||
|
::
|
||||||
|
?: ?| ?=([%'~' *] path.binding) :: eyre
|
||||||
|
?=([%'~_~' *] path.binding) :: runtime
|
||||||
|
==
|
||||||
|
[| bindings.state]
|
||||||
(insert-binding [binding duct action] bindings.state)
|
(insert-binding [binding duct action] bindings.state)
|
||||||
:_ state
|
:_ state
|
||||||
[duct %give %bound success binding]~
|
[duct %give %bound success binding]~
|
||||||
|
@ -75,10 +75,6 @@
|
|||||||
++ life @ud :: ship key revision
|
++ life @ud :: ship key revision
|
||||||
++ rift @ud :: ship continuity
|
++ rift @ud :: ship continuity
|
||||||
++ mime {p/mite q/octs} :: mimetyped data
|
++ mime {p/mite q/octs} :: mimetyped data
|
||||||
::
|
|
||||||
::
|
|
||||||
:: TODO: Rename to +mime once the current +mime and +mite are gone. The
|
|
||||||
::
|
|
||||||
++ octs {p/@ud q/@} :: octet-stream
|
++ octs {p/@ud q/@} :: octet-stream
|
||||||
++ sock {p/ship q/ship} :: outgoing [our his]
|
++ sock {p/ship q/ship} :: outgoing [our his]
|
||||||
::+|
|
::+|
|
||||||
@ -1559,9 +1555,7 @@
|
|||||||
$put :: PUT
|
$put :: PUT
|
||||||
$trac :: TRACE
|
$trac :: TRACE
|
||||||
== ::
|
== ::
|
||||||
++ mite (list @ta) :: mime type
|
|
||||||
++ moth {p/meth q/math r/(unit octs)} :: http operation
|
++ moth {p/meth q/math r/(unit octs)} :: http operation
|
||||||
++ octs {p/@ud q/@t} :: octet-stream
|
|
||||||
++ oryx @t :: CSRF secret
|
++ oryx @t :: CSRF secret
|
||||||
++ pork {p/(unit @ta) q/(list @t)} :: fully parsed url
|
++ pork {p/(unit @ta) q/(list @t)} :: fully parsed url
|
||||||
:: +prox: proxy notification
|
:: +prox: proxy notification
|
||||||
@ -6035,6 +6029,7 @@
|
|||||||
:::: ++mimes:html :: (2e1) MIME
|
:::: ++mimes:html :: (2e1) MIME
|
||||||
:: ::::
|
:: ::::
|
||||||
++ mimes ^?
|
++ mimes ^?
|
||||||
|
~% %mimes ..is ~
|
||||||
|%
|
|%
|
||||||
:: :: ++as-octs:mimes:html
|
:: :: ++as-octs:mimes:html
|
||||||
++ as-octs :: atom to octstream
|
++ as-octs :: atom to octstream
|
||||||
@ -6052,6 +6047,28 @@
|
|||||||
?~ myn ~
|
?~ myn ~
|
||||||
?: =(~ t.myn) (trip i.myn)
|
?: =(~ t.myn) (trip i.myn)
|
||||||
(weld (trip i.myn) `tape`['/' $(myn t.myn)])
|
(weld (trip i.myn) `tape`['/' $(myn t.myn)])
|
||||||
|
::
|
||||||
|
:: |base16: en/decode arbitrary MSB-first hex strings
|
||||||
|
::
|
||||||
|
++ base16
|
||||||
|
~% %base16 + ~
|
||||||
|
|%
|
||||||
|
++ en
|
||||||
|
~/ %en
|
||||||
|
|= a=octs ^- cord
|
||||||
|
(crip ((x-co:co (mul p.a 2)) (end 3 p.a q.a)))
|
||||||
|
::
|
||||||
|
++ de
|
||||||
|
~/ %de
|
||||||
|
|= a=cord ^- (unit octs)
|
||||||
|
(rush a rule)
|
||||||
|
::
|
||||||
|
++ rule
|
||||||
|
%+ cook
|
||||||
|
|= a=(list @) ^- octs
|
||||||
|
[(add (dvr (lent a) 2)) (repn 4 (flop a))]
|
||||||
|
(star hit)
|
||||||
|
--
|
||||||
:: :: ++en-base64:mimes:
|
:: :: ++en-base64:mimes:
|
||||||
++ en-base64 :: encode base64
|
++ en-base64 :: encode base64
|
||||||
|= tig/@
|
|= tig/@
|
||||||
|
64
pkg/arvo/tests/sys/zuse/mimes.hoon
Normal file
64
pkg/arvo/tests/sys/zuse/mimes.hoon
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
:: tests for |mimes:html
|
||||||
|
::
|
||||||
|
/+ *test
|
||||||
|
=, mimes:html
|
||||||
|
|%
|
||||||
|
++ test-en-base16
|
||||||
|
;: weld
|
||||||
|
%+ expect-eq
|
||||||
|
!> 'aa'
|
||||||
|
!> (en:base16 (as-octs 0xaa))
|
||||||
|
::
|
||||||
|
%+ expect-eq
|
||||||
|
!> '1234'
|
||||||
|
!> (en:base16 (as-octs 0x1234))
|
||||||
|
::
|
||||||
|
%+ expect-eq
|
||||||
|
!> 'f012'
|
||||||
|
!> (en:base16 (as-octs 0xf012))
|
||||||
|
::
|
||||||
|
%+ expect-eq
|
||||||
|
!> '010b'
|
||||||
|
!> (en:base16 (as-octs 0x10b))
|
||||||
|
::
|
||||||
|
%+ expect-eq
|
||||||
|
!> '001234'
|
||||||
|
!> (en:base16 3 0x1234)
|
||||||
|
::
|
||||||
|
%+ expect-eq
|
||||||
|
!> '34'
|
||||||
|
!> (en:base16 1 0x1234)
|
||||||
|
==
|
||||||
|
::
|
||||||
|
++ test-de-base16
|
||||||
|
;: weld
|
||||||
|
%+ expect-eq
|
||||||
|
!> `[1 0xaa]
|
||||||
|
!> ^- (unit [@ud @ux])
|
||||||
|
(de:base16 'aa')
|
||||||
|
::
|
||||||
|
%+ expect-eq
|
||||||
|
!> `[2 0x1234]
|
||||||
|
!> `(unit [@ud @ux])`(de:base16 '1234')
|
||||||
|
::
|
||||||
|
%+ expect-eq
|
||||||
|
!> `[2 `@`0xf012]
|
||||||
|
!> ^- (unit [@ud @ux])
|
||||||
|
(de:base16 'f012')
|
||||||
|
::
|
||||||
|
%+ expect-eq
|
||||||
|
!> lz=`[2 0x10b]
|
||||||
|
!> ^- (unit [@ud @ux])
|
||||||
|
(de:base16 '010b')
|
||||||
|
::
|
||||||
|
%+ expect-eq
|
||||||
|
!> nlz=`[2 0x10b]
|
||||||
|
!> ^- (unit [@ud @ux])
|
||||||
|
(de:base16 '10b')
|
||||||
|
::
|
||||||
|
%+ expect-eq
|
||||||
|
!> `[3 0x1234]
|
||||||
|
!> ^- (unit [@ud @ux])
|
||||||
|
(de:base16 '001234')
|
||||||
|
==
|
||||||
|
--
|
Loading…
Reference in New Issue
Block a user