neo: userspace builds

This commit is contained in:
Liam Fitzgerald 2024-05-22 12:36:53 -04:00
parent 545f01587f
commit f631e915ae
16 changed files with 147 additions and 72 deletions

View File

@ -166,7 +166,7 @@
%. *(list card)
?~ q.ack
same
(slog leaf/"nack on sys" u.q.ack)
(mean leaf/"nack on sys" u.q.ack)
=/ src=name:neo (de-pith:name:neo p.p.ack)
=/ =wire nack/(pout p.p.ack)
(do-poke-her wire ship.src neo-ack+!>(ack))^~
@ -557,7 +557,9 @@
=+ !<([cac=(unit vase) *] q.pail)
cac
++ built
!=(~ (~(peek plow:aux loam) pith))
~& built/pith
=- ~&(- -)
!=(~ (~(peek plow:aux loam) p/our.bowl pith))
++ pith
`pith:neo`(pave:neo path)
++ path
@ -587,6 +589,7 @@
(need ref)
::
++ copy-clay
!.
~> %bout.[1 %build]
|^ ^+ run
=/ paths=(list path)
@ -640,6 +643,7 @@
?& (levy pro.file |=(pro:ford ~(built pro stud)))
(levy lib.file |=(lib:ford ~(built lib loc)))
==
~| imports/file
?> built-imports
=^ pre=pith run
(make-prelude pax file)
@ -663,10 +667,7 @@
^+ run
?~ lis
run
=/ pat
~(path lib i.lis)
?> ?=(^ pat)
=. run (read-file %src t.pat)
=. run (read-file %src ~(path lib i.lis))
$(lis t.lis)
++ do-make
|= [=pith:neo lib=term sta=(unit vase) =conf:neo]
@ -763,8 +764,8 @@
=. run (make-riff-slap #/out/std/imp/ford-slap reef txt-ford-slap)
=. run (re-export reef %json !,(*hoon json))
=. run (re-export reef %mime !,(*hoon mime))
:: =. run copy-clay
=. run (emit %pass /bind-site %arvo %e %connect [~ dap.bowl ~] dap.bowl)
=. run copy-clay
:: =. run (emit %pass /bind-site %arvo %e %connect [~ dap.bowl ~] dap.bowl)
(emit do-std-warp)
++ clay-beak ^- path
/(scot %p our.bowl)/[q.byk.bowl]/(scot %da now.bowl)
@ -833,7 +834,7 @@
|= [=pith riff=vase]
^+ run
=. pith [p/our.bowl pith]
(emit (do-card pith %make %ford-riff `!>([`riff ~]) ~))
(on-card pith %make %ford-riff `!>([`riff ~]) ~)
--
:: +arvo: local callstack
++ arvo
@ -1066,7 +1067,9 @@
|= [src=stud:neo init=(unit vase) =crew:neo]
=/ =wave:neo [src ~(slip husk src) crew]
=. tide (~(put of:neo tide) here wave)
work
=^ cards=(list card:neo) arvo
(soft-surf |.(su-abet:(su-make:surf init)))
(ingest cards)
:: ?: ~(is-plot husk src)
:: ~| %cant-make-plot-w-init
:: ?> ?=(~ init)
@ -1104,10 +1107,15 @@
su-deps
su-kids
==
++ su-icon
[p.p q.q ~ ~]:su-saga
++ su-saga
(dall:aux (lexe:aux (~(peek till:aux [loam farm]) %x [p/our.bowl here])) *saga:neo)
++ su-kids
=- ((slog (epic:dbug:neo -) ~) -)
=/ kids kids:kook
%- gas-epic
=/ child (need (need (~(peek till:aux [loam farm]) %y [p/our.bowl here])))
=/ child (dall:aux (~(peek till:aux [loam farm]) %y [p/our.bowl here]) *epic:neo)
%+ murn ~(tap by ~(tar of:neo child))
|= [=pith:neo =saga:neo]
^- (unit [pith:neo saga:neo])
@ -1115,6 +1123,7 @@
~
`[pith u.ion]
++ su-deps
=- ((slog (deps:dbug:neo -) ~) -)
%- ~(gas by *(map term [pith epic:neo]))
^- (list [term pith epic:neo])
%+ murn ~(tap by deps:kook)
@ -1127,17 +1136,19 @@
~
=/ =name:neo (de-pith:name:neo u.dep)
=/ =care:neo (get-care:quay:neo quay)
~& dep/[term name care]
=/ =epic:neo (moor quay name)
%- (slog term (epic:dbug:neo epic) ~)
`[term u.dep epic]
::
++ su-form ~(. form:kook su-bowl)
++ su-form ~(. form:kook [su-bowl su-icon])
++ su-abet :: TODO: bump
=. tide (~(put of:neo tide) here wave)
[cards arvo]
++ su-make
|= init=(unit vase)
=/ [cards=(list card:neo) new=vase]
(init:form:kook init)
(init:su-form init)
=. su-core (su-emil cards)
(su-grow new)
++ su-grow
@ -1181,6 +1192,9 @@
^- epic:neo
=/ =care:neo (get-care:quay:neo want)
=/ =epic:neo (need (need (~(peek till:aux [loam farm]) care (en-pith:name:neo name))))
%- (slog leaf/"mooring" (epic:dbug:neo epic) ~)
=. epic (~(dip of:neo epic) (en-pith:name:neo name))
%- (slog leaf/"mooring" (epic:dbug:neo epic) ~)
%- gas-epic
^- (list (pair pith:neo saga:neo))
%+ murn ~(tap by ~(tar of:neo epic))

