@grain/stdlib 0.4.4 → 0.5.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.
Files changed (97) hide show
  1. package/CHANGELOG.md +87 -0
  2. package/LICENSE +1 -1
  3. package/array.gr +92 -73
  4. package/array.md +18 -18
  5. package/bigint.gr +497 -0
  6. package/bigint.md +811 -0
  7. package/buffer.gr +56 -217
  8. package/buffer.md +24 -17
  9. package/bytes.gr +103 -205
  10. package/bytes.md +19 -0
  11. package/char.gr +152 -166
  12. package/char.md +200 -0
  13. package/exception.md +6 -0
  14. package/float32.gr +159 -82
  15. package/float32.md +315 -0
  16. package/float64.gr +163 -82
  17. package/float64.md +315 -0
  18. package/hash.gr +53 -49
  19. package/int32.gr +479 -230
  20. package/int32.md +937 -0
  21. package/int64.gr +479 -230
  22. package/int64.md +937 -0
  23. package/list.gr +530 -116
  24. package/list.md +1141 -0
  25. package/map.gr +302 -121
  26. package/map.md +525 -0
  27. package/number.gr +51 -57
  28. package/number.md +37 -3
  29. package/option.gr +25 -25
  30. package/option.md +1 -1
  31. package/package.json +3 -3
  32. package/pervasives.gr +504 -52
  33. package/pervasives.md +1116 -0
  34. package/queue.gr +8 -1
  35. package/queue.md +10 -0
  36. package/random.gr +196 -0
  37. package/random.md +179 -0
  38. package/range.gr +26 -26
  39. package/regex.gr +1833 -842
  40. package/regex.md +11 -11
  41. package/result.md +1 -1
  42. package/runtime/bigint.gr +2045 -0
  43. package/runtime/bigint.md +326 -0
  44. package/runtime/dataStructures.gr +99 -279
  45. package/runtime/dataStructures.md +391 -0
  46. package/runtime/debug.gr +0 -1
  47. package/runtime/debug.md +6 -0
  48. package/runtime/equal.gr +40 -37
  49. package/runtime/equal.md +6 -0
  50. package/runtime/exception.gr +28 -15
  51. package/runtime/exception.md +30 -0
  52. package/runtime/gc.gr +50 -20
  53. package/runtime/gc.md +36 -0
  54. package/runtime/malloc.gr +32 -22
  55. package/runtime/malloc.md +55 -0
  56. package/runtime/numberUtils.gr +297 -142
  57. package/runtime/numberUtils.md +54 -0
  58. package/runtime/numbers.gr +1204 -453
  59. package/runtime/numbers.md +300 -0
  60. package/runtime/string.gr +193 -228
  61. package/runtime/string.md +24 -0
  62. package/runtime/stringUtils.gr +62 -38
  63. package/runtime/stringUtils.md +6 -0
  64. package/runtime/unsafe/constants.gr +17 -0
  65. package/runtime/unsafe/constants.md +72 -0
  66. package/runtime/unsafe/conv.gr +10 -10
  67. package/runtime/unsafe/conv.md +71 -0
  68. package/runtime/unsafe/errors.md +204 -0
  69. package/runtime/unsafe/memory.gr +14 -3
  70. package/runtime/unsafe/memory.md +54 -0
  71. package/runtime/unsafe/printWasm.gr +4 -4
  72. package/runtime/unsafe/printWasm.md +24 -0
  73. package/runtime/unsafe/tags.gr +11 -10
  74. package/runtime/unsafe/tags.md +120 -0
  75. package/runtime/unsafe/wasmf32.gr +9 -2
  76. package/runtime/unsafe/wasmf32.md +168 -0
  77. package/runtime/unsafe/wasmf64.gr +9 -2
  78. package/runtime/unsafe/wasmf64.md +168 -0
  79. package/runtime/unsafe/wasmi32.gr +65 -47
  80. package/runtime/unsafe/wasmi32.md +282 -0
  81. package/runtime/unsafe/wasmi64.gr +78 -50
  82. package/runtime/unsafe/wasmi64.md +300 -0
  83. package/runtime/utils/printing.gr +62 -0
  84. package/runtime/utils/printing.md +18 -0
  85. package/runtime/wasi.gr +200 -46
  86. package/runtime/wasi.md +839 -0
  87. package/set.gr +125 -121
  88. package/set.md +24 -21
  89. package/stack.gr +29 -29
  90. package/stack.md +4 -6
  91. package/string.gr +434 -415
  92. package/string.md +3 -3
  93. package/sys/file.gr +477 -482
  94. package/sys/process.gr +33 -47
  95. package/sys/random.gr +48 -20
  96. package/sys/random.md +38 -0
  97. package/sys/time.gr +12 -28
