@fluffylabs/anan-as 1.1.5 → 1.1.6-38dddc8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/README.md +107 -12
  2. package/dist/bin/build-inline.js +70 -0
  3. package/dist/bin/index.js +293 -0
  4. package/dist/bin/src/fuzz.js +155 -0
  5. package/dist/bin/src/log-host-call.js +41 -0
  6. package/dist/bin/src/test-json.js +135 -0
  7. package/dist/bin/src/trace-parse.js +315 -0
  8. package/dist/bin/src/trace-replay.js +130 -0
  9. package/dist/bin/src/tracer.js +64 -0
  10. package/dist/bin/src/utils.js +25 -0
  11. package/dist/bin/test.js +1 -0
  12. package/dist/build/compiler-inline.d.ts +11 -0
  13. package/dist/build/compiler-inline.js +22 -0
  14. package/dist/build/compiler.d.ts +26 -0
  15. package/dist/build/compiler.js +76 -0
  16. package/dist/build/compiler.wasm +0 -0
  17. package/{build → dist/build}/debug-inline.d.ts +1 -1
  18. package/dist/build/debug-inline.js +22 -0
  19. package/{build → dist/build}/debug-raw-inline.d.ts +1 -1
  20. package/dist/build/debug-raw-inline.js +22 -0
  21. package/{build → dist/build}/debug-raw.d.ts +155 -37
  22. package/{build → dist/build}/debug-raw.js +128 -41
  23. package/dist/build/debug-raw.wasm +0 -0
  24. package/{build → dist/build}/debug.d.ts +155 -37
  25. package/{build → dist/build}/debug.js +141 -43
  26. package/dist/build/debug.wasm +0 -0
  27. package/{build → dist/build}/release-inline.d.ts +1 -1
  28. package/dist/build/release-inline.js +22 -0
  29. package/{build → dist/build}/release-mini-inline.d.ts +1 -1
  30. package/dist/build/release-mini-inline.js +22 -0
  31. package/{build → dist/build}/release-mini.d.ts +155 -37
  32. package/{build → dist/build}/release-mini.js +141 -43
  33. package/dist/build/release-mini.wasm +0 -0
  34. package/{build → dist/build}/release-stub-inline.d.ts +1 -1
  35. package/dist/build/release-stub-inline.js +22 -0
  36. package/{build → dist/build}/release-stub.d.ts +155 -37
  37. package/{build → dist/build}/release-stub.js +141 -43
  38. package/dist/build/release-stub.wasm +0 -0
  39. package/{build → dist/build}/release.d.ts +155 -37
  40. package/{build → dist/build}/release.js +141 -43
  41. package/dist/build/release.wasm +0 -0
  42. package/{build → dist/build}/test-inline.d.ts +1 -1
  43. package/dist/build/test-inline.js +22 -0
  44. package/dist/build/test.wasm +0 -0
  45. package/dist/test/test-as.js +3 -0
  46. package/dist/test/test-gas-cost.js +57 -0
  47. package/dist/test/test-trace-replay.js +19 -0
  48. package/dist/test/test-w3f.js +121 -0
  49. package/dist/web/bump-version.js +7 -0
  50. package/package.json +47 -36
  51. package/build/debug-inline.js +0 -22
  52. package/build/debug-raw-inline.js +0 -22
  53. package/build/debug-raw.wasm +0 -0
  54. package/build/debug.wasm +0 -0
  55. package/build/release-inline.js +0 -22
  56. package/build/release-mini-inline.js +0 -22
  57. package/build/release-mini.wasm +0 -0
  58. package/build/release-stub-inline.js +0 -22
  59. package/build/release-stub.wasm +0 -0
  60. package/build/release.wasm +0 -0
  61. package/build/test-inline.js +0 -22
  62. package/build/test.wasm +0 -0
  63. /package/{build → dist/build}/test.d.ts +0 -0
  64. /package/{build → dist/build}/test.js +0 -0
