toilscript 0.0.1 → 0.1.1

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 (121) hide show
  1. package/LICENSE +201 -201
  2. package/NOTICE +94 -94
  3. package/README.md +101 -114
  4. package/bin/asc.js +0 -0
  5. package/bin/asinit.js +6 -6
  6. package/dist/asc.generated.d.ts +10027 -0
  7. package/dist/asc.js +24474 -0
  8. package/dist/asc.js.map +7 -0
  9. package/dist/importmap.json +9 -0
  10. package/dist/toilscript.generated.d.ts +11242 -0
  11. package/dist/toilscript.js +337 -0
  12. package/dist/toilscript.js.map +7 -0
  13. package/dist/web.js +22 -0
  14. package/lib/binaryen.d.ts +2 -2
  15. package/lib/binaryen.js +2 -2
  16. package/package.json +115 -114
  17. package/std/README.md +6 -6
  18. package/std/assembly/array.ts +550 -550
  19. package/std/assembly/arraybuffer.ts +77 -77
  20. package/std/assembly/atomics.ts +127 -127
  21. package/std/assembly/bindings/asyncify.ts +16 -16
  22. package/std/assembly/bindings/dom.ts +291 -291
  23. package/std/assembly/bindings/node.ts +6 -6
  24. package/std/assembly/bitflags.ts +53 -53
  25. package/std/assembly/builtins.ts +2650 -2650
  26. package/std/assembly/byteslice.ts +177 -177
  27. package/std/assembly/compat.ts +2 -2
  28. package/std/assembly/console.ts +42 -42
  29. package/std/assembly/crypto.ts +9 -9
  30. package/std/assembly/dataview.ts +181 -181
  31. package/std/assembly/date.ts +375 -375
  32. package/std/assembly/diagnostics.ts +11 -11
  33. package/std/assembly/encoding.ts +151 -151
  34. package/std/assembly/endian.ts +45 -45
  35. package/std/assembly/error.ts +44 -44
  36. package/std/assembly/fixedarray.ts +173 -173
  37. package/std/assembly/fixedmap.ts +326 -326
  38. package/std/assembly/fixedset.ts +275 -275
  39. package/std/assembly/function.ts +42 -42
  40. package/std/assembly/index.d.ts +2892 -2891
  41. package/std/assembly/iterator.ts +35 -35
  42. package/std/assembly/map.ts +269 -269
  43. package/std/assembly/math.ts +3289 -3289
  44. package/std/assembly/memory.ts +123 -123
  45. package/std/assembly/number.ts +388 -388
  46. package/std/assembly/object.ts +36 -36
  47. package/std/assembly/performance.ts +9 -9
  48. package/std/assembly/pointer.ts +80 -80
  49. package/std/assembly/polyfills.ts +27 -27
  50. package/std/assembly/process.ts +50 -50
  51. package/std/assembly/reference.ts +48 -48
  52. package/std/assembly/regexp.ts +12 -12
  53. package/std/assembly/rt/README.md +83 -83
  54. package/std/assembly/rt/common.ts +81 -81
  55. package/std/assembly/rt/index-incremental.ts +2 -2
  56. package/std/assembly/rt/index-memory.ts +1 -1
  57. package/std/assembly/rt/index-minimal.ts +2 -2
  58. package/std/assembly/rt/index-stub.ts +1 -1
  59. package/std/assembly/rt/index.d.ts +37 -37
  60. package/std/assembly/rt/itcms.ts +419 -419
  61. package/std/assembly/rt/memory-runtime.ts +94 -94
  62. package/std/assembly/rt/rtrace.ts +15 -15
  63. package/std/assembly/rt/stub.ts +133 -133
  64. package/std/assembly/rt/tcms.ts +254 -254
  65. package/std/assembly/rt/tlsf.ts +592 -592
  66. package/std/assembly/rt.ts +90 -90
  67. package/std/assembly/set.ts +225 -225
  68. package/std/assembly/shared/feature.ts +68 -68
  69. package/std/assembly/shared/runtime.ts +13 -13
  70. package/std/assembly/shared/target.ts +11 -11
  71. package/std/assembly/shared/tsconfig.json +11 -11
  72. package/std/assembly/shared/typeinfo.ts +72 -72
  73. package/std/assembly/staticarray.ts +423 -423
  74. package/std/assembly/string.ts +850 -850
  75. package/std/assembly/symbol.ts +114 -114
  76. package/std/assembly/table.ts +16 -16
  77. package/std/assembly/toilscript.ts +16 -0
  78. package/std/assembly/tsconfig.json +6 -6
  79. package/std/assembly/typedarray.ts +1954 -1954
  80. package/std/assembly/uri.ts +17 -17
  81. package/std/assembly/util/bytes.ts +107 -107
  82. package/std/assembly/util/casemap.ts +497 -497
  83. package/std/assembly/util/error.ts +58 -58
  84. package/std/assembly/util/hash.ts +117 -117
  85. package/std/assembly/util/math.ts +1922 -1922
  86. package/std/assembly/util/memory.ts +290 -290
  87. package/std/assembly/util/number.ts +873 -873
  88. package/std/assembly/util/sort.ts +313 -313
  89. package/std/assembly/util/string.ts +1202 -1202
  90. package/std/assembly/util/uri.ts +275 -275
  91. package/std/assembly/vector.ts +4 -4
  92. package/std/assembly.json +16 -16
  93. package/std/portable/index.d.ts +461 -461
  94. package/std/portable/index.js +416 -416
  95. package/std/portable.json +11 -11
  96. package/std/types/assembly/index.d.ts +1 -1
  97. package/std/types/assembly/package.json +2 -2
  98. package/std/types/portable/index.d.ts +1 -1
  99. package/std/types/portable/package.json +2 -2
  100. package/tsconfig-base.json +13 -13
  101. package/util/README.md +23 -23
  102. package/util/browser/fs.js +1 -1
  103. package/util/browser/module.js +5 -5
  104. package/util/browser/path.js +520 -520
  105. package/util/browser/process.js +59 -59
  106. package/util/browser/url.js +23 -23
  107. package/util/cpu.d.ts +9 -9
  108. package/util/cpu.js +42 -42
  109. package/util/find.d.ts +6 -6
  110. package/util/find.js +20 -20
  111. package/util/node.d.ts +21 -21
  112. package/util/node.js +34 -34
  113. package/util/options.d.ts +70 -70
  114. package/util/options.js +262 -262
  115. package/util/terminal.d.ts +52 -52
  116. package/util/terminal.js +35 -35
  117. package/util/text.d.ts +26 -26
  118. package/util/text.js +114 -114
  119. package/util/tsconfig.json +9 -9
  120. package/util/web.d.ts +11 -11
  121. package/util/web.js +33 -33
