toilscript 0.0.1 → 0.1.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/LICENSE +201 -201
- package/NOTICE +94 -94
- package/README.md +101 -114
- package/bin/asc.js +0 -0
- package/bin/asinit.js +0 -0
- package/dist/asc.generated.d.ts +10022 -0
- package/dist/asc.js +24457 -0
- package/dist/asc.js.map +7 -0
- package/dist/importmap.json +9 -0
- package/dist/toilscript.generated.d.ts +11237 -0
- package/dist/toilscript.js +337 -0
- package/dist/toilscript.js.map +7 -0
- package/dist/web.js +22 -0
- package/lib/binaryen.d.ts +2 -2
- package/lib/binaryen.js +2 -2
- package/package.json +115 -114
- package/std/README.md +6 -6
- package/std/assembly/array.ts +550 -550
- package/std/assembly/arraybuffer.ts +77 -77
- package/std/assembly/atomics.ts +127 -127
- package/std/assembly/bindings/asyncify.ts +16 -16
- package/std/assembly/bindings/dom.ts +291 -291
- package/std/assembly/bindings/node.ts +6 -6
- package/std/assembly/bitflags.ts +53 -53
- package/std/assembly/builtins.ts +2650 -2650
- package/std/assembly/byteslice.ts +177 -177
- package/std/assembly/compat.ts +2 -2
- package/std/assembly/console.ts +42 -42
- package/std/assembly/crypto.ts +9 -9
- package/std/assembly/dataview.ts +181 -181
- package/std/assembly/date.ts +375 -375
- package/std/assembly/diagnostics.ts +11 -11
- package/std/assembly/encoding.ts +151 -151
- package/std/assembly/endian.ts +45 -45
- package/std/assembly/error.ts +44 -44
- package/std/assembly/fixedarray.ts +173 -173
- package/std/assembly/fixedmap.ts +326 -326
- package/std/assembly/fixedset.ts +275 -275
- package/std/assembly/function.ts +42 -42
- package/std/assembly/index.d.ts +2891 -2891
- package/std/assembly/iterator.ts +35 -35
- package/std/assembly/map.ts +269 -269
- package/std/assembly/math.ts +3289 -3289
- package/std/assembly/memory.ts +123 -123
- package/std/assembly/number.ts +388 -388
- package/std/assembly/object.ts +36 -36
- package/std/assembly/performance.ts +9 -9
- package/std/assembly/pointer.ts +80 -80
- package/std/assembly/polyfills.ts +27 -27
- package/std/assembly/process.ts +50 -50
- package/std/assembly/reference.ts +48 -48
- package/std/assembly/regexp.ts +12 -12
- package/std/assembly/rt/README.md +83 -83
- package/std/assembly/rt/common.ts +81 -81
- package/std/assembly/rt/index-incremental.ts +2 -2
- package/std/assembly/rt/index-memory.ts +1 -1
- package/std/assembly/rt/index-minimal.ts +2 -2
- package/std/assembly/rt/index-stub.ts +1 -1
- package/std/assembly/rt/index.d.ts +37 -37
- package/std/assembly/rt/itcms.ts +419 -419
- package/std/assembly/rt/memory-runtime.ts +94 -94
- package/std/assembly/rt/rtrace.ts +15 -15
- package/std/assembly/rt/stub.ts +133 -133
- package/std/assembly/rt/tcms.ts +254 -254
- package/std/assembly/rt/tlsf.ts +592 -592
- package/std/assembly/rt.ts +90 -90
- package/std/assembly/set.ts +225 -225
- package/std/assembly/shared/feature.ts +68 -68
- package/std/assembly/shared/runtime.ts +13 -13
- package/std/assembly/shared/target.ts +11 -11
- package/std/assembly/shared/tsconfig.json +11 -11
- package/std/assembly/shared/typeinfo.ts +72 -72
- package/std/assembly/staticarray.ts +423 -423
- package/std/assembly/string.ts +850 -850
- package/std/assembly/symbol.ts +114 -114
- package/std/assembly/table.ts +16 -16
- package/std/assembly/tsconfig.json +6 -6
- package/std/assembly/typedarray.ts +1954 -1954
- package/std/assembly/uri.ts +17 -17
- package/std/assembly/util/bytes.ts +107 -107
- package/std/assembly/util/casemap.ts +497 -497
- package/std/assembly/util/error.ts +58 -58
- package/std/assembly/util/hash.ts +117 -117
- package/std/assembly/util/math.ts +1922 -1922
- package/std/assembly/util/memory.ts +290 -290
- package/std/assembly/util/number.ts +873 -873
- package/std/assembly/util/sort.ts +313 -313
- package/std/assembly/util/string.ts +1202 -1202
- package/std/assembly/util/uri.ts +275 -275
- package/std/assembly/vector.ts +4 -4
- package/std/assembly.json +16 -16
- package/std/portable/index.d.ts +461 -461
- package/std/portable/index.js +416 -416
- package/std/portable.json +11 -11
- package/std/types/assembly/index.d.ts +1 -1
- package/std/types/assembly/package.json +2 -2
- package/std/types/portable/index.d.ts +1 -1
- package/std/types/portable/package.json +2 -2
- package/tsconfig-base.json +13 -13
- package/util/README.md +23 -23
- package/util/browser/fs.js +1 -1
- package/util/browser/module.js +5 -5
- package/util/browser/path.js +520 -520
- package/util/browser/process.js +59 -59
- package/util/browser/url.js +23 -23
- package/util/cpu.d.ts +9 -9
- package/util/cpu.js +42 -42
- package/util/find.d.ts +6 -6
- package/util/find.js +20 -20
- package/util/node.d.ts +21 -21
- package/util/node.js +34 -34
- package/util/options.d.ts +70 -70
- package/util/options.js +262 -262
- package/util/terminal.d.ts +52 -52
- package/util/terminal.js +35 -35
- package/util/text.d.ts +26 -26
- package/util/text.js +114 -114
- package/util/tsconfig.json +9 -9
- package/util/web.d.ts +11 -11
- package/util/web.js +33 -33
package/std/assembly/memory.ts
CHANGED
|
@@ -1,123 +1,123 @@
|
|
|
1
|
-
import { memcmp, memmove, memset } from "./util/memory";
|
|
2
|
-
import { E_NOTIMPLEMENTED } from "./util/error";
|
|
3
|
-
|
|
4
|
-
/** Memory manager interface. */
|
|
5
|
-
export namespace memory {
|
|
6
|
-
|
|
7
|
-
/** Gets the size of the memory in pages. */
|
|
8
|
-
// @ts-ignore: decorator
|
|
9
|
-
@builtin
|
|
10
|
-
export declare function size(): i32;
|
|
11
|
-
|
|
12
|
-
/** Grows the memory by the given size in pages and returns the previous size in pages. */
|
|
13
|
-
// @ts-ignore: decorator
|
|
14
|
-
@unsafe @builtin
|
|
15
|
-
export declare function grow(pages: i32): i32;
|
|
16
|
-
|
|
17
|
-
/** Fills a section in memory with the specified byte value. */
|
|
18
|
-
// @ts-ignore: decorator
|
|
19
|
-
@unsafe @builtin
|
|
20
|
-
export function fill(dst: usize, c: u8, n: usize): void {
|
|
21
|
-
memset(dst, c, n); // fallback if "bulk-memory" isn't enabled
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
/** Copies a section of memory to another. Has move semantics. */
|
|
25
|
-
// @ts-ignore: decorator
|
|
26
|
-
@unsafe @builtin
|
|
27
|
-
export function copy(dst: usize, src: usize, n: usize): void {
|
|
28
|
-
memmove(dst, src, n); // fallback if "bulk-memory" isn't enabled
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
export namespace atomic {
|
|
32
|
-
|
|
33
|
-
// @ts-ignore: decorator
|
|
34
|
-
@unsafe @builtin
|
|
35
|
-
export declare function wait32(ptr: usize, expected: i32, timeout: i64): AtomicWaitResult;
|
|
36
|
-
|
|
37
|
-
// @ts-ignore: decorator
|
|
38
|
-
@unsafe @builtin
|
|
39
|
-
export declare function wait64(ptr: usize, expected: i64, timeout: i64): AtomicWaitResult;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
/** Initializes a memory segment. */
|
|
43
|
-
// @ts-ignore: decorator
|
|
44
|
-
@unsafe
|
|
45
|
-
export function init(segmentIndex: u32, srcOffset: usize, dstOffset: usize, n: usize): void {
|
|
46
|
-
throw new Error(E_NOTIMPLEMENTED);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
/** Drops a memory segment. */
|
|
50
|
-
// @ts-ignore: decorator
|
|
51
|
-
@unsafe
|
|
52
|
-
export function drop(segmentIndex: u32): void {
|
|
53
|
-
throw new Error(E_NOTIMPLEMENTED);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
/** Repeats a section of memory at a specific address. */
|
|
57
|
-
// @ts-ignore: decorator
|
|
58
|
-
@unsafe
|
|
59
|
-
export function repeat(dst: usize, src: usize, srcLength: usize, count: usize): void {
|
|
60
|
-
let index: usize = 0;
|
|
61
|
-
let total = srcLength * count;
|
|
62
|
-
while (index < total) {
|
|
63
|
-
memory.copy(dst + index, src, srcLength);
|
|
64
|
-
index += srcLength;
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
/** Compares a section of memory to another. */
|
|
69
|
-
// @ts-ignore: decorator
|
|
70
|
-
@inline
|
|
71
|
-
export function compare(vl: usize, vr: usize, n: usize): i32 {
|
|
72
|
-
return memcmp(vl, vr, n);
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
/** Gets a pointer to a static chunk of memory of the given size. */
|
|
76
|
-
// @ts-ignore: decorator
|
|
77
|
-
@builtin
|
|
78
|
-
export declare function data<T>(size: T, align?: i32): usize;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
// @ts-ignore: decorator
|
|
82
|
-
@builtin
|
|
83
|
-
export declare const __data_end: usize;
|
|
84
|
-
|
|
85
|
-
// @ts-ignore: decorator
|
|
86
|
-
@builtin
|
|
87
|
-
export declare let __stack_pointer: usize;
|
|
88
|
-
|
|
89
|
-
// @ts-ignore: decorator
|
|
90
|
-
@builtin
|
|
91
|
-
export declare const __heap_base: usize;
|
|
92
|
-
|
|
93
|
-
/** Heap memory interface. */
|
|
94
|
-
export namespace heap {
|
|
95
|
-
|
|
96
|
-
/** Allocates a chunk of memory of at least the specified size. */
|
|
97
|
-
// @ts-ignore: decorator
|
|
98
|
-
@unsafe export function alloc(size: usize): usize {
|
|
99
|
-
return __alloc(size);
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
/** Reallocates a chunk of memory to have at least the specified size. */
|
|
103
|
-
// @ts-ignore: decorator
|
|
104
|
-
@unsafe export function realloc(ptr: usize, size: usize): usize {
|
|
105
|
-
return __realloc(ptr, size);
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
/** Frees a chunk of memory. Does hardly anything (most recent block only) with the stub runtime. */
|
|
109
|
-
// @ts-ignore: decorator
|
|
110
|
-
@unsafe export function free(ptr: usize): void {
|
|
111
|
-
__free(ptr);
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
/** Dangerously resets the entire heap. Specific to the stub runtime. */
|
|
115
|
-
// @ts-ignore: decorator
|
|
116
|
-
@unsafe export function reset(): void {
|
|
117
|
-
if (isDefined(__reset)) {
|
|
118
|
-
__reset();
|
|
119
|
-
} else {
|
|
120
|
-
throw new Error(E_NOTIMPLEMENTED);
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
}
|
|
1
|
+
import { memcmp, memmove, memset } from "./util/memory";
|
|
2
|
+
import { E_NOTIMPLEMENTED } from "./util/error";
|
|
3
|
+
|
|
4
|
+
/** Memory manager interface. */
|
|
5
|
+
export namespace memory {
|
|
6
|
+
|
|
7
|
+
/** Gets the size of the memory in pages. */
|
|
8
|
+
// @ts-ignore: decorator
|
|
9
|
+
@builtin
|
|
10
|
+
export declare function size(): i32;
|
|
11
|
+
|
|
12
|
+
/** Grows the memory by the given size in pages and returns the previous size in pages. */
|
|
13
|
+
// @ts-ignore: decorator
|
|
14
|
+
@unsafe @builtin
|
|
15
|
+
export declare function grow(pages: i32): i32;
|
|
16
|
+
|
|
17
|
+
/** Fills a section in memory with the specified byte value. */
|
|
18
|
+
// @ts-ignore: decorator
|
|
19
|
+
@unsafe @builtin
|
|
20
|
+
export function fill(dst: usize, c: u8, n: usize): void {
|
|
21
|
+
memset(dst, c, n); // fallback if "bulk-memory" isn't enabled
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/** Copies a section of memory to another. Has move semantics. */
|
|
25
|
+
// @ts-ignore: decorator
|
|
26
|
+
@unsafe @builtin
|
|
27
|
+
export function copy(dst: usize, src: usize, n: usize): void {
|
|
28
|
+
memmove(dst, src, n); // fallback if "bulk-memory" isn't enabled
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export namespace atomic {
|
|
32
|
+
|
|
33
|
+
// @ts-ignore: decorator
|
|
34
|
+
@unsafe @builtin
|
|
35
|
+
export declare function wait32(ptr: usize, expected: i32, timeout: i64): AtomicWaitResult;
|
|
36
|
+
|
|
37
|
+
// @ts-ignore: decorator
|
|
38
|
+
@unsafe @builtin
|
|
39
|
+
export declare function wait64(ptr: usize, expected: i64, timeout: i64): AtomicWaitResult;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/** Initializes a memory segment. */
|
|
43
|
+
// @ts-ignore: decorator
|
|
44
|
+
@unsafe
|
|
45
|
+
export function init(segmentIndex: u32, srcOffset: usize, dstOffset: usize, n: usize): void {
|
|
46
|
+
throw new Error(E_NOTIMPLEMENTED);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/** Drops a memory segment. */
|
|
50
|
+
// @ts-ignore: decorator
|
|
51
|
+
@unsafe
|
|
52
|
+
export function drop(segmentIndex: u32): void {
|
|
53
|
+
throw new Error(E_NOTIMPLEMENTED);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/** Repeats a section of memory at a specific address. */
|
|
57
|
+
// @ts-ignore: decorator
|
|
58
|
+
@unsafe
|
|
59
|
+
export function repeat(dst: usize, src: usize, srcLength: usize, count: usize): void {
|
|
60
|
+
let index: usize = 0;
|
|
61
|
+
let total = srcLength * count;
|
|
62
|
+
while (index < total) {
|
|
63
|
+
memory.copy(dst + index, src, srcLength);
|
|
64
|
+
index += srcLength;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/** Compares a section of memory to another. */
|
|
69
|
+
// @ts-ignore: decorator
|
|
70
|
+
@inline
|
|
71
|
+
export function compare(vl: usize, vr: usize, n: usize): i32 {
|
|
72
|
+
return memcmp(vl, vr, n);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/** Gets a pointer to a static chunk of memory of the given size. */
|
|
76
|
+
// @ts-ignore: decorator
|
|
77
|
+
@builtin
|
|
78
|
+
export declare function data<T>(size: T, align?: i32): usize;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// @ts-ignore: decorator
|
|
82
|
+
@builtin
|
|
83
|
+
export declare const __data_end: usize;
|
|
84
|
+
|
|
85
|
+
// @ts-ignore: decorator
|
|
86
|
+
@builtin
|
|
87
|
+
export declare let __stack_pointer: usize;
|
|
88
|
+
|
|
89
|
+
// @ts-ignore: decorator
|
|
90
|
+
@builtin
|
|
91
|
+
export declare const __heap_base: usize;
|
|
92
|
+
|
|
93
|
+
/** Heap memory interface. */
|
|
94
|
+
export namespace heap {
|
|
95
|
+
|
|
96
|
+
/** Allocates a chunk of memory of at least the specified size. */
|
|
97
|
+
// @ts-ignore: decorator
|
|
98
|
+
@unsafe export function alloc(size: usize): usize {
|
|
99
|
+
return __alloc(size);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/** Reallocates a chunk of memory to have at least the specified size. */
|
|
103
|
+
// @ts-ignore: decorator
|
|
104
|
+
@unsafe export function realloc(ptr: usize, size: usize): usize {
|
|
105
|
+
return __realloc(ptr, size);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/** Frees a chunk of memory. Does hardly anything (most recent block only) with the stub runtime. */
|
|
109
|
+
// @ts-ignore: decorator
|
|
110
|
+
@unsafe export function free(ptr: usize): void {
|
|
111
|
+
__free(ptr);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/** Dangerously resets the entire heap. Specific to the stub runtime. */
|
|
115
|
+
// @ts-ignore: decorator
|
|
116
|
+
@unsafe export function reset(): void {
|
|
117
|
+
if (isDefined(__reset)) {
|
|
118
|
+
__reset();
|
|
119
|
+
} else {
|
|
120
|
+
throw new Error(E_NOTIMPLEMENTED);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|