@@ -1,58 +1,76 @@
1
1
  /* grainc-flags --compilation-mode=runtime */
2
2
 
3
3
  // WebAssembly Memory Instructions
4
- export primitive load : (WasmI32, WasmI32) -> WasmI32 = "@wasm.load_int32"
5
- export primitive load8S : (WasmI32, WasmI32) -> WasmI32 = "@wasm.load_8_s_int32"
6
- export primitive load8U : (WasmI32, WasmI32) -> WasmI32 = "@wasm.load_8_u_int32"
7
- export primitive load16S : (WasmI32, WasmI32) -> WasmI32 = "@wasm.load_16_s_int32"
8
- export primitive load16U : (WasmI32, WasmI32) -> WasmI32 = "@wasm.load_16_u_int32"
9
- export primitive store : (WasmI32, WasmI32, WasmI32) -> Void = "@wasm.store_int32"
10
- export primitive store8 : (WasmI32, WasmI32, WasmI32) -> Void = "@wasm.store_8_int32"
11
- export primitive store16 : (WasmI32, WasmI32, WasmI32) -> Void = "@wasm.store_16_int32"
4
+ export primitive load: (WasmI32, WasmI32) -> WasmI32 = "@wasm.load_int32"
5
+ export primitive load8S: (WasmI32, WasmI32) -> WasmI32 = "@wasm.load_8_s_int32"
6
+ export primitive load8U: (WasmI32, WasmI32) -> WasmI32 = "@wasm.load_8_u_int32"
7
+ export primitive load16S: (
8
+ WasmI32,
9
+ WasmI32,
10
+ ) -> WasmI32 = "@wasm.load_16_s_int32"
11
+ export primitive load16U: (
12
+ WasmI32,
13
+ WasmI32,
14
+ ) -> WasmI32 = "@wasm.load_16_u_int32"
15
+ export primitive store: (
16
+ WasmI32,
17
+ WasmI32,
18
+ WasmI32,
19
+ ) -> Void = "@wasm.store_int32"
20
+ export primitive store8: (
21
+ WasmI32,
22
+ WasmI32,
23
+ WasmI32,
24
+ ) -> Void = "@wasm.store_8_int32"
25
+ export primitive store16: (
26
+ WasmI32,
27
+ WasmI32,
28
+ WasmI32,
29
+ ) -> Void = "@wasm.store_16_int32"
12
30
 
13
31
  // WebAssembly Unary Instructions
14
- export primitive clz : WasmI32 -> WasmI32 = "@wasm.clz_int32"
15
- export primitive ctz : WasmI32 -> WasmI32 = "@wasm.ctz_int32"
16
- export primitive popcnt : WasmI32 -> WasmI32 = "@wasm.popcnt_int32"
17
- export primitive eqz : WasmI32 -> Bool = "@wasm.eq_z_int32"
32
+ export primitive clz: WasmI32 -> WasmI32 = "@wasm.clz_int32"
33
+ export primitive ctz: WasmI32 -> WasmI32 = "@wasm.ctz_int32"
34
+ export primitive popcnt: WasmI32 -> WasmI32 = "@wasm.popcnt_int32"
35
+ export primitive eqz: WasmI32 -> Bool = "@wasm.eq_z_int32"
18
36
 
19
37
  // WebAssembly Binary Instructions
