@agoric/xsnap 0.14.3-mainnet1B-dev-b0c1f78.0 → 0.14.3-orchestration-dev-096c4e8.0

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.
package/README.md CHANGED
@@ -22,7 +22,7 @@ Some time later, possibly on a different computer…
22
22
 
23
23
  ```js
24
24
  const decoder = new TextDecoder();
25
- const worker = await xsnap({
25
+ const worker = await xsnap({
26
26
  snapshotStream: fs.createFileStream('bootstrap.xss'),
27
27
  });
28
28
  const response = await worker.issueCommand('1');
@@ -57,7 +57,7 @@ The REPL supports special commands `load` and `save` for snapshots, and `quit`
57
57
  to quit.
58
58
  Load and save don't take arguments; just type the file name on the next prompt.
59
59
 
60
- ```sh
60
+ ```console
61
61
  $ xsrepl
62
62
  xs> globalThis.x = 42;
63
63
  xs> x
@@ -67,7 +67,7 @@ file> temp.xss
67
67
  xs> quit
68
68
  ```
69
69
 
70
- ```sh
70
+ ```console
71
71
  $ xsrepl
72
72
  xs> load
73
73
  file> temp.xss
package/api.js CHANGED
@@ -7,7 +7,7 @@
7
7
  * Also, update golden master test/test-xs-perf.js to reflect new meter
8
8
  * version.
9
9
  */
10
- export const METER_TYPE = 'xs-meter-20';
10
+ export const METER_TYPE = 'xs-meter-25';
11
11
 
12
12
  export const ExitCode = {
13
13
  E_UNKNOWN_ERROR: -1,
@@ -43,6 +43,7 @@ export class ErrorSignal extends Error {
43
43
  this.code = signal;
44
44
  }
45
45
  }
46
+ harden(ErrorSignal);
46
47
 
47
48
  export class ErrorCode extends Error {
48
49
  /**
@@ -55,3 +56,4 @@ export class ErrorCode extends Error {
55
56
  this.code = code;
56
57
  }
57
58
  }
59
+ harden(ErrorCode);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@agoric/xsnap",
3
- "version": "0.14.3-mainnet1B-dev-b0c1f78.0+b0c1f78",
4
- "description": "Description forthcoming.",
3
+ "version": "0.14.3-orchestration-dev-096c4e8.0+096c4e8",
4
+ "description": "Snapshotting VM worker based on Moddable's XS Javascript engine",
5
5
  "author": "Agoric",
6
6
  "license": "Apache-2.0",
7
7
  "type": "module",
@@ -12,37 +12,38 @@
12
12
  },
13
13
  "scripts": {
14
14
  "repl": "node src/xsrepl.js",
15
- "build:bin": "if git status >/dev/null 2>&1; then node src/build.js; else yarn build:from-env; fi",
16
- "build:env": "if git status >/dev/null 2>&1; then node src/build.js --show-env > build.env; fi",
15
+ "build:bin": "if test -d ./test; then node src/build.js; else yarn build:from-env; fi",
16
+ "build:env": "test -d ./test && node src/build.js --show-env > build.env",
17
17
  "build:from-env": "{ cat build.env; echo node src/build.js; } | xargs env",
18
18
  "build": "yarn build:bin && yarn build:env",
19
19
  "postinstall": "yarn build:from-env",
20
20
  "clean": "rm -rf xsnap-native/xsnap/build",
21
21
  "lint": "run-s --continue-on-error lint:*",
22
22
  "lint:js": "eslint 'src/**/*.js' 'test/**/*.js' api.js",
23
- "lint:types": "tsc -p jsconfig.json",
23
+ "lint:types": "tsc",
24
24
  "lint-fix": "eslint --fix 'src/**/*.js' 'test/**/*.js' api.js",
25
25
  "test": "ava",
26
26
  "test:c8": "c8 $C8_OPTIONS ava --config=ava-nesm.config.js",
27
27
  "test:xs": "exit 0"
28
28
  },
29
29
  "dependencies": {
30
- "@agoric/assert": "0.6.1-mainnet1B-dev-b0c1f78.0+b0c1f78",
31
- "@agoric/internal": "0.4.0-mainnet1B-dev-b0c1f78.0+b0c1f78",
32
- "@agoric/xsnap-lockdown": "0.14.1-mainnet1B-dev-b0c1f78.0+b0c1f78",
33
- "@endo/bundle-source": "2.5.2-upstream-rollup",
34
- "@endo/eventual-send": "0.17.2",
35
- "@endo/init": "0.5.56",
36
- "@endo/netstring": "0.3.26",
37
- "@endo/promise-kit": "0.2.56",
38
- "@endo/stream": "0.3.25",
39
- "@endo/stream-node": "0.2.26",
30
+ "@agoric/assert": "0.6.1-orchestration-dev-096c4e8.0+096c4e8",
31
+ "@agoric/internal": "0.3.3-orchestration-dev-096c4e8.0+096c4e8",
32
+ "@agoric/xsnap-lockdown": "0.14.1-orchestration-dev-096c4e8.0+096c4e8",
33
+ "@endo/bundle-source": "^3.1.0",
34
+ "@endo/eventual-send": "^1.1.2",
35
+ "@endo/init": "^1.0.4",
36
+ "@endo/netstring": "^1.0.4",
37
+ "@endo/promise-kit": "^1.0.4",
38
+ "@endo/stream": "^1.1.0",
39
+ "@endo/stream-node": "^1.0.4",
40
40
  "glob": "^7.1.6",
41
41
  "tmp": "^0.2.1"
42
42
  },
43
43
  "devDependencies": {
44
- "@endo/base64": "0.2.31",
45
- "ava": "^5.2.0",
44
+ "@endo/base64": "^1.0.2",
45
+ "@types/glob": "^8.1.0",
46
+ "ava": "^5.3.0",
46
47
  "c8": "^7.13.0"
47
48
  },
48
49
  "files": [
@@ -58,8 +59,14 @@
58
59
  "files": [
59
60
  "test/**/test-*.js"
60
61
  ],
62
+ "require": [
63
+ "@endo/init/debug.js"
64
+ ],
61
65
  "timeout": "2m",
62
66
  "workerThreads": false
63
67
  },
64
- "gitHead": "b0c1f788a06e8593426319de068acd64a390d349"
68
+ "typeCoverage": {
69
+ "atLeast": 94.44
70
+ },
71
+ "gitHead": "096c4e8fce80e9a509b0e1a30fda11736c4570e1"
65
72
  }
@@ -1,5 +1,4 @@
1
1
  /* global globalThis */
2
- /* eslint-disable no-await-in-loop, @jessie.js/no-nested-await -- test code */
3
2
  /** global print */
4
3
 
5
4
  const { assign, freeze, keys } = Object;