View File

@ -1,7 +1,46 @@
/- neo
:: Layer 1
=>
=>
=/ verb &
|%
++ lexe
|= res=(unit (unit epic:neo))
^- (unit (unit saga:neo))
?: ?=($@(~ [~ ~]) res)
res
?~ fil.u.u.res
[~ ~]
``u.fil.u.u.res
++ dall
|* [res=(unit (unit)) def=*]
?~ res
def
?~ u.res
def
u.u.res
::
++ trace
|= [info=tape =tang]
?. verb
same
%. [leaf/"neo: {info}" tang]
%* . slog
pri 3
==
++ print-card
|= =card:dirt:neo
:- leaf/(en-tape:pith:neo p.card)
?- -.q.card
%grow
:~ leaf/"%grow"
?: (is-stud:ford:neo p.pail.q.card)
leaf/"ford build"
(sell q.pail.q.card)
==
%cull
~[leaf/"%cull"]
==
:: +nail: convert $over to $ever
++ nail
|= [=over:neo =plot:neo =case:neo]
@ -182,6 +221,7 @@
|= =card:dirt:neo
^- (quip gift:dirt:neo _loam)
=/ lom (~(dip of:neo loam) p.card)
%- (trace "call" (print-card card))
=^ gifts=(list [case:neo ?]) lom
?- -.q.card
%grow (~(grow plow lom) +.q.card)
@ -293,20 +333,21 @@
~
=; =once:neo
(look care once pith)
~& peek/[care pith]
?+ care !!
%x
?~ ove=(ram:on:land:neo land.u.val)
!!
x/0
x/key.u.ove
::
%y
?~ ove=(ram:on:tend:neo by-kids.plot.u.val)
!!
y/0
y/key.u.ove
::
%z
?~ ove=(ram:on:tend:neo by-desc.plot.u.val)
!!
z/0
z/key.u.ove
==
::

View File

@ -28,7 +28,8 @@
::
++ link-entry
::
|= [pax=pith =pail:neo]
|= [pax=pith =saga:neo]
=/ =pail:neo q.saga
=/ tape (trip !<(@t q.pail))
=/ subject-end (fall (find [10]~ tape) 56)
=/ subject (scag subject-end tape)
@ -54,7 +55,7 @@
;+ form-put-entry
;*
%+ turn
%+ sort ~(tap by kids.bowl)
%+ sort ~(tap by ~(tar of:neo kids.bowl))
|= [a=[=pith *] b=[=pith *]]
(gth ->.pith.a ->.pith.b)
link-entry

View File