20
- export primitive add : (WasmI32, WasmI32) -> WasmI32 = "@wasm.add_int32"
21
- export primitive sub : (WasmI32, WasmI32) -> WasmI32 = "@wasm.sub_int32"
22
- export primitive mul : (WasmI32, WasmI32) -> WasmI32 = "@wasm.mul_int32"
23
- export primitive divS : (WasmI32, WasmI32) -> WasmI32 = "@wasm.div_s_int32"
24
- export primitive divU : (WasmI32, WasmI32) -> WasmI32 = "@wasm.div_u_int32"
25
- export primitive remS : (WasmI32, WasmI32) -> WasmI32 = "@wasm.rem_s_int32"
26
- export primitive remU : (WasmI32, WasmI32) -> WasmI32 = "@wasm.rem_u_int32"
27
- export primitive and : (WasmI32, WasmI32) -> WasmI32 = "@wasm.and_int32"
28
- export primitive or : (WasmI32, WasmI32) -> WasmI32 = "@wasm.or_int32"
29
- export primitive xor : (WasmI32, WasmI32) -> WasmI32 = "@wasm.xor_int32"
30
- export primitive shl : (WasmI32, WasmI32) -> WasmI32 = "@wasm.shl_int32"
31
- export primitive shrS : (WasmI32, WasmI32) -> WasmI32 = "@wasm.shr_s_int32"
32
- export primitive shrU : (WasmI32, WasmI32) -> WasmI32 = "@wasm.shr_u_int32"
33
- export primitive rotl : (WasmI32, WasmI32) -> WasmI32 = "@wasm.rot_l_int32"
34
- export primitive rotr : (WasmI32, WasmI32) -> WasmI32 = "@wasm.rot_r_int32"
35
- export primitive eq : (WasmI32, WasmI32) -> Bool = "@wasm.eq_int32"
36
- export primitive ne : (WasmI32, WasmI32) -> Bool = "@wasm.ne_int32"
37
- export primitive ltS : (WasmI32, WasmI32) -> Bool = "@wasm.lt_s_int32"
38
- export primitive ltU : (WasmI32, WasmI32) -> Bool = "@wasm.lt_u_int32"
39
- export primitive leS : (WasmI32, WasmI32) -> Bool = "@wasm.le_s_int32"
40
- export primitive leU : (WasmI32, WasmI32) -> Bool = "@wasm.le_u_int32"
41
- export primitive gtS : (WasmI32, WasmI32) -> Bool = "@wasm.gt_s_int32"
42
- export primitive gtU : (WasmI32, WasmI32) -> Bool = "@wasm.gt_u_int32"
43
- export primitive geS : (WasmI32, WasmI32) -> Bool = "@wasm.ge_s_int32"
44
- export primitive geU : (WasmI32, WasmI32) -> Bool = "@wasm.ge_u_int32"
38
+ export primitive add: (WasmI32, WasmI32) -> WasmI32 = "@wasm.add_int32"
39
+ export primitive sub: (WasmI32, WasmI32) -> WasmI32 = "@wasm.sub_int32"
40
+ export primitive mul: (WasmI32, WasmI32) -> WasmI32 = "@wasm.mul_int32"
41
+ export primitive divS: (WasmI32, WasmI32) -> WasmI32 = "@wasm.div_s_int32"
42
+ export primitive divU: (WasmI32, WasmI32) -> WasmI32 = "@wasm.div_u_int32"
43
+ export primitive remS: (WasmI32, WasmI32) -> WasmI32 = "@wasm.rem_s_int32"
44
+ export primitive remU: (WasmI32, WasmI32) -> WasmI32 = "@wasm.rem_u_int32"
45
+ export primitive and: (WasmI32, WasmI32) -> WasmI32 = "@wasm.and_int32"
46
+ export primitive or: (WasmI32, WasmI32) -> WasmI32 = "@wasm.or_int32"
47
+ export primitive xor: (WasmI32, WasmI32) -> WasmI32 = "@wasm.xor_int32"
48
+ export primitive shl: (WasmI32, WasmI32) -> WasmI32 = "@wasm.shl_int32"
49
+ export primitive shrS: (WasmI32, WasmI32) -> WasmI32 = "@wasm.shr_s_int32"
50
+ export primitive shrU: (WasmI32, WasmI32) -> WasmI32 = "@wasm.shr_u_int32"
51
+ export primitive rotl: (WasmI32, WasmI32) -> WasmI32 = "@wasm.rot_l_int32"
52
+ export primitive rotr: (WasmI32, WasmI32) -> WasmI32 = "@wasm.rot_r_int32"
53
+ export primitive eq: (WasmI32, WasmI32) -> Bool = "@wasm.eq_int32"
54
+ export primitive ne: (WasmI32, WasmI32) -> Bool = "@wasm.ne_int32"
55
+ export primitive ltS: (WasmI32, WasmI32) -> Bool = "@wasm.lt_s_int32"
56
+ export primitive ltU: (WasmI32, WasmI32) -> Bool = "@wasm.lt_u_int32"
57
+ export primitive leS: (WasmI32, WasmI32) -> Bool = "@wasm.le_s_int32"
58
+ export primitive leU: (WasmI32, WasmI32) -> Bool = "@wasm.le_u_int32"
59
+ export primitive gtS: (WasmI32, WasmI32) -> Bool = "@wasm.gt_s_int32"
60
+ export primitive gtU: (WasmI32, WasmI32) -> Bool = "@wasm.gt_u_int32"
61
+ export primitive geS: (WasmI32, WasmI32) -> Bool = "@wasm.ge_s_int32"
62
+ export primitive geU: (WasmI32, WasmI32) -> Bool = "@wasm.ge_u_int32"
45
63
 
