mirror of
https://github.com/urbit/shrub.git
synced 2025-01-03 01:54:43 +03:00
Merge branch 'develop' into next/kelvin/411
This commit is contained in:
commit
bb8ba2455e
@ -5,7 +5,6 @@
|
||||
:: keep relevant mark conversions in cache for performance
|
||||
::
|
||||
/$ blit-to-json %blit %json
|
||||
/$ json-to-blit %json %blit
|
||||
/$ json-to-task %json %herm-task
|
||||
::
|
||||
=, jael
|
||||
|
@ -1070,8 +1070,9 @@
|
||||
++ wrd :: next or current word
|
||||
|= a=(list @)
|
||||
=| i=@ud
|
||||
?~ a i
|
||||
|- ^- @ud
|
||||
?: |(?=(~ a) (alnm i.a)) i
|
||||
?: |(?=(~ t.a) (alnm i.a)) i
|
||||
$(i +(i), a t.a)
|
||||
--
|
||||
--
|
||||
|
@ -729,11 +729,7 @@
|
||||
::
|
||||
%- (trace 1 |.("make cast {<a>} -> {<b>}"))
|
||||
=^ old=vase nub (build-fit %mar a)
|
||||
?: =/ ram (mule |.((slap old !,(*hoon grow))))
|
||||
?: ?=(%| -.ram) %.n
|
||||
=/ lab (mule |.((slob b p.p.ram)))
|
||||
?: ?=(%| -.lab) %.n
|
||||
p.lab
|
||||
?: (has-arm %grow b old)
|
||||
:: +grow core has .b arm; use that
|
||||
::
|
||||
%+ gain-leak cast+a^b
|
||||
@ -749,8 +745,9 @@
|
||||
:: try direct +grab
|
||||
::
|
||||
=^ new=vase nub (build-fit %mar b)
|
||||
=/ arm=? (has-arm %grab a new)
|
||||
=/ rab (mule |.((slap new tsgl/[limb/a limb/%grab])))
|
||||
?: &(?=(%& -.rab) ?=(^ q.p.rab))
|
||||
?: &(arm ?=(%& -.rab) ?=(^ q.p.rab))
|
||||
%+ gain-leak cast+a^b
|
||||
|= nob=state
|
||||
%- (trace 4 |.("{<a>} -> {<b>}: +{(trip a)}:grab:{(trip b)}"))
|
||||
@ -759,11 +756,11 @@
|
||||
:: try +jump
|
||||
::
|
||||
=/ jum (mule |.((slap old tsgl/[limb/b limb/%jump])))
|
||||
?: ?=(%& -.jum)
|
||||
?: &((has-arm %jump a old) ?=(%& -.jum))
|
||||
=/ via !<(mark p.jum)
|
||||
%- (trace 4 |.("{<a>} -> {<b>}: via {<via>} per +jump:{(trip a)}"))
|
||||
(compose-casts a via b)
|
||||
?: ?=(%& -.rab)
|
||||
?: &(arm ?=(%& -.rab))
|
||||
=/ via !<(mark p.rab)
|
||||
%- (trace 4 |.("{<a>} -> {<b>}: via {<via>} per +grab:{(trip b)}"))
|
||||
(compose-casts a via b)
|
||||
@ -787,6 +784,15 @@
|
||||
%+ slap
|
||||
(with-faces uno+uno dos+dos ~)
|
||||
!,(*hoon |=(_+<.uno (dos (uno +<))))
|
||||
::
|
||||
++ has-arm
|
||||
|= [arm=@tas =mark core=vase]
|
||||
^- ?
|
||||
=/ rib (mule |.((slap core [%wing ~[arm]])))
|
||||
?: ?=(%| -.rib) %.n
|
||||
=/ lab (mule |.((slob mark p.p.rib)))
|
||||
?: ?=(%| -.lab) %.n
|
||||
p.lab
|
||||
:: +build-tube: produce a $tube mark conversion gate from .a to .b
|
||||
::
|
||||
++ build-tube
|
||||
|
@ -27,14 +27,15 @@
|
||||
:: +run-test: execute an individual test
|
||||
::
|
||||
++ run-test
|
||||
|= [bem=beam test=test-func]
|
||||
^- [ok=? =tang]
|
||||
|= [pax=path test=test-func]
|
||||
^- [ok=? output=tang result=tang]
|
||||
=+ name=(spud pax)
|
||||
=+ run=(mule test)
|
||||
?- -.run
|
||||
%| |+p.run
|
||||
%| |+[p.run [leaf+"CRASHED {name}" ~]]
|
||||
%& ?: =(~ p.run)
|
||||
&+~
|
||||
|+(flop `tang`[leaf+"FAILED" p.run])
|
||||
&+[p.run [leaf+"OK {name}" ~]]
|
||||
|+[p.run [leaf+"FAILED {name}" ~]]
|
||||
==
|
||||
:: +resolve-test-paths: add test names to file paths to form full identifiers
|
||||
::
|
||||
@ -138,7 +139,9 @@
|
||||
?^ fiz
|
||||
;< [cor=(unit vase) =tang] bind:m (build-file beam.i.fiz)
|
||||
?~ cor
|
||||
gather-tests(fiz t.fiz, build-failed [[beam.i.fiz tang] build-failed])
|
||||
~> %slog.3^leaf+"FAILED {(spud s.beam.i.fiz)} (build)"
|
||||
gather-tests(fiz t.fiz, build-ok |)
|
||||
~> %slog.0^leaf+"built {(spud s.beam.i.fiz)}"
|
||||
=/ arms=(list test-arm) (get-test-arms u.cor)
|
||||
:: if test path specified an arm prefix, filter arms to match
|
||||
=? arms ?=(^ test.i.fiz)
|
||||
@ -154,10 +157,9 @@
|
||||
|= [=beam *]
|
||||
beam
|
||||
%+ roll (resolve-test-paths test-arms)
|
||||
|= [[=beam =test-func] failed=_build-failed]
|
||||
^+ failed
|
||||
=/ res (run-test beam test-func)
|
||||
?: -.res
|
||||
failed
|
||||
:_ failed
|
||||
[beam +.res]
|
||||
|= [[=path =test-func] ok=_build-ok]
|
||||
^+ ok
|
||||
=/ res (run-test path test-func)
|
||||
%- (%*(. slog pri ?:(ok.res 0 3)) output.res)
|
||||
%- (%*(. slog pri ?:(ok.res 0 3)) result.res)
|
||||
&(ok ok.res)
|
Loading…
Reference in New Issue
Block a user