@ -653,8 +653,8 @@
++ have
|= vax=vase
=/ fim=(unit firm:neo)
(mole |.(!<(firm:neo vax)))
=/ fim=(unit kook:neo)
(mole |.(!<(kook:neo vax)))
?> ?=(^ fim)
;div.p2.fc.g2
;h4: Shrub implementation

View File

@ -4,7 +4,7 @@
|= =bowl:neo
|^
shell
++ kids ~(tap by kids.bowl)
++ kids ~(tap by ~(tar of:neo kids.bowl))
++ id
^- tape
%- zing
@ -241,10 +241,10 @@
;*
%+ turn order.t
|= =pith
=/ kid (~(get by kids.bowl) pith)
=/ kid (~(get of:neo kids.bowl) pith)
?~ kid
;div: does not exist {(en-tape:pith:neo pith)}
(part-kid [pith (need kid)])
(part-kid [pith q.u.kid])
::;*
::=/ orphans
:: %+ skim kids

View File

@ -1,23 +1,24 @@
^- plot:neo
=>
|%
++ get-dep
|= =bowl:neo
|= sid=?(%a %b)
^- @ud
!<(@ud q.pail.q:(~(got by deps.bowl) sid))
--
|%
++ state %atom
++ kids *kids:neo
++ deps
%- ~(gas by *deps:neo)
:~ [%a & [%atom %sig] ~]
[%b & [%atom %sig] ~]
==
++ farm
|= =bowl:neo
^- vase
=/ get (get-dep bowl)
!>((add (get %a) (get %b)))
--
^- kook:neo
*kook:neo
::=>
:: |%
:: ++ get-dep
:: |= =bowl:neo
:: |= sid=?(%a %b)
:: ^- @ud
:: !<(@ud q.q:(need fil.q:(~(got by deps.bowl) sid)))
:: --
::|%
::++ state %atom
::++ kids *kids:neo
::++ deps
:: %- ~(gas by *deps:neo)
:: :~ [%a & [%atom %sig] ~]
:: [%b & [%atom %sig] ~]
:: ==
::++ farm
:: |= =bowl:neo
:: ^- vase
:: =/ get (get-dep bowl)
:: !>((add (get %a) (get %b)))
::--

View File

@ -5,17 +5,19 @@
=>
|%
++ card card:neo
++ get-chat-ax
|= =bowl:neo
^- epic:neo
q:(~(got by deps.bowl) %src)
++ get-chat
|= =bowl:neo
^- chat
=/ dep=cane:neo q:(~(got by deps.bowl) %src)
!<(chat q.pail.dep)
!<(chat q.q:(need fil:(get-chat-ax bowl)))
++ get-message
|= [=bowl:neo id=@da]
^- message
=/ pit=pith:neo ~[%messages da/id]
=/ dep=cane:neo q:(~(got by deps.bowl) %src)
=/ msg=pail:neo pail:(~(got by kids.dep) pit)
=/ dep=epic:neo q:(~(got by deps.bowl) %src)
=/ msg=pail:neo q:(~(got of:neo dep) pit)
!<(message q.msg)
--
^- kook:neo
@ -73,11 +75,10 @@
?~ old *chat-link
!<(chat-link u.old)
=. chat.sta (get-chat bowl)
=/ =cane:neo q:(~(got by deps.bowl) %src)
:_ !>(sta)
~& init/kids.cane
%+ murn ~(tap by kids.cane)
|= [=pith [=ever:neo =pail:neo]]
=/ kids ~(tap of:neo (get-chat-ax bowl))
%+ murn kids
|= [=pith =saga:neo]
^- (unit card)
~
--

View File

@ -2,7 +2,7 @@
/@ chat-diff
/@ chat
/@ sig
/- _/thing
:: /- _/thing
=>
|%
++ state chat
@ -57,7 +57,7 @@
%msg :_(sta (add-message bowl message.poke)^~)
%custom :_(sta (add-msg bowl [stud vase]:poke)^~)
==
%- (slog leaf/"debug" (turn ~(val by kids.bowl) |=(p=pail:neo (sell q.p))))
%- (slog leaf/"debug" (turn ~(val by ~(tar of:neo kids.bowl)) |=(=saga:neo (sell q.q.saga))))
[cards !>(sta)]
++ init
|= old=(unit vase)