46
64
  // WebAssembly Conversion Instructions
47
- export primitive wrapI64 : WasmI64 -> WasmI32 = "@wasm.wrap_int64"
48
- export primitive truncF32S : WasmF32 -> WasmI32 = "@wasm.trunc_s_float32_to_int32"
49
- export primitive truncF32U : WasmF32 -> WasmI32 = "@wasm.trunc_u_float32_to_int32"
50
- export primitive truncF64S : WasmF64 -> WasmI32 = "@wasm.trunc_s_float64_to_int32"
51
- export primitive truncF64U : WasmF64 -> WasmI32 = "@wasm.trunc_u_float64_to_int32"
52
- export primitive reinterpretF32 : WasmF32 -> WasmI32 = "@wasm.reinterpret_float32"
53
- export primitive extendS8 : WasmI32 -> WasmI32 = "@wasm.extend_s8_int32"
54
- export primitive extendS16 : WasmI32 -> WasmI32 = "@wasm.extend_s16_int32"
65
+ export primitive wrapI64: WasmI64 -> WasmI32 = "@wasm.wrap_int64"
66
+ export primitive truncF32S: WasmF32 -> WasmI32 = "@wasm.trunc_s_float32_to_int32"
67
+ export primitive truncF32U: WasmF32 -> WasmI32 = "@wasm.trunc_u_float32_to_int32"
68
+ export primitive truncF64S: WasmF64 -> WasmI32 = "@wasm.trunc_s_float64_to_int32"
69
+ export primitive truncF64U: WasmF64 -> WasmI32 = "@wasm.trunc_u_float64_to_int32"
70
+ export primitive reinterpretF32: WasmF32 -> WasmI32 = "@wasm.reinterpret_float32"
71
+ export primitive extendS8: WasmI32 -> WasmI32 = "@wasm.extend_s8_int32"
72
+ export primitive extendS16: WasmI32 -> WasmI32 = "@wasm.extend_s16_int32"
55
73
 
56
74
  // Grain Conversions
