@bramas/simulant-lang 0.1.0 → 0.1.1

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.
@@ -29,7 +29,7 @@ export class ElabError extends Error {
29
29
  }
30
30
  }
31
31
  const fail = (msg, span) => { throw new ElabError(msg, span); };
32
- const ROUND = T.enum('Round', ['fsync', 'ssync']);
32
+ const ROUND = T.enum('Round', ['fsync', 'ssync', 'sequential']);
33
33
  const MEMORY = T.enum('Memory', ['persistent', 'oblivious']);
34
34
  const SYMMETRIES = T.enum('Symmetries', ['derived', 'none']);
35
35
  const META_TYPES = new Set(['Component', 'Model', 'Sensor', 'Topology', 'FrameModel', 'Round', 'Memory', 'Symmetries']);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bramas/simulant-lang",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "private": false,
5
5
  "license": "CECILL-B",
6
6
  "type": "module",
@@ -20,7 +20,7 @@
20
20
  "LICENCE.txt"
21
21
  ],
22
22
  "dependencies": {
23
- "@bramas/simulant-stdlib": "0.1.0"
23
+ "@bramas/simulant-stdlib": "0.1.1"
24
24
  },
25
25
  "repository": {
26
26
  "type": "git",
@@ -52,7 +52,7 @@ type MV =
52
52
  | { m: 'topology'; ir: Topology }
53
53
  | { m: 'frame'; ir: FrameModel };
54
54
 
55
- const ROUND = T.enum('Round', ['fsync', 'ssync']) as Type & { k: 'enum' };
55
+ const ROUND = T.enum('Round', ['fsync', 'ssync', 'sequential']) as Type & { k: 'enum' };
56
56
  const MEMORY = T.enum('Memory', ['persistent', 'oblivious']) as Type & { k: 'enum' };
57
57
  const SYMMETRIES = T.enum('Symmetries', ['derived', 'none']) as Type & { k: 'enum' };
58
58
  const META_TYPES = new Set(['Component', 'Model', 'Sensor', 'Topology', 'FrameModel', 'Round', 'Memory', 'Symmetries']);
package/src/ir.ts CHANGED
@@ -145,8 +145,8 @@ export type Model = {
145
145
  sensors: Sensor[];
146
146
  memory: 'persistent' | 'oblivious';
147
147
  frame: FrameModel;
148
- /** `ssync`: the adversary activates a nonempty set of eligible agents; executions must be scheduler-fair. */
149
- round: 'fsync' | 'ssync';
148
+ /** `ssync`: a nonempty eligible subset; `sequential`: one eligible agent. Both require scheduler fairness. */
149
+ round: 'fsync' | 'ssync' | 'sequential';
150
150
  movement: 'rigid';
151
151
  components: Component[];
152
152
  symmetries: 'derived' | 'none';