mirror of
https://github.com/urbit/shrub.git
synced 2024-12-20 09:21:42 +03:00
Merge remote-tracking branch 'origin/lf/ford-memory-shit' into philip/tomb
This commit is contained in:
commit
ef9521272a
@ -9,6 +9,17 @@
|
||||
:: worth noting that many of the clay-related structures are defined in zuse.
|
||||
::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
=/ bud
|
||||
^~
|
||||
=/ zuse !>(..zuse)
|
||||
:* zuse=zuse
|
||||
nave=(slap zuse !,(*hoon nave:clay))
|
||||
cork=(slap zuse !,(*hoon cork))
|
||||
same=(slap zuse !,(*hoon same))
|
||||
mime=(slap zuse !,(*hoon mime))
|
||||
cass=(slap zuse !,(*hoon cass:clay))
|
||||
==
|
||||
::
|
||||
|= our=ship
|
||||
=, clay
|
||||
=> |%
|
||||
@ -540,7 +551,7 @@
|
||||
:_ nub
|
||||
^- vase :: vase of nave
|
||||
%+ slap
|
||||
(with-faces deg+deg tub+tub but+but cor+cor nave+!>(nave) ~)
|
||||
(with-faces deg+deg tub+tub but+but cor+cor nave+nave.bud ~)
|
||||
!, *hoon
|
||||
=/ typ _+<.cor
|
||||
=/ dif diff:deg
|
||||
@ -561,7 +572,7 @@
|
||||
--
|
||||
:_ nub
|
||||
^- vase :: vase of nave
|
||||
%+ slap (slop (with-face cor+cor) !>(..zuse))
|
||||
%+ slap (slop (with-face cor+cor) zuse.bud)
|
||||
!, *hoon
|
||||
=/ typ _+<.cor
|
||||
=/ dif _*diff:grad:cor
|
||||
@ -607,6 +618,7 @@
|
||||
::~> %slog.0^leaf/"ford: make dais {<mak>}"
|
||||
:_ nub
|
||||
^- dais
|
||||
=> [..zuse nav=nav]
|
||||
|_ sam=vase
|
||||
++ diff
|
||||
|= new=vase
|
||||
@ -625,8 +637,8 @@
|
||||
=/ res=vase
|
||||
%+ slam (slap nav limb/%mash)
|
||||
%+ slop
|
||||
:(slop !>(ship.a) !>(desk.a) diff.a)
|
||||
:(slop !>(ship.b) !>(desk.b) diff.b)
|
||||
:(slop =>([..zuse ship.a] !>(+)) =>([..zuse desk.a] !>(+)) diff.a)
|
||||
:(slop =>([..zuse ship.b] !>(+)) =>([..zuse desk.b] !>(+)) diff.b)
|
||||
?~ q.res
|
||||
~
|
||||
`(slap res !,(*hoon ?>((^ .) u)))
|
||||
@ -644,7 +656,7 @@
|
||||
^- [vase state]
|
||||
~| error-building-cast+[a b]
|
||||
?: =([%mime %hoon] [a b])
|
||||
:_(nub !>(|=(m=mime q.q.m)))
|
||||
:_(nub =>(..zuse !>(|=(m=mime q.q.m))))
|
||||
?^ got=(~(get by casts.cache.nub) [a b])
|
||||
=? stack.nub ?=(^ stack.nub)
|
||||
stack.nub(i (~(uni in i.stack.nub) dez.u.got))
|
||||
@ -688,7 +700,7 @@
|
||||
?: ?=(%& -.rab)
|
||||
(compose-casts a !<(mark p.rab) b)
|
||||
?: ?=(%noun b)
|
||||
:_(nub !>(|=(* +<)))
|
||||
:_(nub same.bud)
|
||||
~|(no-cast-from+[a b] !!)
|
||||
::
|
||||
++ compose-casts
|
||||
@ -698,7 +710,7 @@
|
||||
=^ dos=vase nub (build-cast y z)
|
||||
:_ nub
|
||||
%+ slap
|
||||
(with-faces uno+uno dos+dos cork+!>(cork) ~)
|
||||
(with-faces uno+uno dos+dos cork+=>([..zuse cork] !>(+)) ~)
|
||||
!,(*hoon (cork uno dos))
|
||||
:: +build-tube: produce a $tube mark conversion gate from .a to .b
|
||||
::
|
||||
@ -720,7 +732,7 @@
|
||||
[tube.res nub]
|
||||
=^ gat=vase nub (build-cast a b)
|
||||
:: ~> %slog.0^leaf/"ford: make tube {<a>} -> {<b>}"
|
||||
:_(nub |=(v=vase (slam gat v)))
|
||||
:_(nub =>([..zuse gat=gat] |=(v=vase (slam gat v))))
|
||||
::
|
||||
++ lobe-to-page
|
||||
|= =lobe
|
||||
@ -771,7 +783,7 @@
|
||||
?: =(%hoon p.page)
|
||||
:_(nub [%hoon -:!>(*@t) q.page])
|
||||
?: =(%mime p.page)
|
||||
:_(nub [%mime !>(;;(mime q.page))])
|
||||
:_(nub [%mime =>([..zuse ;;(mime q.page)] !>(+))])
|
||||
=^ =dais nub (build-dais p.page)
|
||||
:_(nub [p.page (vale:dais q.page)])
|
||||
::
|
||||
@ -794,7 +806,7 @@
|
||||
=/ txt=wain (to-wain:format ;;(@t q.old))
|
||||
=+ ;;(dif=(urge cord) q.diff)
|
||||
=/ new=@t (of-wain:format (lurk:differ txt dif))
|
||||
:_(nub [%hoon !>(new)])
|
||||
:_(nub [%hoon =>([..zuse new] !>(+))])
|
||||
=^ dys=dais nub (build-dais p.old)
|
||||
=^ syd=dais nub (build-dais p.diff)
|
||||
:_(nub [p.old (~(pact dys (vale:dys q.old)) (vale:syd q.diff))])
|
||||
@ -868,7 +880,7 @@
|
||||
::
|
||||
++ run-pile
|
||||
|= =pile
|
||||
=/ sut=vase !>(..zuse)
|
||||
=/ sut=vase zuse.bud
|
||||
=^ sut=vase nub (run-tauts sut %sur sur.pile)
|
||||
=^ sut=vase nub (run-tauts sut %lib lib.pile)
|
||||
=^ sut=vase nub (run-raw sut raw.pile)
|
||||
@ -4977,14 +4989,51 @@
|
||||
%+ turn (sort ~(tap by dos.rom.ruf) aor)
|
||||
|= [=desk =dojo]
|
||||
:+ desk %|
|
||||
|^
|
||||
:~ ankh+&+ank.dom.dojo
|
||||
mime+&+mim.dom.dojo
|
||||
ford-files+&+files.fod.dom.dojo
|
||||
ford-naves+&+naves.fod.dom.dojo
|
||||
ford-marks+&+marks.fod.dom.dojo
|
||||
ford-casts+&+casts.fod.dom.dojo
|
||||
ford-tubes+&+tubes.fod.dom.dojo
|
||||
ford-files+|+files
|
||||
ford-naves+|+naves
|
||||
ford-marks+|+marks
|
||||
ford-casts+|+casts
|
||||
ford-tubes+|+tubes
|
||||
==
|
||||
++ marks
|
||||
^- (list mass)
|
||||
%+ turn (sort ~(tap by marks.fod.dom.dojo) aor)
|
||||
|= [=mark res=*]
|
||||
^- mass
|
||||
[mark %& res]
|
||||
::
|
||||
++ casts
|
||||
^- (list mass)
|
||||
%+ turn (sort ~(tap by casts.fod.dom.dojo) aor)
|
||||
|= [=mars res=*]
|
||||
^- mass
|
||||
[`@t`(rap 3 [a '-' b ~]:mars) %& res]
|
||||
::
|
||||
++ naves
|
||||
^- (list mass)
|
||||
%+ turn (sort ~(tap by naves.fod.dom.dojo) aor)
|
||||
|= [=mark res=*]
|
||||
^- mass
|
||||
[mark %& res]
|
||||
::
|
||||
++ tubes
|
||||
^- (list mass)
|
||||
%+ turn (sort ~(tap by tubes.fod.dom.dojo) aor)
|
||||
|= [=mars res=*]
|
||||
^- mass
|
||||
[`@t`(rap 3 [a '-' b ~]:mars) %& res]
|
||||
::
|
||||
|
||||
++ files
|
||||
^- (list mass)
|
||||
%+ turn (sort ~(tap by files.fod.dom.dojo) aor)
|
||||
|= [=path res=*]
|
||||
^- mass
|
||||
[(spat path) %& res]
|
||||
--
|
||||
:~ domestic+|+domestic
|
||||
foreign+&+hoy.ruf
|
||||
:+ %object-store %|
|
||||
|
Loading…
Reference in New Issue
Block a user