@quenk/potoo 4.0.12 → 4.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/lib/actor/address.d.ts +5 -1
  2. package/lib/actor/address.js +7 -2
  3. package/lib/actor/address.js.map +1 -1
  4. package/lib/actor/system/vm/allocator/index.d.ts +9 -2
  5. package/lib/actor/system/vm/allocator/map.d.ts +2 -1
  6. package/lib/actor/system/vm/allocator/map.js +30 -23
  7. package/lib/actor/system/vm/allocator/map.js.map +1 -1
  8. package/lib/actor/system/vm/event/dispatcher.d.ts +4 -4
  9. package/lib/actor/system/vm/event/dispatcher.js +9 -9
  10. package/lib/actor/system/vm/event/dispatcher.js.map +1 -1
  11. package/lib/actor/system/vm/event/index.d.ts +1 -1
  12. package/lib/actor/system/vm/event/index.js +1 -1
  13. package/lib/actor/system/vm/index.d.ts +16 -9
  14. package/lib/actor/system/vm/index.js +17 -9
  15. package/lib/actor/system/vm/index.js.map +1 -1
  16. package/lib/actor/system/vm/runtime/error.d.ts +0 -42
  17. package/lib/actor/system/vm/runtime/error.js +1 -61
  18. package/lib/actor/system/vm/runtime/error.js.map +1 -1
  19. package/lib/actor/system/vm/thread/collector.d.ts +35 -0
  20. package/lib/actor/system/vm/thread/collector.js +52 -0
  21. package/lib/actor/system/vm/thread/collector.js.map +1 -0
  22. package/lib/actor/system/vm/thread/factory.js +2 -2
  23. package/lib/actor/system/vm/thread/factory.js.map +1 -1
  24. package/lib/actor/system/vm/thread/index.d.ts +5 -0
  25. package/lib/actor/system/vm/thread/index.js.map +1 -1
  26. package/lib/actor/system/vm/thread/process.d.ts +4 -2
  27. package/lib/actor/system/vm/thread/process.js +4 -3
  28. package/lib/actor/system/vm/thread/process.js.map +1 -1
  29. package/lib/actor/system/vm/thread/runner.d.ts +31 -0
  30. package/lib/actor/system/vm/thread/runner.js +60 -0
  31. package/lib/actor/system/vm/thread/runner.js.map +1 -0
  32. package/lib/actor/system/vm/thread/shared/js.d.ts +4 -3
  33. package/lib/actor/system/vm/thread/shared/js.js +18 -6
  34. package/lib/actor/system/vm/thread/shared/js.js.map +1 -1
  35. package/lib/actor/template.d.ts +0 -5
  36. package/lib/actor/template.js +1 -13
  37. package/lib/actor/template.js.map +1 -1
  38. package/package.json +1 -1
  39. package/lib/actor/system/vm/frame.d.ts +0 -228
  40. package/lib/actor/system/vm/frame.js +0 -233
  41. package/lib/actor/system/vm/frame.js.map +0 -1
  42. package/lib/actor/system/vm/object/foreign.d.ts +0 -9
  43. package/lib/actor/system/vm/object/foreign.js +0 -13
  44. package/lib/actor/system/vm/object/foreign.js.map +0 -1
  45. package/lib/actor/system/vm/object/index.d.ts +0 -5
  46. package/lib/actor/system/vm/object/index.js +0 -3
  47. package/lib/actor/system/vm/object/index.js.map +0 -1
  48. package/lib/actor/system/vm/object/list.d.ts +0 -8
  49. package/lib/actor/system/vm/object/list.js +0 -12
  50. package/lib/actor/system/vm/object/list.js.map +0 -1
  51. package/lib/actor/system/vm/op/actor.d.ts +0 -69
  52. package/lib/actor/system/vm/op/actor.js +0 -118
  53. package/lib/actor/system/vm/op/actor.js.map +0 -1
  54. package/lib/actor/system/vm/op/base.d.ts +0 -142
  55. package/lib/actor/system/vm/op/base.js +0 -242
  56. package/lib/actor/system/vm/op/base.js.map +0 -1
  57. package/lib/actor/system/vm/op/index.d.ts +0 -106
  58. package/lib/actor/system/vm/op/index.js +0 -232
  59. package/lib/actor/system/vm/op/index.js.map +0 -1
  60. package/lib/actor/system/vm/op/object.d.ts +0 -31
  61. package/lib/actor/system/vm/op/object.js +0 -78
  62. package/lib/actor/system/vm/op/object.js.map +0 -1
  63. package/lib/actor/system/vm/registry.d.ts +0 -126
  64. package/lib/actor/system/vm/registry.js +0 -191
  65. package/lib/actor/system/vm/registry.js.map +0 -1
  66. package/lib/actor/system/vm/script/index.d.ts +0 -49
  67. package/lib/actor/system/vm/script/index.js +0 -29
  68. package/lib/actor/system/vm/script/index.js.map +0 -1
  69. package/lib/actor/system/vm/script/info.d.ts +0 -279
  70. package/lib/actor/system/vm/script/info.js +0 -256
  71. package/lib/actor/system/vm/script/info.js.map +0 -1
  72. package/lib/actor/system/vm/type.d.ts +0 -90
  73. package/lib/actor/system/vm/type.js +0 -29
  74. package/lib/actor/system/vm/type.js.map +0 -1