57
- export primitive fromGrain : a -> WasmI32 = "@wasm.fromGrain"
58
- export primitive toGrain : WasmI32 -> a = "@wasm.toGrain"
75
+ export primitive fromGrain: a -> WasmI32 = "@wasm.fromGrain"
76
+ export primitive toGrain: WasmI32 -> a = "@wasm.toGrain"
@@ -0,0 +1,282 @@
1
+ ### Wasmi32.**load**
2
+
3
+ ```grain
4
+ load : (WasmI32, WasmI32) -> WasmI32
5
+ ```
6
+
7
+ ### Wasmi32.**load8S**
8
+
9
+ ```grain
10
+ load8S : (WasmI32, WasmI32) -> WasmI32
11
+ ```
12
+
13
+ ### Wasmi32.**load8U**
14
+
15
+ ```grain
16
+ load8U : (WasmI32, WasmI32) -> WasmI32
17
+ ```
18
+
19
+ ### Wasmi32.**load16S**
20
+
21
+ ```grain
22
+ load16S : (WasmI32, WasmI32) -> WasmI32
23
+ ```
24
+
25
+ ### Wasmi32.**load16U**
26
+
27
+ ```grain
28
+ load16U : (WasmI32, WasmI32) -> WasmI32
29
+ ```
30
+
31
+ ### Wasmi32.**store**
32
+
33
+ ```grain
34
+ store : (WasmI32, WasmI32, WasmI32) -> Void
35
+ ```
36
+
37
+ ### Wasmi32.**store8**
38
+
39
+ ```grain
40
+ store8 : (WasmI32, WasmI32, WasmI32) -> Void
41
+ ```
42
+
43
+ ### Wasmi32.**store16**
44
+
45
+ ```grain
46
+ store16 : (WasmI32, WasmI32, WasmI32) -> Void
47
+ ```
48
+
49
+ ### Wasmi32.**clz**
50
+
51
+ ```grain
52
+ clz : WasmI32 -> WasmI32
53
+ ```
54
+
55
+ ### Wasmi32.**ctz**
56
+
57
+ ```grain
58
+ ctz : WasmI32 -> WasmI32
59
+ ```
60
+
61
+ ### Wasmi32.**popcnt**
62
+
63
+ ```grain
64
+ popcnt : WasmI32 -> WasmI32
65
+ ```
66
+
67
+ ### Wasmi32.**eqz**
68
+
69
+ ```grain
70
+ eqz : WasmI32 -> Bool
71
+ ```
72
+
73
+ ### Wasmi32.**add**
74
+
75
+ ```grain
76
+ add : (WasmI32, WasmI32) -> WasmI32
77
+ ```
78
+
79
+ ### Wasmi32.**sub**
80
+
81
+ ```grain
82
+ sub : (WasmI32, WasmI32) -> WasmI32
83
+ ```
84
+
85
+ ### Wasmi32.**mul**
86
+
87
+ ```grain
88
+ mul : (WasmI32, WasmI32) -> WasmI32
89
+ ```
90
+
91
+ ### Wasmi32.**divS**
92
+
93
+ ```grain
94
+ divS : (WasmI32, WasmI32) -> WasmI32
95
+ ```
96
+
97
+ ### Wasmi32.**divU**
98
+
99
+ ```grain
100
+ divU : (WasmI32, WasmI32) -> WasmI32
101
+ ```
102
+
103
+ ### Wasmi32.**remS**
104
+
105
+ ```grain
106
+ remS : (WasmI32, WasmI32) -> WasmI32
107
+ ```
108
+
109
+ ### Wasmi32.**remU**
110
+
111
+ ```grain
112
+ remU : (WasmI32, WasmI32) -> WasmI32
113
+ ```
114
+
115
+ ### Wasmi32.**and**
116
+
117
+ ```grain
118
+ and : (WasmI32, WasmI32) -> WasmI32
119
+ ```
120
+
121
+ ### Wasmi32.**or**
122
+
123
+ ```grain
124
+ or : (WasmI32, WasmI32) -> WasmI32
125
+ ```
126
+
127
+ ### Wasmi32.**xor**
128
+
129
+ ```grain
130
+ xor : (WasmI32, WasmI32) -> WasmI32
131
+ ```
132
+
133
+ ### Wasmi32.**shl**
134
+
135
+ ```grain
136
+ shl : (WasmI32, WasmI32) -> WasmI32
137
+ ```
138
+
139
+ ### Wasmi32.**shrS**
140
+
141
+ ```grain
142
+ shrS : (WasmI32, WasmI32) -> WasmI32
143
+ ```
144
+
145
+ ### Wasmi32.**shrU**
146
+
147
+ ```grain
148
+ shrU : (WasmI32, WasmI32) -> WasmI32
149
+ ```
150
+
151
+ ### Wasmi32.**rotl**
152
+
153
+ ```grain
154
+ rotl : (WasmI32, WasmI32) -> WasmI32
155
+ ```
156
+
157
+ ### Wasmi32.**rotr**
158
+
159
+ ```grain
160
+ rotr : (WasmI32, WasmI32) -> WasmI32
161
+ ```
162
+
163
+ ### Wasmi32.**eq**
164
+
165
+ ```grain
166
+ eq : (WasmI32, WasmI32) -> Bool
167
+ ```
168
+
169
+ ### Wasmi32.**ne**
170
+
171
+ ```grain
172
+ ne : (WasmI32, WasmI32) -> Bool
173
+ ```
174
+
175
+ ### Wasmi32.**ltS**
176
+
177
+ ```grain
178
+ ltS : (WasmI32, WasmI32) -> Bool
179
+ ```
180
+
181
+ ### Wasmi32.**ltU**
182
+
183
+ ```grain
184
+ ltU : (WasmI32, WasmI32) -> Bool
185
+ ```
186
+
187
+ ### Wasmi32.**leS**
188
+
189
+ ```grain
190
+ leS : (WasmI32, WasmI32) -> Bool
191
+ ```
192
+
193
+ ### Wasmi32.**leU**
194
+
195
+ ```grain
196
+ leU : (WasmI32, WasmI32) -> Bool
197
+ ```
198
+
199
+ ### Wasmi32.**gtS**
200
+
201
+ ```grain
202
+ gtS : (WasmI32, WasmI32) -> Bool
203
+ ```
204
+
205
+ ### Wasmi32.**gtU**
206
+
207
+ ```grain
208
+ gtU : (WasmI32, WasmI32) -> Bool
209
+ ```
210
+
211
+ ### Wasmi32.**geS**
212
+
213
+ ```grain
214
+ geS : (WasmI32, WasmI32) -> Bool
215
+ ```
216
+
217
+ ### Wasmi32.**geU**
218
+
219
+ ```grain
220
+ geU : (WasmI32, WasmI32) -> Bool
221
+ ```
222
+
223
+ ### Wasmi32.**wrapI64**
224
+
225
+ ```grain
226
+ wrapI64 : WasmI64 -> WasmI32
227
+ ```
228
+
229
+ ### Wasmi32.**truncF32S**
230
+
231
+ ```grain
232
+ truncF32S : WasmF32 -> WasmI32
233
+ ```
234
+
235
+ ### Wasmi32.**truncF32U**
236
+
237
+ ```grain
238
+ truncF32U : WasmF32 -> WasmI32
239
+ ```
240
+
241
+ ### Wasmi32.**truncF64S**
242
+
243
+ ```grain
244
+ truncF64S : WasmF64 -> WasmI32
245
+ ```
246
+
247
+ ### Wasmi32.**truncF64U**
248
+
249
+ ```grain
250
+ truncF64U : WasmF64 -> WasmI32
251
+ ```
252
+
253
+ ### Wasmi32.**reinterpretF32**
254
+
255
+ ```grain
256
+ reinterpretF32 : WasmF32 -> WasmI32
257
+ ```
258
+
259
+ ### Wasmi32.**extendS8**
260
+
261
+ ```grain
262
+ extendS8 : WasmI32 -> WasmI32
263
+ ```
264
+
265
+ ### Wasmi32.**extendS16**
266
+
267
+ ```grain
268
+ extendS16 : WasmI32 -> WasmI32
269
+ ```
270
+
271
+ ### Wasmi32.**fromGrain**
272
+
273
+ ```grain
274
+ fromGrain : a -> WasmI32
275
+ ```
276
+
277
+ ### Wasmi32.**toGrain**
278
+
279
+ ```grain
280
+ toGrain : WasmI32 -> a
281
+ ```
282
+
@@ -1,59 +1,87 @@
1
1
  /* grainc-flags --compilation-mode=runtime */
