Do not expose actors or facets

This commit is contained in:
Emery Hemingway 2024-04-25 09:35:16 +02:00
parent ccdf42872e
commit 56eb452649
2 changed files with 3 additions and 30 deletions

View File

@ -1,5 +1,5 @@
# Package
version = "20240424"
version = "20240425"
author = "Emery Hemingway"
description = "Syndicate bindings for the Min language"
license = "unlicense"

View File

@ -8,21 +8,11 @@ import
./min_preserves
const
facetType* = "syndicate-facet"
dictFacetType = "dict:" & facetType
capType* = "syndicate-cap"
dictCapType = "dict:" & capType
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 =
result = i.scope.newDict
result.objType = capType
@ -41,28 +31,11 @@ proc runForObj(q: MinValue) =
proc syndicate_module*(i: In) =
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):
let
vals = i.expect(dictFacetType)
facet = vals[0].getFacet
vals = i.expect("dict")
dict = i.newCapDict
facet.queueTurn do (turn: var Turn):
bootActor("dataspace") do (turn: var Turn):
dict.setCap turn.newDataspace
runForObj dict
i.push dict