Do not expose actors or facets
This commit is contained in:
parent
ccdf42872e
commit
56eb452649
|
@ -1,5 +1,5 @@
|
||||||
# Package
|
# Package
|
||||||
version = "20240424"
|
version = "20240425"
|
||||||
author = "Emery Hemingway"
|
author = "Emery Hemingway"
|
||||||
description = "Syndicate bindings for the Min language"
|
description = "Syndicate bindings for the Min language"
|
||||||
license = "unlicense"
|
license = "unlicense"
|
||||||
|
|
|
@ -8,21 +8,11 @@ import
|
||||||
./min_preserves
|
./min_preserves
|
||||||
|
|
||||||
const
|
const
|
||||||
facetType* = "syndicate-facet"
|
|
||||||
dictFacetType = "dict:" & facetType
|
|
||||||
capType* = "syndicate-cap"
|
capType* = "syndicate-cap"
|
||||||
dictCapType = "dict:" & capType
|
dictCapType = "dict:" & capType
|
||||||
|
|
||||||
proc discardTurn(turn: var Turn) = discard
|
proc discardTurn(turn: var Turn) = discard
|
||||||
|
|
||||||
proc newFacetDict(i: In): MinValue =
|
|
||||||
result = i.scope.newDict
|
|
||||||
result.objType = facetType
|
|
||||||
|
|
||||||
proc getFacet(q: MinValue): Facet =
|
|
||||||
assert q.objType == facetType
|
|
||||||
cast[Facet](q.obj)
|
|
||||||
|
|
||||||
proc newCapDict(i: In): MinValue =
|
proc newCapDict(i: In): MinValue =
|
||||||
result = i.scope.newDict
|
result = i.scope.newDict
|
||||||
result.objType = capType
|
result.objType = capType
|
||||||
|
@ -41,28 +31,11 @@ proc runForObj(q: MinValue) =
|
||||||
proc syndicate_module*(i: In) =
|
proc syndicate_module*(i: In) =
|
||||||
let def = i.define()
|
let def = i.define()
|
||||||
|
|
||||||
def.symbol("actor") do (i: In):
|
|
||||||
let
|
|
||||||
vals = i.expect "str"
|
|
||||||
name = vals[0].getString
|
|
||||||
dict = i.newFacetDict
|
|
||||||
bootActor(name) do (turn: var Turn):
|
|
||||||
dict.obj = addr turn.facet[]
|
|
||||||
runForObj dict
|
|
||||||
i.push dict
|
|
||||||
|
|
||||||
def.symbol("stop-actor") do (i: In):
|
|
||||||
let
|
|
||||||
vals = i.expect("dict:" & facetType)
|
|
||||||
facet = vals[0].getFacet
|
|
||||||
stopActor facet
|
|
||||||
|
|
||||||
def.symbol("dataspace") do (i: In):
|
def.symbol("dataspace") do (i: In):
|
||||||
let
|
let
|
||||||
vals = i.expect(dictFacetType)
|
vals = i.expect("dict")
|
||||||
facet = vals[0].getFacet
|
|
||||||
dict = i.newCapDict
|
dict = i.newCapDict
|
||||||
facet.queueTurn do (turn: var Turn):
|
bootActor("dataspace") do (turn: var Turn):
|
||||||
dict.setCap turn.newDataspace
|
dict.setCap turn.newDataspace
|
||||||
runForObj dict
|
runForObj dict
|
||||||
i.push dict
|
i.push dict
|
||||||
|
|
Reference in New Issue