2
2
 
3
3
  // WebAssembly Memory Instructions
4
- export primitive load : (WasmI32, WasmI32) -> WasmI64 = "@wasm.load_int64"
5
- export primitive load8S : (WasmI32, WasmI32) -> WasmI64 = "@wasm.load_8_s_int64"
6
- export primitive load8U : (WasmI32, WasmI32) -> WasmI64 = "@wasm.load_8_u_int64"
7
- export primitive load16S : (WasmI32, WasmI32) -> WasmI64 = "@wasm.load_16_s_int64"
8
- export primitive load16U : (WasmI32, WasmI32) -> WasmI64 = "@wasm.load_16_u_int64"
9
- export primitive load32S : (WasmI32, WasmI32) -> WasmI64 = "@wasm.load_32_s_int64"
10
- export primitive load32U : (WasmI32, WasmI32) -> WasmI64 = "@wasm.load_32_u_int64"
11
- export primitive store : (WasmI32, WasmI64, WasmI32) -> Void = "@wasm.store_int64"
12
- export primitive store8 : (WasmI32, WasmI64, WasmI32) -> Void = "@wasm.store_8_int64"
13
- export primitive store16 : (WasmI32, WasmI64, WasmI32) -> Void = "@wasm.store_16_int64"
14
- export primitive store32 : (WasmI32, WasmI64, WasmI32) -> Void = "@wasm.store_32_int64"
4
+ export primitive load: (WasmI32, WasmI32) -> WasmI64 = "@wasm.load_int64"
5
+ export primitive load8S: (WasmI32, WasmI32) -> WasmI64 = "@wasm.load_8_s_int64"
6
+ export primitive load8U: (WasmI32, WasmI32) -> WasmI64 = "@wasm.load_8_u_int64"
7
+ export primitive load16S: (
8
+ WasmI32,
9
+ WasmI32,
10
+ ) -> WasmI64 = "@wasm.load_16_s_int64"
11
+ export primitive load16U: (
12
+ WasmI32,
13
+ WasmI32,
14
+ ) -> WasmI64 = "@wasm.load_16_u_int64"
15
+ export primitive load32S: (
16
+ WasmI32,
17
+ WasmI32,
18
+ ) -> WasmI64 = "@wasm.load_32_s_int64"
19
+ export primitive load32U: (
20
+ WasmI32,
21
+ WasmI32,
22
+ ) -> WasmI64 = "@wasm.load_32_u_int64"
23
+ export primitive store: (
24
+ WasmI32,
25
+ WasmI64,
26
+ WasmI32,
27
+ ) -> Void = "@wasm.store_int64"
28
+ export primitive store8: (
29
+ WasmI32,
30
+ WasmI64,
31
+ WasmI32,
32
+ ) -> Void = "@wasm.store_8_int64"
33
+ export primitive store16: (
34
+ WasmI32,
35
+ WasmI64,
36
+ WasmI32,
37
+ ) -> Void = "@wasm.store_16_int64"
38
+ export primitive store32: (
39
+ WasmI32,
40
+ WasmI64,
41
+ WasmI32,
42
+ ) -> Void = "@wasm.store_32_int64"
15
43
 