@@ -67,7 +66,7 @@ function deepDifference(x, y) {
67
66
  * @param {(msg: TapMessage) => void} send
68
67
  *
69
68
  * @typedef { ReturnType<typeof tapFormat> } TapFormat
70
- * @typedef {import('./avaXS').TapMessage} TapMessage
69
+ * @typedef {import('./avaXS.js').TapMessage} TapMessage
71
70
  */
72
71
  function tapFormat(send) {
73
72
  return freeze({
@@ -300,6 +299,7 @@ function makeTester(htest, out) {
300
299
  expectation,
301
300
  message = `should reject like ${expectation}`,
302
301
  ) {
302
+ await null;
303
303
  try {
304
304
  await (typeof thrower === 'function' ? thrower() : thrower);
305
305
  assert(false, message);
@@ -310,6 +310,7 @@ function makeTester(htest, out) {
310
310
  },
311
311
  /** @type {(thrower: () => Promise<unknown>, message?: string) => Promise<void> } */
312
312
  async notThrowsAsync(nonThrower, message) {
313
+ await null;
313
314
  try {
314
315
  await (typeof nonThrower === 'function' ? nonThrower() : nonThrower);
315
316
  } catch (ex) {
@@ -335,6 +336,7 @@ const test = (label, run, htestOpt) => {
335
336
  htest.queue(label, async () => {
336
337
  const out = tapFormat(htest.send);
337
338
  const t = makeTester(htest, out);
339
+ await null;
338
340
  try {
339
341
  // out.diagnostic('start', label);
340
342
  await run(t);
package/src/avaXS.js CHANGED
@@ -1,3 +1,4 @@
1
+ /* eslint @typescript-eslint/no-floating-promises: "warn" */
1
2
  /* avaXS - ava style test runner for XS
2
3
 
3
4
  Usage:
@@ -6,7 +7,6 @@ Usage:
6
7
 
7
8
  */
8
9
 
9
- /* eslint-disable no-await-in-loop, @jessie.js/no-nested-await -- test code */
10
10
  import '@endo/init';
11
11
 
12
12
  import fs from 'fs';
@@ -69,8 +69,6 @@ function isMatch(specimen, pattern) {
69
69
  *
70
70
  * It also calls back if a test calls `bundleSource`.
71
71
  *
72
- * @typedef {{ moduleFormat: string, source: string }} Bundle
73
- *
74
72
  * And finally it reports back a summary of assertion results.
75
73
  *
76
74
  * @typedef {{
@@ -84,7 +82,7 @@ function isMatch(specimen, pattern) {
84
82
  * @param {{ verbose?: boolean, titleMatch?: string }} options
85
83
  * @param {{
86
84
  * spawnXSnap: (opts: object) => XSnap,
87
- * bundleSource: (...args: [string, ...unknown[]]) => Promise<Bundle>,
85
+ * bundleSource: import('@endo/bundle-source').BundleSource,
88
86
  * resolve: ResolveFn,
89
87
  * dirname: typeof import('path').dirname,
90
88
  * basename: typeof import('path').basename,
@@ -93,7 +91,7 @@ function isMatch(specimen, pattern) {
93
91
  *
94
92
  * @typedef {{ total: number, pass: number, fail: { filename: string, name: string }[] }} TestResults
95
93
  * @typedef { 'ok' | 'not ok' | 'SKIP' } Status
96
- * @typedef {ReturnType<typeof import('./xsnap').xsnap>} XSnap
94
+ * @typedef {ReturnType<typeof import('./xsnap.js').xsnap>} XSnap
97
95
  */
98
96
  async function runTestScript(
99
97
  filename,
@@ -120,7 +118,7 @@ async function runTestScript(
120
118
  /**
121
119
  * See also send() in avaHandler.cjs
122
120
  *
123
- * @type { TapMessage | { testNames: string[] } | { bundleSource: [string, ...unknown[]] } | Summary }
121
+ * @type { TapMessage | { testNames: string[] } | { bundleSource: Parameters<import('@endo/bundle-source').BundleSource> } | Summary }
124
122
  */
125
123
  const msg = JSON.parse(decoder.decode(message));
126
124
  // console.log(input, msg, qty, byStatus);
@@ -129,6 +127,7 @@ async function runTestScript(
129
127
  testNames = msg.testNames;
130
128
  }
131
129
 
130
+ await null;
132
131
  if ('bundleSource' in msg) {
133
132
  const [startFilename, ...rest] = msg.bundleSource;
134
133
  // see also makeBundleResolve() below
@@ -244,6 +243,7 @@ async function avaConfig(args, options, { glob, readFile }) {
244
243
  let debug = false;
245
244
  let verbose = false;
246
245
  let titleMatch;
246
+ await null;
247
247
  while (args.length > 0) {
248
248
  const arg = args.shift();
249
249
  assert.typeof(arg, 'string');
@@ -301,7 +301,7 @@ async function avaConfig(args, options, { glob, readFile }) {
301
301
  /**
302
302
  * @param {string[]} args - CLI args (excluding node interpreter, script name)
303
303
  * @param {{
304
- * bundleSource: typeof import('@endo/bundle-source').default,
304
+ * bundleSource: import('@endo/bundle-source').BundleSource,
305
305
  * spawn: typeof import('child_process')['spawn'],
306
306
  * osType: typeof import('os')['type'],
307
307
  * readFile: typeof import('fs')['promises']['readFile'],
package/src/build.js CHANGED
@@ -1,6 +1,5 @@
1
1
  #!/usr/bin/env node
2
2
  /* global process */
3
- /* eslint-disable @jessie.js/no-nested-await -- test/build code */
4
3
  import * as childProcessTop from 'child_process';
5
4
  import fsTop from 'fs';
6
5
  import osTop from 'os';
@@ -176,13 +175,13 @@ async function main(args, { env, stdout, spawn, fs, os }) {
176
175
  },
177
176
  ];
178
177
 
178
+ await null;
179
179
  if (args.includes('--show-env')) {
180
180
  for (const submodule of submodules) {
181
181
  const { path, envPrefix, commitHash } = submodule;
182
182
  if (!commitHash) {
183
183
  // We need to glean the commitHash and url from Git.
184
184
  const sm = makeSubmodule(path, '?', { git });
185
- // eslint-disable-next-line no-await-in-loop
186
185
  const [[{ hash }], url] = await Promise.all([
187
186
  sm.status(),
188
187
  sm.config('url'),
@@ -208,13 +207,10 @@ async function main(args, { env, stdout, spawn, fs, os }) {
208
207
  // ignore
209
208
  }
210
209
  if (!fs.existsSync(submodule.path)) {
211
- // eslint-disable-next-line no-await-in-loop
212
210
  await submodule.clone();
213
211
  }
214
- // eslint-disable-next-line no-await-in-loop
215
212
  await submodule.checkout(commitHash);
216
213
  } else {
217
- // eslint-disable-next-line no-await-in-loop
218
214
  await submodule.init();
219
215
  }
220
216
  }
@@ -229,7 +225,6 @@ async function main(args, { env, stdout, spawn, fs, os }) {
229
225
 
230
226
  const make = makeCLI(platform.make || 'make', { spawn });
231
227
  for (const goal of ModdableSDK.buildGoals) {
232
- // eslint-disable-next-line no-await-in-loop
233
228
  await make.run(
234
229
  [
235
230
  `MODDABLE=${ModdableSDK.MODDABLE}`,
@@ -246,19 +241,28 @@ async function main(args, { env, stdout, spawn, fs, os }) {
246
241
  }
247
242
  }
248
243
 
249
- main(process.argv.slice(2), {
250
- env: { ...process.env },
251
- stdout: process.stdout,
252
- spawn: childProcessTop.spawn,
253
- fs: {
254
- readFile: fsTop.promises.readFile,
255
- existsSync: fsTop.existsSync,
256
- rmdirSync: fsTop.rmdirSync,
244
+ const run = () =>
245
+ main(process.argv.slice(2), {
246
+ env: { ...process.env },
247
+ stdout: process.stdout,
248
+ spawn: childProcessTop.spawn,
249
+ fs: {
250
+ readFile: fsTop.promises.readFile,
251
+ existsSync: fsTop.existsSync,
252
+ rmdirSync: fsTop.rmdirSync,
253
+ },
254
+ os: {
255
+ type: osTop.type,
256
+ },
257
+ });
258
+
259
+ process.exitCode = 1;
260
+ run().then(
261
+ () => {
262
+ process.exitCode = 0;
257
263
  },
258
- os: {
259
- type: osTop.type,
264
+ err => {
265
+ console.error('Failed with', err);
266
+ process.exit(process.exitCode || 1);
260
267
  },
261
- }).catch(e => {
262
- console.error(e);
263
- process.exit(1);
264
- });
268
+ );
package/src/replay.js CHANGED
@@ -227,14 +227,12 @@ export async function replayXSnap(
227
227
  const seq = parseInt(digits, 10);
228
228
  console.log(folder, seq, kind);
229
229
  if (running && !['command', 'reply'].includes(kind)) {
230
- // eslint-disable-next-line @jessie.js/no-nested-await
231
230
  await running;
232
231
  running = undefined;
233
232
  }
234
233
  const file = rd.file(step);
235
234
  switch (kind) {
236
235
  case 'isReady':
237
- // eslint-disable-next-line @jessie.js/no-nested-await
238
236
  await it.isReady();
239
237
  break;
240
238
  case 'evaluate':
@@ -254,7 +252,6 @@ export async function replayXSnap(
254
252
  console.log(folder, step, 'ignoring remaining steps from', folder);
255
253
  return;
256
254
  } else {
257
- // eslint-disable-next-line @jessie.js/no-nested-await
258
255
  await (async () => {
259
256
  const snapshotPath = file.getText();
260
257
  const snapFile = await opts.fs.open(snapshotPath, 'w');
package/src/xsnap.js CHANGED
@@ -1,4 +1,5 @@
1
1
  /* global process */
2
+ /* eslint @typescript-eslint/no-floating-promises: "warn" */
2
3
  /* eslint no-await-in-loop: ["off"] */
3
4
 
4
5
  /**
@@ -8,7 +9,7 @@
8
9
 
9
10
  /**
10
11
  * @template T
11
- * @typedef {import('./defer').Deferred<T>} Deferred
12
+ * @typedef {import('./defer.js').Deferred<T>} Deferred
12
13
  */
13
14
 
14
15
  import { finished } from 'stream/promises';
@@ -119,17 +120,13 @@ export async function xsnap(options) {
119
120
  const cleanup = async () => fs.unlink(snapPath);
120
121
 
121
122
  try {
122
- // eslint-disable-next-line @jessie.js/no-nested-await
123
123
  const tmpSnap = await fs.open(snapPath, 'w');
124
- // eslint-disable-next-line @jessie.js/no-nested-await
125
124
  await tmpSnap.writeFile(
126
125
  // @ts-expect-error incorrect typings, does support AsyncIterable
127
126
  snapshotStream,
128
127
  );
129
- // eslint-disable-next-line @jessie.js/no-nested-await
130
128
  await tmpSnap.close();
131
129
  } catch (e) {
132
- // eslint-disable-next-line @jessie.js/no-nested-await
133
130
  await cleanup();
134
131
  throw e;
135
132
  }
@@ -155,7 +152,7 @@ export async function xsnap(options) {
155
152
  sourceStream.pipe(destStream, { end: false });
156
153
 
157
154
  done = finished(sourceStream);
158
- done.catch(noop).then(() => sourceStream.unpipe(destStream));
155
+ void done.catch(noop).then(() => sourceStream.unpipe(destStream));
159
156
  };
160
157
 
161
158
  return harden({
@@ -261,7 +258,7 @@ export async function xsnap(options) {
261
258
  await loadSnapshotHandler?.afterSpawn(snapshotLoadStream);
262
259
 
263
260
  if (loadSnapshotHandler) {
264
- vatExit.promise.catch(noop).then(() => {
261
+ void vatExit.promise.catch(noop).then(() => {
265
262
  if (loadSnapshotHandler) {
266
263
  const { cleanup } = loadSnapshotHandler;
267
264
  loadSnapshotHandler = undefined;
@@ -289,7 +286,6 @@ export async function xsnap(options) {
289
286
  if (loadSnapshotHandler) {
290
287
  const { cleanup } = loadSnapshotHandler;
291
288
  loadSnapshotHandler = undefined;
292
- // eslint-disable-next-line @jessie.js/no-nested-await
293
289
  await cleanup();
294
290
  }
295
291
  if (iteration.done) {
@@ -328,9 +324,7 @@ export async function xsnap(options) {
328
324
  )}`,
329
325
  );
330
326
  } else if (message[0] === QUERY) {
331
- // eslint-disable-next-line @jessie.js/no-nested-await
332
327
  const commandResult = await handleCommand(message.subarray(1));
333
- // eslint-disable-next-line @jessie.js/no-nested-await
334
328
  await messagesToXsnap.next([QUERY_RESPONSE_BUF, commandResult]);
335
329
  } else {
336
330
  // unrecognized responses also kill the process
@@ -429,6 +423,7 @@ export async function xsnap(options) {
429
423
  let snapshotReadSize = 0;
430
424
  /** @type {number | undefined} */
431
425
  let snapshotSize;
426
+ await null;
432
427
  try {
433
428
  /** @type {string} */
434
429
  let snapPath;
@@ -444,7 +439,6 @@ export async function xsnap(options) {
444
439
 
445
440
  if (snapshotUseFs) {
446
441
  // TODO: Refactor to use tmpFile rather than tmpName.
447
- // eslint-disable-next-line @jessie.js/no-nested-await
448
442
  snapPath = await ptmpName({
449
443
  template: `make-snapshot-${safeHintFromDescription(
450
444
  description,
@@ -461,14 +455,16 @@ export async function xsnap(options) {
461
455
  // then wait for the command response to pipe the file stream into the
462
456
  // output, causing the file read to begin.
463
457
 
464
- // eslint-disable-next-line @jessie.js/no-nested-await
465
458
  const handle = await fs.open(snapPath, 'w+');
466
459
  // @ts-expect-error 'close' event added in Node 15.4
467
460
  handle.on('close', () => {
468
- fs.unlink(snapPath);
461
+ // Safe to ignore the result because we are skipping to to clean up the temp directory.
462
+ void fs.unlink(snapPath);
469
463
  });
470
464
  sourceStream = handle.createReadStream();
471
- finished(output).finally(() => sourceStream.destroy());
465
+ finished(output)
466
+ .finally(() => sourceStream.destroy())
467
+ .catch(noop);
472
468
  } else {
473
469
  sourceStream = snapshotSaveStream;
474
470
  snapPath = `@${SNAPSHOT_SAVE_FD}`;
@@ -477,7 +473,7 @@ export async function xsnap(options) {
477
473
  // ensuring that any previous save stream usage has ended. However we
478
474
  // must start the flow before receiving the command's response or the
479
475
  // xsnap process would block on a full pipe, causing an IPC deadlock.
480
- batonKit.promise.then(maybePipe);
476
+ batonKit.promise.then(maybePipe, noop);
481
477
  }
482
478
 
483
479
  const cleanup = () => {
@@ -522,7 +518,6 @@ export async function xsnap(options) {
522
518
 
523
519
  yield* output;
524
520
  } finally {
525
- // eslint-disable-next-line @jessie.js/no-nested-await
526
521
  await done;
527
522
  (piped && snapshotReadSize === snapshotSize) ||
528
523
  Fail`Snapshot size does not match. saved=${q(snapshotSize)}, read=${q(
@@ -530,6 +525,7 @@ export async function xsnap(options) {
530
525
  )}`;
531
526
  }
532
527
  }
528
+ harden(makeSnapshotInternal);
533
529
 
534
530
  /**
535
531
  * @param {string} [description]
package/src/xsrepl.js CHANGED
@@ -1,13 +1,13 @@
1
+ /* eslint @typescript-eslint/no-floating-promises: "warn" */
1
2
  /* global process */
2
3
  /* We make exceptions for test code. This is a test utility. */
3
- /* eslint-disable @jessie.js/no-nested-await */
4
4
  /* eslint no-await-in-loop: ["off"] */
5
5
 
6
6
  import '@endo/init';
7
7
 
8
8
  /**
9
9
  * @template T
10
- * @typedef {import('./defer').Deferred<T>} Deferred
10
+ * @typedef {import('./defer.js').Deferred<T>} Deferred
11
11
  */
12
12
  import * as childProcess from 'child_process';
13
13
  import fs from 'fs';
@@ -97,4 +97,4 @@ async function main() {
97
97
  return vat.close();
98
98
  }
99
99
 
100
- main();
100
+ await main().catch(err => console.log(err));
package/CHANGELOG.md DELETED
@@ -1,646 +0,0 @@
1
- # Change Log
2
-
3
- All notable changes to this project will be documented in this file.
4
- See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
-
6
- ### [0.14.3-u13.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/xsnap@0.14.3-u12.0...@agoric/xsnap@0.14.3-u13.0) (2023-12-07)
7
-
8
- **Note:** Version bump only for package @agoric/xsnap
9
-
10
-
11
-
12
-
13
-
14
- ### [0.14.3-u12.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/xsnap@0.14.3-u11wf.0...@agoric/xsnap@0.14.3-u12.0) (2023-11-10)
15
-
16
- **Note:** Version bump only for package @agoric/xsnap
17
-
18
-
19
-
20
-
21
-
22
- ### [0.14.3-u11wf.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/xsnap@0.14.3-u11.0...@agoric/xsnap@0.14.3-u11wf.0) (2023-09-23)
23
-
24
- **Note:** Version bump only for package @agoric/xsnap
25
-
26
-
27
-
28
-
29
-
30
- ### [0.14.3-u11.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/xsnap@0.14.2...@agoric/xsnap@0.14.3-u11.0) (2023-08-24)
31
-
32
- **Note:** Version bump only for package @agoric/xsnap
33
-
34
-
35
-
36
-
37
-
38
- ### [0.14.2](https://github.com/Agoric/agoric-sdk/compare/@agoric/xsnap@0.14.1...@agoric/xsnap@0.14.2) (2023-06-02)
39
-
40
-
41
- ### Bug Fixes
42
-
43
- * **xsnap:** update Moddable SDK to fix BigInt arithmetic ([a71f2f2](https://github.com/Agoric/agoric-sdk/commit/a71f2f2c76ed6da9c9fac25e1aa8974d1451588c))
44
-
45
-
46
-
47
- ### [0.14.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/xsnap@0.14.0...@agoric/xsnap@0.14.1) (2023-05-24)
48
-
49
-
50
- ### Bug Fixes
51
-
52
- * **xsnap:** agd checks 'xsnap -n' for agoric-upgrade-10 ([842b440](https://github.com/Agoric/agoric-sdk/commit/842b4402eb857d09856cd8a77159db3a464d86f9)), closes [#7012](https://github.com/Agoric/agoric-sdk/issues/7012)
53
- * **xsnap:** use newer xsnap-pub, with requirement for __has_builtin ([99de101](https://github.com/Agoric/agoric-sdk/commit/99de101cfe2a7d44464d64c8c55bbc71151b1f2f)), closes [#7829](https://github.com/Agoric/agoric-sdk/issues/7829)
54
-
55
-
56
-
57
- ## [0.14.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/xsnap@0.13.2...@agoric/xsnap@0.14.0) (2023-05-19)
58
-
59
-
60
- ### ⚠ BREAKING CHANGES
61
-
62
- * **xsnap:** start xsnap takes snapshot stream
63
- * **xsnap:** makeSnapshot yields snapshot data
64
- * **xsnap:** Update Moddable SDK and xsnap-native
65
- * **xsnap:** Update Moddable SDK and xsnap-native (#6920)
66
-
67
- ### Features
68
-
69
- * **xsnap:** Handle snapshot written size in command response ([6dfe7b0](https://github.com/Agoric/agoric-sdk/commit/6dfe7b0461a6c45b00b80cbb847985dbce1709e3))
70
- * **xsnap:** makeSnapshot yields snapshot data ([348bbd2](https://github.com/Agoric/agoric-sdk/commit/348bbd2d9c251e7ec0f0aa109034d4bdb5ce89e4))
71
- * **xsnap:** makeSnapshotStream over process pipe ([c0be80d](https://github.com/Agoric/agoric-sdk/commit/c0be80d5964748e2dabe1903bef5b7b1c6eb8e85))
72
- * **xsnap:** start xsnap takes snapshot stream ([ed87de1](https://github.com/Agoric/agoric-sdk/commit/ed87de12e46095aa18f56b7d0118c6c76d5bef64))
73
- * **xsnap:** stream start snapshot over pipe ([3f77ff9](https://github.com/Agoric/agoric-sdk/commit/3f77ff90e918280fb07055c602b56871f342365d))
74
- * **xsnap:** Update Moddable SDK and xsnap-native ([2095474](https://github.com/Agoric/agoric-sdk/commit/2095474ed69ff0e6aa3a4fa7edcefe988011513d))
75
- * **xsnap:** Update Moddable SDK and xsnap-native ([#6920](https://github.com/Agoric/agoric-sdk/issues/6920)) ([ddb745b](https://github.com/Agoric/agoric-sdk/commit/ddb745bb1a940cd81dae34c642eb357faca0150b))
76
- * **xsnap:** use XS native harden ([037167f](https://github.com/Agoric/agoric-sdk/commit/037167fd9d071f8525401b15e13809ebf910f106))
77
- * create new xsnap-lockdown package ([2af831d](https://github.com/Agoric/agoric-sdk/commit/2af831d9683a4080168ee267e8d57227d2167f37)), closes [#6596](https://github.com/Agoric/agoric-sdk/issues/6596)
78
-
79
-
80
- ### Bug Fixes
81
-
82
- * **xsnap:** add untracked build-env file ([223a74b](https://github.com/Agoric/agoric-sdk/commit/223a74bd0fb6139e6240c57d63297080293cfcd5))
83
- * **xsnap:** cleanly close using message ([ae54724](https://github.com/Agoric/agoric-sdk/commit/ae54724e7c1882d5dd235f2207dd0a1a7794d35a))
84
- * **xsnap:** makeSnapshot synchronously takes baton ([8d511e8](https://github.com/Agoric/agoric-sdk/commit/8d511e82b50a4226d3da22dc3c6d0df95609dfaf))
85
-
86
-
87
-
88
- ### [0.13.3](https://github.com/Agoric/agoric-sdk/compare/@agoric/xsnap@0.13.2...@agoric/xsnap@0.13.3) (2023-02-17)
89
-
90
-
91
- ### Bug Fixes
92
-
93
- * **xsnap:** Update Moddable SDK with divergence fixes ([#6758](https://github.com/Agoric/agoric-sdk/issues/6758)) ([fc6afec](https://github.com/Agoric/agoric-sdk/commit/fc6afecb6b752a019c34377a863eb58108944dc3))
94
-
95
-
96
-
97
- ### [0.13.2](https://github.com/Agoric/agoric-sdk/compare/@agoric/xsnap@0.13.1...@agoric/xsnap@0.13.2) (2022-10-05)
98
-
99
- **Note:** Version bump only for package @agoric/xsnap
100
-
101
-
102
-
103
-
104
-
105
- ### [0.13.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/xsnap@0.13.0...@agoric/xsnap@0.13.1) (2022-09-20)
106
-
107
-
108
- ### Bug Fixes
109
-
110
- * lints ([23d64ea](https://github.com/Agoric/agoric-sdk/commit/23d64eaa65feb858e3f49d483a94950eaa64e834))
111
- * xsnap parent kills worker upon receipt of unrecognized response ([5489221](https://github.com/Agoric/agoric-sdk/commit/548922158de572f2eb651eb2a08313559b9bfe35)), closes [#6257](https://github.com/Agoric/agoric-sdk/issues/6257)
112
- * **SwingSet:** Apply netstring limit to xsnap workers ([f8365b2](https://github.com/Agoric/agoric-sdk/commit/f8365b26dd79967895a4d88966521d067b982206))
113
- * **xsnap:** bump METER_TYPE to match recent XS udpate ([32e9509](https://github.com/Agoric/agoric-sdk/commit/32e950944420de4900c5f671e054524f3a0ae377)), closes [#5338](https://github.com/Agoric/agoric-sdk/issues/5338)
114
- * **xsnap:** do not leak through vat termination race ([#5643](https://github.com/Agoric/agoric-sdk/issues/5643)) ([8201050](https://github.com/Agoric/agoric-sdk/commit/8201050103b1b2c76736b80ac4db9ec7f78dfdc7))
115
- * **xsnap:** fix test which reused a mutable ArrayBuffer ([5606b52](https://github.com/Agoric/agoric-sdk/commit/5606b529b2c143cdb4e8d0f0cf28dd043fa4bdb1))
116
- * **xsnap:** Handle endo init vetted shims in ava-xs ([cd7b880](https://github.com/Agoric/agoric-sdk/commit/cd7b880592578502b71c0297cad37be2672e0680))
117
- * **xsnap:** prevent out of command execution ([84cf363](https://github.com/Agoric/agoric-sdk/commit/84cf363fb83c7d96046e5540b4857cc5f584ba89))
118
- * **xsnap:** prohibit leading hyphen in options.name ([a3db601](https://github.com/Agoric/agoric-sdk/commit/a3db60172ae21ec57f3456bac9243aa732cfeba5))
119
- * **xsnap:** upgrade to latest xsnap, now with timestamps ([c857cc8](https://github.com/Agoric/agoric-sdk/commit/c857cc83b744213cfa962ac5e250c977e18df48e)), closes [#5152](https://github.com/Agoric/agoric-sdk/issues/5152)
120
- * **xsnap:** upgrade to xsnap-native with exit on unknown command ([37a01a4](https://github.com/Agoric/agoric-sdk/commit/37a01a41c60338d4d7614d68b5913126956e4630))
121
- * **xsnap:** Use Moddable SDK and xsnap with WeakRef and snapshot patch ([374e7d5](https://github.com/Agoric/agoric-sdk/commit/374e7d5bcea922734ab347af5e4e98bd682e8099))
122
- * **xsnap:** use patched XS to fix heap-snapshot-writing memory leak ([#5987](https://github.com/Agoric/agoric-sdk/issues/5987)) ([9e2c1da](https://github.com/Agoric/agoric-sdk/commit/9e2c1da92d865ce02dc766b1072c8c3209b0cfe9)), closes [#5975](https://github.com/Agoric/agoric-sdk/issues/5975)
123
- * **xsnap:** Use xsnap with fixed timestamps ([#6151](https://github.com/Agoric/agoric-sdk/issues/6151)) ([9ba7842](https://github.com/Agoric/agoric-sdk/commit/9ba78424a4bd587d0009a6816b7ffcedd5d7f972))
124
- * **xsnap:** workaround unexpected worker exit ([267f83c](https://github.com/Agoric/agoric-sdk/commit/267f83c06bcd87ad02d45502a4e3a5c744a3c533))
125
- * Use new `||` assert style, but when TS confused use `if` instead ([#6174](https://github.com/Agoric/agoric-sdk/issues/6174)) ([94625d3](https://github.com/Agoric/agoric-sdk/commit/94625d38c3bb5333b00a69dd3086b1ac13490f62))
126
- * **xsnap:** XS error stack behavior change ([444d6cb](https://github.com/Agoric/agoric-sdk/commit/444d6cbd4cd276a9cd9af48ceb9513c81d83b475))
127
- * **xsnap:** xsnap process drops context after exit ([26766f6](https://github.com/Agoric/agoric-sdk/commit/26766f6623cc5d07aa1c52257cf54310543e13ea))
128
- * tests use debug settings ([#5567](https://github.com/Agoric/agoric-sdk/issues/5567)) ([83d751f](https://github.com/Agoric/agoric-sdk/commit/83d751fb3dd8d47942fc69cfde863e6b21f1b04e))
129
-
130
-
131
-
132
- ## [0.13.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/xsnap@0.12.0...@agoric/xsnap@0.13.0) (2022-05-28)
133
-
134
-
135
- ### Features
136
-
137
- * **vaultManager:** expose liquidation metrics ([#5393](https://github.com/Agoric/agoric-sdk/issues/5393)) ([47d4823](https://github.com/Agoric/agoric-sdk/commit/47d48236ee1702d8b0a903e39143132b56cfd096))
138
-
139
-
140
- ### Bug Fixes
141
-
142
- * **xsnap:** Regarding unhandled exceptions ([29f7d93](https://github.com/Agoric/agoric-sdk/commit/29f7d9398be8f01447aa3083c6956242a6e3a54f))
143
- * **xsnap:** trace should not overwrite existing files ([5ab59a9](https://github.com/Agoric/agoric-sdk/commit/5ab59a9c6671a5aa6a81ad6a736fb95a3cf3c64b))
144
- * **xsnap:** Use mxNoConsole=1 ([a592439](https://github.com/Agoric/agoric-sdk/commit/a592439b4c5680fa4a81138571e769cae888a587))
145
-
146
-
147
-
148
- ## [0.12.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/xsnap@0.11.2...@agoric/xsnap@0.12.0) (2022-04-18)
149
-
150
-
151
- ### ⚠ BREAKING CHANGES
152
-
153
- * **xsnap:** METER_TYPE -> 13
154
-
155
- ### Features
156
-
157
- * **object-inspect:** group bigint digits in threes ([a21d3b4](https://github.com/Agoric/agoric-sdk/commit/a21d3b4d0e12ecd761ba8ec00296df4a42a80c51))
158
- * **xsnap:** load object-inspect in its own Compartment ([05ceb87](https://github.com/Agoric/agoric-sdk/commit/05ceb873f91a926b344a7be53814345b4aa64cc0))
159
- * implement the durable kind API ([56bad98](https://github.com/Agoric/agoric-sdk/commit/56bad985275787d18c34ac14b377a4d0348d699b)), closes [#4495](https://github.com/Agoric/agoric-sdk/issues/4495)
160
-
161
-
162
- ### Bug Fixes
163
-
164
- * **xsnap:** adopt `src/object-inspect.js` ([4f23da2](https://github.com/Agoric/agoric-sdk/commit/4f23da29ae19eefb786bb810e44d7b534de91664))
165
- * **xsnap:** METER_TYPE -> 13 ([ae8d18f](https://github.com/Agoric/agoric-sdk/commit/ae8d18f76e6463ef7c41d974d28696c66b4dfcb4))
166
-
167
-
168
-
169
- ### [0.11.2](https://github.com/Agoric/agoric-sdk/compare/@agoric/xsnap@0.11.1...@agoric/xsnap@0.11.2) (2022-02-24)
170
-
171
-
172
- ### Features
173
-
174
- * overhaul the virtual object API ([e40674b](https://github.com/Agoric/agoric-sdk/commit/e40674b0b19f29adde2f5e6a460bafb7340d42b6)), closes [#4606](https://github.com/Agoric/agoric-sdk/issues/4606)
175
-
176
-
177
-
178
- ### [0.11.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/xsnap@0.11.0...@agoric/xsnap@0.11.1) (2022-02-21)
179
-
180
-
181
- ### Features
182
-
183
- * implement persistent stores ([e1050b0](https://github.com/Agoric/agoric-sdk/commit/e1050b010e095b23547a38d48a12e5c8841a7466))
184
-
185
-
186
- ### Bug Fixes
187
-
188
- * **xsnap:** Lint followup ([4ef61f7](https://github.com/Agoric/agoric-sdk/commit/4ef61f723166ff1439d97eacc4ba8181f14323f5))
189
- * Remove extraneous eslint globals ([17087e4](https://github.com/Agoric/agoric-sdk/commit/17087e4605db7d3b30dfccf2434b2850b45e3408))
190
- * **xsnap:** Pin xsnap moddable submodule for textencoder ([de8604c](https://github.com/Agoric/agoric-sdk/commit/de8604c1bcd0b7e632500479d4083cbcbb1480ea))
191
- * **xsnap:** Run tests with eventual-send JavaScript ([fc6f0a5](https://github.com/Agoric/agoric-sdk/commit/fc6f0a503256c0a20dc9a1750be80ef27a9d4f6a))
192
- * **xsnap:** use `object-inspect` to render `print` output better ([3c3a353](https://github.com/Agoric/agoric-sdk/commit/3c3a353bb67b8b623e5b931632d28d96a535f215))
193
-
194
-
195
-
196
- ## [0.11.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/xsnap@0.10.0...@agoric/xsnap@0.11.0) (2021-12-02)
197
-
198
-
199
- ### ⚠ BREAKING CHANGES
200
-
201
- * METER_TYPE -> xs-meter-12
202
-
203
- - update metering tests
204
-
205
- ### Features
206
-
207
- * expose XS the->currentHeapCount to metering/delivery results ([a031d79](https://github.com/Agoric/agoric-sdk/commit/a031d7900440ee3717c15e7c5be4ae8226ef5530)), closes [#3910](https://github.com/Agoric/agoric-sdk/issues/3910)
208
-
209
-
210
- ### Bug Fixes
211
-
212
- * have main entry points use `@endo/init`, not `ses` ([dce92ac](https://github.com/Agoric/agoric-sdk/commit/dce92acfac4dd0a5de048f7d7865e0e3cdc14396))
213
- * **ava-xs:** allow test file globs as arguments, just like AVA ([3d12770](https://github.com/Agoric/agoric-sdk/commit/3d127708000b017aef1e994f424b566e07d04626))
214
- * **xsnap:** get ordering right so that ses loads before most shims ([80d00bf](https://github.com/Agoric/agoric-sdk/commit/80d00bf9046d2b0f23a2a509a6a8a127b613d802))
215
-
216
-
217
-
218
- ## [0.10.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/xsnap@0.9.1...@agoric/xsnap@0.10.0) (2021-10-13)
219
-
220
-
221
- ### ⚠ BREAKING CHANGES
222
-
223
- * **xsnap:** upgrade XS to fix memory leak
224
-
225
- ### Bug Fixes
226
-
227
- * **xsnap:** upgrade XS to fix memory leak ([9a70831](https://github.com/Agoric/agoric-sdk/commit/9a70831cbc02edea7721b9a521492c030b097f2c)), closes [#3839](https://github.com/Agoric/agoric-sdk/issues/3839) [#3877](https://github.com/Agoric/agoric-sdk/issues/3877) [#3889](https://github.com/Agoric/agoric-sdk/issues/3889)
228
- * **xsnap:** work around stricter TS checking of globalThis ([942ae90](https://github.com/Agoric/agoric-sdk/commit/942ae905454a87a1739b14b49609eaeddebffcde))
229
-
230
-
231
-
232
- ### [0.9.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/xsnap@0.9.0...@agoric/xsnap@0.9.1) (2021-09-23)
233
-
234
-
235
- ### Bug Fixes
236
-
237
- * **xsnap:** format objects nicely in console using SES assert.quote ([#3856](https://github.com/Agoric/agoric-sdk/issues/3856)) ([a3306d0](https://github.com/Agoric/agoric-sdk/commit/a3306d01d8e87c4bc7483a61e42cc30b006feb81)), closes [#3844](https://github.com/Agoric/agoric-sdk/issues/3844)
238
-
239
-
240
-
241
- ## [0.9.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/xsnap@0.8.2...@agoric/xsnap@0.9.0) (2021-09-15)
242
-
243
-
244
- ### ⚠ BREAKING CHANGES
245
-
246
- * **xsnap:** moddable resync for stack-trace changes metering
247
-
248
- ### Features
249
-
250
- * **xsnap:** Add base 64 bindings ([a8279a4](https://github.com/Agoric/agoric-sdk/commit/a8279a43ef6f4686efba301fe2cb93e1d4e9b156))
251
- * **xsnap:** integrate native TextEncoder / TextDecoder ([9d65dbe](https://github.com/Agoric/agoric-sdk/commit/9d65dbe2410e1856c3ac1fa6ff7eb921bb24ec0c))
252
-
253
-
254
- ### Bug Fixes
255
-
256
- * **xsnap:** moddable resync for stack-trace changes metering ([34e5e18](https://github.com/Agoric/agoric-sdk/commit/34e5e1877eb74cf39fc32cf1cc53524c3f365635))
257
- * **xsnap:** supply missing file, line numbers based on sourceURL ([be3386c](https://github.com/Agoric/agoric-sdk/commit/be3386cbcd2255c469791830984fc385856226cc)), closes [#2578](https://github.com/Agoric/agoric-sdk/issues/2578)
258
-
259
-
260
-
261
- ### [0.8.2](https://github.com/Agoric/agoric-sdk/compare/@agoric/xsnap@0.8.1...@agoric/xsnap@0.8.2) (2021-08-18)
262
-
263
- **Note:** Version bump only for package @agoric/xsnap
264
-
265
-
266
-
267
-
268
-
269
- ### [0.8.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/xsnap@0.8.0...@agoric/xsnap@0.8.1) (2021-08-17)
270
-
271
-
272
- ### Bug Fixes
273
-
274
- * Remove dregs of node -r esm ([#3710](https://github.com/Agoric/agoric-sdk/issues/3710)) ([e30c934](https://github.com/Agoric/agoric-sdk/commit/e30c934a9de19e930677c7b65ad98abe0be16d56))
275
-
276
-
277
-
278
- ## [0.8.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/xsnap@0.6.9...@agoric/xsnap@0.8.0) (2021-08-15)
279
-
280
-
281
- ### ⚠ BREAKING CHANGES
282
-
283
- * **xsnap:** don't rely on diagnostic meters
284
- * **xsnap:** avoid O(n^2) Array, Map, Set growth
285
-
286
- ### Features
287
-
288
- * **xsnap:** make name available on xsnap object ([8c4a16b](https://github.com/Agoric/agoric-sdk/commit/8c4a16bc203722d594f09bf7c5acd09c4209ba1c))
289
- * **xsnap:** record upstream commands as well as replies ([fc9332f](https://github.com/Agoric/agoric-sdk/commit/fc9332fc52f626b884e4998e780dbfbf87cb854d))
290
-
291
-
292
- ### Bug Fixes
293
-
294
- * **deployment:** use proper path to build.js ([78d2d73](https://github.com/Agoric/agoric-sdk/commit/78d2d73e33311ee09eaec17fa3b5c4d393a73621))
295
- * **swingset:** delete unused snapshots ([#3505](https://github.com/Agoric/agoric-sdk/issues/3505)) ([317959d](https://github.com/Agoric/agoric-sdk/commit/317959d77ca669c8e4bbf504d89fe55bdd383253)), closes [#3374](https://github.com/Agoric/agoric-sdk/issues/3374) [#3431](https://github.com/Agoric/agoric-sdk/issues/3431)
296
- * **xsnap:** 1st field of `git submodule status` is 1 char ([5448675](https://github.com/Agoric/agoric-sdk/commit/54486754d77bf7d65bcc590146ffce359eef955d))
297
- * **xsnap:** Allow for an absent package.json ava.require ([2d30a11](https://github.com/Agoric/agoric-sdk/commit/2d30a11de0e1a8f167aa033af40dd34309bf65d5))
298
- * **xsnap:** avoid O(n^2) Array, Map, Set growth ([11e7c1c](https://github.com/Agoric/agoric-sdk/commit/11e7c1cdbc12a0a53477be3e81cf86cc6407cd28)), closes [#3012](https://github.com/Agoric/agoric-sdk/issues/3012)
299
- * **xsnap:** build needs to await checkout ([a2f4861](https://github.com/Agoric/agoric-sdk/commit/a2f4861b3e1469f26baae8ce9326068f9d513195))
300
- * **xsnap:** don't rely on diagnostic meters ([8148c13](https://github.com/Agoric/agoric-sdk/commit/8148c13c5f4810c5fe92e05ced57ebf56302404d))
301
- * **xsnap:** tolerate Symbols in console.log() arguments ([#3618](https://github.com/Agoric/agoric-sdk/issues/3618)) ([314ee93](https://github.com/Agoric/agoric-sdk/commit/314ee93ee8fc5e97e8c40a640b94ffa770a046bc))
302
-
303
- ### 0.26.10 (2021-07-28)
304
-
305
-
306
- ### Features
307
-
308
- * **xsnap:** FFI to enable/disable metering ([#3480](https://github.com/Agoric/agoric-sdk/issues/3480)) ([94d9417](https://github.com/Agoric/agoric-sdk/commit/94d941707583a4c145ace144cf82bedc330979a3)), closes [#3457](https://github.com/Agoric/agoric-sdk/issues/3457)
309
-
310
-
311
- ### Bug Fixes
312
-
313
- * tolerate endo pre and post [#822](https://github.com/Agoric/agoric-sdk/issues/822) ([#3472](https://github.com/Agoric/agoric-sdk/issues/3472)) ([e872c0c](https://github.com/Agoric/agoric-sdk/commit/e872c0c77a146a746066de583021d8c9f1721b93))
314
-
315
-
316
-
317
- ## [0.7.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/xsnap@0.6.9...@agoric/xsnap@0.7.0) (2021-08-14)
318
-
319
-
320
- ### ⚠ BREAKING CHANGES
321
-
322
- * **xsnap:** don't rely on diagnostic meters
323
- * **xsnap:** avoid O(n^2) Array, Map, Set growth
324
-
325
- ### Features
326
-
327
- * **xsnap:** make name available on xsnap object ([8c4a16b](https://github.com/Agoric/agoric-sdk/commit/8c4a16bc203722d594f09bf7c5acd09c4209ba1c))
328
- * **xsnap:** record upstream commands as well as replies ([fc9332f](https://github.com/Agoric/agoric-sdk/commit/fc9332fc52f626b884e4998e780dbfbf87cb854d))
329
-
330
-
331
- ### Bug Fixes
332
-
333
- * **swingset:** delete unused snapshots ([#3505](https://github.com/Agoric/agoric-sdk/issues/3505)) ([317959d](https://github.com/Agoric/agoric-sdk/commit/317959d77ca669c8e4bbf504d89fe55bdd383253)), closes [#3374](https://github.com/Agoric/agoric-sdk/issues/3374) [#3431](https://github.com/Agoric/agoric-sdk/issues/3431)
334
- * **xsnap:** Allow for an absent package.json ava.require ([2d30a11](https://github.com/Agoric/agoric-sdk/commit/2d30a11de0e1a8f167aa033af40dd34309bf65d5))
335
- * **xsnap:** avoid O(n^2) Array, Map, Set growth ([11e7c1c](https://github.com/Agoric/agoric-sdk/commit/11e7c1cdbc12a0a53477be3e81cf86cc6407cd28)), closes [#3012](https://github.com/Agoric/agoric-sdk/issues/3012)
336
- * **xsnap:** don't rely on diagnostic meters ([8148c13](https://github.com/Agoric/agoric-sdk/commit/8148c13c5f4810c5fe92e05ced57ebf56302404d))
337
- * **xsnap:** tolerate Symbols in console.log() arguments ([#3618](https://github.com/Agoric/agoric-sdk/issues/3618)) ([314ee93](https://github.com/Agoric/agoric-sdk/commit/314ee93ee8fc5e97e8c40a640b94ffa770a046bc))
338
-
339
- ### 0.26.10 (2021-07-28)
340
-
341
-
342
- ### Features
343
-
344
- * **xsnap:** FFI to enable/disable metering ([#3480](https://github.com/Agoric/agoric-sdk/issues/3480)) ([94d9417](https://github.com/Agoric/agoric-sdk/commit/94d941707583a4c145ace144cf82bedc330979a3)), closes [#3457](https://github.com/Agoric/agoric-sdk/issues/3457)
345
-
346
-
347
- ### Bug Fixes
348
-
349
- * tolerate endo pre and post [#822](https://github.com/Agoric/agoric-sdk/issues/822) ([#3472](https://github.com/Agoric/agoric-sdk/issues/3472)) ([e872c0c](https://github.com/Agoric/agoric-sdk/commit/e872c0c77a146a746066de583021d8c9f1721b93))
350
-
351
-
352
-
353
- ### [0.6.10](https://github.com/Agoric/agoric-sdk/compare/@agoric/xsnap@0.6.9...@agoric/xsnap@0.6.10) (2021-07-28)
354
-
355
-
356
- ### Features
357
-
358
- * **xsnap:** FFI to enable/disable metering ([#3480](https://github.com/Agoric/agoric-sdk/issues/3480)) ([94d9417](https://github.com/Agoric/agoric-sdk/commit/94d941707583a4c145ace144cf82bedc330979a3)), closes [#3457](https://github.com/Agoric/agoric-sdk/issues/3457)
359
-
360
-
361
- ### Bug Fixes
362
-
363
- * tolerate endo pre and post [#822](https://github.com/Agoric/agoric-sdk/issues/822) ([#3472](https://github.com/Agoric/agoric-sdk/issues/3472)) ([e872c0c](https://github.com/Agoric/agoric-sdk/commit/e872c0c77a146a746066de583021d8c9f1721b93))
364
-
365
-
366
-
367
- ### [0.6.9](https://github.com/Agoric/agoric-sdk/compare/@agoric/xsnap@0.6.8...@agoric/xsnap@0.6.9) (2021-07-01)
368
-
369
-
370
- ### Features
371
-
372
- * **xsnap:** isReady() eliminates need for .evaluate('null') ([a0493d7](https://github.com/Agoric/agoric-sdk/commit/a0493d7c34c66d008e295ac2b0b86e312a36b5da))
373
-
374
-
375
-
376
- ### [0.6.8](https://github.com/Agoric/agoric-sdk/compare/@agoric/xsnap@0.6.7...@agoric/xsnap@0.6.8) (2021-06-28)
377
-
378
-
379
- ### Features
380
-
381
- * demand-paged vats are reloaded from heap snapshots ([#2848](https://github.com/Agoric/agoric-sdk/issues/2848)) ([cb239cb](https://github.com/Agoric/agoric-sdk/commit/cb239cbb27943ad58c304d85ee9b61ba917af79c)), closes [#2273](https://github.com/Agoric/agoric-sdk/issues/2273) [#2277](https://github.com/Agoric/agoric-sdk/issues/2277) [#2422](https://github.com/Agoric/agoric-sdk/issues/2422)
382
-
383
-
384
- ### Bug Fixes
385
-
386
- * snapStore tmp files were kept for debugging ([#3420](https://github.com/Agoric/agoric-sdk/issues/3420)) ([9d9560d](https://github.com/Agoric/agoric-sdk/commit/9d9560db488b67c8dfbc8dbba23967d5059dd071))
387
-
388
-
389
-
390
- ### [0.6.7](https://github.com/Agoric/agoric-sdk/compare/@agoric/xsnap@0.6.6...@agoric/xsnap@0.6.7) (2021-06-25)
391
-
392
-
393
- ### Bug Fixes
394
-
395
- * **xsnap:** update XS: new WeakMap design, fixed Promise drops ([8eeec28](https://github.com/Agoric/agoric-sdk/commit/8eeec2808ee7596d0b08a362d182c65a8828fba3)), closes [#3406](https://github.com/Agoric/agoric-sdk/issues/3406) [#3118](https://github.com/Agoric/agoric-sdk/issues/3118)
396
-
397
-
398
-
399
- ### [0.6.6](https://github.com/Agoric/agoric-sdk/compare/@agoric/xsnap@0.6.5...@agoric/xsnap@0.6.6) (2021-06-24)
400
-
401
- **Note:** Version bump only for package @agoric/xsnap
402
-
403
-
404
-
405
-
406
-
407
- ### [0.6.5](https://github.com/Agoric/agoric-sdk/compare/@agoric/xsnap@0.6.4...@agoric/xsnap@0.6.5) (2021-06-23)
408
-
409
-
410
- ### Features
411
-
412
- * **xsnap:** record / replay xsnap protcol ([616a752](https://github.com/Agoric/agoric-sdk/commit/616a752289d87ae71fd21a0f9533b158667d2d89))
413
-
414
-
415
- ### Bug Fixes
416
-
417
- * **xsnap:** 1e7 was too small for crank meter limit ([95c52ab](https://github.com/Agoric/agoric-sdk/commit/95c52ab62f7be855d084b70626b67e8ca516714f))
418
- * **xsnap:** Account for TypedArray and subarrays in Text shim ([3531132](https://github.com/Agoric/agoric-sdk/commit/35311325cdb76c4981cffaffbc9d9b1f8701662a))
419
- * **xsnap:** don't risk NULL in gxSnapshotCallbacks ([3a6ddbb](https://github.com/Agoric/agoric-sdk/commit/3a6ddbb4b2ab1ab551888ad7e4ec86d32189caf0))
420
- * **xsnap:** fxMeterHostFunction is no more ([67e6a51](https://github.com/Agoric/agoric-sdk/commit/67e6a512d5c16ec32734e2fb4c046182142b85a0))
421
-
422
-
423
-
424
- ### [0.6.4](https://github.com/Agoric/agoric-sdk/compare/@agoric/xsnap@0.6.3...@agoric/xsnap@0.6.4) (2021-06-16)
425
-
426
- **Note:** Version bump only for package @agoric/xsnap
427
-
428
-
429
-
430
-
431
-
432
- ### [0.6.3](https://github.com/Agoric/agoric-sdk/compare/@agoric/xsnap@0.6.2...@agoric/xsnap@0.6.3) (2021-06-15)
433
-
434
-
435
- ### Features
436
-
437
- * use 'engine-gc.js' to get the Node.js garbage collector ([0153529](https://github.com/Agoric/agoric-sdk/commit/0153529cbfc0b7da2d1ec434b32b2171bc246f93))
438
- * **xsnap:** add gcAndFinalize, tests ([343d908](https://github.com/Agoric/agoric-sdk/commit/343d9081b84205902e47e4f4f4fef3b97e6dfe45)), closes [#2660](https://github.com/Agoric/agoric-sdk/issues/2660)
439
- * **xsnap:** refined metering: stack, arrays ([9c48919](https://github.com/Agoric/agoric-sdk/commit/9c4891948c0ba3e8edc564035ad16a949e8b6bd0))
440
-
441
-
442
- ### Bug Fixes
443
-
444
- * be more explicit when gc() is not enabled, but not repetitive ([b3f7757](https://github.com/Agoric/agoric-sdk/commit/b3f775704a2a9373623d3c6f24726e14ec8d0056))
445
- * Pin ESM to forked version ([54dbb55](https://github.com/Agoric/agoric-sdk/commit/54dbb55d64d7ff7adb395bc4bd9d1461dd2d3c17))
446
- * Preinitialize Babel ([bb76808](https://github.com/Agoric/agoric-sdk/commit/bb768089c3588e54612d7c9a4528972b5688f4e6))
447
- * **xs-worker:** respect !managerOptions.metered ([#3078](https://github.com/Agoric/agoric-sdk/issues/3078)) ([84fa8c9](https://github.com/Agoric/agoric-sdk/commit/84fa8c984bc0bccb2482007d69dfb01773de6c74))
448
- * **xsnap:** free netstring in issueCommand() ([127e58a](https://github.com/Agoric/agoric-sdk/commit/127e58ac45bc9ea316733bbe6790936ba1b28f56))
449
- * **xsnap:** handle malloc() failure ([67d2581](https://github.com/Agoric/agoric-sdk/commit/67d25812985ce590cda10e2774be885b16fa67fb))
450
-
451
-
452
-
453
- ## [0.6.2](https://github.com/Agoric/agoric-sdk/compare/@agoric/xsnap@0.6.1...@agoric/xsnap@0.6.2) (2021-05-10)
454
-
455
- **Note:** Version bump only for package @agoric/xsnap
456
-
457
-
458
-
459
-
460
-
461
- ## [0.6.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/xsnap@0.6.0...@agoric/xsnap@0.6.1) (2021-05-05)
462
-
463
-
464
- ### Bug Fixes
465
-
466
- * cope with getting moddable submodule from agoric-labs ([a1a2693](https://github.com/Agoric/agoric-sdk/commit/a1a26931d17ade84ae97aa3a9d0e7c5c58a74491))
467
-
468
-
469
-
470
-
471
-
472
- # [0.6.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/xsnap@0.5.5...@agoric/xsnap@0.6.0) (2021-05-05)
473
-
474
-
475
- ### Bug Fixes
476
-
477
- * **xsnap:** fix the xsnap/moddable git-submodule ([fc34fba](https://github.com/Agoric/agoric-sdk/commit/fc34fba9d28776bd5120831864ef12f71e120766))
478
- * **xsnap:** start with expected heap (32MB) and grow by 4MB ([2e59868](https://github.com/Agoric/agoric-sdk/commit/2e598684ca009d9575fbe078205396eaf89d06e8))
479
- * ignore an xsnap build output ([#2887](https://github.com/Agoric/agoric-sdk/issues/2887)) ([646b621](https://github.com/Agoric/agoric-sdk/commit/646b6211618381fe569a2be0820137523a484a6e))
480
-
481
-
482
- ### Features
483
-
484
- * **ava-xs:** provide test script name to xsnap ([05f0637](https://github.com/Agoric/agoric-sdk/commit/05f0637942586b449e516796f1f9881fe218d08c))
485
- * **xsnap:** $XSNAP_DEBUG_RR for time-travel debugging ([bd4af92](https://github.com/Agoric/agoric-sdk/commit/bd4af925c73ac33e027027f5e56bc65c4c10a38a))
486
- * **xsnap:** define XSnapOptions type ([1ce5618](https://github.com/Agoric/agoric-sdk/commit/1ce561892e4d1bfb91e8dc6491e1229713619967))
487
- * **xsnap:** grow heap more slowly ([11795de](https://github.com/Agoric/agoric-sdk/commit/11795deeec15afda3ea96ed8a994243480f97a69))
488
- * **xsnap:** high resolution timer: performance.now() ([10940f9](https://github.com/Agoric/agoric-sdk/commit/10940f902fef4a47a5fd8b63faeceb9c5c0be4eb))
489
- * **xsnap:** increase allocation limit to 2GB ([5922cbd](https://github.com/Agoric/agoric-sdk/commit/5922cbdd360a29acaac4fbe00d298b0af8e5e8a4))
490
- * **xsnap:** meter add/remove on map, set ([327062f](https://github.com/Agoric/agoric-sdk/commit/327062f9f9843ed2f4d8d6e0fa2445d1fa4fdf55))
491
- * **xsnap:** meter allocation ([eecd58d](https://github.com/Agoric/agoric-sdk/commit/eecd58d503904e0aff24e6850730b165eeac1c9e))
492
- * **xsnap:** meter calls to allocateChunks, allocateSlots ([5a35842](https://github.com/Agoric/agoric-sdk/commit/5a35842cca71433f7dd2a52cc2750df53a01b269))
493
- * **xsnap:** meter garbageCollectionCount ([f649ff7](https://github.com/Agoric/agoric-sdk/commit/f649ff7715700a5cf3002fcc332692e2786d9d53))
494
- * **xsnap:** meter maxBucketSize ([eff98b4](https://github.com/Agoric/agoric-sdk/commit/eff98b4770a4742cb0b9b2d5bc2de1266d38951b))
495
- * **xsnap:** specify exit codes for meter exhaustion etc. ([db3daaa](https://github.com/Agoric/agoric-sdk/commit/db3daaaeeef1ac81104b8a58922da932ccdbadd9))
496
- * refcount-based promise GC in the comms vat ([209b034](https://github.com/Agoric/agoric-sdk/commit/209b034f196d46f5d6b499f8b0bf32dbddca1114))
497
-
498
-
499
-
500
-
501
-
502
- ## [0.5.5](https://github.com/Agoric/agoric-sdk/compare/@agoric/xsnap@0.5.4...@agoric/xsnap@0.5.5) (2021-04-22)
503
-
504
- **Note:** Version bump only for package @agoric/xsnap
505
-
506
-
507
-
508
-
509
-
510
- ## [0.5.4](https://github.com/Agoric/agoric-sdk/compare/@agoric/xsnap@0.5.3...@agoric/xsnap@0.5.4) (2021-04-18)
511
-
512
- **Note:** Version bump only for package @agoric/xsnap
513
-
514
-
515
-
516
-
517
-
518
- ## [0.5.3](https://github.com/Agoric/agoric-sdk/compare/@agoric/xsnap@0.5.2...@agoric/xsnap@0.5.3) (2021-04-16)
519
-
520
- **Note:** Version bump only for package @agoric/xsnap
521
-
522
-
523
-
524
-
525
-
526
- ## [0.5.2](https://github.com/Agoric/agoric-sdk/compare/@agoric/xsnap@0.5.1...@agoric/xsnap@0.5.2) (2021-04-14)
527
-
528
- **Note:** Version bump only for package @agoric/xsnap
529
-
530
-
531
-
532
-
533
-
534
- ## [0.5.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/xsnap@0.5.0...@agoric/xsnap@0.5.1) (2021-04-07)
535
-
536
- **Note:** Version bump only for package @agoric/xsnap
537
-
538
-
539
-
540
-
541
-
542
- # [0.5.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/xsnap@0.4.0...@agoric/xsnap@0.5.0) (2021-04-06)
543
-
544
-
545
- ### Bug Fixes
546
-
547
- * update to depend on ses 0.12.5 ([#2718](https://github.com/Agoric/agoric-sdk/issues/2718)) ([08dbe0d](https://github.com/Agoric/agoric-sdk/commit/08dbe0db5ce06944dc92c710865e441a60b31b5b))
548
- * update to ses 0.12.7, ses-ava 0.1.1 ([#2820](https://github.com/Agoric/agoric-sdk/issues/2820)) ([6d81775](https://github.com/Agoric/agoric-sdk/commit/6d81775715bc80e6033d75cb65edbfb1452b1608))
549
-
550
-
551
- ### Features
552
-
553
- * **xsnap:** show name on command line ([5b31c23](https://github.com/Agoric/agoric-sdk/commit/5b31c230f81f9e25a53a478de8a66a2f3acfa822))
554
- * **xsnap:** snapstore with compressed snapshots ([865ba54](https://github.com/Agoric/agoric-sdk/commit/865ba5472b5f43563948f7afe63e85bcc4014888))
555
-
556
-
557
-
558
-
559
-
560
- # [0.4.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/xsnap@0.3.0...@agoric/xsnap@0.4.0) (2021-03-24)
561
-
562
-
563
- ### Bug Fixes
564
-
565
- * rename crankStats -> meterUsage ([e0fa380](https://github.com/Agoric/agoric-sdk/commit/e0fa380220a9b0bbc555e55c1d6481c9e48add9b))
566
-
567
-
568
- ### Features
569
-
570
- * **xsnap:** enable gc() in the start compartment ([e407fa2](https://github.com/Agoric/agoric-sdk/commit/e407fa2393dfc8b06111d5353123afd92cd6cab6)), closes [#2682](https://github.com/Agoric/agoric-sdk/issues/2682) [#2660](https://github.com/Agoric/agoric-sdk/issues/2660) [#2615](https://github.com/Agoric/agoric-sdk/issues/2615)
571
-
572
-
573
-
574
-
575
-
576
- # [0.3.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/xsnap@0.2.1...@agoric/xsnap@0.3.0) (2021-03-16)
577
-
578
-
579
- ### Bug Fixes
580
-
581
- * **ava-xs:** anchor match patterns ([c753779](https://github.com/Agoric/agoric-sdk/commit/c7537799e7feb868fcfe6d916fab626244519d32))
582
- * make separate 'test:xs' target, remove XS from 'test' target ([b9c1a69](https://github.com/Agoric/agoric-sdk/commit/b9c1a6987093fc8e09e8aba7acd2a1618413bac8)), closes [#2647](https://github.com/Agoric/agoric-sdk/issues/2647)
583
- * properly pin the Moddable SDK version ([58333e0](https://github.com/Agoric/agoric-sdk/commit/58333e069192267fc96e30bb5272edc03b3faa04))
584
- * upgrade ses to 0.12.3 to avoid console noise ([#2552](https://github.com/Agoric/agoric-sdk/issues/2552)) ([f59f5f5](https://github.com/Agoric/agoric-sdk/commit/f59f5f58d1567bb11710166b1dbc80f25c39a04f))
585
- * use git submodule update --init --checkout ([fd3965d](https://github.com/Agoric/agoric-sdk/commit/fd3965de6e578000975fa7cb521689f1872140d2))
586
- * **avaXS:** notDeepEqual confused false with throwing ([a1b7460](https://github.com/Agoric/agoric-sdk/commit/a1b74604a63b89dc499e58e72b8425effae0b809))
587
- * **xsnap:** bounds checking in release builds ([c36f040](https://github.com/Agoric/agoric-sdk/commit/c36f04064ddb7c02bee78a1a07c0fe1fcd4b46d3))
588
- * **xsnap:** freeze API surface ([8c2cc63](https://github.com/Agoric/agoric-sdk/commit/8c2cc63acb78f8a169c53804d64304e8e954f7df))
589
- * **xsnap:** orderly fail-stop on heap exhaustion ([8ffbaa6](https://github.com/Agoric/agoric-sdk/commit/8ffbaa64bf48a63c34fac3245d117a8a6fa6731a))
590
- * **xsnap:** shim HandledPromise before lockdown() ([7e8178a](https://github.com/Agoric/agoric-sdk/commit/7e8178aa4ed8bf300a9e20d46e0c6a51848160d7))
591
- * **xsrepl:** pass command line args thru shell wrapper ([7679200](https://github.com/Agoric/agoric-sdk/commit/7679200fa6b37ec832d72d2662d6f098d4989f37))
592
-
593
-
594
- ### Features
595
-
596
- * **ava-xs:** -m title match support ([e89f1e1](https://github.com/Agoric/agoric-sdk/commit/e89f1e1b716b38f9762d4fef914135c4b0078ced))
597
- * **ava-xs:** handle some zoe tests ([#2573](https://github.com/Agoric/agoric-sdk/issues/2573)) ([7789834](https://github.com/Agoric/agoric-sdk/commit/7789834f7d232e395a707c5117295b768ed3fcff)), closes [#2503](https://github.com/Agoric/agoric-sdk/issues/2503)
598
- * **xsnap:** ava work-alike ([2c71b4a](https://github.com/Agoric/agoric-sdk/commit/2c71b4a96b246bcbf89ba1bbb4a44737babccba9))
599
- * **xsnap:** deep stacks work with updated moddable error stacks ([#2579](https://github.com/Agoric/agoric-sdk/issues/2579)) ([6a8fc76](https://github.com/Agoric/agoric-sdk/commit/6a8fc7646eeab48b176b44ebaca115ed9afa7966))
600
- * **xsnap:** unhandled rejections are debuggable ([cbf83be](https://github.com/Agoric/agoric-sdk/commit/cbf83beffbbb57d49a9d945b1b1d975731d4f293))
601
-
602
-
603
-
604
-
605
-
606
- ## [0.2.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/xsnap@0.2.0...@agoric/xsnap@0.2.1) (2021-02-22)
607
-
608
-
609
- ### Bug Fixes
610
-
611
- * **xsnap:** lib directory was missing from package files ([5bd8eb8](https://github.com/Agoric/agoric-sdk/commit/5bd8eb848a348877c1674fd8ce55bbc1ae37986a))
612
-
613
-
614
-
615
-
616
-
617
- # 0.2.0 (2021-02-16)
618
-
619
-
620
- ### Bug Fixes
621
-
622
- * **xsnap:** Typo in README re order of REPL ops ([#2188](https://github.com/Agoric/agoric-sdk/issues/2188)) ([18b0cac](https://github.com/Agoric/agoric-sdk/commit/18b0cac663c1a822417b43b3fb2f2c8173fd10a1))
623
- * cleanups and simplifications ([1fe4eae](https://github.com/Agoric/agoric-sdk/commit/1fe4eae27cbe6e97b5f905d921d3e72d167cd108))
624
- * complain if metering is requested but not compiled in ([857d4ba](https://github.com/Agoric/agoric-sdk/commit/857d4ba44eb93fc4f07608255232ca8c2ede7bc0))
625
- * don't hardcode XSNAP_VERSION; get it from package.json ([b418db5](https://github.com/Agoric/agoric-sdk/commit/b418db5773f40c695988b27149612835e75fcd44))
626
- * git should ignore xsnap/dist ([#2312](https://github.com/Agoric/agoric-sdk/issues/2312)) ([097f734](https://github.com/Agoric/agoric-sdk/commit/097f734abd3209ff55d0e78321efb1e0b160af20))
627
- * missing console methods ([#2254](https://github.com/Agoric/agoric-sdk/issues/2254)) ([79e81b0](https://github.com/Agoric/agoric-sdk/commit/79e81b014ea6e3df1a98ef0d35e7cad2d1d966a6))
628
- * reenable Docker builds and deployment ([559ea06](https://github.com/Agoric/agoric-sdk/commit/559ea062251d73e3a6921c85f63631a50ddfad35))
629
- * **xsnap:** Iron out resolution types ([1e2e10d](https://github.com/Agoric/agoric-sdk/commit/1e2e10d78b8e57df6e5eb9ea8f81ba4ded2de8b4))
630
- * **xsnap:** Make xsrepl executable ([#2197](https://github.com/Agoric/agoric-sdk/issues/2197)) ([bd7d738](https://github.com/Agoric/agoric-sdk/commit/bd7d738010e84db7bfbbf13bc7af1e3787243e7c))
631
- * **xsnap:** This is not a smog check ([#2190](https://github.com/Agoric/agoric-sdk/issues/2190)) ([437814c](https://github.com/Agoric/agoric-sdk/commit/437814cf6dc78ecb7ee878e574f121b29a1e761f))
632
- * **xsnap:** Thread spawn and os into xsnap ([619a4de](https://github.com/Agoric/agoric-sdk/commit/619a4dee82a1e63d6b6708dcbb102fa2aced676e))
633
- * **xsnap:** Update submodules for build and use CURDIR ([#2186](https://github.com/Agoric/agoric-sdk/issues/2186)) ([d0bf5cb](https://github.com/Agoric/agoric-sdk/commit/d0bf5cb4394f0d542020863e72c3eeacd705c3d7))
634
-
635
-
636
- ### Features
637
-
638
- * use xsnap worker CPU meter and start reporting consumption ([62e0d5a](https://github.com/Agoric/agoric-sdk/commit/62e0d5a3b5ff32bd79567bab8fa1b63eb7f9134a))
639
- * **swingset:** defaultManagerType option in makeSwingsetController ([#2266](https://github.com/Agoric/agoric-sdk/issues/2266)) ([b57f08f](https://github.com/Agoric/agoric-sdk/commit/b57f08f3514e052126a758f949acb5db3cc5a32d)), closes [#2260](https://github.com/Agoric/agoric-sdk/issues/2260)
640
- * **swingset:** xsnap vat worker ([#2225](https://github.com/Agoric/agoric-sdk/issues/2225)) ([50c8548](https://github.com/Agoric/agoric-sdk/commit/50c8548e4d610e1e32537bc155e4c58d917cd6df)), closes [#2216](https://github.com/Agoric/agoric-sdk/issues/2216) [#2202](https://github.com/Agoric/agoric-sdk/issues/2202)
641
- * **xs-vat-worker:** bootstrap SES shim on xsnap ([e775a99](https://github.com/Agoric/agoric-sdk/commit/e775a99afae43a8581cdeedd22545c7fa703c691))
642
- * **xsnap:** Add interactive mode ([42912a7](https://github.com/Agoric/agoric-sdk/commit/42912a7c1d70cb67248f54f43b600165dbe7f624))
643
- * **xsnap:** Add machinery for an xsrepl binary ([#2187](https://github.com/Agoric/agoric-sdk/issues/2187)) ([fc560d5](https://github.com/Agoric/agoric-sdk/commit/fc560d5ef9f77d85becd3c27edd820695900491f))
644
- * **xsnap:** Add Node.js shell ([4491145](https://github.com/Agoric/agoric-sdk/commit/4491145cac1ab1d1a15b5b4b61a1c5a0cb975736))
645
- * **xsnap:** Initial checkin from 34dfa4a ([f083df0](https://github.com/Agoric/agoric-sdk/commit/f083df0b791450eb28c2e43a69e3436f4b38d722))
646
- * **xsnap:** Pivot terms from syscalls to commands ([3576b5c](https://github.com/Agoric/agoric-sdk/commit/3576b5cbd25c2dcbf0e94d5865c8b39e2cf2a1c7))