@@ -22,18 +22,8 @@ async function instantiate(module, imports = {}) {
22
22
  const { exports } = await WebAssembly.instantiate(module, adaptedImports);
23
23
  const memory = exports.memory || imports.env.memory;
24
24
  const adaptedExports = Object.setPrototypeOf({
25
- getAssembly(p) {
26
- // assembly/api-internal/getAssembly(assembly/program/Program) => ~lib/string/String
27
- p = __lowerInternref(p) || __notnull();
28
- return __liftString(exports.getAssembly(p) >>> 0);
29
- },
30
- wrapAsProgram(bytecode) {
31
- // assembly/program-build/wrapAsProgram(~lib/typedarray/Uint8Array) => ~lib/typedarray/Uint8Array
32
- bytecode = __lowerTypedArray(Uint8Array, 10, 0, bytecode) || __notnull();
33
- return __liftTypedArray(Uint8Array, exports.wrapAsProgram(bytecode) >>> 0);
34
- },
35
25
  resetJAM(program, pc, initialGas, args, hasMetadata) {
36
- // assembly/api-debugger/resetJAM(~lib/array/Array<u8>, f64, i64, ~lib/array/Array<u8>, bool?) => void
26
+ // assembly/api-debugger/resetJAM(~lib/array/Array<u8>, u32, i64, ~lib/array/Array<u8>, bool?) => void
37
27
  program = __retain(__lowerArray(__setU8, 6, 0, program) || __notnull());
38
28
  initialGas = initialGas || 0n;
39
29
  args = __lowerArray(__setU8, 6, 0, args) || __notnull();
@@ -118,6 +108,52 @@ async function instantiate(module, imports = {}) {
118
108
  data = __lowerTypedArray(Uint8Array, 10, 0, data) || __notnull();
119
109
  return exports.setMemory(address, data) != 0;
120
110
  },
111
+ getAssembly(p) {
112
+ // assembly/api-internal/getAssembly(assembly/program/Program) => ~lib/string/String
113
+ p = __lowerInternref(p) || __notnull();
114
+ return __liftString(exports.getAssembly(p) >>> 0);
115
+ },
116
+ buildMemory(builder, pages, chunks) {
117
+ // assembly/api-internal/buildMemory(assembly/memory/MemoryBuilder, ~lib/array/Array<assembly/api-types/InitialPage>, ~lib/array/Array<assembly/api-types/InitialChunk>) => assembly/memory/Memory
118
+ builder = __retain(__lowerInternref(builder) || __notnull());
119
+ pages = __retain(__lowerArray((pointer, value) => { __setU32(pointer, __lowerRecord44(value) || __notnull()); }, 45, 2, pages) || __notnull());
120
+ chunks = __lowerArray((pointer, value) => { __setU32(pointer, __lowerRecord46(value) || __notnull()); }, 47, 2, chunks) || __notnull();
121
+ try {
122
+ return __liftInternref(exports.buildMemory(builder, pages, chunks) >>> 0);
123
+ } finally {
124
+ __release(builder);
125
+ __release(pages);
126
+ }
127
+ },
128
+ vmInit(input, useSbrkGas) {
129
+ // assembly/api-internal/vmInit(assembly/api-types/VmInput, bool?) => assembly/interpreter/Interpreter
130
+ input = __lowerInternref(input) || __notnull();
131
+ useSbrkGas = useSbrkGas ? 1 : 0;
132
+ exports.__setArgumentsLength(arguments.length);
133
+ return __liftInternref(exports.vmInit(input, useSbrkGas) >>> 0);
134
+ },
135
+ vmRunOnce(input, logs, useSbrkGas) {
136
+ // assembly/api-internal/vmRunOnce(assembly/api-types/VmInput, bool?, bool?) => assembly/api-types/VmOutput
137
+ input = __lowerInternref(input) || __notnull();
138
+ logs = logs ? 1 : 0;
139
+ useSbrkGas = useSbrkGas ? 1 : 0;
140
+ exports.__setArgumentsLength(arguments.length);
141
+ return __liftRecord50(exports.vmRunOnce(input, logs, useSbrkGas) >>> 0);
142
+ },
143
+ vmExecute(int, logs) {
144
+ // assembly/api-internal/vmExecute(assembly/interpreter/Interpreter, bool?) => void
145
+ int = __lowerInternref(int) || __notnull();
146
+ logs = logs ? 1 : 0;
147
+ exports.__setArgumentsLength(arguments.length);
148
+ exports.vmExecute(int, logs);
149
+ },
150
+ vmDestroy(int, dumpMemory) {
151
+ // assembly/api-internal/vmDestroy(assembly/interpreter/Interpreter, bool?) => assembly/api-types/VmOutput
152
+ int = __lowerInternref(int) || __notnull();
153
+ dumpMemory = dumpMemory ? 1 : 0;
154
+ exports.__setArgumentsLength(arguments.length);
155
+ return __liftRecord50(exports.vmDestroy(int, dumpMemory) >>> 0);
156
+ },
121
157
  InputKind: (values => (
122
158
  // assembly/api-utils/InputKind
123
159
  values[values.Generic = exports["InputKind.Generic"].valueOf()] = "Generic",
@@ -133,22 +169,22 @@ async function instantiate(module, imports = {}) {
133
169
  getGasCosts(input, kind, withMetadata) {
134
170
  // assembly/api-utils/getGasCosts(~lib/array/Array<u8>, i32, i32) => ~lib/array/Array<assembly/gas-costs/BlockGasCost>
135
171
  input = __lowerArray(__setU8, 6, 0, input) || __notnull();
136
- return __liftArray(pointer => __liftRecord50(__getU32(pointer)), 2, exports.getGasCosts(input, kind, withMetadata) >>> 0);
172
+ return __liftArray(pointer => __liftRecord55(__getU32(pointer)), 2, exports.getGasCosts(input, kind, withMetadata) >>> 0);
137
173
  },
138
174
  disassemble(input, kind, withMetadata) {
139
175
  // assembly/api-utils/disassemble(~lib/array/Array<u8>, i32, i32) => ~lib/string/String
140
176
  input = __lowerArray(__setU8, 6, 0, input) || __notnull();
141
177
  return __liftString(exports.disassemble(input, kind, withMetadata) >>> 0);
142
178
  },
143
- prepareProgram(kind, hasMetadata, program, initialRegisters, initialPageMap, initialMemory, args) {
144
- // assembly/api-utils/prepareProgram(i32, i32, ~lib/array/Array<u8>, ~lib/array/Array<u64>, ~lib/array/Array<assembly/api-internal/InitialPage>, ~lib/array/Array<assembly/api-internal/InitialChunk>, ~lib/array/Array<u8>) => assembly/spi/StandardProgram
179
+ prepareProgram(kind, hasMetadata, program, initialRegisters, initialPageMap, initialMemory, args, preallocateMemoryPages) {
180
+ // assembly/api-utils/prepareProgram(i32, i32, ~lib/array/Array<u8>, ~lib/array/Array<u64>, ~lib/array/Array<assembly/api-types/InitialPage>, ~lib/array/Array<assembly/api-types/InitialChunk>, ~lib/array/Array<u8>, u32) => assembly/spi/StandardProgram
145
181
  program = __retain(__lowerArray(__setU8, 6, 0, program) || __notnull());
146
- initialRegisters = __retain(__lowerArray(__setU64, 52, 3, initialRegisters) || __notnull());
147
- initialPageMap = __retain(__lowerArray((pointer, value) => { __setU32(pointer, __lowerRecord46(value) || __notnull()); }, 47, 2, initialPageMap) || __notnull());
148
- initialMemory = __retain(__lowerArray((pointer, value) => { __setU32(pointer, __lowerRecord48(value) || __notnull()); }, 49, 2, initialMemory) || __notnull());
182
+ initialRegisters = __retain(__lowerArray(__setU64, 51, 3, initialRegisters) || __notnull());
183
+ initialPageMap = __retain(__lowerArray((pointer, value) => { __setU32(pointer, __lowerRecord44(value) || __notnull()); }, 45, 2, initialPageMap) || __notnull());
184
+ initialMemory = __retain(__lowerArray((pointer, value) => { __setU32(pointer, __lowerRecord46(value) || __notnull()); }, 47, 2, initialMemory) || __notnull());
149
185
  args = __lowerArray(__setU8, 6, 0, args) || __notnull();
150
186
  try {
151
- return __liftInternref(exports.prepareProgram(kind, hasMetadata, program, initialRegisters, initialPageMap, initialMemory, args) >>> 0);
187
+ return __liftInternref(exports.prepareProgram(kind, hasMetadata, program, initialRegisters, initialPageMap, initialMemory, args, preallocateMemoryPages) >>> 0);
152
188
  } finally {
153
189
  __release(program);
154
190
  __release(initialRegisters);
@@ -157,47 +193,75 @@ async function instantiate(module, imports = {}) {
157
193
  }
158
194
  },
159
195
  runProgram(program, initialGas, programCounter, logs, useSbrkGas) {
160
- // assembly/api-utils/runProgram(assembly/spi/StandardProgram, i64?, u32?, bool?, bool?) => assembly/api-internal/VmOutput
196
+ // assembly/api-utils/runProgram(assembly/spi/StandardProgram, i64?, u32?, bool?, bool?) => assembly/api-types/VmOutput
161
197
  program = __lowerInternref(program) || __notnull();
162
198
  initialGas = initialGas || 0n;
163
199
  logs = logs ? 1 : 0;
164
200
  useSbrkGas = useSbrkGas ? 1 : 0;
165
201
  exports.__setArgumentsLength(arguments.length);
166
- return __liftRecord55(exports.runProgram(program, initialGas, programCounter, logs, useSbrkGas) >>> 0);
202
+ return __liftRecord50(exports.runProgram(program, initialGas, programCounter, logs, useSbrkGas) >>> 0);
203
+ },
204
+ pvmStart(program, useSbrkGas) {
205
+ // assembly/api-utils/pvmStart(assembly/spi/StandardProgram, bool?) => u32
206
+ program = __lowerInternref(program) || __notnull();
207
+ useSbrkGas = useSbrkGas ? 1 : 0;
208
+ exports.__setArgumentsLength(arguments.length);
209
+ return exports.pvmStart(program, useSbrkGas) >>> 0;
210
+ },
211
+ pvmDestroy(pvmId) {
212
+ // assembly/api-utils/pvmDestroy(u32) => assembly/api-types/VmOutput | null
213
+ return __liftRecord50(exports.pvmDestroy(pvmId) >>> 0);
214
+ },
215
+ pvmSetRegisters(pvmId, registers) {
216
+ // assembly/api-utils/pvmSetRegisters(u32, ~lib/array/Array<u64>) => void
217
+ registers = __lowerArray(__setU64, 51, 3, registers) || __notnull();
218
+ exports.pvmSetRegisters(pvmId, registers);
219
+ },
220
+ pvmReadMemory(pvmId, address, length) {
221
+ // assembly/api-utils/pvmReadMemory(u32, u32, u32) => ~lib/typedarray/Uint8Array | null
222
+ return __liftTypedArray(Uint8Array, exports.pvmReadMemory(pvmId, address, length) >>> 0);
223
+ },
224
+ pvmWriteMemory(pvmId, address, data) {
225
+ // assembly/api-utils/pvmWriteMemory(u32, u32, ~lib/typedarray/Uint8Array) => bool
226
+ data = __lowerTypedArray(Uint8Array, 10, 0, data) || __notnull();
227
+ return exports.pvmWriteMemory(pvmId, address, data) != 0;
228
+ },
229
+ pvmResume(pvmId, gas, pc, logs) {
230
+ // assembly/api-utils/pvmResume(u32, i64, u32, bool?) => assembly/api-types/VmPause | null
231
+ gas = gas || 0n;
232
+ logs = logs ? 1 : 0;
233
+ exports.__setArgumentsLength(arguments.length);
234
+ return __liftRecord59(exports.pvmResume(pvmId, gas, pc, logs) >>> 0);
235
+ },
236
+ wrapAsProgram(bytecode) {
237
+ // assembly/program-build/wrapAsProgram(~lib/typedarray/Uint8Array) => ~lib/typedarray/Uint8Array
238
+ bytecode = __lowerTypedArray(Uint8Array, 10, 0, bytecode) || __notnull();
239
+ return __liftTypedArray(Uint8Array, exports.wrapAsProgram(bytecode) >>> 0);
167
240
  },
168
241
  }, exports);
169
- function __liftRecord50(pointer) {
170
- // assembly/gas-costs/BlockGasCost
171
- // Hint: Opt-out from lifting as a record by providing an empty constructor
172
- if (!pointer) return null;
173
- return {
174
- pc: __getU32(pointer + 0),
175
- gas: __getU64(pointer + 8),
176
- };
177
- }
178
- function __lowerRecord46(value) {
179
- // assembly/api-internal/InitialPage
242
+ function __lowerRecord44(value) {
243
+ // assembly/api-types/InitialPage
180
244
  // Hint: Opt-out from lowering as a record by providing an empty constructor
181
245
  if (value == null) return 0;
182
- const pointer = exports.__pin(exports.__new(12, 46));
246
+ const pointer = exports.__pin(exports.__new(12, 44));
183
247
  __setU32(pointer + 0, value.address);
184
248
  __setU32(pointer + 4, value.length);
185
249
  __setU32(pointer + 8, value.access);
186
250
  exports.__unpin(pointer);
187
251
  return pointer;
188
252
  }
189
- function __lowerRecord48(value) {
190
- // assembly/api-internal/InitialChunk
253
+ function __lowerRecord46(value) {
254
+ // assembly/api-types/InitialChunk
191
255
  // Hint: Opt-out from lowering as a record by providing an empty constructor
192
256
  if (value == null) return 0;
193
- const pointer = exports.__pin(exports.__new(8, 48));
257
+ const pointer = exports.__pin(exports.__new(8, 46));
194
258
  __setU32(pointer + 0, value.address);
195
259
  __setU32(pointer + 4, __lowerArray(__setU8, 6, 0, value.data) || __notnull());
196
260
  exports.__unpin(pointer);
197
261
  return pointer;
198
262
  }
199
- function __liftRecord48(pointer) {
200
- // assembly/api-internal/InitialChunk
263
+ function __liftRecord46(pointer) {
264
+ // assembly/api-types/InitialChunk
201
265
  // Hint: Opt-out from lifting as a record by providing an empty constructor
202
266
  if (!pointer) return null;
203
267
  return {
@@ -205,17 +269,40 @@ async function instantiate(module, imports = {}) {
205
269
  data: __liftArray(__getU8, 0, __getU32(pointer + 4)),
206
270
  };
207
271
  }
272
+ function __liftRecord50(pointer) {
273
+ // assembly/api-types/VmOutput
274
+ // Hint: Opt-out from lifting as a record by providing an empty constructor
275
+ if (!pointer) return null;
276
+ return {
277
+ status: __getI32(pointer + 0),
278
+ exitCode: __getU32(pointer + 4),
279
+ pc: __getU32(pointer + 8),
280
+ gas: __getI64(pointer + 16),
281
+ result: __liftArray(__getU8, 0, __getU32(pointer + 24)),
282
+ registers: __liftArray(pointer => BigInt.asUintN(64, __getU64(pointer)), 3, __getU32(pointer + 28)),
283
+ memory: __liftArray(pointer => __liftRecord46(__getU32(pointer)), 2, __getU32(pointer + 32)),
284
+ };
285
+ }
208
286
  function __liftRecord55(pointer) {
209
- // assembly/api-internal/VmOutput
287
+ // assembly/gas-costs/BlockGasCost
288
+ // Hint: Opt-out from lifting as a record by providing an empty constructor
289
+ if (!pointer) return null;
290
+ return {
291
+ pc: __getU32(pointer + 0),
292
+ gas: __getU64(pointer + 8),
293
+ };
294
+ }
295
+ function __liftRecord59(pointer) {
296
+ // assembly/api-types/VmPause
210
297
  // Hint: Opt-out from lifting as a record by providing an empty constructor
211
298
  if (!pointer) return null;
212
299
  return {
213
300
  status: __getI32(pointer + 0),
214
- registers: __liftArray(pointer => BigInt.asUintN(64, __getU64(pointer)), 3, __getU32(pointer + 4)),
301
+ exitCode: __getU32(pointer + 4),
215
302
  pc: __getU32(pointer + 8),
216
- memory: __liftArray(pointer => __liftRecord48(__getU32(pointer)), 2, __getU32(pointer + 12)),
303
+ nextPc: __getU32(pointer + 12),
217
304
  gas: __getI64(pointer + 16),
218
- exitCode: __getU32(pointer + 24),
305
+ registers: __liftArray(pointer => BigInt.asUintN(64, __getU64(pointer)), 3, __getU32(pointer + 24)),
219
306
  };
220
307
  }
221
308
  function __liftString(pointer) {
@@ -376,8 +463,6 @@ async function instantiate(module, imports = {}) {
376
463
  }
377
464
  export const {
378
465
  memory,
379
- getAssembly,
380
- wrapAsProgram,
381
466
  resetJAM,
382
467
  resetGeneric,
383
468
  resetGenericWithMemory,
@@ -394,12 +479,25 @@ export const {
394
479
  getPageDump,
395
480
  getMemory,
396
481
  setMemory,
482
+ getAssembly,
483
+ buildMemory,
484
+ vmInit,
485
+ vmRunOnce,
486
+ vmExecute,
487
+ vmDestroy,
397
488
  InputKind,
398
489
  HasMetadata,
399
490
  getGasCosts,
400
491
  disassemble,
401
492
  prepareProgram,
402
493
  runProgram,
494
+ pvmStart,
495
+ pvmDestroy,
496
+ pvmSetRegisters,
497
+ pvmReadMemory,
498
+ pvmWriteMemory,
499
+ pvmResume,
500
+ wrapAsProgram,
403
501
  } = await (async url => instantiate(
404
502
  await (async () => {
405
503
  const isNodeOrBun = typeof process != "undefined" && process.versions != null && (process.versions.node != null || process.versions.bun != null);
Binary file
@@ -1,6 +1,6 @@
1
1
  // Auto-generated type definitions for inline WASM module
2
2
  // Target: test
3
- // Source: build/test.wasm
3
+ // Source: dist/build/test.wasm
4
4
 
5
5
  import {__AdaptedExports} from "./debug-raw.d.ts";
6
6