16
44
  // WebAssembly Unary Instructions
17
- export primitive clz : WasmI64 -> WasmI64 = "@wasm.clz_int64"
18
- export primitive ctz : WasmI64 -> WasmI64 = "@wasm.ctz_int64"
19
- export primitive popcnt : WasmI64 -> WasmI64 = "@wasm.popcnt_int64"
20
- export primitive eqz : WasmI64 -> Bool = "@wasm.eq_z_int64"
45
+ export primitive clz: WasmI64 -> WasmI64 = "@wasm.clz_int64"
46
+ export primitive ctz: WasmI64 -> WasmI64 = "@wasm.ctz_int64"
47
+ export primitive popcnt: WasmI64 -> WasmI64 = "@wasm.popcnt_int64"
48
+ export primitive eqz: WasmI64 -> Bool = "@wasm.eq_z_int64"
21
49
 
22
50
  // WebAssembly Binary Instructions
23
- export primitive add : (WasmI64, WasmI64) -> WasmI64 = "@wasm.add_int64"
24
- export primitive sub : (WasmI64, WasmI64) -> WasmI64 = "@wasm.sub_int64"
25
- export primitive mul : (WasmI64, WasmI64) -> WasmI64 = "@wasm.mul_int64"
26
- export primitive divS : (WasmI64, WasmI64) -> WasmI64 = "@wasm.div_s_int64"
27
- export primitive divU : (WasmI64, WasmI64) -> WasmI64 = "@wasm.div_u_int64"
28
- export primitive remS : (WasmI64, WasmI64) -> WasmI64 = "@wasm.rem_s_int64"
29
- export primitive remU : (WasmI64, WasmI64) -> WasmI64 = "@wasm.rem_u_int64"
30
- export primitive and : (WasmI64, WasmI64) -> WasmI64 = "@wasm.and_int64"
31
- export primitive or : (WasmI64, WasmI64) -> WasmI64 = "@wasm.or_int64"
32
- export primitive xor : (WasmI64, WasmI64) -> WasmI64 = "@wasm.xor_int64"
33
- export primitive shl : (WasmI64, WasmI64) -> WasmI64 = "@wasm.shl_int64"
34
- export primitive shrU : (WasmI64, WasmI64) -> WasmI64 = "@wasm.shr_u_int64"
35
- export primitive shrS : (WasmI64, WasmI64) -> WasmI64 = "@wasm.shr_s_int64"
36
- export primitive rotl : (WasmI64, WasmI64) -> WasmI64 = "@wasm.rot_l_int64"
37
- export primitive rotr : (WasmI64, WasmI64) -> WasmI64 = "@wasm.rot_r_int64"
38
- export primitive eq : (WasmI64, WasmI64) -> Bool = "@wasm.eq_int64"
39
- export primitive ne : (WasmI64, WasmI64) -> Bool = "@wasm.ne_int64"
40
- export primitive ltS : (WasmI64, WasmI64) -> Bool = "@wasm.lt_s_int64"
41
- export primitive ltU : (WasmI64, WasmI64) -> Bool = "@wasm.lt_u_int64"
42
- export primitive leS : (WasmI64, WasmI64) -> Bool = "@wasm.le_s_int64"
43
- export primitive leU : (WasmI64, WasmI64) -> Bool = "@wasm.le_u_int64"
44
- export primitive gtS : (WasmI64, WasmI64) -> Bool = "@wasm.gt_s_int64"
45
- export primitive gtU : (WasmI64, WasmI64) -> Bool = "@wasm.gt_u_int64"
46
- export primitive geS : (WasmI64, WasmI64) -> Bool = "@wasm.ge_s_int64"
47
- export primitive geU : (WasmI64, WasmI64) -> Bool = "@wasm.ge_u_int64"
51
+ export primitive add: (WasmI64, WasmI64) -> WasmI64 = "@wasm.add_int64"
52
+ export primitive sub: (WasmI64, WasmI64) -> WasmI64 = "@wasm.sub_int64"
53
+ export primitive mul: (WasmI64, WasmI64) -> WasmI64 = "@wasm.mul_int64"
54
+ export primitive divS: (WasmI64, WasmI64) -> WasmI64 = "@wasm.div_s_int64"
55
+ export primitive divU: (WasmI64, WasmI64) -> WasmI64 = "@wasm.div_u_int64"
56
+ export primitive remS: (WasmI64, WasmI64) -> WasmI64 = "@wasm.rem_s_int64"
57
+ export primitive remU: (WasmI64, WasmI64) -> WasmI64 = "@wasm.rem_u_int64"
58
+ export primitive and: (WasmI64, WasmI64) -> WasmI64 = "@wasm.and_int64"
59
+ export primitive or: (WasmI64, WasmI64) -> WasmI64 = "@wasm.or_int64"
60
+ export primitive xor: (WasmI64, WasmI64) -> WasmI64 = "@wasm.xor_int64"
61
+ export primitive shl: (WasmI64, WasmI64) -> WasmI64 = "@wasm.shl_int64"
62
+ export primitive shrU: (WasmI64, WasmI64) -> WasmI64 = "@wasm.shr_u_int64"
63
+ export primitive shrS: (WasmI64, WasmI64) -> WasmI64 = "@wasm.shr_s_int64"
64
+ export primitive rotl: (WasmI64, WasmI64) -> WasmI64 = "@wasm.rot_l_int64"
65
+ export primitive rotr: (WasmI64, WasmI64) -> WasmI64 = "@wasm.rot_r_int64"
66
+ export primitive eq: (WasmI64, WasmI64) -> Bool = "@wasm.eq_int64"
67
+ export primitive ne: (WasmI64, WasmI64) -> Bool = "@wasm.ne_int64"
68
+ export primitive ltS: (WasmI64, WasmI64) -> Bool = "@wasm.lt_s_int64"
69
+ export primitive ltU: (WasmI64, WasmI64) -> Bool = "@wasm.lt_u_int64"
70
+ export primitive leS: (WasmI64, WasmI64) -> Bool = "@wasm.le_s_int64"
71
+ export primitive leU: (WasmI64, WasmI64) -> Bool = "@wasm.le_u_int64"
72
+ export primitive gtS: (WasmI64, WasmI64) -> Bool = "@wasm.gt_s_int64"
73
+ export primitive gtU: (WasmI64, WasmI64) -> Bool = "@wasm.gt_u_int64"
74
+ export primitive geS: (WasmI64, WasmI64) -> Bool = "@wasm.ge_s_int64"
75
+ export primitive geU: (WasmI64, WasmI64) -> Bool = "@wasm.ge_u_int64"
48
76
 
