Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
155 commits
Select commit Hold shift + click to select a range
c023369
chore: remove dead and deprecated code 'loadLibs.mts'
ssoelvsten Oct 6, 2025
5b428c2
style: clean up string with JS preamble during deserialization
ssoelvsten Oct 6, 2025
7ec3312
style: cleanup in 'deserialize.mts'
ssoelvsten Oct 6, 2025
6fa3755
chore: remove dead code in 'deserialize.mts'
ssoelvsten Oct 6, 2025
a0b3645
style: cleanup in 'loadLibsAsync.mts'
ssoelvsten Oct 6, 2025
98d1d3b
style: cleanup in 'runtimeMonitored.mts'
ssoelvsten Oct 7, 2025
17be22d
refactor: remove very odd inline import
ssoelvsten Oct 14, 2025
3bb0483
refactor: Improve naming and documentation for thread epilogues
ssoelvsten Oct 14, 2025
237a18f
chore: remove dead(ish) code in 'Scheduler.mts'
ssoelvsten Oct 15, 2025
f08c9a2
style: reorder and add some documentation to Scheduler
ssoelvsten Oct 15, 2025
cf2f853
chore: remove unused default arguments
ssoelvsten Oct 15, 2025
703ce29
refactor: add types to more Scheduler functions
ssoelvsten Oct 15, 2025
3644f2d
chore: remove dead code '__unit' variable
ssoelvsten Oct 15, 2025
d5c6190
chore: remove dead code 'stackcounter'
ssoelvsten Oct 15, 2025
99b6a88
style: reorder imports for Scheduler
ssoelvsten Oct 15, 2025
669a4ce
refactor: simplify 'scheduleNewThreadAtLevel'
ssoelvsten Oct 15, 2025
9df1510
chore: remove unused variable 'STACKDEPTH'
ssoelvsten Oct 15, 2025
9ebad4b
refactor: use typescript enum for 'TerminationStatus'
ssoelvsten Oct 15, 2025
a0e8db6
style: sort through Scheduler state
ssoelvsten Oct 15, 2025
3c270c9
style: initialise arrays consistently
ssoelvsten Oct 15, 2025
077c884
style: fix whitespace and missing semicolons in Scheduler
ssoelvsten Oct 15, 2025
ce3d512
refactor: replace thread blocking queue with a map
ssoelvsten Oct 15, 2025
b845826
refactor: remove '__alive' from public Scheduler interface
ssoelvsten Oct 15, 2025
796932f
style: sort through and add some types for SchedulerInterface
ssoelvsten Oct 15, 2025
904ab83
chore: remove unused logger
ssoelvsten Oct 15, 2025
c06cf2d
fix: only show stack if flag is set (as is documented)
ssoelvsten Oct 15, 2025
5356adc
chore: remove dead code in tight scheduling loop
ssoelvsten Oct 15, 2025
3c76f2d
refactor: clean up 'Scheduler.loop()'
ssoelvsten Oct 15, 2025
5b5a2e2
refactor: replace optional arguments for newly scheduled threads with…
ssoelvsten Oct 15, 2025
3eea0dd
chore: remove dead code 'schedule(...)'
ssoelvsten Oct 15, 2025
ac4ea21
refactor: simplify name of 'scheduleNewThread...'
ssoelvsten Oct 15, 2025
a155d2d
refactor: stop exposing/using internal (private) variable within Sche…
ssoelvsten Oct 15, 2025
a99ab7d
perf: skip execution of dead threads
ssoelvsten Oct 15, 2025
1f89ee4
refactor: comment and reorder 'start(..)'
ssoelvsten Oct 16, 2025
5c0189c
refactor: turn thread termination resolution into a callback
ssoelvsten Oct 20, 2025
0dc1385
style: fix indentation to better convey how the paragraphs fit together
ssoelvsten Oct 20, 2025
fb670e6
docs: clean up comments for 'resetScheduler'
ssoelvsten Oct 20, 2025
321b8bd
refactor: add '__userRuntime' to interface since it is not kept private
ssoelvsten Oct 20, 2025
a936ede
refactor: rewrite deserialization to use a queue and async functions
ssoelvsten Nov 17, 2025
72d1b0b
fix: '--persist' is used as a path but typed as boolean
ssoelvsten Nov 26, 2025
8848401
refactor: separate concerns on Thread state and Mailbox
ssoelvsten Dec 3, 2025
c004e8b
chore: remove dead code 'Pushable.js'
ssoelvsten Nov 20, 2025
1a864b3
chore: remove lingering hard-coded peer identifiers
ssoelvsten Nov 20, 2025
cfc7794
refactor: clean up P2P configuration
ssoelvsten Nov 20, 2025
61c69f6
refactor: some cleanup of 'Logger.mts' and imports
ssoelvsten Nov 20, 2025
044c0e0
chore: fix unecessary conversion of 'TroupeCliArg.Pini' to boolean
ssoelvsten Nov 20, 2025
01dea14
style: fix trailing whitespace in 'p2p.mts'
ssoelvsten Nov 20, 2025
9701438
style: cleanup in 'p2p.mts' comments and constants
ssoelvsten Nov 20, 2025
eefcf4d
refactor: move choice of network port into the configuration
ssoelvsten Nov 21, 2025
ad4eb95
refactor: move MessageType into its own file
ssoelvsten Nov 21, 2025
10c7c32
refactor: move node identifier derivation into p2p/config
ssoelvsten Nov 21, 2025
836b68b
refactor: improve type-documentation of Troupe protocol
ssoelvsten Nov 21, 2025
2947aeb
style: move check for blocked event queues up to where it is used
ssoelvsten Nov 21, 2025
69e5146
refactor: move 'rtHandlers' inside of network creation function
ssoelvsten Nov 21, 2025
2623d14
chore: remove unused 'MessageType.TEST'
ssoelvsten Nov 21, 2025
4726021
chore: fix comments not clarifying double-purpose of 'unacknowledged'…
ssoelvsten Nov 21, 2025
5dd91d8
chore: add type-documentation of unacknowledged messages
ssoelvsten Nov 21, 2025
d787b8c
refactor: decrease nesting level with fail-fast
ssoelvsten Nov 24, 2025
0a72ab9
refactor: simplify 'remoteSpawnOK()'
ssoelvsten Nov 24, 2025
08a6b08
chore: remove old undocumented and outcommented dead code
ssoelvsten Nov 24, 2025
322d1ce
refactor: document the runtime interface for the p2p layer
ssoelvsten Nov 26, 2025
8419eb6
refactor: improve code quality and extensibility with fail-fast
ssoelvsten Nov 26, 2025
51d1105
refactor: add typing information to '__theRegister'
ssoelvsten Nov 26, 2025
c1d9315
chore: update comments on 'register'
ssoelvsten Nov 26, 2025
56db69c
refactor: Use 'const' instead of 'let' for 'register'
ssoelvsten Nov 26, 2025
0cc3e37
style: add missing new line at the end of file
ssoelvsten Nov 26, 2025
ce2c04f
fix: add missing peer check for 'whereisFromRemote'
ssoelvsten Nov 26, 2025
d61de7e
refactor: remove 'TerminationStatus' enum
ssoelvsten Dec 1, 2025
2a4f3af
chore: add TODOs on 'notifyMonitors'
ssoelvsten Dec 1, 2025
b1d810b
style: use 'const' rather than 'let' in 'notifyMonitors'
ssoelvsten Dec 1, 2025
62d34ad
fix: the wrong Thread is possibly used for creating values in 'notify…
ssoelvsten Dec 1, 2025
844ec86
style: fix whitespace errors
ssoelvsten Dec 1, 2025
f99f6a4
refactor: fix 'TroupeAggregateRawValue' reiterates inherited values
ssoelvsten Dec 1, 2025
b4fb713
refactor: simplify 'listStringRep' by not reimplementing standard arr…
ssoelvsten Dec 1, 2025
bc7aebc
style: rename 'x' to 'xs' to convey it being a list
ssoelvsten Dec 1, 2025
bccec6d
style: add missing whitespace and semi-colon
ssoelvsten Dec 1, 2025
540a30a
refactor: simplify string construction to make it more readable
ssoelvsten Dec 1, 2025
88742e2
Document hack in 'RawTuple'
ssoelvsten Dec 1, 2025
ff2c5a8
docs: fix documentation was not updated for callback being turned int…
ssoelvsten Dec 1, 2025
df5bfbb
docs: fix comment is made for a column width of 60 (?)
ssoelvsten Dec 1, 2025
b5849c8
docs: restructure comments to better convey intention
ssoelvsten Dec 1, 2025
cc9b598
refactor: change order of 'spawnFromRemote' to better separate subtasks
ssoelvsten Dec 1, 2025
8c6d175
chore: add TODO on trying to spawn a non-function
ssoelvsten Dec 1, 2025
d5b2b62
refactor: return on failure to decrease indentation level
ssoelvsten Dec 1, 2025
d8b2727
refactor: update 'UnitBase' to match other Raw* conventions
ssoelvsten Dec 1, 2025
0527dbd
style: import BOT directly rather than as 'levels.BOT'
ssoelvsten Dec 1, 2025
53d22d8
refactor: rename 'Record' to 'RawRecord' to match conventions
ssoelvsten Dec 1, 2025
a9aed9e
chore: remove unused import
ssoelvsten Dec 1, 2025
82c5f55
refactor: make isXFlagSet into type predicates
ssoelvsten Dec 1, 2025
7680465
refactor: move 'mkRecord' and 'mkWithRecord' to ValueUtil.mts
ssoelvsten Dec 1, 2025
6363b6e
style: move type predicates after their respective creation
ssoelvsten Dec 1, 2025
721cada
refactor: infer 'isList' and 'isTuple' from '_troupeType'
ssoelvsten Dec 1, 2025
d688d15
feat: add 'isRecord' to ValueUtil for consistency
ssoelvsten Dec 1, 2025
00e52ac
refactor: remove duplicated code in UserRuntimeZero
ssoelvsten Dec 1, 2025
568fc95
Add 'isUnit' for ValueUtil
ssoelvsten Dec 1, 2025
f4a217d
chore: remove dead code
ssoelvsten Dec 1, 2025
f52b42f
chore: rename Lval.mts such that its casing matches
ssoelvsten Dec 1, 2025
75dcd0f
refactor: move all data types into a subfolder 'base/'
ssoelvsten Dec 1, 2025
eb3838f
refactor: rename '__unit' to 'unitLVal'
ssoelvsten Dec 1, 2025
80813ea
style: use 'const' instead of 'let' for unitLVal
ssoelvsten Dec 1, 2025
b11d409
chore: rename 'process.mts' to match its content
ssoelvsten Dec 1, 2025
7e7962d
refactor: clean up in 'pid_*equals' functions
ssoelvsten Dec 1, 2025
8421957
chore: remove dead import
ssoelvsten Dec 1, 2025
9c578dc
chore: remove dead code
ssoelvsten Dec 1, 2025
78b16fa
refactor: clean up in ProcessID
ssoelvsten Dec 1, 2025
9247660
chore: add TODO on generic type on LVal class
ssoelvsten Dec 1, 2025
3a8badd
chore: remove dead code
ssoelvsten Dec 1, 2025
2bf0fc1
refactor: move implementation of ProcessID equality into EqualityChecker
ssoelvsten Dec 1, 2025
b3878fe
refactor: rename ValueUtil.mts to reflect its scope
ssoelvsten Dec 1, 2025
bdb47a4
refactor: use 'isUnit' predicate
ssoelvsten Dec 1, 2025
7927819
refactor: fix inconsistent setting the threadError
ssoelvsten Dec 1, 2025
92b5601
docs: add README for rt/ with information on project structure
ssoelvsten Dec 2, 2025
41cc7a4
style: add type information to 'isSerializableClosure'
ssoelvsten Dec 2, 2025
c76184b
refactor: rename type predicates
ssoelvsten Dec 2, 2025
d06905b
refactor: rename 'BaseFunction...' to 'BuiltinFunction'
ssoelvsten Dec 2, 2025
6678e18
refactor: rename 'BaseFunction.mts' to reflect non-serializable funct…
ssoelvsten Dec 2, 2025
2451547
refactor: move 'isLVal' into the file concerning LVal
ssoelvsten Dec 2, 2025
900f054
refactor: rename equality checking for raw values to better convey scope
ssoelvsten Dec 2, 2025
5a215f7
refactor: rename Authority to mark it as a Raw value
ssoelvsten Dec 2, 2025
2a52b26
style: fix some whitespace and missing semi-colons
ssoelvsten Dec 2, 2025
b88198b
refactor: use more conventional style for reusing 'toString()'
ssoelvsten Dec 2, 2025
517beb1
refactor: rename ProcessID to mark it as a Raw value
ssoelvsten Dec 2, 2025
6ee1040
refactor: rename Atom to mark it as a Raw value
ssoelvsten Dec 2, 2025
e694e16
style: fix whitespace, semi-colons, and inconsistency in 'stringRep' …
ssoelvsten Dec 2, 2025
2176a1b
refactor: move sandbox kontinuation to mark it as a local function
ssoelvsten Dec 2, 2025
a61eb3e
refactor: add type documentation of 'taintRef' argument
ssoelvsten Dec 2, 2025
1647dfa
refactor: rename 'TroupeRawValue' to omit redundant prefix
ssoelvsten Dec 2, 2025
5ab710d
chore: add type for Atoms
ssoelvsten Dec 2, 2025
ed4b452
chore: add types(ish) for ProcessID
ssoelvsten Dec 2, 2025
b63a68d
refactor: make Raw value creation uniform
ssoelvsten Dec 2, 2025
51c4694
refactor: add raw type predicates for unwrapped JS values
ssoelvsten Dec 2, 2025
496ec81
refactor: narrow '_troupeType' on Raw objects
ssoelvsten Dec 2, 2025
65b435e
style: rename variables and add types for 'base/functions'
ssoelvsten Dec 2, 2025
9131bb6
style: whitespace and semi-colons for 'base/functions'
ssoelvsten Dec 2, 2025
04b711f
chore: add todo on missing 'env' and 'namespace' variables?
ssoelvsten Dec 2, 2025
3634145
refactor: simplify and align 'closure.stringRep'
ssoelvsten Dec 2, 2025
694a239
style: simplify wrapping of 'fn' in closures
ssoelvsten Dec 2, 2025
700a963
refactor: add type declaration of 'base/functions'
ssoelvsten Dec 2, 2025
3e87a9b
style: import BOT directly
ssoelvsten Dec 2, 2025
2745307
style: some more whitespace, semi-colon, and const fixes
ssoelvsten Dec 2, 2025
8d2a286
docs: add some rudementary documentation to the base Raw types
ssoelvsten Dec 3, 2025
6c2a798
docs: add TODO on equality checking for Raw operations
ssoelvsten Dec 3, 2025
8551535
chore: add types for LVal getters to improve type inference
ssoelvsten Dec 5, 2025
b876c39
chore: add types to adversary builtins
ssoelvsten Dec 5, 2025
2cec29f
refactor: fix direct access to LVal.dlev
ssoelvsten Dec 5, 2025
06bc162
style: fix whitespace, semi-colons, short variable naming, and string…
ssoelvsten Dec 5, 2025
6448423
refactor: simplify LVal.stringRep
ssoelvsten Dec 5, 2025
989b086
chore: add TODO for mitigating misuse of the LVal constructor
ssoelvsten Dec 5, 2025
8926127
refactor: simplify and streamline 'getTroupeType'
ssoelvsten Dec 5, 2025
e79d075
fix: LVal should infer the 'troupeType' from its 'val'
ssoelvsten Dec 5, 2025
f514685
fix: LVal should infer the 'dataType' from its 'val'
ssoelvsten Dec 5, 2025
734ecf8
chore: remove dead code/variable
ssoelvsten Dec 5, 2025
1edd0f3
refactor: turn 'LValCopyAt' constructor into a simple static '.copy'
ssoelvsten Dec 5, 2025
5f3dc28
refactor: turn 'LCopyVal' constructor into a simple static '.copyUnsafe'
ssoelvsten Dec 5, 2025
7cc6b38
style: fix whitespace and comments for 'TroupeType'
ssoelvsten Dec 5, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions compiler/src/IR.hs
Original file line number Diff line number Diff line change
Expand Up @@ -306,6 +306,7 @@ instance WellFormedIRCheck IRExpr where
, "newlabel"
, "node"
, "_pc"
, "_bl"
, "pcpop"
, "peek"
, "pinipush"
Expand Down
21 changes: 21 additions & 0 deletions rt/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Troupe Runtime

