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