@@ -1,68 +1,68 @@
1
- // This file is shared with the compiler and must remain portable
2
-
3
- /** Indicates specific features to activate. */
4
- export const enum Feature {
5
- /** No additional features. */
6
- None = 0,
7
- /** Sign extension operations. */
8
- SignExtension = 1 << 0, // see: https://github.com/WebAssembly/sign-extension-ops
9
- /** Mutable global imports and exports. */
10
- MutableGlobals = 1 << 1, // see: https://github.com/WebAssembly/mutable-global
11
- /** Non-trapping float to integer operations. */
12
- NontrappingF2I = 1 << 2, // see: https://github.com/WebAssembly/nontrapping-float-to-int-conversions
13
- /** Bulk memory operations. */
14
- BulkMemory = 1 << 3, // see: https://github.com/WebAssembly/bulk-memory-operations
15
- /** SIMD types and operations. */
16
- Simd = 1 << 4, // see: https://github.com/WebAssembly/simd
17
- /** Threading and atomic operations. */
18
- Threads = 1 << 5, // see: https://github.com/WebAssembly/threads
19
- /** Exception handling operations. */
20
- ExceptionHandling = 1 << 6, // see: https://github.com/WebAssembly/exception-handling
21
- /** Tail call operations. */
22
- TailCalls = 1 << 7, // see: https://github.com/WebAssembly/tail-call
23
- /** Reference types. */
24
- ReferenceTypes = 1 << 8, // see: https://github.com/WebAssembly/reference-types
25
- /** Multi value types. */
26
- MultiValue = 1 << 9, // see: https://github.com/WebAssembly/multi-value
27
- /** Garbage collection. */
28
- GC = 1 << 10, // see: https://github.com/WebAssembly/gc
29
- /** Memory64. */
30
- Memory64 = 1 << 11, // see: https://github.com/WebAssembly/memory64
31
- /** Relaxed SIMD. */
32
- RelaxedSimd = 1 << 12, // see: https://github.com/WebAssembly/relaxed-simd
33
- /** Extended const expressions. */
34
- ExtendedConst = 1 << 13, // see: https://github.com/WebAssembly/extended-const
35
- /** Reference typed strings. */
36
- Strings = 1 << 14, // see: https://github.com/WebAssembly/stringref
37
- /** Shared-everything threads. */
38
- SharedEverything = 1 << 15, // see: https://github.com/WebAssembly/shared-everything-threads
39
- /** Closures. */
40
- Closures = 1 << 16,
41
- /** All features. */
42
- All = (1 << 17) - 1
43
- }
44
-
45
- /** Gets the name of the specified feature one would specify on the command line. */
46
- export function featureToString(feature: Feature): string {
47
- switch (feature) {
48
- case Feature.SignExtension: return "sign-extension";
49
- case Feature.MutableGlobals: return "mutable-globals";
50
- case Feature.NontrappingF2I: return "nontrapping-f2i";
51
- case Feature.BulkMemory: return "bulk-memory";
52
- case Feature.Simd: return "simd";
53
- case Feature.Threads: return "threads";
54
- case Feature.ExceptionHandling: return "exception-handling";
55
- case Feature.TailCalls: return "tail-calls";
56
- case Feature.ReferenceTypes: return "reference-types";
57
- case Feature.MultiValue: return "multi-value";
58
- case Feature.GC: return "gc";
59
- case Feature.Memory64: return "memory64";
60
- case Feature.RelaxedSimd: return "relaxed-simd";
61
- case Feature.ExtendedConst: return "extended-const";
62
- case Feature.Strings: return "stringref";
63
- case Feature.SharedEverything: return "shared-everything";
64
- case Feature.Closures: return "closures";
65
- }
66
- assert(false);
67
- return "";
68
- }
1
+ // This file is shared with the compiler and must remain portable
2
+
3
+ /** Indicates specific features to activate. */
4
+ export const enum Feature {
5
+ /** No additional features. */
6
+ None = 0,
7
+ /** Sign extension operations. */
8
+ SignExtension = 1 << 0, // see: https://github.com/WebAssembly/sign-extension-ops
9
+ /** Mutable global imports and exports. */
10
+ MutableGlobals = 1 << 1, // see: https://github.com/WebAssembly/mutable-global
11
+ /** Non-trapping float to integer operations. */
12
+ NontrappingF2I = 1 << 2, // see: https://github.com/WebAssembly/nontrapping-float-to-int-conversions
13
+ /** Bulk memory operations. */
14
+ BulkMemory = 1 << 3, // see: https://github.com/WebAssembly/bulk-memory-operations
15
+ /** SIMD types and operations. */
16
+ Simd = 1 << 4, // see: https://github.com/WebAssembly/simd
17
+ /** Threading and atomic operations. */
18
+ Threads = 1 << 5, // see: https://github.com/WebAssembly/threads
19
+ /** Exception handling operations. */
20
+ ExceptionHandling = 1 << 6, // see: https://github.com/WebAssembly/exception-handling
21
+ /** Tail call operations. */
22
+ TailCalls = 1 << 7, // see: https://github.com/WebAssembly/tail-call
23
+ /** Reference types. */
24
+ ReferenceTypes = 1 << 8, // see: https://github.com/WebAssembly/reference-types
25
+ /** Multi value types. */
26
+ MultiValue = 1 << 9, // see: https://github.com/WebAssembly/multi-value
27
+ /** Garbage collection. */
28
+ GC = 1 << 10, // see: https://github.com/WebAssembly/gc
29
+ /** Memory64. */
30
+ Memory64 = 1 << 11, // see: https://github.com/WebAssembly/memory64
31
+ /** Relaxed SIMD. */
32
+ RelaxedSimd = 1 << 12, // see: https://github.com/WebAssembly/relaxed-simd
33
+ /** Extended const expressions. */
34
+ ExtendedConst = 1 << 13, // see: https://github.com/WebAssembly/extended-const
35
+ /** Reference typed strings. */
36
+ Strings = 1 << 14, // see: https://github.com/WebAssembly/stringref
37
+ /** Shared-everything threads. */
38
+ SharedEverything = 1 << 15, // see: https://github.com/WebAssembly/shared-everything-threads
39
+ /** Closures. */
40
+ Closures = 1 << 16,
41
+ /** All features. */
42
+ All = (1 << 17) - 1
43
+ }
44
+
45
+ /** Gets the name of the specified feature one would specify on the command line. */
46
+ export function featureToString(feature: Feature): string {
47
+ switch (feature) {
48
+ case Feature.SignExtension: return "sign-extension";
49
+ case Feature.MutableGlobals: return "mutable-globals";
50
+ case Feature.NontrappingF2I: return "nontrapping-f2i";
51
+ case Feature.BulkMemory: return "bulk-memory";
52
+ case Feature.Simd: return "simd";
53
+ case Feature.Threads: return "threads";
54
+ case Feature.ExceptionHandling: return "exception-handling";
55
+ case Feature.TailCalls: return "tail-calls";
56
+ case Feature.ReferenceTypes: return "reference-types";
57
+ case Feature.MultiValue: return "multi-value";
58
+ case Feature.GC: return "gc";
59
+ case Feature.Memory64: return "memory64";
60
+ case Feature.RelaxedSimd: return "relaxed-simd";
61
+ case Feature.ExtendedConst: return "extended-const";
62
+ case Feature.Strings: return "stringref";
63
+ case Feature.SharedEverything: return "shared-everything";
64
+ case Feature.Closures: return "closures";
65
+ }
66
+ assert(false);
67
+ return "";
68
+ }
@@ -1,13 +1,13 @@
1
- // This file is shared with the compiler and must remain portable
2
-
3
- /** Runtime types. */
4
- export enum Runtime {
5
- /** Simple bump allocator without GC. */
6
- Stub = 0,
7
- /** Stop the world semi-automatic GC. */
8
- Minimal = 1,
9
- /** incremental GC. */
10
- Incremental = 2,
11
- /** Bare minimum allocator, no GC. */
12
- Memory = 3,
13
- }
1
+ // This file is shared with the compiler and must remain portable
2
+
3
+ /** Runtime types. */
4
+ export enum Runtime {
5
+ /** Simple bump allocator without GC. */
6
+ Stub = 0,
7
+ /** Stop the world semi-automatic GC. */
8
+ Minimal = 1,
9
+ /** incremental GC. */
10
+ Incremental = 2,
11
+ /** Bare minimum allocator, no GC. */
12
+ Memory = 3,
13
+ }
@@ -1,11 +1,11 @@
1
- // This file is shared with the compiler and must remain portable
2
-
3
- /** Compilation target. */
4
- export enum Target {
5
- /** Portable. */
6
- Js = 0,
7
- /** WebAssembly with 32-bit pointers. */
8
- Wasm32 = 1,
9
- /** WebAssembly with 64-bit pointers. Experimental and not supported by any runtime yet. */
10
- Wasm64 = 2,
11
- }
1
+ // This file is shared with the compiler and must remain portable
2
+
3
+ /** Compilation target. */
4
+ export enum Target {
5
+ /** Portable. */
6
+ Js = 0,
7
+ /** WebAssembly with 32-bit pointers. */
8
+ Wasm32 = 1,
9
+ /** WebAssembly with 64-bit pointers. Experimental and not supported by any runtime yet. */
10
+ Wasm64 = 2,
11
+ }
@@ -1,11 +1,11 @@
1
- {
2
- "extends": "../../portable.json",
3
- "compilerOptions": {
4
- "outDir": "../../../out",
5
- "allowJs": false,
6
- "sourceMap": true
7
- },
8
- "include": [
9
- "./**/*.ts"
10
- ]
11
- }
1
+ {
2
+ "extends": "../../portable.json",
3
+ "compilerOptions": {
4
+ "outDir": "../../../out",
5
+ "allowJs": false,
6
+ "sourceMap": true
7
+ },
8
+ "include": [
9
+ "./**/*.ts"
10
+ ]
11
+ }
@@ -1,72 +1,72 @@
1
- // This file is shared with the compiler and must remain portable
2
-
3
- // ╒═══════════════════ Typeinfo interpretation ═══════════════════╕
4
- // 3 2 1
5
- // 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 bits
6
- // ├─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┤ ◄─ __rtti_base
7
- // │ count │
8
- // ╞═══════════════════════════════════════════════════════════════╡ ┐
9
- // │ Typeinfo#flags [id=0] │ id < count
10
- // ├───────────────────────────────────────────────────────────────┤
11
- // │ ... │
12
-
13
- /** Runtime type information data structure. */
14
- @unmanaged
15
- export class Typeinfo {
16
- /** Flags describing the shape of this class type. */
17
- flags: TypeinfoFlags = TypeinfoFlags.NONE;
18
- }
19
-
20
- /** Runtime type information flags. */
21
- export const enum TypeinfoFlags {
22
- /** No specific flags. */
23
- NONE = 0,
24
- /** Type is an `ArrayBufferView`. */
25
- ARRAYBUFFERVIEW = 1 << 0,
26
- /** Type is an `Array`. */
27
- ARRAY = 1 << 1,
28
- /** Type is a `StaticArray`. */
29
- STATICARRAY = 1 << 2,
30
- /** Type is a `Set`. */
31
- SET = 1 << 3,
32
- /** Type is a `Map`. */
33
- MAP = 1 << 4,
34
- /** Type has no outgoing pointers. */
35
- POINTERFREE = 1 << 5,
36
- /** Value alignment of 1 byte. */
37
- VALUE_ALIGN_0 = 1 << 6,
38
- /** Value alignment of 2 bytes. */
39
- VALUE_ALIGN_1 = 1 << 7,
40
- /** Value alignment of 4 bytes. */
41
- VALUE_ALIGN_2 = 1 << 8,
42
- /** Value alignment of 8 bytes. */
43
- VALUE_ALIGN_3 = 1 << 9,
44
- /** Value alignment of 16 bytes. */
45
- VALUE_ALIGN_4 = 1 << 10,
46
- /** Value is a signed type. */
47
- VALUE_SIGNED = 1 << 11,
48
- /** Value is a float type. */
49
- VALUE_FLOAT = 1 << 12,
50
- /** Value type is nullable. */
51
- VALUE_NULLABLE = 1 << 13,
52
- /** Value type is managed. */
53
- VALUE_MANAGED = 1 << 14,
54
- /** Key alignment of 1 byte. */
55
- KEY_ALIGN_0 = 1 << 15,
56
- /** Key alignment of 2 bytes. */
57
- KEY_ALIGN_1 = 1 << 16,
58
- /** Key alignment of 4 bytes. */
59
- KEY_ALIGN_2 = 1 << 17,
60
- /** Key alignment of 8 bytes. */
61
- KEY_ALIGN_3 = 1 << 18,
62
- /** Key alignment of 16 bytes. */
63
- KEY_ALIGN_4 = 1 << 19,
64
- /** Key is a signed type. */
65
- KEY_SIGNED = 1 << 20,
66
- /** Key is a float type. */
67
- KEY_FLOAT = 1 << 21,
68
- /** Key type is nullable. */
69
- KEY_NULLABLE = 1 << 22,
70
- /** Key type is managed. */
71
- KEY_MANAGED = 1 << 23
72
- }
1
+ // This file is shared with the compiler and must remain portable
2
+
3
+ // ╒═══════════════════ Typeinfo interpretation ═══════════════════╕
4
+ // 3 2 1
5
+ // 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 bits
6
+ // ├─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┤ ◄─ __rtti_base
7
+ // │ count │
8
+ // ╞═══════════════════════════════════════════════════════════════╡ ┐
9
+ // │ Typeinfo#flags [id=0] │ id < count
10
+ // ├───────────────────────────────────────────────────────────────┤
11
+ // │ ... │
12
+
13
+ /** Runtime type information data structure. */
14
+ @unmanaged
15
+ export class Typeinfo {
16
+ /** Flags describing the shape of this class type. */
17
+ flags: TypeinfoFlags = TypeinfoFlags.NONE;
18
+ }
19
+
20
+ /** Runtime type information flags. */
21
+ export const enum TypeinfoFlags {
22
+ /** No specific flags. */
23
+ NONE = 0,
24
+ /** Type is an `ArrayBufferView`. */
25
+ ARRAYBUFFERVIEW = 1 << 0,
26
+ /** Type is an `Array`. */
27
+ ARRAY = 1 << 1,
28
+ /** Type is a `StaticArray`. */
29
+ STATICARRAY = 1 << 2,
30
+ /** Type is a `Set`. */
31
+ SET = 1 << 3,
32
+ /** Type is a `Map`. */
33
+ MAP = 1 << 4,
34
+ /** Type has no outgoing pointers. */
35
+ POINTERFREE = 1 << 5,
36
+ /** Value alignment of 1 byte. */
37
+ VALUE_ALIGN_0 = 1 << 6,
38
+ /** Value alignment of 2 bytes. */
39
+ VALUE_ALIGN_1 = 1 << 7,
40
+ /** Value alignment of 4 bytes. */
41
+ VALUE_ALIGN_2 = 1 << 8,
42
+ /** Value alignment of 8 bytes. */
43
+ VALUE_ALIGN_3 = 1 << 9,
44
+ /** Value alignment of 16 bytes. */
45
+ VALUE_ALIGN_4 = 1 << 10,
46
+ /** Value is a signed type. */
47
+ VALUE_SIGNED = 1 << 11,
48
+ /** Value is a float type. */
49
+ VALUE_FLOAT = 1 << 12,
50
+ /** Value type is nullable. */
51
+ VALUE_NULLABLE = 1 << 13,
52
+ /** Value type is managed. */
53
+ VALUE_MANAGED = 1 << 14,
54
+ /** Key alignment of 1 byte. */
55
+ KEY_ALIGN_0 = 1 << 15,
56
+ /** Key alignment of 2 bytes. */
57
+ KEY_ALIGN_1 = 1 << 16,
58
+ /** Key alignment of 4 bytes. */
59
+ KEY_ALIGN_2 = 1 << 17,
60
+ /** Key alignment of 8 bytes. */
61
+ KEY_ALIGN_3 = 1 << 18,
62
+ /** Key alignment of 16 bytes. */
63
+ KEY_ALIGN_4 = 1 << 19,
64
+ /** Key is a signed type. */
65
+ KEY_SIGNED = 1 << 20,
66
+ /** Key is a float type. */
67
+ KEY_FLOAT = 1 << 21,
68
+ /** Key type is nullable. */
69
+ KEY_NULLABLE = 1 << 22,
70
+ /** Key type is managed. */
71
+ KEY_MANAGED = 1 << 23
72
+ }