@@ -21,13 +21,17 @@ export interface AddressMap {
21
21
  */
22
22
  export declare const isRestricted: (id: string) => boolean;
23
23
  /**
24
- * make a child address given its id and parent address.
24
+ * make a childaddress given its id and parent address.
25
25
  */
26
26
  export declare const make: (parent: Address, id: string) => Address;
27
27
  /**
28
28
  * getParent computes the parent of an Address.
29
29
  */
30
30
  export declare const getParent: (addr: Address) => Address;
31
+ /**
32
+ * isRootLevel tests whether an address is a child of the root actor.
33
+ */
34
+ export declare const isRootLevel: (addr: Address) => boolean;
31
35
  /**
32
36
  * getId provides the id part of an actor address.
33
37
  */
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isGroup = exports.isChild = exports.getId = exports.getParent = exports.make = exports.isRestricted = exports.ADDRESS_RESTRICTED = exports.ADDRESS_EMPTY = exports.ADDRESS_SYSTEM = exports.ADDRESS_DISCARD = exports.SEPERATOR = void 0;
3
+ exports.isGroup = exports.isChild = exports.getId = exports.isRootLevel = exports.getParent = exports.make = exports.isRestricted = exports.ADDRESS_RESTRICTED = exports.ADDRESS_EMPTY = exports.ADDRESS_SYSTEM = exports.ADDRESS_DISCARD = exports.SEPERATOR = void 0;
4
4
  const array_1 = require("@quenk/noni/lib/data/array");
5
5
  const string_1 = require("@quenk/noni/lib/data/string");
6
6
  exports.SEPERATOR = '/';
@@ -14,7 +14,7 @@ exports.ADDRESS_RESTRICTED = [exports.ADDRESS_DISCARD, exports.ADDRESS_SYSTEM, e
14
14
  const isRestricted = (id) => exports.ADDRESS_RESTRICTED.some(a => id.indexOf(a) > -1) && id !== exports.SEPERATOR;
15
15
  exports.isRestricted = isRestricted;
16
16
  /**
17
- * make a child address given its id and parent address.
17
+ * make a childaddress given its id and parent address.
18
18
  */
19
19
  const make = (parent, id) => {
20
20
  id = id.trim();
@@ -47,6 +47,11 @@ const getParent = (addr) => {
47
47
  }
48
48
  };
49
49
  exports.getParent = getParent;
50
+ /**
51
+ * isRootLevel tests whether an address is a child of the root actor.
52
+ */
53
+ const isRootLevel = (addr) => (0, exports.getParent)(addr) === exports.ADDRESS_SYSTEM;
54
+ exports.isRootLevel = isRootLevel;
50
55
  /**
51
56
  * getId provides the id part of an actor address.
52
57
  */
@@ -1 +1 @@
1
- {"version":3,"file":"address.js","sourceRoot":"","sources":["../../src/actor/address.ts"],"names":[],"mappings":";;;AAAA,sDAAkD;AAClD,wDAAyD;AAE5C,QAAA,SAAS,GAAG,GAAG,CAAC;AAEhB,QAAA,eAAe,GAAG,GAAG,CAAC;AACtB,QAAA,cAAc,GAAG,GAAG,CAAC;AACrB,QAAA,aAAa,GAAG,EAAE,CAAC;AACnB,QAAA,kBAAkB,GAAG,CAAC,uBAAe,EAAE,sBAAc,EAAE,iBAAS,CAAC,CAAC;AAiB/E;;GAEG;AACI,MAAM,YAAY,GAAG,CAAC,EAAU,EAAE,EAAE,CACvC,0BAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,iBAAS,CAAC;AAD5D,QAAA,YAAY,gBACgD;AAEzE;;GAEG;AACI,MAAM,IAAI,GAAG,CAAC,MAAe,EAAE,EAAU,EAAW,EAAE;IACzD,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;IACf,OAAO,MAAM,KAAK,iBAAS,IAAI,MAAM,KAAK,qBAAa;QACnD,CAAC,CAAC,GAAG,MAAM,GAAG,EAAE,EAAE;QAClB,CAAC,CAAC,MAAM,KAAK,sBAAc;YACzB,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,GAAG,MAAM,GAAG,iBAAS,GAAG,EAAE,EAAE,CAAC;AACzC,CAAC,CAAC;AAPW,QAAA,IAAI,QAOf;AAEF;;GAEG;AACI,MAAM,SAAS,GAAG,CAAC,IAAa,EAAW,EAAE;IAChD,IACI,IAAI,KAAK,sBAAc;QACvB,IAAI,KAAK,qBAAa;QACtB,IAAI,KAAK,uBAAe;QACxB,IAAI,KAAK,iBAAS,EACpB,CAAC;QACC,OAAO,sBAAc,CAAC;IAC1B,CAAC;SAAM,CAAC;QACJ,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAS,CAAC,CAAC;QAE/B,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;YAClC,OAAO,iBAAS,CAAC;QACrB,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,iBAAS,CAAC,CAAC;YAExD,OAAO,CAAC,KAAK,qBAAa,CAAC,CAAC,CAAC,sBAAc,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,CAAC;IACL,CAAC;AACL,CAAC,CAAC;AAnBW,QAAA,SAAS,aAmBpB;AAEF;;GAEG;AACI,MAAM,KAAK,GAAG,CAAC,IAAa,EAAU,EAAE,CAC3C,IAAI,KAAK,sBAAc;IACvB,IAAI,KAAK,uBAAe;IACxB,IAAI,KAAK,qBAAa;IACtB,IAAI,KAAK,iBAAS;IACd,CAAC,CAAC,IAAI;IACN,CAAC,CAAC,IAAA,YAAI,EAAC,IAAI,CAAC,KAAK,CAAC,iBAAS,CAAC,CAAC,CAAC;AANzB,QAAA,KAAK,SAMoB;AAEtC;;GAEG;AACI,MAAM,OAAO,GAAG,CAAC,MAAe,EAAE,KAAc,EAAW,EAAE,CAChE,CAAC,MAAM,KAAK,sBAAc,IAAI,KAAK,KAAK,MAAM,CAAC;IAC/C,IAAA,mBAAU,EAAC,KAAK,EAAE,GAAG,MAAM,GAAG,iBAAS,EAAE,CAAC,CAAC;AAFlC,QAAA,OAAO,WAE2B;AAE/C;;GAEG;AACI,MAAM,OAAO,GAAG,CAAC,IAAa,EAAW,EAAE,CAC9C,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC;AADvB,QAAA,OAAO,WACgB"}
1
+ {"version":3,"file":"address.js","sourceRoot":"","sources":["../../src/actor/address.ts"],"names":[],"mappings":"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"}
@@ -12,13 +12,20 @@ export interface Allocator {
12
12
  */
13
13
  getThread(target: Address): Maybe<Thread>;
14
14
  /**
15
- * getThreads provides a list of Threads given a list of Addresses.
15
+ * getThreads provides a list of all the Threads that are currently
16
+ * allocated.
17
+ *
18
+ * If targets is supplied, only those Threads will be returned.
16
19
  */
17
- getThreads(targets: Address[]): Thread[];
20
+ getThreads(targets?: Address[]): Thread[];
18
21
  /**
19
22
  * getTemplate provides a Template given an Address.
20
23
  */
21
24
  getTemplate(address: Address): Maybe<Template>;
25
+ /**
26
+ * getChildren returns the child threads of a parent thread.
27
+ */
28
+ getChildren(parent: Thread): Thread[];
22
29
  /**
23
30
  * allocate a new thread from a Template.
24
31
  */
@@ -52,8 +52,9 @@ export declare class MapAllocator implements Allocator {
52
52
  */
53
53
  getEntry(thread: Thread): Maybe<ActorTableEntry>;
54
54
  getThread(address: Address): Maybe<Thread>;
55
- getThreads(targets: Address[]): Thread[];
55
+ getThreads(targets?: Address[]): Thread[];
56
56
  getTemplate(address: Address): Maybe<Template>;
57
+ getChildren(parent: Thread): Thread[];
57
58
  allocate(parent: Thread, template: Template): Promise<Address>;
58
59
  reallocate(target: Thread): Promise<void>;
59
60
  deallocate(target: Thread): Promise<void>;
@@ -7,7 +7,6 @@ const future_1 = require("@quenk/noni/lib/control/monad/future");
7
7
  const array_1 = require("@quenk/noni/lib/data/array");
8
8
  const lazy_1 = require("@quenk/noni/lib/data/lazy");
9
9
  const address_1 = require("../../../address");
10
- const template_1 = require("../../../template");
11
10
  const event_1 = require("../event");
12
11
  const factory_1 = require("../thread/factory");
13
12
  const MAX_THREAD_KILL_PER_CYCLE = 25;
@@ -39,8 +38,11 @@ class MapAllocator {
39
38
  return maybe_1.Maybe.nothing();
40
39
  }
41
40
  getThreads(targets) {
41
+ let values = this.actors.values();
42
+ if (!targets)
43
+ return Array.from(values).map(entry => entry.thread);
42
44
  let hits = [];
43
- for (let entry of this.actors.values()) {
45
+ for (let entry of values) {
44
46
  if (targets.includes(entry.address))
45
47
  hits.push(entry.thread);
46
48
  }
@@ -49,6 +51,12 @@ class MapAllocator {
49
51
  getTemplate(address) {
50
52
  return maybe_1.Maybe.fromNullable(this.actors.get(address)).map((entry) => entry.template);
51
53
  }
54
+ getChildren(parent) {
55
+ let mentry = this.getEntry(parent);
56
+ if (mentry.isNothing())
57
+ return [];
58
+ return mentry.get().children.map(entry => entry.thread);
59
+ }
52
60
  async allocate(parent, template) {
53
61
  var _a;
54
62
  let platform = (0, lazy_1.evaluate)(this.platform);
@@ -86,16 +94,10 @@ class MapAllocator {
86
94
  mparentEntry.map(parentEntry => parentEntry.children.push(entry));
87
95
  if (template.group)
88
96
  platform.groups.enroll(address, template.group);
89
- let concernPromise = platform.events.monitor(thread, (0, template_1.spawnConcern2Event)(template.spawnConcern));
90
- platform.events.dispatchActorEvent(thread, event_1.EVENT_ACTOR_ALLOCATED);
91
- platform.runTask(thread, async () => {
92
- await actor.start();
93
- platform.events.dispatchActorEvent(thread, event_1.EVENT_ACTOR_STARTED);
94
- if (template.run) {
95
- await template.run(thread);
96
- await this.deallocate(thread);
97
- }
98
- });
97
+ let concernPromise = platform.runner.waitForConcern(parent, thread, template.spawnConcern);
98
+ await platform.events.dispatchActorEvent(parent.address, thread.address, event_1.EVENT_ACTOR_ALLOCATED);
99
+ //NOTE: unhandled promise
100
+ platform.runner.runThread(thread);
99
101
  await concernPromise;
100
102
  return address;
101
103
  }
@@ -124,19 +126,24 @@ class MapAllocator {
124
126
  let targets = [entry];
125
127
  let pending = entry.children.slice();
126
128
  while (!(0, array_1.empty)(pending)) {
127
- let target = pending.shift();
128
- pending = [...pending, ...target.children];
129
- targets.unshift(target);
129
+ let current = pending.shift(); //TODO, do not use shift(), slow
130
+ pending = [...pending, ...current.children];
131
+ targets.unshift(current); //TODO: do not use unshift(), slow
130
132
  }
131
- let platform = (0, lazy_1.evaluate)(this.platform);
132
- await future_1.Future.batch((0, array_1.distribute)(targets.map(target => future_1.Future.do(async () => {
133
- await target.actor.stop();
134
- await target.thread.stop();
135
- platform.events.dispatchActorEvent(target.thread, event_1.EVENT_ACTOR_STOPPED);
136
- platform.groups.unenroll(target.address);
137
- this.actors.delete(target.address);
138
- platform.events.dispatchActorEvent(target.thread, event_1.EVENT_ACTOR_DEALLOCATED);
133
+ let { events, collector, groups } = (0, lazy_1.evaluate)(this.platform);
134
+ await future_1.Future.batch((0, array_1.distribute)(targets.map(current => future_1.Future.do(async () => {
135
+ await current.actor.stop();
136
+ await current.thread.stop();
137
+ await collector.unmark(current.thread);
138
+ await events.dispatchActorEvent(current.thread.address, current.thread.address, event_1.EVENT_ACTOR_STOPPED);
139
+ groups.unenroll(current.address);
140
+ this.actors.delete(current.address);
141
+ if (current.parent.isJust())
142
+ await events.dispatchActorEvent(current.parent.get().thread.address, current.thread.address, event_1.EVENT_ACTOR_DEALLOCATED);
139
143
  })), MAX_THREAD_KILL_PER_CYCLE));
144
+ // Clean up parent function actors.
145
+ if (entry.parent.isJust())
146
+ await collector.collect(entry.parent.get().thread);
140
147
  }
141
148
  }
142
149
  exports.MapAllocator = MapAllocator;
@@ -1 +1 @@
1
- {"version":3,"file":"map.js","sourceRoot":"","sources":["../../../../../src/actor/system/vm/allocator/map.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"map.js","sourceRoot":"","sources":["../../../../../src/actor/system/vm/allocator/map.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ export declare const ADDRESS_WILDCARD = "*";
9
9
  /**
10
10
  * Listener is the signature of functions that receive VM events.
11
11
  */
12
- export type Listener = (event: InternalEvent) => void;
12
+ export type Listener = (event: InternalEvent) => Promise<void>;
13
13
  /**
14
14
  * ListenerMap maps event types to a list of listeners.
15
15
  */
@@ -51,14 +51,14 @@ export declare class EventDispatcher {
51
51
  /**
52
52
  * dispatchActorEvent dispatches events related to actor lifecycle.
53
53
  */
54
- dispatchActorEvent(thread: Thread, type: EventType): void;
54
+ dispatchActorEvent(target: Address, actor: Address, type: EventType): Promise<void>;
55
55
  /**
56
56
  * dispatchMessageEvent dispatches events related to message sending.
57
57
  */
58
- dispatchMessageEvent(from: Thread, type: EventType, to: Address, message: Message): void;
58
+ dispatchMessageEvent(from: Address, type: EventType, to: Address, message: Message): Promise<void>;
59
59
  /**
60
60
  * dispatch is a generic function that when called dispatchs the supplied
61
61
  * event to all installed listeners.
62
62
  */
63
- dispatch(thread: Thread, event: events.InternalEvent): void;
63
+ dispatch(target: Address, event: events.InternalEvent): Promise<void>;
64
64
  }
@@ -73,14 +73,14 @@ class EventDispatcher {
73
73
  */
74
74
  async monitor(thread, type) {
75
75
  return new Promise((resolve, reject) => {
76
- let handler = (event) => {
76
+ let handler = async (event) => {
77
77
  this.removeListener(thread.address, events.EVENT_ACTOR_STOPPED, handler);
78
78
  this.removeListener(thread.address, type, handler);
79
79
  if (event.type === type) {
80
80
  resolve(event);
81
81
  }
82
82
  else if (event.type === events.EVENT_ACTOR_STOPPED) {
83
- reject(new Error('ERR_ACTOR_STOPPED'));
83
+ reject(new Error(`[${thread.address}]: ERR_MONITOR_ACTOR_STOPPED`));
84
84
  }
85
85
  };
86
86
  if (type !== events.EVENT_ACTOR_STOPPED)
@@ -91,32 +91,32 @@ class EventDispatcher {
91
91
  /**
92
92
  * dispatchActorEvent dispatches events related to actor lifecycle.
93
93
  */
94
- dispatchActorEvent(thread, type) {
94
+ async dispatchActorEvent(target, actor, type) {
95
95
  let Cons = eventMap.actor.get(type);
96
96
  if (Cons)
97
- this.dispatch(thread, new Cons(thread.address));
97
+ return this.dispatch(target, new Cons(actor));
98
98
  }
99
99
  /**
100
100
  * dispatchMessageEvent dispatches events related to message sending.
101
101
  */
102
- dispatchMessageEvent(from, type, to, message) {
102
+ async dispatchMessageEvent(from, type, to, message) {
103
103
  let Cons = eventMap.message.get(type);
104
104
  if (Cons)
105
- this.dispatch(from, new Cons(from.address, to, message));
105
+ return this.dispatch(from, new Cons(from, to, message));
106
106
  }
107
107
  /**
108
108
  * dispatch is a generic function that when called dispatchs the supplied
109
109
  * event to all installed listeners.
110
110
  */
111
- dispatch(thread, event) {
111
+ async dispatch(target, event) {
112
112
  var _a, _b, _c, _d;
113
113
  (0, lazy_1.evaluate)(this.log).writeEvent(event);
114
114
  let listeners = [
115
- ...((_b = (_a = this.maps.get(thread.address)) === null || _a === void 0 ? void 0 : _a.get(event.type)) !== null && _b !== void 0 ? _b : []),
115
+ ...((_b = (_a = this.maps.get(target)) === null || _a === void 0 ? void 0 : _a.get(event.type)) !== null && _b !== void 0 ? _b : []),
116
116
  ...((_d = (_c = this.maps.get(exports.ADDRESS_WILDCARD)) === null || _c === void 0 ? void 0 : _c.get(event.type)) !== null && _d !== void 0 ? _d : [])
117
117
  ];
118
118
  for (let listener of listeners)
119
- listener(event);
119
+ await listener(event);
120
120
  }
121
121
  }
122
122
  exports.EventDispatcher = EventDispatcher;
@@ -1 +1 @@
1
- {"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../../../../../src/actor/system/vm/event/dispatcher.ts"],"names":[],"mappings":";;;AAAA,6BAA6B;AAE7B,oDAA2D;AAQ3D,MAAM,QAAQ,GAAG;IACb,OAAO,EAAE,IAAI,GAAG,CAAC;QACb,CAAC,MAAM,CAAC,oBAAoB,EAAE,MAAM,CAAC,kBAAkB,CAAC;QACxD,CAAC,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,gBAAgB,CAAC;KACvD,CAAC;IACF,KAAK,EAAE,IAAI,GAAG,CAAC;QACX,CAAC,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAAC,mBAAmB,CAAC;QAC1D,CAAC,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC,iBAAiB,CAAC;QACtD,CAAC,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC,iBAAiB,CAAC;QACtD,CAAC,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC,iBAAiB,CAAC;QACtD,CAAC,MAAM,CAAC,uBAAuB,EAAE,MAAM,CAAC,qBAAqB,CAAC;KACjE,CAAC;CACL,CAAC;AAEW,QAAA,gBAAgB,GAAG,GAAG,CAAC;AAYpC;;;;;;;;;;;;GAYG;AACH,MAAa,eAAe;IACxB,YACW,GAAsB,EACtB,OAAkC,IAAI,GAAG,EAAE;QAD3C,QAAG,GAAH,GAAG,CAAmB;QACtB,SAAI,GAAJ,IAAI,CAAuC;IACnD,CAAC;IAEJ;;;OAGG;IACH,WAAW,CAAC,KAAc,EAAE,IAAe,EAAE,QAAkB;QAC3D,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;QAC/C,IAAI,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACvC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzB,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC5B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,KAAc,EAAE,IAAe,EAAE,QAAkB;QAC9D,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,MAAM,EAAE,CAAC;YACT,IAAI,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAEjC,IAAI,SAAS,EAAE,CAAC;gBACZ,IAAI,YAAY,GAAG,SAAS,CAAC,MAAM,CAC/B,MAAM,CAAC,EAAE,CAAC,MAAM,KAAK,QAAQ,CAChC,CAAC;gBACF,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;oBAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;;oBAC9C,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YACxC,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;gBAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnD,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,IAAsB;QAChD,OAAO,IAAI,OAAO,CAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACzD,IAAI,OAAO,GAAG,CAAC,KAA2B,EAAE,EAAE;gBAC1C,IAAI,CAAC,cAAc,CACf,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,mBAAmB,EAC1B,OAAO,CACV,CAAC;gBAEF,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;gBAEnD,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;oBACtB,OAAO,CAAC,KAAK,CAAC,CAAC;gBACnB,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,mBAAmB,EAAE,CAAC;oBACnD,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;gBAC3C,CAAC;YACL,CAAC,CAAC;YAEF,IAAI,IAAI,KAAK,MAAM,CAAC,mBAAmB;gBACnC,IAAI,CAAC,WAAW,CACZ,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,mBAAmB,EAC1B,OAAO,CACV,CAAC;YAEN,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,MAAc,EAAE,IAAe;QAC9C,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,IAAI;YAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED;;OAEG;IACH,oBAAoB,CAChB,IAAY,EACZ,IAAe,EACf,EAAW,EACX,OAAgB;QAEhB,IAAI,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,IAAI;YAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;IACvE,CAAC;IAED;;;OAGG;IACH,QAAQ,CAAC,MAAc,EAAE,KAA2B;;QAChD,IAAA,eAAQ,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAErC,IAAI,SAAS,GAAG;YACZ,GAAG,CAAC,MAAA,MAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,0CAAE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mCAAI,EAAE,CAAC;YACzD,GAAG,CAAC,MAAA,MAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,wBAAgB,CAAC,0CAAE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mCAAI,EAAE,CAAC;SAC9D,CAAC;QAEF,KAAK,IAAI,QAAQ,IAAI,SAAS;YAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC;CACJ;AA5GD,0CA4GC"}
1
+ {"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../../../../../src/actor/system/vm/event/dispatcher.ts"],"names":[],"mappings":"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"}
@@ -77,7 +77,7 @@ export declare class MessageDropEvent extends MessageEvent {
77
77
  level: LogLevelValue;
78
78
  }
79
79
  /**
80
- * ActorEvent are events related toe the lifecycle of an actor.
80
+ * ActorEvent are events related to the lifecycle of an actor.
81
81
  */
82
82
  export declare abstract class ActorEvent extends VMEvent {
83
83
  address: Address;
@@ -68,7 +68,7 @@ class MessageDropEvent extends MessageEvent {
68
68
  }
69
69
  exports.MessageDropEvent = MessageDropEvent;
70
70
  /**
71
- * ActorEvent are events related toe the lifecycle of an actor.
71
+ * ActorEvent are events related to the lifecycle of an actor.
72
72
  */
73
73
  class ActorEvent extends VMEvent {
74
74
  constructor(address) {
@@ -6,12 +6,13 @@ import { ErrorStrategy } from './strategy/error';
6
6
  import { Thread } from './thread';
7
7
  import { GroupMap } from './group';
8
8
  import { Scheduler } from './scheduler';
9
- import { RegistrySet } from './registry';
10
9
  import { Allocator } from './allocator';
11
10
  import { Api } from '../../api';
12
11
  import { LogWritable } from './log/writer';
13
12
  import { EventDispatcher } from './event/dispatcher';
13
+ import { ThreadRunner } from './thread/runner';
14
14
  import { PartialConf } from './conf';
15
+ import { ThreadCollector } from './thread/collector';
15
16
  /**
16
17
  * VM is the interface for a virtual machine.
17
18
  *
@@ -23,10 +24,18 @@ export interface VM extends Actor, Thread, Api {
23
24
  * allocator used to manage thread resources for an actor.
24
25
  */
25
26
  allocator: Allocator;
27
+ /**
28
+ * runner used to start up threads.
29
+ */
30
+ runner: ThreadRunner;
26
31
  /**
27
32
  * scheduler used for co-ordinating actor thread execution.
28
33
  */
29
34
  scheduler: Scheduler;
35
+ /**
36
+ * collector used to remove dead actor threads.
37
+ */
38
+ collector: ThreadCollector;
30
39
  /**
31
40
  * errors strategy used to handle errors that occur within the system.
32
41
  */
@@ -43,10 +52,6 @@ export interface VM extends Actor, Thread, Api {
43
52
  * Used to publish VM events to interested listeners.
44
53
  */
45
54
  events: EventDispatcher;
46
- /**
47
- * registry used to store internal VM objects.
48
- */
49
- registry: RegistrySet;
50
55
  /**
51
56
  * groups holds the mapping of group names to actor addresses.
52
57
  */
@@ -56,7 +61,7 @@ export interface VM extends Actor, Thread, Api {
56
61
  *
57
62
  * This is used by the threads to communicate.
58
63
  */
59
- sendMessage(from: Thread, to: Address, msg: Message): void;
64
+ sendMessage(from: Thread, to: Address, msg: Message): Promise<void>;
60
65
  /**
61
66
  * sendKillSignal initiates the deallocation of the actor at the
62
67
  * specified address.
@@ -82,14 +87,16 @@ export interface VM extends Actor, Thread, Api {
82
87
  export declare class PVM implements VM {
83
88
  allocator: Allocator;
84
89
  scheduler: Scheduler;
90
+ collector: ThreadCollector;
85
91
  errors: ErrorStrategy;
86
92
  log: LogWritable;
87
93
  events: EventDispatcher;
88
- registry: RegistrySet;
94
+ runner: ThreadRunner;
89
95
  groups: GroupMap;
90
96
  address: string;
91
97
  self: string;
92
- constructor(allocator?: Allocator, scheduler?: Scheduler, errors?: ErrorStrategy, log?: LogWritable, events?: EventDispatcher, registry?: RegistrySet, groups?: GroupMap, address?: string, self?: string);
98
+ template: template.Template;
99
+ constructor(allocator?: Allocator, scheduler?: Scheduler, collector?: ThreadCollector, errors?: ErrorStrategy, log?: LogWritable, events?: EventDispatcher, runner?: ThreadRunner, groups?: GroupMap, address?: string, self?: string, template?: template.Template);
93
100
  /**
94
101
  * create a new PVM instance using the provided configuration.
95
102
  */
@@ -103,7 +110,7 @@ export declare class PVM implements VM {
103
110
  raise(err: Err): Promise<void>;
104
111
  kill(addr: Address): Promise<void>;
105
112
  receive<T>(): Promise<T>;
106
- sendMessage(from: Thread, to: Address, msg: Message): void;
113
+ sendMessage(from: Thread, to: Address, msg: Message): Promise<void>;
107
114
  sendKillSignal(src: Thread, target: Address): Promise<void>;
108
115
  runTask(thread: Thread, task: () => Promise<void>): Promise<void>;
109
116
  }
@@ -12,10 +12,11 @@ const map_1 = require("./allocator/map");
12
12
  const error_1 = require("./strategy/error");
13
13
  const group_1 = require("./group");
14
14
  const scheduler_1 = require("./scheduler");
15
- const registry_1 = require("./registry");
16
15
  const writer_1 = require("./log/writer");
17
16
  const dispatcher_1 = require("./event/dispatcher");
17
+ const runner_1 = require("./thread/runner");
18
18
  const log_1 = require("./log");
19
+ const collector_1 = require("./thread/collector");
19
20
  /**
20
21
  * PVM (Potoo Virtual Machine) is a JavaScript implemented virtual machine that
21
22
  * functions as a message delivery system between target actors.
@@ -25,16 +26,18 @@ const log_1 = require("./log");
25
26
  * platform and individual actor implementations.
26
27
  */
27
28
  class PVM {
28
- constructor(allocator = new map_1.MapAllocator(() => this), scheduler = new scheduler_1.Scheduler(), errors = new error_1.SupervisorErrorStrategy(allocator), log = new writer_1.LogWriter(console), events = new dispatcher_1.EventDispatcher(log), registry = new registry_1.RegistrySet(), groups = new group_1.GroupMap(), address = address_1.ADDRESS_SYSTEM, self = address_1.ADDRESS_SYSTEM) {
29
+ constructor(allocator = new map_1.MapAllocator(() => this), scheduler = new scheduler_1.Scheduler(), collector = new collector_1.ThreadCollector(() => this), errors = new error_1.SupervisorErrorStrategy(allocator), log = new writer_1.LogWriter(console), events = new dispatcher_1.EventDispatcher(log), runner = new runner_1.ThreadRunner(() => this), groups = new group_1.GroupMap(), address = address_1.ADDRESS_SYSTEM, self = address_1.ADDRESS_SYSTEM, template = { create: () => this }) {
29
30
  this.allocator = allocator;
30
31
  this.scheduler = scheduler;
32
+ this.collector = collector;
31
33
  this.errors = errors;
32
34
  this.log = log;
33
35
  this.events = events;
34
- this.registry = registry;
36
+ this.runner = runner;
35
37
  this.groups = groups;
36
38
  this.address = address;
37
39
  this.self = self;
40
+ this.template = template;
38
41
  }
39
42
  /**
40
43
  * create a new PVM instance using the provided configuration.
@@ -47,15 +50,20 @@ class PVM {
47
50
  let vm;
48
51
  let allocator = new map_1.MapAllocator(() => vm);
49
52
  let log = new writer_1.LogWriter(config.log.sink, (0, log_1.toLogLevelValue)(config.log.level));
50
- vm = new PVM(allocator, new scheduler_1.Scheduler(), new error_1.SupervisorErrorStrategy(allocator), log, new dispatcher_1.EventDispatcher(log), new registry_1.RegistrySet(), new group_1.GroupMap());
53
+ vm = new PVM(allocator, new scheduler_1.Scheduler(), new collector_1.ThreadCollector(() => vm), new error_1.SupervisorErrorStrategy(allocator), log, new dispatcher_1.EventDispatcher(log), new runner_1.ThreadRunner(() => vm), new group_1.GroupMap());
51
54
  return vm;
52
55
  }
53
56
  // Actor
54
57
  async start() { }
55
58
  //TODO: events.OnRootMessage.dispatch();
56
59
  async notify() { }
57
- //TODO: stop all actors?
58
- async stop() { }
60
+ async stop() {
61
+ let threads = this.allocator.getThreads();
62
+ for (let thread of threads) {
63
+ if ((0, address_1.isRootLevel)(thread.address))
64
+ await this.allocator.deallocate(thread);
65
+ }
66
+ }
59
67
  // Api
60
68
  get vm() {
61
69
  return this;
@@ -76,16 +84,16 @@ class PVM {
76
84
  return future_1.Future.raise(new Error('Not implemented'));
77
85
  }
78
86
  // Platform
79
- sendMessage(from, to, msg) {
87
+ async sendMessage(from, to, msg) {
80
88
  let targets = (0, address_1.isGroup)(to) ? this.groups.getMembers(to) : [to];
81
89
  let threads = this.allocator.getThreads(targets);
82
90
  let missing = (0, array_1.diff)(targets, threads.map(t => t.address));
83
91
  if (!(0, array_1.empty)(missing)) {
84
92
  for (let address of missing)
85
- this.events.dispatchMessageEvent(from, events.EVENT_MESSAGE_BOUNCE, address, msg);
93
+ await this.events.dispatchMessageEvent(from.address, events.EVENT_MESSAGE_BOUNCE, address, msg);
86
94
  }
87
95
  for (let thread of threads) {
88
- this.events.dispatchMessageEvent(from, events.EVENT_MESSGAE_SEND, to, msg);
96
+ await this.events.dispatchMessageEvent(from.address, events.EVENT_MESSGAE_SEND, to, msg);
89
97
  thread.notify(msg).catch(err => thread.raise(err));
90
98
  }
91
99
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/actor/system/vm/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/actor/system/vm/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import { Err } from '@quenk/noni/lib/control/err';
2
2
  import { Address } from '../../../address';
3
- import { TypeInfo } from '../script/info';
4
3
  import { Thread } from '../thread';
5
4
  /**
6
5
  * ErrorClass
@@ -103,47 +102,6 @@ export declare class UnknownAddressErr extends ErrorClass {
103
102
  actor: string;
104
103
  constructor(actor: string);
105
104
  }
106
- /**
107
- * MissingSymbolErr
108
- */
109
- export declare class MissingSymbolErr extends ErrorClass {
110
- index: number;
111
- constructor(index: number);
112
- }
113
- /**
114
- * IntegerOverflowErr
115
- */
116
- export declare class IntegerOverflowErr extends ErrorClass {
117
- constructor();
118
- }
119
- /**
120
- * StackEmptyErr
121
- */
122
- export declare class StackEmptyErr extends ErrorClass {
123
- constructor();
124
- }
125
- /**
126
- * InvalidPropertyIndex
127
- */
128
- export declare class InvalidPropertyIndex extends ErrorClass {
129
- cons: TypeInfo;
130
- idx: number;
131
- constructor(cons: TypeInfo, idx: number);
132
- }
133
- /**
134
- * MissingInfoErr
135
- */
136
- export declare class MissingInfoErr extends ErrorClass {
137
- idx: number;
138
- constructor(idx: number);
139
- }
140
- /**
141
- * InvalidConstructorErr
142
- */
143
- export declare class InvalidConstructorErr extends ErrorClass {
144
- name: string;
145
- constructor(name: string);
146
- }
147
105
  /**
148
106
  * InvalidFunctionErr
149
107
  */