basedpl 0.1.31 → 0.1.32
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 +15 -3
- package/basedpl_wasm.js +411 -1
- package/basedpl_wasm_bg.wasm +0 -0
- package/canvas.js +8 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -30,17 +30,29 @@ This logs `5`, and `error` is `null`.
|
|
|
30
30
|
- `text/html`: markup from element functions.
|
|
31
31
|
- `image/svg+xml`: markup from `•svg` and `•plot`.
|
|
32
32
|
- `image/x-rgba;width=N`: RGBA pixels from `•image`, `N` pixels wide. `new ImageData(new Uint8ClampedArray(bytes.buffer), N)` makes a canvas image from them.
|
|
33
|
-
- `image/png` and `image/jpeg`: encoded images.
|
|
33
|
+
- `image/png` and `image/jpeg`: encoded images. An animation from `•image` is an animated PNG.
|
|
34
|
+
- `application/x-bpl-canvas+json` and `application/x-bpl-canvas-data`: a canvas from `•canvas`. `canvas.js` is a script whose value is a function that draws it: `(0, eval)(script)(canvas, data['application/x-bpl-canvas+json'], data['application/x-bpl-canvas-data'])`, where `canvas` is a `<canvas>` element.
|
|
34
35
|
|
|
35
|
-
`run` returns only when the code finishes. To keep the page responsive, run BPL in a Web Worker. The
|
|
36
|
+
`run` returns only when the code finishes. To keep the page responsive, run BPL in a Web Worker. The docs' [`worker.js`](https://github.com/AnswerDotAI/basedpl/blob/main/nbs/playground/worker.js) runs BPL in a worker, and [`bpl.js`](https://github.com/AnswerDotAI/basedpl/blob/main/nbs/playground/bpl.js) starts the worker and shows each output on the page.
|
|
37
|
+
|
|
38
|
+
## Values and JavaScript functions
|
|
39
|
+
|
|
40
|
+
`session.eval(code)` returns the value of `code` as a JavaScript value, or `undefined` when the code gives no value. A BPL error throws the error object. `session.bind(names)` binds each property of the object `names` as a BPL name. A JavaScript function becomes a BPL function that calls it, with the right argument, or the left then the right. Inside BPL, `•js source` makes such a function from JavaScript source. Values cross as the [`•js`](https://answerdotai.github.io/basedpl/system/js.html) page describes: a number is a number, a string a string and a record an object. Any other array is `{shape, data}`, with `data` a typed array when every item is a number.
|
|
41
|
+
|
|
42
|
+
```js
|
|
43
|
+
session.bind({ scale: 2, log: x => console.log(x) });
|
|
44
|
+
session.eval('scale×1 2 3'); // {shape: [3], data: Float64Array [2, 4, 6]}
|
|
45
|
+
session.run('log "hi"', () => {}); // logs "hi"
|
|
46
|
+
```
|
|
36
47
|
|
|
37
48
|
## Differences from native BPL
|
|
38
49
|
|
|
50
|
+
- `•js` exists only here.
|
|
39
51
|
- `•readdir`, `•metadata`, `•copy`, `•rename`, `•remove`, `•mkdir`, `•path` and `•delay` don't exist. `•nput` writes only to `"-"`.
|
|
40
52
|
- File reads and `•fetch` are synchronous `XMLHttpRequest`s, relative to the URL given to `configure`.
|
|
41
53
|
- `•r` uses JavaScript's `RegExp`, with its syntax and replacement templates.
|
|
42
54
|
- `•date⁻¹` has no `locale` option.
|
|
43
|
-
- Function calls nest at most
|
|
55
|
+
- Function calls nest at most 380 deep. A deeper call is a `LIMIT` error.
|
|
44
56
|
|
|
45
57
|
## Language bar
|
|
46
58
|
|
package/basedpl_wasm.js
CHANGED
|
@@ -9,6 +9,48 @@ export class Session {
|
|
|
9
9
|
const ptr = this.__destroy_into_raw();
|
|
10
10
|
wasm.__wbg_session_free(ptr, 0);
|
|
11
11
|
}
|
|
12
|
+
/**
|
|
13
|
+
* Binds each property of `names` as a BPL name, to the BPL value that `basedpl::js` converts it to. A JavaScript function becomes a
|
|
14
|
+
* BPL function that calls it. Throws when a property's name isn't a BPL name, or its value has no BPL form.
|
|
15
|
+
* @param {any} names
|
|
16
|
+
*/
|
|
17
|
+
bind(names) {
|
|
18
|
+
try {
|
|
19
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
20
|
+
wasm.session_bind(retptr, this.__wbg_ptr, addBorrowedObject(names));
|
|
21
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
22
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
23
|
+
if (r1) {
|
|
24
|
+
throw takeObject(r0);
|
|
25
|
+
}
|
|
26
|
+
} finally {
|
|
27
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
28
|
+
heap[stack_pointer++] = undefined;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* The value of `code` as a JavaScript value, which `basedpl::js` describes, or `undefined` when the code gives no value. A BPL error
|
|
33
|
+
* throws its error object. The code's outputs are dropped, and `run` shows them.
|
|
34
|
+
* @param {string} code
|
|
35
|
+
* @returns {any}
|
|
36
|
+
*/
|
|
37
|
+
eval(code) {
|
|
38
|
+
try {
|
|
39
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
40
|
+
const ptr0 = passStringToWasm0(code, wasm.__wbindgen_export, wasm.__wbindgen_export2);
|
|
41
|
+
const len0 = WASM_VECTOR_LEN;
|
|
42
|
+
wasm.session_eval(retptr, this.__wbg_ptr, ptr0, len0);
|
|
43
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
44
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
45
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
46
|
+
if (r2) {
|
|
47
|
+
throw takeObject(r1);
|
|
48
|
+
}
|
|
49
|
+
return takeObject(r0);
|
|
50
|
+
} finally {
|
|
51
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
12
54
|
constructor() {
|
|
13
55
|
const ret = wasm.session_new();
|
|
14
56
|
this.__wbg_ptr = ret;
|
|
@@ -65,6 +107,17 @@ export function symbols() {
|
|
|
65
107
|
function __wbg_get_imports() {
|
|
66
108
|
const import0 = {
|
|
67
109
|
__proto__: null,
|
|
110
|
+
__wbg___wbindgen_bigint_get_as_i64_a2383202b9353e4c: function(arg0, arg1) {
|
|
111
|
+
const v = getObject(arg1);
|
|
112
|
+
const ret = typeof(v) === 'bigint' ? v : undefined;
|
|
113
|
+
getDataViewMemory0().setBigInt64(arg0 + 8 * 1, isLikeNone(ret) ? BigInt(0) : ret, true);
|
|
114
|
+
getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);
|
|
115
|
+
},
|
|
116
|
+
__wbg___wbindgen_boolean_get_5b446f51afd21013: function(arg0) {
|
|
117
|
+
const v = getObject(arg0);
|
|
118
|
+
const ret = typeof(v) === 'boolean' ? v : undefined;
|
|
119
|
+
return isLikeNone(ret) ? 0xFFFFFF : ret ? 1 : 0;
|
|
120
|
+
},
|
|
68
121
|
__wbg___wbindgen_debug_string_4687d8d8c2017d52: function(arg0, arg1) {
|
|
69
122
|
const ret = debugString(getObject(arg1));
|
|
70
123
|
const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);
|
|
@@ -72,14 +125,31 @@ function __wbg_get_imports() {
|
|
|
72
125
|
getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
|
|
73
126
|
getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
|
|
74
127
|
},
|
|
128
|
+
__wbg___wbindgen_is_bigint_b123553bed3bb382: function(arg0) {
|
|
129
|
+
const ret = typeof(getObject(arg0)) === 'bigint';
|
|
130
|
+
return ret;
|
|
131
|
+
},
|
|
75
132
|
__wbg___wbindgen_is_function_1f9d30630b8b1d3d: function(arg0) {
|
|
76
133
|
const ret = typeof(getObject(arg0)) === 'function';
|
|
77
134
|
return ret;
|
|
78
135
|
},
|
|
136
|
+
__wbg___wbindgen_is_null_e343b7d08827ba72: function(arg0) {
|
|
137
|
+
const ret = getObject(arg0) === null;
|
|
138
|
+
return ret;
|
|
139
|
+
},
|
|
140
|
+
__wbg___wbindgen_is_object_3c45d4f2dde4e749: function(arg0) {
|
|
141
|
+
const val = getObject(arg0);
|
|
142
|
+
const ret = typeof(val) === 'object' && val !== null;
|
|
143
|
+
return ret;
|
|
144
|
+
},
|
|
79
145
|
__wbg___wbindgen_is_undefined_8865fb403f8fe9d8: function(arg0) {
|
|
80
146
|
const ret = getObject(arg0) === undefined;
|
|
81
147
|
return ret;
|
|
82
148
|
},
|
|
149
|
+
__wbg___wbindgen_jsval_eq_02babf21faa37971: function(arg0, arg1) {
|
|
150
|
+
const ret = getObject(arg0) === getObject(arg1);
|
|
151
|
+
return ret;
|
|
152
|
+
},
|
|
83
153
|
__wbg___wbindgen_number_get_2e0e7dee9f701a71: function(arg0, arg1) {
|
|
84
154
|
const obj = getObject(arg1);
|
|
85
155
|
const ret = typeof(obj) === 'number' ? obj : undefined;
|
|
@@ -97,6 +167,10 @@ function __wbg_get_imports() {
|
|
|
97
167
|
__wbg___wbindgen_throw_41e9ee4f547fc59a: function(arg0, arg1) {
|
|
98
168
|
throw new Error(getStringFromWasm0(arg0, arg1));
|
|
99
169
|
},
|
|
170
|
+
__wbg_call_1875a20c43a36133: function() { return handleError(function (arg0, arg1, arg2, arg3) {
|
|
171
|
+
const ret = getObject(arg0).call(getObject(arg1), getObject(arg2), getObject(arg3));
|
|
172
|
+
return addHeapObject(ret);
|
|
173
|
+
}, arguments); },
|
|
100
174
|
__wbg_call_187d372bd5fdd4aa: function() { return handleError(function (arg0, arg1, arg2) {
|
|
101
175
|
const ret = getObject(arg0).call(getObject(arg1), getObject(arg2));
|
|
102
176
|
return addHeapObject(ret);
|
|
@@ -117,6 +191,14 @@ function __wbg_get_imports() {
|
|
|
117
191
|
const ret = getObject(arg0).done;
|
|
118
192
|
return ret;
|
|
119
193
|
},
|
|
194
|
+
__wbg_entries_fb6397112b1de25f: function(arg0) {
|
|
195
|
+
const ret = Object.entries(getObject(arg0));
|
|
196
|
+
return addHeapObject(ret);
|
|
197
|
+
},
|
|
198
|
+
__wbg_eval_2f4f6921d1b0da1a: function() { return handleError(function (arg0, arg1) {
|
|
199
|
+
const ret = eval(getStringFromWasm0(arg0, arg1));
|
|
200
|
+
return addHeapObject(ret);
|
|
201
|
+
}, arguments); },
|
|
120
202
|
__wbg_exec_a5f4ba02713fbebe: function(arg0, arg1, arg2) {
|
|
121
203
|
const ret = getObject(arg0).exec(getStringFromWasm0(arg1, arg2));
|
|
122
204
|
return isLikeNone(ret) ? 0 : addHeapObject(ret);
|
|
@@ -129,6 +211,10 @@ function __wbg_get_imports() {
|
|
|
129
211
|
const ret = getObject(arg0).fontBoundingBoxDescent;
|
|
130
212
|
return ret;
|
|
131
213
|
},
|
|
214
|
+
__wbg_from_296ca31f8d0f1c52: function(arg0) {
|
|
215
|
+
const ret = Array.from(getObject(arg0));
|
|
216
|
+
return addHeapObject(ret);
|
|
217
|
+
},
|
|
132
218
|
__wbg_getAllResponseHeaders_537d007c37d53dba: function() { return handleError(function (arg0, arg1) {
|
|
133
219
|
const ret = getObject(arg1).getAllResponseHeaders();
|
|
134
220
|
const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);
|
|
@@ -177,6 +263,16 @@ function __wbg_get_imports() {
|
|
|
177
263
|
getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
|
|
178
264
|
getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
|
|
179
265
|
},
|
|
266
|
+
__wbg_instanceof_BigInt64Array_1a1234d945c1625f: function(arg0) {
|
|
267
|
+
let result;
|
|
268
|
+
try {
|
|
269
|
+
result = getObject(arg0) instanceof BigInt64Array;
|
|
270
|
+
} catch (_) {
|
|
271
|
+
result = false;
|
|
272
|
+
}
|
|
273
|
+
const ret = result;
|
|
274
|
+
return ret;
|
|
275
|
+
},
|
|
180
276
|
__wbg_instanceof_CanvasRenderingContext2d_769208c72dcbf5e6: function(arg0) {
|
|
181
277
|
let result;
|
|
182
278
|
try {
|
|
@@ -197,6 +293,26 @@ function __wbg_get_imports() {
|
|
|
197
293
|
const ret = result;
|
|
198
294
|
return ret;
|
|
199
295
|
},
|
|
296
|
+
__wbg_instanceof_Float32Array_595afb0f28b828c9: function(arg0) {
|
|
297
|
+
let result;
|
|
298
|
+
try {
|
|
299
|
+
result = getObject(arg0) instanceof Float32Array;
|
|
300
|
+
} catch (_) {
|
|
301
|
+
result = false;
|
|
302
|
+
}
|
|
303
|
+
const ret = result;
|
|
304
|
+
return ret;
|
|
305
|
+
},
|
|
306
|
+
__wbg_instanceof_Float64Array_8a59377f9eec1b8b: function(arg0) {
|
|
307
|
+
let result;
|
|
308
|
+
try {
|
|
309
|
+
result = getObject(arg0) instanceof Float64Array;
|
|
310
|
+
} catch (_) {
|
|
311
|
+
result = false;
|
|
312
|
+
}
|
|
313
|
+
const ret = result;
|
|
314
|
+
return ret;
|
|
315
|
+
},
|
|
200
316
|
__wbg_instanceof_HtmlCanvasElement_0a30c11fbbf41841: function(arg0) {
|
|
201
317
|
let result;
|
|
202
318
|
try {
|
|
@@ -207,6 +323,36 @@ function __wbg_get_imports() {
|
|
|
207
323
|
const ret = result;
|
|
208
324
|
return ret;
|
|
209
325
|
},
|
|
326
|
+
__wbg_instanceof_Int16Array_dc79388a406d1748: function(arg0) {
|
|
327
|
+
let result;
|
|
328
|
+
try {
|
|
329
|
+
result = getObject(arg0) instanceof Int16Array;
|
|
330
|
+
} catch (_) {
|
|
331
|
+
result = false;
|
|
332
|
+
}
|
|
333
|
+
const ret = result;
|
|
334
|
+
return ret;
|
|
335
|
+
},
|
|
336
|
+
__wbg_instanceof_Int32Array_4b9a86620726269b: function(arg0) {
|
|
337
|
+
let result;
|
|
338
|
+
try {
|
|
339
|
+
result = getObject(arg0) instanceof Int32Array;
|
|
340
|
+
} catch (_) {
|
|
341
|
+
result = false;
|
|
342
|
+
}
|
|
343
|
+
const ret = result;
|
|
344
|
+
return ret;
|
|
345
|
+
},
|
|
346
|
+
__wbg_instanceof_Int8Array_dead59f83656e45a: function(arg0) {
|
|
347
|
+
let result;
|
|
348
|
+
try {
|
|
349
|
+
result = getObject(arg0) instanceof Int8Array;
|
|
350
|
+
} catch (_) {
|
|
351
|
+
result = false;
|
|
352
|
+
}
|
|
353
|
+
const ret = result;
|
|
354
|
+
return ret;
|
|
355
|
+
},
|
|
210
356
|
__wbg_instanceof_OffscreenCanvasRenderingContext2d_957f1a991324c9dc: function(arg0) {
|
|
211
357
|
let result;
|
|
212
358
|
try {
|
|
@@ -217,6 +363,46 @@ function __wbg_get_imports() {
|
|
|
217
363
|
const ret = result;
|
|
218
364
|
return ret;
|
|
219
365
|
},
|
|
366
|
+
__wbg_instanceof_Uint16Array_eff85aa31096af44: function(arg0) {
|
|
367
|
+
let result;
|
|
368
|
+
try {
|
|
369
|
+
result = getObject(arg0) instanceof Uint16Array;
|
|
370
|
+
} catch (_) {
|
|
371
|
+
result = false;
|
|
372
|
+
}
|
|
373
|
+
const ret = result;
|
|
374
|
+
return ret;
|
|
375
|
+
},
|
|
376
|
+
__wbg_instanceof_Uint32Array_53a4facaf04b8a8b: function(arg0) {
|
|
377
|
+
let result;
|
|
378
|
+
try {
|
|
379
|
+
result = getObject(arg0) instanceof Uint32Array;
|
|
380
|
+
} catch (_) {
|
|
381
|
+
result = false;
|
|
382
|
+
}
|
|
383
|
+
const ret = result;
|
|
384
|
+
return ret;
|
|
385
|
+
},
|
|
386
|
+
__wbg_instanceof_Uint8Array_828cef2aaacafc31: function(arg0) {
|
|
387
|
+
let result;
|
|
388
|
+
try {
|
|
389
|
+
result = getObject(arg0) instanceof Uint8Array;
|
|
390
|
+
} catch (_) {
|
|
391
|
+
result = false;
|
|
392
|
+
}
|
|
393
|
+
const ret = result;
|
|
394
|
+
return ret;
|
|
395
|
+
},
|
|
396
|
+
__wbg_instanceof_Uint8ClampedArray_ae70cf3ae1cd285f: function(arg0) {
|
|
397
|
+
let result;
|
|
398
|
+
try {
|
|
399
|
+
result = getObject(arg0) instanceof Uint8ClampedArray;
|
|
400
|
+
} catch (_) {
|
|
401
|
+
result = false;
|
|
402
|
+
}
|
|
403
|
+
const ret = result;
|
|
404
|
+
return ret;
|
|
405
|
+
},
|
|
220
406
|
__wbg_instanceof_Window_82d71df4eddf88bc: function(arg0) {
|
|
221
407
|
let result;
|
|
222
408
|
try {
|
|
@@ -227,14 +413,54 @@ function __wbg_get_imports() {
|
|
|
227
413
|
const ret = result;
|
|
228
414
|
return ret;
|
|
229
415
|
},
|
|
416
|
+
__wbg_isArray_e15a2ff68ffdbef2: function(arg0) {
|
|
417
|
+
const ret = Array.isArray(getObject(arg0));
|
|
418
|
+
return ret;
|
|
419
|
+
},
|
|
420
|
+
__wbg_length_0acba72356589f9c: function(arg0) {
|
|
421
|
+
const ret = getObject(arg0).length;
|
|
422
|
+
return ret;
|
|
423
|
+
},
|
|
424
|
+
__wbg_length_3035e53132b7a991: function(arg0) {
|
|
425
|
+
const ret = getObject(arg0).length;
|
|
426
|
+
return ret;
|
|
427
|
+
},
|
|
428
|
+
__wbg_length_511b1f84719d3462: function(arg0) {
|
|
429
|
+
const ret = getObject(arg0).length;
|
|
430
|
+
return ret;
|
|
431
|
+
},
|
|
432
|
+
__wbg_length_58572db4c38f3c3e: function(arg0) {
|
|
433
|
+
const ret = getObject(arg0).length;
|
|
434
|
+
return ret;
|
|
435
|
+
},
|
|
230
436
|
__wbg_length_7f3c00c40364105e: function(arg0) {
|
|
231
437
|
const ret = getObject(arg0).length;
|
|
232
438
|
return ret;
|
|
233
439
|
},
|
|
440
|
+
__wbg_length_961efae5d4679ef5: function(arg0) {
|
|
441
|
+
const ret = getObject(arg0).length;
|
|
442
|
+
return ret;
|
|
443
|
+
},
|
|
444
|
+
__wbg_length_b5d0ffc9b832763b: function(arg0) {
|
|
445
|
+
const ret = getObject(arg0).length;
|
|
446
|
+
return ret;
|
|
447
|
+
},
|
|
448
|
+
__wbg_length_b5f0008bbf60cf59: function(arg0) {
|
|
449
|
+
const ret = getObject(arg0).length;
|
|
450
|
+
return ret;
|
|
451
|
+
},
|
|
452
|
+
__wbg_length_beff923aab722a55: function(arg0) {
|
|
453
|
+
const ret = getObject(arg0).length;
|
|
454
|
+
return ret;
|
|
455
|
+
},
|
|
234
456
|
__wbg_length_d4bdea10311bd9cf: function(arg0) {
|
|
235
457
|
const ret = getObject(arg0).length;
|
|
236
458
|
return ret;
|
|
237
459
|
},
|
|
460
|
+
__wbg_length_e5fdd54468b9e6ed: function(arg0) {
|
|
461
|
+
const ret = getObject(arg0).length;
|
|
462
|
+
return ret;
|
|
463
|
+
},
|
|
238
464
|
__wbg_matchAll_049fec9c830bd9e3: function(arg0, arg1) {
|
|
239
465
|
const ret = getObject(arg0).matchAll(getObject(arg1));
|
|
240
466
|
return addHeapObject(ret);
|
|
@@ -259,6 +485,10 @@ function __wbg_get_imports() {
|
|
|
259
485
|
const ret = new Uint8Array(getObject(arg0));
|
|
260
486
|
return addHeapObject(ret);
|
|
261
487
|
},
|
|
488
|
+
__wbg_new_343a093a3c2ffb4e: function(arg0, arg1) {
|
|
489
|
+
const ret = new Error(getStringFromWasm0(arg0, arg1));
|
|
490
|
+
return addHeapObject(ret);
|
|
491
|
+
},
|
|
262
492
|
__wbg_new_34e56228080aa9f8: function(arg0) {
|
|
263
493
|
const ret = new Date(getObject(arg0));
|
|
264
494
|
return addHeapObject(ret);
|
|
@@ -275,10 +505,34 @@ function __wbg_get_imports() {
|
|
|
275
505
|
const ret = new XMLHttpRequest();
|
|
276
506
|
return addHeapObject(ret);
|
|
277
507
|
}, arguments); },
|
|
508
|
+
__wbg_new_ee2291f50781bf1d: function() {
|
|
509
|
+
const ret = new Array();
|
|
510
|
+
return addHeapObject(ret);
|
|
511
|
+
},
|
|
512
|
+
__wbg_new_from_slice_2443ca2017fac0fd: function(arg0, arg1) {
|
|
513
|
+
const ret = new Int16Array(getArrayI16FromWasm0(arg0, arg1));
|
|
514
|
+
return addHeapObject(ret);
|
|
515
|
+
},
|
|
516
|
+
__wbg_new_from_slice_911f717853b222c7: function(arg0, arg1) {
|
|
517
|
+
const ret = new Int32Array(getArrayI32FromWasm0(arg0, arg1));
|
|
518
|
+
return addHeapObject(ret);
|
|
519
|
+
},
|
|
278
520
|
__wbg_new_from_slice_9a868026ffa4208a: function(arg0, arg1) {
|
|
279
521
|
const ret = new Uint8Array(getArrayU8FromWasm0(arg0, arg1));
|
|
280
522
|
return addHeapObject(ret);
|
|
281
523
|
},
|
|
524
|
+
__wbg_new_from_slice_aa8f37bd5e72dcc7: function(arg0, arg1) {
|
|
525
|
+
const ret = new BigInt64Array(getArrayI64FromWasm0(arg0, arg1));
|
|
526
|
+
return addHeapObject(ret);
|
|
527
|
+
},
|
|
528
|
+
__wbg_new_from_slice_f545fd22ddc142b8: function(arg0, arg1) {
|
|
529
|
+
const ret = new Float64Array(getArrayF64FromWasm0(arg0, arg1));
|
|
530
|
+
return addHeapObject(ret);
|
|
531
|
+
},
|
|
532
|
+
__wbg_new_no_args_549db978c37d28cc: function(arg0, arg1) {
|
|
533
|
+
const ret = new Function(getStringFromWasm0(arg0, arg1));
|
|
534
|
+
return addHeapObject(ret);
|
|
535
|
+
},
|
|
282
536
|
__wbg_new_with_base_29cdb449ce79d2d5: function() { return handleError(function (arg0, arg1, arg2, arg3) {
|
|
283
537
|
const ret = new URL(getStringFromWasm0(arg0, arg1), getStringFromWasm0(arg2, arg3));
|
|
284
538
|
return addHeapObject(ret);
|
|
@@ -318,9 +572,40 @@ function __wbg_get_imports() {
|
|
|
318
572
|
const ret = getObject(arg0).performance;
|
|
319
573
|
return addHeapObject(ret);
|
|
320
574
|
},
|
|
575
|
+
__wbg_prototypesetcall_06eb15da165dee8f: function(arg0, arg1, arg2) {
|
|
576
|
+
Uint32Array.prototype.set.call(getArrayU32FromWasm0(arg0, arg1), getObject(arg2));
|
|
577
|
+
},
|
|
578
|
+
__wbg_prototypesetcall_0e2bc23e51b9fbd2: function(arg0, arg1, arg2) {
|
|
579
|
+
Uint8ClampedArray.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), getObject(arg2));
|
|
580
|
+
},
|
|
581
|
+
__wbg_prototypesetcall_13adbfb002dee200: function(arg0, arg1, arg2) {
|
|
582
|
+
Int32Array.prototype.set.call(getArrayI32FromWasm0(arg0, arg1), getObject(arg2));
|
|
583
|
+
},
|
|
584
|
+
__wbg_prototypesetcall_2ee09b855e324444: function(arg0, arg1, arg2) {
|
|
585
|
+
Uint16Array.prototype.set.call(getArrayU16FromWasm0(arg0, arg1), getObject(arg2));
|
|
586
|
+
},
|
|
587
|
+
__wbg_prototypesetcall_546a6fcbab18189a: function(arg0, arg1, arg2) {
|
|
588
|
+
Int8Array.prototype.set.call(getArrayI8FromWasm0(arg0, arg1), getObject(arg2));
|
|
589
|
+
},
|
|
590
|
+
__wbg_prototypesetcall_8b03c01e2c0f8066: function(arg0, arg1, arg2) {
|
|
591
|
+
Float32Array.prototype.set.call(getArrayF32FromWasm0(arg0, arg1), getObject(arg2));
|
|
592
|
+
},
|
|
593
|
+
__wbg_prototypesetcall_b275ad9519a0a737: function(arg0, arg1, arg2) {
|
|
594
|
+
BigInt64Array.prototype.set.call(getArrayI64FromWasm0(arg0, arg1), getObject(arg2));
|
|
595
|
+
},
|
|
321
596
|
__wbg_prototypesetcall_bc27214492979395: function(arg0, arg1, arg2) {
|
|
322
597
|
Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), getObject(arg2));
|
|
323
598
|
},
|
|
599
|
+
__wbg_prototypesetcall_d49a4fab5ca427bc: function(arg0, arg1, arg2) {
|
|
600
|
+
Float64Array.prototype.set.call(getArrayF64FromWasm0(arg0, arg1), getObject(arg2));
|
|
601
|
+
},
|
|
602
|
+
__wbg_prototypesetcall_f8d32a400a944612: function(arg0, arg1, arg2) {
|
|
603
|
+
Int16Array.prototype.set.call(getArrayI16FromWasm0(arg0, arg1), getObject(arg2));
|
|
604
|
+
},
|
|
605
|
+
__wbg_push_2baf45db356cf468: function(arg0, arg1) {
|
|
606
|
+
const ret = getObject(arg0).push(getObject(arg1));
|
|
607
|
+
return ret;
|
|
608
|
+
},
|
|
324
609
|
__wbg_replace_89a2bb260816315a: function(arg0, arg1, arg2, arg3) {
|
|
325
610
|
const ret = getObject(arg0).replace(getObject(arg1), getStringFromWasm0(arg2, arg3));
|
|
326
611
|
return addHeapObject(ret);
|
|
@@ -384,7 +669,12 @@ function __wbg_get_imports() {
|
|
|
384
669
|
const ret = arg0;
|
|
385
670
|
return addHeapObject(ret);
|
|
386
671
|
},
|
|
387
|
-
__wbindgen_generic_0000000000000002: function(arg0
|
|
672
|
+
__wbindgen_generic_0000000000000002: function(arg0) {
|
|
673
|
+
// Cast intrinsic for `I64 -> Externref`.
|
|
674
|
+
const ret = arg0;
|
|
675
|
+
return addHeapObject(ret);
|
|
676
|
+
},
|
|
677
|
+
__wbindgen_generic_0000000000000003: function(arg0, arg1) {
|
|
388
678
|
// Cast intrinsic for `Ref(String) -> Externref`.
|
|
389
679
|
const ret = getStringFromWasm0(arg0, arg1);
|
|
390
680
|
return addHeapObject(ret);
|
|
@@ -417,6 +707,12 @@ function addHeapObject(obj) {
|
|
|
417
707
|
return idx;
|
|
418
708
|
}
|
|
419
709
|
|
|
710
|
+
function addBorrowedObject(obj) {
|
|
711
|
+
if (stack_pointer == 1) throw new Error('out of js stack');
|
|
712
|
+
heap[--stack_pointer] = obj;
|
|
713
|
+
return stack_pointer;
|
|
714
|
+
}
|
|
715
|
+
|
|
420
716
|
function debugString(val) {
|
|
421
717
|
// primitive types
|
|
422
718
|
const type = typeof val;
|
|
@@ -488,11 +784,59 @@ function dropObject(idx) {
|
|
|
488
784
|
heap_next = idx;
|
|
489
785
|
}
|
|
490
786
|
|
|
787
|
+
function getArrayF32FromWasm0(ptr, len) {
|
|
788
|
+
ptr = ptr >>> 0;
|
|
789
|
+
return getFloat32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);
|
|
790
|
+
}
|
|
791
|
+
|
|
792
|
+
function getArrayF64FromWasm0(ptr, len) {
|
|
793
|
+
ptr = ptr >>> 0;
|
|
794
|
+
return getFloat64ArrayMemory0().subarray(ptr / 8, ptr / 8 + len);
|
|
795
|
+
}
|
|
796
|
+
|
|
797
|
+
function getArrayI16FromWasm0(ptr, len) {
|
|
798
|
+
ptr = ptr >>> 0;
|
|
799
|
+
return getInt16ArrayMemory0().subarray(ptr / 2, ptr / 2 + len);
|
|
800
|
+
}
|
|
801
|
+
|
|
802
|
+
function getArrayI32FromWasm0(ptr, len) {
|
|
803
|
+
ptr = ptr >>> 0;
|
|
804
|
+
return getInt32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);
|
|
805
|
+
}
|
|
806
|
+
|
|
807
|
+
function getArrayI64FromWasm0(ptr, len) {
|
|
808
|
+
ptr = ptr >>> 0;
|
|
809
|
+
return getBigInt64ArrayMemory0().subarray(ptr / 8, ptr / 8 + len);
|
|
810
|
+
}
|
|
811
|
+
|
|
812
|
+
function getArrayI8FromWasm0(ptr, len) {
|
|
813
|
+
ptr = ptr >>> 0;
|
|
814
|
+
return getInt8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);
|
|
815
|
+
}
|
|
816
|
+
|
|
817
|
+
function getArrayU16FromWasm0(ptr, len) {
|
|
818
|
+
ptr = ptr >>> 0;
|
|
819
|
+
return getUint16ArrayMemory0().subarray(ptr / 2, ptr / 2 + len);
|
|
820
|
+
}
|
|
821
|
+
|
|
822
|
+
function getArrayU32FromWasm0(ptr, len) {
|
|
823
|
+
ptr = ptr >>> 0;
|
|
824
|
+
return getUint32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);
|
|
825
|
+
}
|
|
826
|
+
|
|
491
827
|
function getArrayU8FromWasm0(ptr, len) {
|
|
492
828
|
ptr = ptr >>> 0;
|
|
493
829
|
return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);
|
|
494
830
|
}
|
|
495
831
|
|
|
832
|
+
let cachedBigInt64ArrayMemory0 = null;
|
|
833
|
+
function getBigInt64ArrayMemory0() {
|
|
834
|
+
if (cachedBigInt64ArrayMemory0 === null || cachedBigInt64ArrayMemory0.byteLength === 0) {
|
|
835
|
+
cachedBigInt64ArrayMemory0 = new BigInt64Array(wasm.memory.buffer);
|
|
836
|
+
}
|
|
837
|
+
return cachedBigInt64ArrayMemory0;
|
|
838
|
+
}
|
|
839
|
+
|
|
496
840
|
let cachedDataViewMemory0 = null;
|
|
497
841
|
function getDataViewMemory0() {
|
|
498
842
|
if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {
|
|
@@ -501,10 +845,66 @@ function getDataViewMemory0() {
|
|
|
501
845
|
return cachedDataViewMemory0;
|
|
502
846
|
}
|
|
503
847
|
|
|
848
|
+
let cachedFloat32ArrayMemory0 = null;
|
|
849
|
+
function getFloat32ArrayMemory0() {
|
|
850
|
+
if (cachedFloat32ArrayMemory0 === null || cachedFloat32ArrayMemory0.byteLength === 0) {
|
|
851
|
+
cachedFloat32ArrayMemory0 = new Float32Array(wasm.memory.buffer);
|
|
852
|
+
}
|
|
853
|
+
return cachedFloat32ArrayMemory0;
|
|
854
|
+
}
|
|
855
|
+
|
|
856
|
+
let cachedFloat64ArrayMemory0 = null;
|
|
857
|
+
function getFloat64ArrayMemory0() {
|
|
858
|
+
if (cachedFloat64ArrayMemory0 === null || cachedFloat64ArrayMemory0.byteLength === 0) {
|
|
859
|
+
cachedFloat64ArrayMemory0 = new Float64Array(wasm.memory.buffer);
|
|
860
|
+
}
|
|
861
|
+
return cachedFloat64ArrayMemory0;
|
|
862
|
+
}
|
|
863
|
+
|
|
864
|
+
let cachedInt16ArrayMemory0 = null;
|
|
865
|
+
function getInt16ArrayMemory0() {
|
|
866
|
+
if (cachedInt16ArrayMemory0 === null || cachedInt16ArrayMemory0.byteLength === 0) {
|
|
867
|
+
cachedInt16ArrayMemory0 = new Int16Array(wasm.memory.buffer);
|
|
868
|
+
}
|
|
869
|
+
return cachedInt16ArrayMemory0;
|
|
870
|
+
}
|
|
871
|
+
|
|
872
|
+
let cachedInt32ArrayMemory0 = null;
|
|
873
|
+
function getInt32ArrayMemory0() {
|
|
874
|
+
if (cachedInt32ArrayMemory0 === null || cachedInt32ArrayMemory0.byteLength === 0) {
|
|
875
|
+
cachedInt32ArrayMemory0 = new Int32Array(wasm.memory.buffer);
|
|
876
|
+
}
|
|
877
|
+
return cachedInt32ArrayMemory0;
|
|
878
|
+
}
|
|
879
|
+
|
|
880
|
+
let cachedInt8ArrayMemory0 = null;
|
|
881
|
+
function getInt8ArrayMemory0() {
|
|
882
|
+
if (cachedInt8ArrayMemory0 === null || cachedInt8ArrayMemory0.byteLength === 0) {
|
|
883
|
+
cachedInt8ArrayMemory0 = new Int8Array(wasm.memory.buffer);
|
|
884
|
+
}
|
|
885
|
+
return cachedInt8ArrayMemory0;
|
|
886
|
+
}
|
|
887
|
+
|
|
504
888
|
function getStringFromWasm0(ptr, len) {
|
|
505
889
|
return decodeText(ptr >>> 0, len);
|
|
506
890
|
}
|
|
507
891
|
|
|
892
|
+
let cachedUint16ArrayMemory0 = null;
|
|
893
|
+
function getUint16ArrayMemory0() {
|
|
894
|
+
if (cachedUint16ArrayMemory0 === null || cachedUint16ArrayMemory0.byteLength === 0) {
|
|
895
|
+
cachedUint16ArrayMemory0 = new Uint16Array(wasm.memory.buffer);
|
|
896
|
+
}
|
|
897
|
+
return cachedUint16ArrayMemory0;
|
|
898
|
+
}
|
|
899
|
+
|
|
900
|
+
let cachedUint32ArrayMemory0 = null;
|
|
901
|
+
function getUint32ArrayMemory0() {
|
|
902
|
+
if (cachedUint32ArrayMemory0 === null || cachedUint32ArrayMemory0.byteLength === 0) {
|
|
903
|
+
cachedUint32ArrayMemory0 = new Uint32Array(wasm.memory.buffer);
|
|
904
|
+
}
|
|
905
|
+
return cachedUint32ArrayMemory0;
|
|
906
|
+
}
|
|
907
|
+
|
|
508
908
|
let cachedUint8ArrayMemory0 = null;
|
|
509
909
|
function getUint8ArrayMemory0() {
|
|
510
910
|
if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {
|
|
@@ -569,6 +969,8 @@ function passStringToWasm0(arg, malloc, realloc) {
|
|
|
569
969
|
return ptr;
|
|
570
970
|
}
|
|
571
971
|
|
|
972
|
+
let stack_pointer = 1024;
|
|
973
|
+
|
|
572
974
|
function takeObject(idx) {
|
|
573
975
|
const ret = getObject(idx);
|
|
574
976
|
dropObject(idx);
|
|
@@ -609,7 +1011,15 @@ function __wbg_finalize_init(instance, module) {
|
|
|
609
1011
|
wasmInstance = instance;
|
|
610
1012
|
wasm = instance.exports;
|
|
611
1013
|
wasmModule = module;
|
|
1014
|
+
cachedBigInt64ArrayMemory0 = null;
|
|
612
1015
|
cachedDataViewMemory0 = null;
|
|
1016
|
+
cachedFloat32ArrayMemory0 = null;
|
|
1017
|
+
cachedFloat64ArrayMemory0 = null;
|
|
1018
|
+
cachedInt16ArrayMemory0 = null;
|
|
1019
|
+
cachedInt32ArrayMemory0 = null;
|
|
1020
|
+
cachedInt8ArrayMemory0 = null;
|
|
1021
|
+
cachedUint16ArrayMemory0 = null;
|
|
1022
|
+
cachedUint32ArrayMemory0 = null;
|
|
613
1023
|
cachedUint8ArrayMemory0 = null;
|
|
614
1024
|
return wasm;
|
|
615
1025
|
}
|
package/basedpl_wasm_bg.wasm
CHANGED
|
Binary file
|
package/canvas.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// Draws a `•canvas` output on `canvas`. `json` holds the drawing function's JavaScript source, its options and its data. Each typed
|
|
2
|
+
// array in the data is `{$typed, offset, length}`, a view of `bytes`. The native build runs this script from the output's HTML. A page
|
|
3
|
+
// that shows the browser build's outputs calls it with the output's two entries.
|
|
4
|
+
(canvas, json, bytes) => {
|
|
5
|
+
const view = (_, v) => v?.$typed ? new globalThis[v.$typed](bytes.buffer, bytes.byteOffset + v.offset, v.length) : v;
|
|
6
|
+
const { source, options, data } = JSON.parse(json, view);
|
|
7
|
+
(0, eval)(source)(canvas.getContext('2d'), data, options);
|
|
8
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "basedpl",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.32",
|
|
4
4
|
"description": "BasedPL, the Based-array Programming Language, is an APL-derived array language, borrowing ideas from J and BQN, with an emphasis on simple, consistent notation.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|