49
77
  // WebAssembly Conversion instructions
50
- export primitive extendI32S : WasmI32 -> WasmI64 = "@wasm.extend_s_int32"
51
- export primitive extendI32U : WasmI32 -> WasmI64 = "@wasm.extend_u_int32"
52
- export primitive truncF32S : WasmF32 -> WasmI64 = "@wasm.trunc_s_float32_to_int64"
53
- export primitive truncF32U : WasmF32 -> WasmI64 = "@wasm.trunc_u_float32_to_int64"
54
- export primitive truncF64S : WasmF64 -> WasmI64 = "@wasm.trunc_s_float64_to_int64"
55
- export primitive truncF64U : WasmF64 -> WasmI64 = "@wasm.trunc_u_float64_to_int64"
56
- export primitive reinterpretF64 : WasmF64 -> WasmI64 = "@wasm.reinterpret_float64"
57
- export primitive extendS8 : WasmI64 -> WasmI64 = "@wasm.extend_s8_int64"
58
- export primitive extendS16 : WasmI64 -> WasmI64 = "@wasm.extend_s16_int64"
59
- export primitive extendS32 : WasmI64 -> WasmI64 = "@wasm.extend_s32_int64"
78
+ export primitive extendI32S: WasmI32 -> WasmI64 = "@wasm.extend_s_int32"
79
+ export primitive extendI32U: WasmI32 -> WasmI64 = "@wasm.extend_u_int32"
80
+ export primitive truncF32S: WasmF32 -> WasmI64 = "@wasm.trunc_s_float32_to_int64"
81
+ export primitive truncF32U: WasmF32 -> WasmI64 = "@wasm.trunc_u_float32_to_int64"
82
+ export primitive truncF64S: WasmF64 -> WasmI64 = "@wasm.trunc_s_float64_to_int64"
83
+ export primitive truncF64U: WasmF64 -> WasmI64 = "@wasm.trunc_u_float64_to_int64"
84
+ export primitive reinterpretF64: WasmF64 -> WasmI64 = "@wasm.reinterpret_float64"
85
+ export primitive extendS8: WasmI64 -> WasmI64 = "@wasm.extend_s8_int64"
86
+ export primitive extendS16: WasmI64 -> WasmI64 = "@wasm.extend_s16_int64"
87
+ export primitive extendS32: WasmI64 -> WasmI64 = "@wasm.extend_s32_int64"