arvo: introduces $crag

Also strips out `$` from khan top-level comment.

There are arguments for keeping $crag in lull, and on the other side for
moving $cast to arvo. This seemed like the most reasonable approach.
This commit is contained in:
Jōshin 2022-02-14 12:46:31 -06:00
parent 6d275fe9f3
commit 6aa72069e3
No known key found for this signature in database
GPG Key ID: A8BE5A9A521639D0
4 changed files with 11 additions and 9 deletions

View File

@ -13,6 +13,7 @@
:: $case: global version
:: $cage: marked vase
:: +cask: marked data builder
:: $crag: raw marked noun
:: $desk: local workspace
:: $dock: message target
:: $gang: infinite set of peers
@ -44,6 +45,7 @@
==
+$ cage (cask vase)
++ cask |$ [a] (pair mark a)
+$ crag (cask *)
+$ desk @tas
+$ dock (pair @p term)
+$ gang (unit (set ship))

View File

@ -2099,7 +2099,7 @@
|%
+$ gift :: out result <-$
$% [%arow p=(avow vase)] :: in-arvo result
[%avow p=(avow (cask))] :: external result
[%avow p=(avow crag)] :: external result
== ::
+$ task :: in request ->$
$~ [%vega ~] ::
@ -2113,8 +2113,8 @@
:: ::
++ avow |$ [a] (each a goof) :: $fyrd result
+$ bear $@(desk beak) :: partial $beak
+$ cast (pair mark (cask)) :: marked input/output
++ fyrd |$ [a] [=bear name=term args=a] :: external thread
+$ cast (pair mark crag) :: mark-converted input
++ fyrd |$ [a] [=bear name=term args=a] :: thread run request
-- ::khan
::
+$ gift-arvo :: out result <-$

View File

@ -8,16 +8,16 @@
:: both modes take a thread start request consisting of a
:: namespace, thread name, and input data; they respond over the
:: same duct with either success or failure. %fard takes its
:: input arguments as a $vase and produces %arow, which contains
:: a $vase on success (or $tang on failure). %fyrd takes an
:: output mark and input `(cask)` (short for `(cask *)`); it
:: produces %avow, which contains a `(cask)` on success.
:: input arguments as a vase and produces %arow, which contains
:: a vase on success (or tang on failure). %fyrd takes an output
:: mark and input crag; it produces %avow, which contains a crag
:: on success.
::
:: %fard passes its arguments and produces its result
:: unmodified. %fyrd does mark conversion on both ends, and
:: additionally lifts its input into a $unit. this second step
:: is done because threads conventionally take their input as a
:: $unit, with ~ for the case of "no arguments".
:: unit, with ~ for the case of "no arguments".
::
:: n.b. the current convention for threads is to use !< to
:: unpack their input into a well-defined type. !< imposes the

View File

@ -16,7 +16,7 @@
call-args=[duct=~[/initial-born-duct] ~ [%born ~]]
==
=/ results-0 (expect-eq !>(~) !>(born-moves))
=/ fyrd=(fyrd:khan cast:khan) [%base %nonexistent %noun %noun ~]
=/ fyrd=(fyrd:khan crag) [%base %nonexistent %noun %noun ~]
=/ now=@da (add ~1111.1.1 ~s1)
=^ start-moves khan-gate
%- khan-call :*