## Structure

The *src/* folder includes the implementation of Troupe's runtime. At its root
is the key orchestration of the virtual machine runtime, e.g. its *Threads*,
*Scheduler*, *Mailbox* and much more. Next to that, we have the following
subdirectories to separate concerns.

- `src/builtins`: Troupe's builtin functions and operations that are be called
by the user's program.

- `src/base`: Troupe's base types and values, e.g. `LVal` (labelled value),
`list`, `record`.

- `src/levels`: The labelled lattice for Troupe's IFC.

- `src/p2p`: The peer-to-peer layer.

There are also a few other folders, `src/dev` and `src/_experiments`. But, they
can be ignored.
6 changes: 3 additions & 3 deletions rt/src/AbstractLevel.mts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { TroupeType } from "./TroupeTypes.mjs";
import { TroupeRawValue } from "./TroupeRawValue.mjs";
import { TroupeType } from "./base/TroupeTypes.mjs";
import { RawValue } from "./base/RawValue.mjs";

export abstract class AbstractLevel <T extends AbstractLevel<T>>
implements TroupeRawValue {
implements RawValue {
isLevel: boolean = true ;
_troupeType: TroupeType = TroupeType.LEVEL
abstract dataLevel;
Expand Down
52 changes: 26 additions & 26 deletions rt/src/Asserts.mts
Original file line number Diff line number Diff line change
@@ -1,22 +1,19 @@
import { Thread, Capability } from './Thread.mjs';

import { isListFlagSet, isTupleFlagSet } from './ValuesUtil.mjs';
import * as proc from './process.mjs';
const ProcessID = proc.ProcessID;
import { isAuthority, isBoolean, isList, isNumber, isProcessID, isString, isTuple, isUnit } from './base/rawUtil.mjs';
import { AbstractLevel } from './AbstractLevel.mjs';
import { Level } from './Level.mjs';
import { Authority } from './Authority.mjs'
import * as levels from './Level.mjs';
import { TroupeType } from './TroupeTypes.mjs';
import { TroupeType } from './base/TroupeTypes.mjs';
const actsFor = levels.actsFor;

import { getRuntimeObject } from './SysState.mjs';
import { __nodeManager } from './NodeManager.mjs';
import { TroupeAggregateRawValue, TroupeRawValue } from './TroupeRawValue.mjs';
import { RawAggregate, RawValue } from './base/RawValue.mjs';
// import { LVal } from './Lval';

function _thread() {
return getRuntimeObject().__sched.__currentThread
return getRuntimeObject().__sched.getCurrentThread()
}

function __stringRep (v) {
Expand All @@ -33,7 +30,10 @@ function __stringRep (v) {
}
}

let err = x => _thread().threadError(x)
function err (errorMessage: string, internal: boolean = false) {
_thread().threadError(errorMessage, internal);
}

export function assertIsAtom (x: any) {
_thread().raiseBlockingThreadLev(x.tlev)
if (x.val._troupeType != TroupeType.ATOM ) {
Expand All @@ -42,27 +42,27 @@ export function assertIsAtom (x: any) {
}

export function rawAssertIsNumber (x) {
if (typeof x != 'number') {
if (!isNumber(x)) {
err("value " + __stringRep(x) + " is not a number")
}
}

export function assertIsNumber(x: any) {
_thread().raiseBlockingThreadLev(x.tlev)
if (typeof x.val != 'number') {
if (!isNumber(x.val)) {
err("value " + __stringRep(x) + " is not a number")
}
}

export function assertIsBoolean(x: any) {
_thread().raiseBlockingThreadLev(x.tlev);
if (typeof x.val != 'boolean') {
if (!isBoolean(x.val)) {
err("value " + __stringRep(x) + " is not a boolean")
}
}

export function rawAssertIsBoolean(x:any) {
if (typeof x != 'boolean') {
if (!isBoolean(x)) {
err("value " + __stringRep(x) + " is not a boolean")
}
}
Expand All @@ -74,7 +74,7 @@ export function assertIsFunction(x: any, internal = false) {

export function rawAssertIsFunction(x, internal = false) {
if (x._troupeType != TroupeType.CLOSURE) {
_thread().threadError("value " + __stringRep(x) + " is not a function", internal)
err("value " + __stringRep(x) + " is not a function", internal)
}
}

Expand All @@ -95,15 +95,15 @@ export function assertIsHandler(x: any) {

export function assertIsUnit(x: any) {
_thread().raiseBlockingThreadLev(x.tlev);
if (!x.val._is_unit) {
if (!isUnit(x.val)) {
err("value " + __stringRep(x) + " is not unit")
}
}


export function assertIsListOrTuple(x: any) {
_thread().raiseBlockingThreadLev(x.lev);;
if (!((isListFlagSet(x.val) || isTupleFlagSet(x.val)))) {
if (!((isList(x.val) || isTuple(x.val)))) {
err("value " + __stringRep(x) + " is not a list or tuple")
}
}
Expand All @@ -114,28 +114,28 @@ export function assertIsList(x: any) {
}

export function rawAssertIsList (x:any) {
if (!isListFlagSet(x)) {
if (!isList(x)) {
err("value " + __stringRep(x) + " is not a list")
}
}

export function assertIsNTuple(x: any, n: number) {
_thread().raiseBlockingThreadLev(x.lev);
if (!(Array.isArray(x.val) && isTupleFlagSet(x.val) && x.val.length == n)) {
if (!(Array.isArray(x.val) && isTuple(x.val) && x.val.length == n)) {
err("value " + __stringRep(x) + " is not a " + n + "-tuple")
}
}


export function assertIsNTupleR3 (x:TroupeRawValue, lev:Level, tlev:Level, n:number) {
export function assertIsNTupleR3 (x:RawValue, lev:Level, tlev:Level, n:number) {
_thread().raiseBlockingThreadLev(lev);
if (!(Array.isArray(x) && isTupleFlagSet(x) && x.length == n)) {
if (!(Array.isArray(x) && isTuple(x) && x.length == n)) {
err("value " + __stringRep(x) + " is not a " + n + "-tuple")
}
}

export function rawAssertIsTuple (x) {
if (!(Array.isArray(x) && isTupleFlagSet(x) )) {
if (!(Array.isArray(x) && isTuple(x) )) {
err("value " + __stringRep(x) + " is not a tuple")
}
}
Expand Down Expand Up @@ -172,13 +172,13 @@ export function rawAssertIsRecord (x: any) {

export function assertIsString(x: any) {
_thread().raiseBlockingThreadLev(x.tlev);
if (typeof x.val != 'string') {
if (!isString(x.val)) {
err("value " + __stringRep(x) + " is not a string")
}
}

export function rawAssertIsString(x:any) {
if (typeof x != 'string') {
if (!isString(x)) {
err("value " + __stringRep(x) + " is not a string")
}
}
Expand All @@ -192,7 +192,7 @@ export function rawAssertNotZero(x:any) {

export function assertIsNode(x: any) {
_thread().raiseBlockingThreadLev(x.tlev);
if (typeof x.val != 'string') {
if (!isString(x.val)) {
err("value " + __stringRep(x) + " is not a node string") // todo: check for it being a proper nodeid format?
}
if (x.val.startsWith("@")) {
Expand All @@ -204,7 +204,7 @@ export function assertIsNode(x: any) {

export function assertIsProcessId(x: any) {
_thread().raiseBlockingThreadLev(x.tlev);
if (!(x.val instanceof ProcessID)) {
if (!(isProcessID(x.val))) {
err("value " + __stringRep(x) + " is not a process id")
}
}
Expand Down Expand Up @@ -241,14 +241,14 @@ export function assertIsRootAuthority(x: any) {

export function assertIsAuthority(x: any) {
_thread().raiseBlockingThreadLev(x.tlev);
if (!(x.val instanceof Authority)) {
if (!(isAuthority(x.val))) {
err("value " + __stringRep(x) + " is not a authority");
}
}

export function assertIsAuthorityR3(x, lev, tlev) {
_thread().raiseBlockingThreadLev(x.tlev);
if (!(x instanceof Authority)){
if (!(isAuthority(x))){
err("value " + __stringRep(x) + " is not a authority");
}
}
Expand Down
22 changes: 0 additions & 22 deletions rt/src/Atom.mts

This file was deleted.

21 changes: 0 additions & 21 deletions rt/src/Authority.mts

This file was deleted.

43 changes: 0 additions & 43 deletions rt/src/BaseFunction.mts

This file was deleted.

Loading
Loading