View File

@ -17,7 +17,7 @@
?> =(%clay-res stud)
=+ !<(=res:clay:neo vax)
:_ state
%+ murn ~(tap of files.res)
%+ murn ~(tap axol-of:neo files.res)
|= [=path =cage]
^- (unit card)
?. =(%mime p.cage)

View File

@ -3,7 +3,7 @@
++ get-dep
|= =bowl:neo
^- @ud
!<(@ud q.pail.q:(~(got by deps.bowl) %a))
!<(@ud q.q:(need fil.q:(~(got by deps.bowl) %a)))
--
|%
++ state %atom

View File

@ -5,7 +5,7 @@
|%
++ check-perms
|= =bowl:neo
=+ !<(=circle q.pail.q:(~(got by deps.bowl) %acl))
=+ !<(=circle q.q:(need fil.q:(~(got by deps.bowl) %acl)))
(~(has in circle) ship.src.bowl)
--
|%

View File

@ -8,7 +8,7 @@
++ get-msg
|= =bowl:neo
^- vase
q.pail.q:(~(got by deps.bowl) %src)
q.q:(need fil.q:(~(got by deps.bowl) %src))
::
--
^- kook:neo

View File

@ -10,9 +10,9 @@
|= [=bowl:neo =ship]
^- (unit kind)
=/ =pith #/pals/[p/ship]
?~ kid=(~(get by kids.bowl) pith)
?~ kid=(~(get of:neo kids.bowl) pith)
~
=+ !<(child=pal-type q.u.kid)
=+ !<(child=pal-type q.q.u.kid)
`type.child
++ her-hey
|= kin=(unit kind)

View File

@ -35,10 +35,10 @@
:-
[(welp [p/our.bowl]~ pith.diff) %make %task `!>(this) ~]
%- zing
%+ turn ~(tap by kids.bowl)
|= [=pith =pail:neo]
%+ turn ~(tap by ~(tar of:neo kids.bowl))
|= [=pith =saga:neo]
:~
[:(welp [p/our.bowl]~ pith.diff pith) %make %task `q.pail ~]
[:(welp [p/our.bowl]~ pith.diff pith) %make %task `q.q.saga ~]
[(welp here.bowl pith) %poke %task-diff !>([%prayer (welp pith.diff pith)])]
==
::

View File

@ -1,7 +1,6 @@
=>
|%
++ card card:neo
+$ state [cache=(unit vase) ~]
++ wrap-firm
|= vax=vase
^- vase

View File

@ -375,7 +375,7 @@
==
:: +sell: pretty-print a vase to a tank using +deal.
::
++ sell
++ a-sell
~/ %sell
|= vax=vase
^- tank
@ -962,7 +962,8 @@
++ get-output
|= [=bowl =term]
^- (unit vase)
=/ outer q.q:(~(got of q:(~(got by deps.bowl) term)) /)
=/ [=pith =epic] (~(got by deps.bowl) term)
=/ outer q.q:(need fil.epic)
=+ !<([vax=(unit vase) *] outer)
vax
::
@ -1311,8 +1312,8 @@
~
`[+.i.pith t.pith]
--
++ axol ^axal
++ axol-of ^of
++ axol axal:..zuse
++ axol-of of:..zuse
++ axal
|$ [item]
[fil=(unit item) kid=(map iota $)]
@ -1685,6 +1686,7 @@
+$ ewer (pair stud vase)
+$ vial (pair stud *)
+$ move (pair pith card)
::
+$ icon
$: =ever
state=vase
@ -1755,6 +1757,22 @@
deps=(map term (pair pith epic))
kids=epic
==
++ dbug
|%
++ bowl
|= =^bowl
^- tank
=/ bol bowl(kids ~, deps ~)
>bol<
++ epic
|= =^epic
^- tank
>~(key by ~(tar of epic))<
++ deps
|= deps=(map term (pair pith ^epic))
=- (sell !>(-))
(turn ~(tap by deps) |=([=term =pith e=^epic] [term pith]))
--
++ quay
=< quay
|%