diff --git a/protocols/Makefile b/protocols/Makefile index 1efe0bd..a738837 100644 --- a/protocols/Makefile +++ b/protocols/Makefile @@ -4,5 +4,5 @@ clean: rm -f schema-bundle.bin schema-bundle.bin: schemas/*.prs - preserves-schemac schemas/*.prs > $@.tmp + preserves-schemac schemas > $@.tmp mv $@.tmp $@ diff --git a/protocols/schema-bundle.bin b/protocols/schema-bundle.bin index 2414dd0..1d6a1dd 100644 --- a/protocols/schema-bundle.bin +++ b/protocols/schema-bundle.bin @@ -2,15 +2,16 @@ tcp-remote„“³tupleµ“³named³host“³atom³String„„“³named³port“³atom³ SignedInteger„„„„„³ TcpPeerInfo“³rec“³lit³tcp-peer„“³tupleµ“³named³handle“³embedded³any„„“³named³local“³refµ„³TcpLocal„„“³named³remote“³refµ„³ TcpRemote„„„„„„³ embeddedType“³refµ³ EntityRef„³Cap„„„µ³timer„“³schema·³version‘³ definitions·³SetTimer“³rec“³lit³ set-timer„“³tupleµ“³named³label³any„“³named³msecs“³atom³Double„„“³named³kind“³refµ„³ TimerKind„„„„„³ LaterThan“³rec“³lit³ later-than„“³tupleµ“³named³msecs“³atom³Double„„„„„³ TimerKind“³orµµ±relative“³lit³relative„„µ±absolute“³lit³absolute„„µ±clear“³lit³clear„„„„³ TimerExpired“³rec“³lit³ timer-expired„“³tupleµ“³named³label³any„“³named³msecs“³atom³Double„„„„„„³ embeddedType€„„µ³stream„“³schema·³version‘³ definitions·³Mode“³orµµ±bytes“³lit³bytes„„µ±lines“³refµ„³LineMode„„µ±packet“³rec“³lit³packet„“³tupleµ“³named³size“³atom³ SignedInteger„„„„„„µ±object“³rec“³lit³object„“³tupleµ“³named³ description³any„„„„„„„³Sink“³orµµ±source“³rec“³lit³source„“³tupleµ“³named³ controller“³embedded“³refµ„³Source„„„„„„„µ± StreamError“³refµ„³ StreamError„„µ±data“³rec“³lit³data„“³tupleµ“³named³payload³any„“³named³mode“³refµ„³Mode„„„„„„µ±eof“³rec“³lit³eof„“³tupleµ„„„„„„³Source“³orµµ±sink“³rec“³lit³sink„“³tupleµ“³named³ -controller“³embedded“³refµ„³Sink„„„„„„„µ± StreamError“³refµ„³ StreamError„„µ±credit“³rec“³lit³credit„“³tupleµ“³named³amount“³refµ„³ CreditAmount„„“³named³mode“³refµ„³Mode„„„„„„„„³LineMode“³orµµ±lf“³lit³lf„„µ±crlf“³lit³crlf„„„„³ StreamError“³rec“³lit³error„“³tupleµ“³named³message“³atom³String„„„„„³ CreditAmount“³orµµ±count“³atom³ SignedInteger„„µ± unbounded“³lit³ unbounded„„„„³StreamConnection“³rec“³lit³stream-connection„“³tupleµ“³named³source“³embedded“³refµ„³Source„„„“³named³sink“³embedded“³refµ„³Sink„„„“³named³spec³any„„„„³StreamListenerError“³rec“³lit³stream-listener-error„“³tupleµ“³named³spec³any„“³named³message“³atom³String„„„„„³StreamListenerReady“³rec“³lit³stream-listener-ready„“³tupleµ“³named³spec³any„„„„„³ embeddedType“³refµ³ EntityRef„³Cap„„„µ³sturdy„“³schema·³version‘³ definitions·³Lit“³rec“³lit³lit„“³tupleµ“³named³value³any„„„„³Oid“³atom³ SignedInteger„³Alts“³rec“³lit³or„“³tupleµ“³named³ alternatives“³seqof“³refµ„³Rewrite„„„„„„³CArr“³rec“³lit³arr„“³tupleµ“³named³arity“³atom³ SignedInteger„„„„„³CRec“³rec“³lit³rec„“³tupleµ“³named³label³any„“³named³arity“³atom³ SignedInteger„„„„„³PAnd“³rec“³lit³and„“³tupleµ“³named³patterns“³seqof“³refµ„³Pattern„„„„„„³PNot“³rec“³lit³not„“³tupleµ“³named³pattern“³refµ„³Pattern„„„„„³TRef“³rec“³lit³ref„“³tupleµ“³named³binding“³atom³ SignedInteger„„„„„³CDict“³rec“³lit³dict„“³tupleµ„„„³PAtom“³orµµ±Boolean“³lit³Boolean„„µ±Float“³lit³Float„„µ±Double“³lit³Double„„µ± SignedInteger“³lit³ SignedInteger„„µ±String“³lit³String„„µ± +controller“³embedded“³refµ„³Sink„„„„„„„µ± StreamError“³refµ„³ StreamError„„µ±credit“³rec“³lit³credit„“³tupleµ“³named³amount“³refµ„³ CreditAmount„„“³named³mode“³refµ„³Mode„„„„„„„„³LineMode“³orµµ±lf“³lit³lf„„µ±crlf“³lit³crlf„„„„³ StreamError“³rec“³lit³error„“³tupleµ“³named³message“³atom³String„„„„„³ CreditAmount“³orµµ±count“³atom³ SignedInteger„„µ± unbounded“³lit³ unbounded„„„„³StreamConnection“³rec“³lit³stream-connection„“³tupleµ“³named³source“³embedded“³refµ„³Source„„„“³named³sink“³embedded“³refµ„³Sink„„„“³named³spec³any„„„„³StreamListenerError“³rec“³lit³stream-listener-error„“³tupleµ“³named³spec³any„“³named³message“³atom³String„„„„„³StreamListenerReady“³rec“³lit³stream-listener-ready„“³tupleµ“³named³spec³any„„„„„³ embeddedType“³refµ³ EntityRef„³Cap„„„µ³sturdy„“³schema·³version‘³ definitions·³Lit“³rec“³lit³lit„“³tupleµ“³named³value³any„„„„³Oid“³atom³ SignedInteger„³Alts“³rec“³lit³or„“³tupleµ“³named³ alternatives“³seqof“³refµ„³Rewrite„„„„„„³PAnd“³rec“³lit³and„“³tupleµ“³named³patterns“³seqof“³refµ„³Pattern„„„„„„³PNot“³rec“³lit³not„“³tupleµ“³named³pattern“³refµ„³Pattern„„„„„³TRef“³rec“³lit³ref„“³tupleµ“³named³binding“³atom³ SignedInteger„„„„„³PAtom“³orµµ±Boolean“³lit³Boolean„„µ±Float“³lit³Float„„µ±Double“³lit³Double„„µ± SignedInteger“³lit³ SignedInteger„„µ±String“³lit³String„„µ± ByteString“³lit³ ByteString„„µ±Symbol“³lit³Symbol„„„„³PBind“³rec“³lit³bind„“³tupleµ“³named³pattern“³refµ„³Pattern„„„„„³Caveat“³orµµ±Rewrite“³refµ„³Rewrite„„µ±Alts“³refµ„³Alts„„„„³Pattern“³orµµ±PDiscard“³refµ„³PDiscard„„µ±PAtom“³refµ„³PAtom„„µ± PEmbedded“³refµ„³ PEmbedded„„µ±PBind“³refµ„³PBind„„µ±PAnd“³refµ„³PAnd„„µ±PNot“³refµ„³PNot„„µ±Lit“³refµ„³Lit„„µ± PCompound“³refµ„³ PCompound„„„„³Rewrite“³rec“³lit³rewrite„“³tupleµ“³named³pattern“³refµ„³Pattern„„“³named³template“³refµ„³Template„„„„„³WireRef“³orµµ±mine“³tupleµ“³lit„“³named³oid“³refµ„³Oid„„„„„µ±yours“³ tuplePrefixµ“³lit‘„“³named³oid“³refµ„³Oid„„„“³named³ attenuation“³seqof“³refµ„³Caveat„„„„„„„³PDiscard“³rec“³lit³_„“³tupleµ„„„³Template“³orµµ± TAttenuate“³refµ„³ -TAttenuate„„µ±TRef“³refµ„³TRef„„µ±Lit“³refµ„³Lit„„µ± TCompound“³refµ„³ TCompound„„„„³ PCompound“³rec“³lit³compound„“³tupleµ“³named³ctor“³refµ„³ConstructorSpec„„“³named³members“³refµ„³PCompoundMembers„„„„„³ PEmbedded“³lit³Embedded„³ SturdyRef“³rec“³lit³ref„“³tupleµ“³named³oid³any„“³named³ caveatChain“³seqof“³refµ„³ Attenuation„„„“³named³sig“³atom³ -ByteString„„„„„³ TCompound“³rec“³lit³compound„“³tupleµ“³named³ctor“³refµ„³ConstructorSpec„„“³named³members“³refµ„³TCompoundMembers„„„„„³ -TAttenuate“³rec“³lit³ attenuate„“³tupleµ“³named³template“³refµ„³Template„„“³named³ attenuation“³refµ„³ Attenuation„„„„„³ Attenuation“³seqof“³refµ„³Caveat„„³ConstructorSpec“³orµµ±CRec“³refµ„³CRec„„µ±CArr“³refµ„³CArr„„µ±CDict“³refµ„³CDict„„„„³PCompoundMembers“³dictof³any“³refµ„³Pattern„„³TCompoundMembers“³dictof³any“³refµ„³Template„„„³ embeddedType“³refµ³ EntityRef„³Cap„„„µ³worker„“³schema·³version‘³ definitions·³Instance“³rec“³lit³Instance„“³tupleµ“³named³name“³atom³String„„“³named³argument³any„„„„„³ embeddedType“³refµ³ EntityRef„³Cap„„„µ³service„“³schema·³version‘³ definitions·³Dependee“³orµµ±ServiceStarted“³refµ„³ServiceStarted„„µ±ServiceRunning“³refµ„³ServiceRunning„„„„³ -RunService“³rec“³lit³ run-service„“³tupleµ“³named³ serviceName³any„„„„³RequireService“³rec“³lit³require-service„“³tupleµ“³named³ serviceName³any„„„„³ServiceRunning“³rec“³lit³service-running„“³tupleµ“³named³ serviceName³any„„„„³ServiceStarted“³rec“³lit³service-started„“³tupleµ“³named³ serviceName³any„„„„³ServiceMilestone“³rec“³lit³service-milestone„“³tupleµ“³named³ serviceName³any„“³named³ milestone³any„„„„³ServiceDependency“³rec“³lit³ -depends-on„“³tupleµ“³named³depender³any„“³named³dependee“³refµ„³Dependee„„„„„„³ embeddedType“³refµ³ EntityRef„³Cap„„„µ³protocol„“³schema·³version‘³ definitions·³Oid“³atom³ SignedInteger„³Sync“³rec“³lit³sync„“³tupleµ“³named³peer“³embedded“³lit„„„„„„³Turn“³seqof“³refµ„³ TurnEvent„„³Error“³rec“³lit³error„“³tupleµ“³named³message“³atom³String„„“³named³detail³any„„„„³Event“³orµµ±Assert“³refµ„³Assert„„µ±Retract“³refµ„³Retract„„µ±Message“³refµ„³Message„„µ±Sync“³refµ„³Sync„„„„³Assert“³rec“³lit³assert„“³tupleµ“³named³ assertion“³refµ„³ Assertion„„“³named³handle“³refµ„³Handle„„„„„³Handle“³atom³ SignedInteger„³Packet“³orµµ±Turn“³refµ„³Turn„„µ±Error“³refµ„³Error„„„„³Message“³rec“³lit³message„“³tupleµ“³named³body“³refµ„³ Assertion„„„„„³Retract“³rec“³lit³retract„“³tupleµ“³named³handle“³refµ„³Handle„„„„„³ Assertion³any³ TurnEvent“³tupleµ“³named³oid“³refµ„³Oid„„“³named³event“³refµ„³Event„„„„„³ embeddedType€„„µ³ dataspace„“³schema·³version‘³ definitions·³Observe“³rec“³lit³Observe„“³tupleµ“³named³pattern“³refµ³dataspacePatterns„³Pattern„„“³named³observer“³embedded³any„„„„„„³ embeddedType“³refµ³ EntityRef„³Cap„„„µ³ +TAttenuate„„µ±TRef“³refµ„³TRef„„µ±Lit“³refµ„³Lit„„µ± TCompound“³refµ„³ TCompound„„„„³ PCompound“³orµµ±rec“³rec“³lit³rec„“³tupleµ“³named³label³any„“³named³fields“³seqof“³refµ„³Pattern„„„„„„„µ±arr“³rec“³lit³arr„“³tupleµ“³named³items“³seqof“³refµ„³Pattern„„„„„„„µ±dict“³rec“³lit³dict„“³tupleµ“³named³entries“³dictof³any“³refµ„³Pattern„„„„„„„„„³ PEmbedded“³lit³Embedded„³ SturdyRef“³rec“³lit³ref„“³tupleµ“³named³oid³any„“³named³ caveatChain“³seqof“³refµ„³ Attenuation„„„“³named³sig“³atom³ +ByteString„„„„„³ TCompound“³orµµ±rec“³rec“³lit³rec„“³tupleµ“³named³label³any„“³named³fields“³seqof“³refµ„³Template„„„„„„„µ±arr“³rec“³lit³arr„“³tupleµ“³named³items“³seqof“³refµ„³Template„„„„„„„µ±dict“³rec“³lit³dict„“³tupleµ“³named³entries“³dictof³any“³refµ„³Template„„„„„„„„„³ +TAttenuate“³rec“³lit³ attenuate„“³tupleµ“³named³template“³refµ„³Template„„“³named³ attenuation“³refµ„³ Attenuation„„„„„³ Attenuation“³seqof“³refµ„³Caveat„„„³ embeddedType“³refµ³ EntityRef„³Cap„„„µ³worker„“³schema·³version‘³ definitions·³Instance“³rec“³lit³Instance„“³tupleµ“³named³name“³atom³String„„“³named³argument³any„„„„„³ embeddedType“³refµ³ EntityRef„³Cap„„„µ³service„“³schema·³version‘³ definitions·³State“³orµµ±started“³lit³started„„µ±ready“³lit³ready„„µ±failed“³lit³failed„„µ±complete“³lit³complete„„„„³ +RunService“³rec“³lit³ run-service„“³tupleµ“³named³ serviceName³any„„„„³ ServiceState“³rec“³lit³ service-state„“³tupleµ“³named³ serviceName³any„“³named³state“³refµ„³State„„„„„³ ServiceObject“³rec“³lit³service-object„“³tupleµ“³named³ serviceName³any„“³named³object³any„„„„³RequireService“³rec“³lit³require-service„“³tupleµ“³named³ serviceName³any„„„„³RestartService“³rec“³lit³restart-service„“³tupleµ“³named³ serviceName³any„„„„³ServiceDependency“³rec“³lit³ +depends-on„“³tupleµ“³named³depender³any„“³named³dependee“³refµ„³ ServiceState„„„„„³SystemLayerService“³rec“³lit³system-layer-service„“³tupleµ“³named³ serviceName³any„„„„„³ embeddedType“³refµ³ EntityRef„³Cap„„„µ³protocol„“³schema·³version‘³ definitions·³Oid“³atom³ SignedInteger„³Sync“³rec“³lit³sync„“³tupleµ“³named³peer“³embedded“³lit„„„„„„³Turn“³seqof“³refµ„³ TurnEvent„„³Error“³rec“³lit³error„“³tupleµ“³named³message“³atom³String„„“³named³detail³any„„„„³Event“³orµµ±Assert“³refµ„³Assert„„µ±Retract“³refµ„³Retract„„µ±Message“³refµ„³Message„„µ±Sync“³refµ„³Sync„„„„³Assert“³rec“³lit³assert„“³tupleµ“³named³ assertion“³refµ„³ Assertion„„“³named³handle“³refµ„³Handle„„„„„³Handle“³atom³ SignedInteger„³Packet“³orµµ±Turn“³refµ„³Turn„„µ±Error“³refµ„³Error„„µ± Extension“³refµ„³ Extension„„„„³Message“³rec“³lit³message„“³tupleµ“³named³body“³refµ„³ Assertion„„„„„³Retract“³rec“³lit³retract„“³tupleµ“³named³handle“³refµ„³Handle„„„„„³ Assertion³any³ Extension“³rec“³named³label³any„“³named³fields³any„„³ TurnEvent“³tupleµ“³named³oid“³refµ„³Oid„„“³named³event“³refµ„³Event„„„„„³ embeddedType€„„µ³ dataspace„“³schema·³version‘³ definitions·³Observe“³rec“³lit³Observe„“³tupleµ“³named³pattern“³refµ³dataspacePatterns„³Pattern„„“³named³observer“³embedded³any„„„„„„³ embeddedType“³refµ³ EntityRef„³Cap„„„µ³ gatekeeper„“³schema·³version‘³ definitions·³Bind“³rec“³lit³bind„“³tupleµ“³named³oid³any„“³named³key“³atom³ -ByteString„„“³named³target“³embedded³any„„„„„³Resolve“³rec“³lit³resolve„“³tupleµ“³named³ sturdyref“³refµ³sturdy„³ SturdyRef„„“³named³observer“³embedded“³embedded³any„„„„„„„³ embeddedType“³refµ³ EntityRef„³Cap„„„µ³ racketEvent„“³schema·³version‘³ definitions·³ RacketEvent“³rec“³lit³ racket-event„“³tupleµ“³named³source“³embedded³any„„“³named³event“³embedded³any„„„„„„³ embeddedType€„„µ³transportAddress„“³schema·³version‘³ definitions·³Tcp“³rec“³lit³tcp„“³tupleµ“³named³host“³atom³String„„“³named³port“³atom³ SignedInteger„„„„„³Unix“³rec“³lit³unix„“³tupleµ“³named³path“³atom³String„„„„„³Stdio“³rec“³lit³stdio„“³tupleµ„„„³ WebSocket“³rec“³lit³ws„“³tupleµ“³named³url“³atom³String„„„„„„³ embeddedType€„„µ³dataspacePatterns„“³schema·³version‘³ definitions·³CArr“³rec“³lit³arr„“³tupleµ“³named³arity“³atom³ SignedInteger„„„„„³CRec“³rec“³lit³rec„“³tupleµ“³named³label³any„“³named³arity“³atom³ SignedInteger„„„„„³DLit“³rec“³lit³lit„“³tupleµ“³named³value³any„„„„³CDict“³rec“³lit³dict„“³tupleµ„„„³DBind“³rec“³lit³bind„“³tupleµ“³named³pattern“³refµ„³Pattern„„„„„³Pattern“³orµµ±DDiscard“³refµ„³DDiscard„„µ±DBind“³refµ„³DBind„„µ±DLit“³refµ„³DLit„„µ± DCompound“³refµ„³ DCompound„„„„³DDiscard“³rec“³lit³_„“³tupleµ„„„³ DCompound“³orµµ±rec“³rec“³lit³compound„“³tupleµ“³named³ctor“³refµ„³CRec„„“³named³members“³dictof“³atom³ SignedInteger„“³refµ„³Pattern„„„„„„„µ±arr“³rec“³lit³compound„“³tupleµ“³named³ctor“³refµ„³CArr„„“³named³members“³dictof“³atom³ SignedInteger„“³refµ„³Pattern„„„„„„„µ±dict“³rec“³lit³compound„“³tupleµ“³named³ctor“³refµ„³CDict„„“³named³members“³dictof³any“³refµ„³Pattern„„„„„„„„„„³ embeddedType“³refµ³ EntityRef„³Cap„„„µ³secureChatProtocol„“³schema·³version‘³ definitions·³Join“³rec“³lit³ +ByteString„„“³named³target“³embedded³any„„„„„³Resolve“³rec“³lit³resolve„“³tupleµ“³named³ sturdyref“³refµ³sturdy„³ SturdyRef„„“³named³observer“³embedded“³embedded³any„„„„„„„³ embeddedType“³refµ³ EntityRef„³Cap„„„µ³ racketEvent„“³schema·³version‘³ definitions·³ RacketEvent“³rec“³lit³ racket-event„“³tupleµ“³named³source“³embedded³any„„“³named³event“³embedded³any„„„„„„³ embeddedType€„„µ³transportAddress„“³schema·³version‘³ definitions·³Tcp“³rec“³lit³tcp„“³tupleµ“³named³host“³atom³String„„“³named³port“³atom³ SignedInteger„„„„„³Unix“³rec“³lit³unix„“³tupleµ“³named³path“³atom³String„„„„„³Stdio“³rec“³lit³stdio„“³tupleµ„„„³ WebSocket“³rec“³lit³ws„“³tupleµ“³named³url“³atom³String„„„„„„³ embeddedType€„„µ³dataspacePatterns„“³schema·³version‘³ definitions·³DLit“³rec“³lit³lit„“³tupleµ“³named³value“³refµ„³AnyAtom„„„„„³DBind“³rec“³lit³bind„“³tupleµ“³named³pattern“³refµ„³Pattern„„„„„³AnyAtom“³orµµ±bool“³atom³Boolean„„µ±float“³atom³Float„„µ±double“³atom³Double„„µ±int“³atom³ SignedInteger„„µ±string“³atom³String„„µ±bytes“³atom³ +ByteString„„µ±symbol“³atom³Symbol„„µ±embedded“³embedded³any„„„„³Pattern“³orµµ±DDiscard“³refµ„³DDiscard„„µ±DBind“³refµ„³DBind„„µ±DLit“³refµ„³DLit„„µ± DCompound“³refµ„³ DCompound„„„„³DDiscard“³rec“³lit³_„“³tupleµ„„„³ DCompound“³orµµ±rec“³rec“³lit³rec„“³tupleµ“³named³label³any„“³named³fields“³seqof“³refµ„³Pattern„„„„„„„µ±arr“³rec“³lit³arr„“³tupleµ“³named³items“³seqof“³refµ„³Pattern„„„„„„„µ±dict“³rec“³lit³dict„“³tupleµ“³named³entries“³dictof³any“³refµ„³Pattern„„„„„„„„„„³ embeddedType“³refµ³ EntityRef„³Cap„„„µ³secureChatProtocol„“³schema·³version‘³ definitions·³Join“³rec“³lit³ joinedUser„“³tupleµ“³named³uid“³refµ„³UserId„„“³named³handle“³embedded“³refµ„³Session„„„„„„³Says“³rec“³lit³says„“³tupleµ“³named³who“³refµ„³UserId„„“³named³what“³atom³String„„„„„³UserId“³atom³ SignedInteger„³Session“³orµµ± observeUsers“³rec“³lit³Observe„“³tupleµ“³lit³user„“³named³observer“³embedded“³refµ„³UserInfo„„„„„„„µ± observeSpeech“³rec“³lit³Observe„“³tupleµ“³lit³says„“³named³observer“³embedded“³refµ„³Says„„„„„„„µ± NickClaim“³refµ„³ NickClaim„„µ±Says“³refµ„³Says„„„„³UserInfo“³rec“³lit³user„“³tupleµ“³named³uid“³refµ„³UserId„„“³named³name“³atom³String„„„„„³ NickClaim“³rec“³lit³ claimNick„“³tupleµ“³named³uid“³refµ„³UserId„„“³named³name“³atom³String„„“³named³k“³embedded“³refµ„³NickClaimResponse„„„„„„³ NickConflict“³rec“³lit³ nickConflict„“³tupleµ„„„³NickClaimResponse“³orµµ±true“³lit„„µ± NickConflict“³refµ„³ NickConflict„„„„„³ embeddedType“³refµ³ EntityRef„³Cap„„„µ³simpleChatProtocol„“³schema·³version‘³ definitions·³Says“³rec“³lit³Says„“³tupleµ“³named³who“³atom³String„„“³named³what“³atom³String„„„„„³Present“³rec“³lit³Present„“³tupleµ“³named³username“³atom³String„„„„„„³ embeddedType“³refµ³ EntityRef„³Cap„„„„„ \ No newline at end of file diff --git a/protocols/schemas/dataspacePatterns.prs b/protocols/schemas/dataspacePatterns.prs index 0a69faf..835336e 100644 --- a/protocols/schemas/dataspacePatterns.prs +++ b/protocols/schemas/dataspacePatterns.prs @@ -6,11 +6,18 @@ Pattern = DDiscard / DBind / DLit / DCompound . DDiscard = <_>. DBind = . -DLit = . -DCompound = @rec - / @arr - / @dict . +DLit = . +DCompound = + / + / . -CRec = . -CArr = . -CDict = . +AnyAtom = + / @bool bool + / @float float + / @double double + / @int int + / @string string + / @bytes bytes + / @symbol symbol + / @embedded #!any +. diff --git a/protocols/schemas/protocol.prs b/protocols/schemas/protocol.prs index 42b5038..61d02d5 100644 --- a/protocols/schemas/protocol.prs +++ b/protocols/schemas/protocol.prs @@ -1,6 +1,8 @@ version 1 . -Packet = Turn / Error . +Packet = Turn / Error / Extension . + +Extension = < @label any @fields any> . Error = . diff --git a/protocols/schemas/service.prs b/protocols/schemas/service.prs index a361448..8328fcf 100644 --- a/protocols/schemas/service.prs +++ b/protocols/schemas/service.prs @@ -1,22 +1,54 @@ version 1 . embeddedType EntityRef.Cap . -;Asserts that a service should begin (and stay) running after waiting for its dependencies and considering reverse-dependencies, blocks, and so on. +; Asserts that a service should begin (and stay) running after waiting +; for its dependencies and considering reverse-dependencies, blocks, +; and so on. RequireService = . -;Asserts that a service should begin (and stay) running RIGHT NOW, without considering its dependencies. +; Asserts that a service should begin (and stay) running RIGHT NOW, +; without considering its dependencies. RunService = . -;Asserts that the service has been started (but is not necessarily ready for use). -ServiceStarted = . +; Asserts one or more current states of service `serviceName`. The +; overall state of the service is the union of asserted `state`s. +; +; Only a few combinations make sense: +; - `started` +; - `started` + `ready` +; - `failed` +; - `complete` +; +ServiceState = . -;Asserts that the service is ready for use. -ServiceRunning = . +; A running service publishes zero or more of these. The details of +; the object vary by service. +; +ServiceObject = . -;Asserts that `depender` can be considered started but not running until `dependee` is satisfied. -ServiceDependency = . -;Describes a relationship from a dependent to some a dependee service: has it started? is it ready? -Dependee = ServiceStarted / ServiceRunning . +; Possible service states. +State = +/ ; The service has begun its startup routine, and may or may not be + ; ready to take requests from other parties. + =started +/ ; The service is ready to take requests from other parties. + ; (This state is special in that it is asserted *in addition* to `started`.) + =ready +/ ; The service has failed. + =failed +/ ; The service has completed execution. + =complete +. -;Asserts that the service has the given milestone among its dependencies. If not otherwise specified, a service has the milestone `core` as a dependency. -ServiceMilestone = . +; Asserts that, when `depender` is `require-service`d, it should not +; be started until `dependee` has been asserted. +ServiceDependency = . + +; Asserts that the service is a "system layer" service. If *not* +; specified for a service X, where X is not `` for some +; Y, the system acts as if ` ready>>` were asserted. +SystemLayerService = . + +; Message. Triggers a service restart. +RestartService = . diff --git a/protocols/schemas/sturdy.prs b/protocols/schemas/sturdy.prs index 85f6c6c..9fb5827 100644 --- a/protocols/schemas/sturdy.prs +++ b/protocols/schemas/sturdy.prs @@ -20,11 +20,6 @@ WireRef = @mine [0 @oid Oid] / @yours [1 @oid Oid @attenuation Caveat ...]. ;--------------------------------------------------------------------------- -ConstructorSpec = CRec / CArr / CDict . -CRec = . -CArr = . -CDict = . - Lit = . Pattern = PDiscard / PAtom / PEmbedded / PBind / PAnd / PNot / Lit / PCompound . @@ -34,11 +29,15 @@ PEmbedded = =Embedded . PBind = . PAnd = . PNot = . -PCompound = . -PCompoundMembers = { any: Pattern ...:... }. +PCompound = + / @rec + / @arr + / @dict . Template = TAttenuate / TRef / Lit / TCompound . TAttenuate = . TRef = . -TCompound = . -TCompoundMembers = { any: Template ...:... }. +TCompound = + / @rec + / @arr + / @dict .