@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.
- package/CHANGELOG.md +87 -0
- package/LICENSE +1 -1
- package/array.gr +92 -73
- package/array.md +18 -18
- package/bigint.gr +497 -0
- package/bigint.md +811 -0
- package/buffer.gr +56 -217
- package/buffer.md +24 -17
- package/bytes.gr +103 -205
- package/bytes.md +19 -0
- package/char.gr +152 -166
- package/char.md +200 -0
- package/exception.md +6 -0
- package/float32.gr +159 -82
- package/float32.md +315 -0
- package/float64.gr +163 -82
- package/float64.md +315 -0
- package/hash.gr +53 -49
- package/int32.gr +479 -230
- package/int32.md +937 -0
- package/int64.gr +479 -230
- package/int64.md +937 -0
- package/list.gr +530 -116
- package/list.md +1141 -0
- package/map.gr +302 -121
- package/map.md +525 -0
- package/number.gr +51 -57
- package/number.md +37 -3
- package/option.gr +25 -25
- package/option.md +1 -1
- package/package.json +3 -3
- package/pervasives.gr +504 -52
- package/pervasives.md +1116 -0
- package/queue.gr +8 -1
- package/queue.md +10 -0
- package/random.gr +196 -0
- package/random.md +179 -0
- package/range.gr +26 -26
- package/regex.gr +1833 -842
- package/regex.md +11 -11
- package/result.md +1 -1
- package/runtime/bigint.gr +2045 -0
- package/runtime/bigint.md +326 -0
- package/runtime/dataStructures.gr +99 -279
- package/runtime/dataStructures.md +391 -0
- package/runtime/debug.gr +0 -1
- package/runtime/debug.md +6 -0
- package/runtime/equal.gr +40 -37
- package/runtime/equal.md +6 -0
- package/runtime/exception.gr +28 -15
- package/runtime/exception.md +30 -0
- package/runtime/gc.gr +50 -20
- package/runtime/gc.md +36 -0
- package/runtime/malloc.gr +32 -22
- package/runtime/malloc.md +55 -0
- package/runtime/numberUtils.gr +297 -142
- package/runtime/numberUtils.md +54 -0
- package/runtime/numbers.gr +1204 -453
- package/runtime/numbers.md +300 -0
- package/runtime/string.gr +193 -228
- package/runtime/string.md +24 -0
- package/runtime/stringUtils.gr +62 -38
- package/runtime/stringUtils.md +6 -0
- package/runtime/unsafe/constants.gr +17 -0
- package/runtime/unsafe/constants.md +72 -0
- package/runtime/unsafe/conv.gr +10 -10
- package/runtime/unsafe/conv.md +71 -0
- package/runtime/unsafe/errors.md +204 -0
- package/runtime/unsafe/memory.gr +14 -3
- package/runtime/unsafe/memory.md +54 -0
- package/runtime/unsafe/printWasm.gr +4 -4
- package/runtime/unsafe/printWasm.md +24 -0
- package/runtime/unsafe/tags.gr +11 -10
- package/runtime/unsafe/tags.md +120 -0
- package/runtime/unsafe/wasmf32.gr +9 -2
- package/runtime/unsafe/wasmf32.md +168 -0
- package/runtime/unsafe/wasmf64.gr +9 -2
- package/runtime/unsafe/wasmf64.md +168 -0
- package/runtime/unsafe/wasmi32.gr +65 -47
- package/runtime/unsafe/wasmi32.md +282 -0
- package/runtime/unsafe/wasmi64.gr +78 -50
- package/runtime/unsafe/wasmi64.md +300 -0
- package/runtime/utils/printing.gr +62 -0
- package/runtime/utils/printing.md +18 -0
- package/runtime/wasi.gr +200 -46
- package/runtime/wasi.md +839 -0
- package/set.gr +125 -121
- package/set.md +24 -21
- package/stack.gr +29 -29
- package/stack.md +4 -6
- package/string.gr +434 -415
- package/string.md +3 -3
- package/sys/file.gr +477 -482
- package/sys/process.gr +33 -47
- package/sys/random.gr +48 -20
- package/sys/random.md +38 -0
- package/sys/time.gr +12 -28
|
@@ -5,7 +5,7 @@ import Memory from "runtime/unsafe/memory"
|
|
|
5
5
|
// [FIXME] These all leak ATM (grain-lang/grain#791)
|
|
6
6
|
|
|
7
7
|
@disableGC
|
|
8
|
-
export let printI32 =
|
|
8
|
+
export let printI32 = val => {
|
|
9
9
|
Memory.incRef(WasmI32.fromGrain(print))
|
|
10
10
|
Memory.incRef(WasmI32.fromGrain(toString))
|
|
11
11
|
let conv = Conv.toInt32(val)
|
|
@@ -23,7 +23,7 @@ export let printI32 = (val) => {
|
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
@disableGC
|
|
26
|
-
export let printI64 =
|
|
26
|
+
export let printI64 = val => {
|
|
27
27
|
Memory.incRef(WasmI32.fromGrain(print))
|
|
28
28
|
Memory.incRef(WasmI32.fromGrain(toString))
|
|
29
29
|
let conv = Conv.toInt64(val)
|
|
@@ -41,7 +41,7 @@ export let printI64 = (val) => {
|
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
@disableGC
|
|
44
|
-
export let printF32 =
|
|
44
|
+
export let printF32 = val => {
|
|
45
45
|
Memory.incRef(WasmI32.fromGrain(print))
|
|
46
46
|
Memory.incRef(WasmI32.fromGrain(toString))
|
|
47
47
|
let conv = Conv.toFloat32(val)
|
|
@@ -59,7 +59,7 @@ export let printF32 = (val) => {
|
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
@disableGC
|
|
62
|
-
export let printF64 =
|
|
62
|
+
export let printF64 = val => {
|
|
63
63
|
Memory.incRef(WasmI32.fromGrain(print))
|
|
64
64
|
Memory.incRef(WasmI32.fromGrain(toString))
|
|
65
65
|
let conv = Conv.toFloat64(val)
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
### PrintWasm.**printI32**
|
|
2
|
+
|
|
3
|
+
```grain
|
|
4
|
+
printI32 : WasmI32 -> Void
|
|
5
|
+
```
|
|
6
|
+
|
|
7
|
+
### PrintWasm.**printI64**
|
|
8
|
+
|
|
9
|
+
```grain
|
|
10
|
+
printI64 : WasmI64 -> Void
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
### PrintWasm.**printF32**
|
|
14
|
+
|
|
15
|
+
```grain
|
|
16
|
+
printF32 : WasmF32 -> Void
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### PrintWasm.**printF64**
|
|
20
|
+
|
|
21
|
+
```grain
|
|
22
|
+
printF64 : WasmF64 -> Void
|
|
23
|
+
```
|
|
24
|
+
|
package/runtime/unsafe/tags.gr
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
/* grainc-flags --compilation-mode=runtime */
|
|
2
2
|
|
|
3
|
-
export let _GRAIN_NUMBER_TAG_TYPE
|
|
4
|
-
export let
|
|
3
|
+
export let _GRAIN_NUMBER_TAG_TYPE = 0b0001n
|
|
4
|
+
export let _GRAIN_CHAR_TAG_TYPE = 0b0010n
|
|
5
|
+
export let _GRAIN_CONST_TAG_TYPE = 0b0110n
|
|
5
6
|
export let _GRAIN_GENERIC_HEAP_TAG_TYPE = 0b0000n
|
|
6
7
|
|
|
7
8
|
export let _GRAIN_NUMBER_TAG_MASK = 0b0001n
|
|
8
9
|
export let _GRAIN_GENERIC_TAG_MASK = 0b0111n
|
|
9
10
|
|
|
10
11
|
export let _GRAIN_STRING_HEAP_TAG = 1n
|
|
11
|
-
export let
|
|
12
|
-
export let
|
|
13
|
-
export let
|
|
14
|
-
export let
|
|
15
|
-
export let
|
|
16
|
-
export let
|
|
17
|
-
export let
|
|
18
|
-
export let _GRAIN_BYTES_HEAP_TAG = 9n
|
|
12
|
+
export let _GRAIN_ADT_HEAP_TAG = 2n
|
|
13
|
+
export let _GRAIN_RECORD_HEAP_TAG = 3n
|
|
14
|
+
export let _GRAIN_ARRAY_HEAP_TAG = 4n
|
|
15
|
+
export let _GRAIN_BOXED_NUM_HEAP_TAG = 5n
|
|
16
|
+
export let _GRAIN_LAMBDA_HEAP_TAG = 6n
|
|
17
|
+
export let _GRAIN_TUPLE_HEAP_TAG = 7n
|
|
18
|
+
export let _GRAIN_BYTES_HEAP_TAG = 8n
|
|
19
19
|
|
|
20
20
|
// Boxed number types
|
|
21
21
|
export let _GRAIN_FLOAT32_BOXED_NUM_TAG = 1n
|
|
@@ -23,3 +23,4 @@ export let _GRAIN_FLOAT64_BOXED_NUM_TAG = 2n
|
|
|
23
23
|
export let _GRAIN_INT32_BOXED_NUM_TAG = 3n
|
|
24
24
|
export let _GRAIN_INT64_BOXED_NUM_TAG = 4n
|
|
25
25
|
export let _GRAIN_RATIONAL_BOXED_NUM_TAG = 5n
|
|
26
|
+
export let _GRAIN_BIGINT_BOXED_NUM_TAG = 6n
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
### Tags.**_GRAIN_NUMBER_TAG_TYPE**
|
|
2
|
+
|
|
3
|
+
```grain
|
|
4
|
+
_GRAIN_NUMBER_TAG_TYPE : WasmI32
|
|
5
|
+
```
|
|
6
|
+
|
|
7
|
+
### Tags.**_GRAIN_CHAR_TAG_TYPE**
|
|
8
|
+
|
|
9
|
+
```grain
|
|
10
|
+
_GRAIN_CHAR_TAG_TYPE : WasmI32
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
### Tags.**_GRAIN_CONST_TAG_TYPE**
|
|
14
|
+
|
|
15
|
+
```grain
|
|
16
|
+
_GRAIN_CONST_TAG_TYPE : WasmI32
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### Tags.**_GRAIN_GENERIC_HEAP_TAG_TYPE**
|
|
20
|
+
|
|
21
|
+
```grain
|
|
22
|
+
_GRAIN_GENERIC_HEAP_TAG_TYPE : WasmI32
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### Tags.**_GRAIN_NUMBER_TAG_MASK**
|
|
26
|
+
|
|
27
|
+
```grain
|
|
28
|
+
_GRAIN_NUMBER_TAG_MASK : WasmI32
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### Tags.**_GRAIN_GENERIC_TAG_MASK**
|
|
32
|
+
|
|
33
|
+
```grain
|
|
34
|
+
_GRAIN_GENERIC_TAG_MASK : WasmI32
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Tags.**_GRAIN_STRING_HEAP_TAG**
|
|
38
|
+
|
|
39
|
+
```grain
|
|
40
|
+
_GRAIN_STRING_HEAP_TAG : WasmI32
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### Tags.**_GRAIN_ADT_HEAP_TAG**
|
|
44
|
+
|
|
45
|
+
```grain
|
|
46
|
+
_GRAIN_ADT_HEAP_TAG : WasmI32
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### Tags.**_GRAIN_RECORD_HEAP_TAG**
|
|
50
|
+
|
|
51
|
+
```grain
|
|
52
|
+
_GRAIN_RECORD_HEAP_TAG : WasmI32
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### Tags.**_GRAIN_ARRAY_HEAP_TAG**
|
|
56
|
+
|
|
57
|
+
```grain
|
|
58
|
+
_GRAIN_ARRAY_HEAP_TAG : WasmI32
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Tags.**_GRAIN_BOXED_NUM_HEAP_TAG**
|
|
62
|
+
|
|
63
|
+
```grain
|
|
64
|
+
_GRAIN_BOXED_NUM_HEAP_TAG : WasmI32
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Tags.**_GRAIN_LAMBDA_HEAP_TAG**
|
|
68
|
+
|
|
69
|
+
```grain
|
|
70
|
+
_GRAIN_LAMBDA_HEAP_TAG : WasmI32
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Tags.**_GRAIN_TUPLE_HEAP_TAG**
|
|
74
|
+
|
|
75
|
+
```grain
|
|
76
|
+
_GRAIN_TUPLE_HEAP_TAG : WasmI32
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### Tags.**_GRAIN_BYTES_HEAP_TAG**
|
|
80
|
+
|
|
81
|
+
```grain
|
|
82
|
+
_GRAIN_BYTES_HEAP_TAG : WasmI32
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Tags.**_GRAIN_FLOAT32_BOXED_NUM_TAG**
|
|
86
|
+
|
|
87
|
+
```grain
|
|
88
|
+
_GRAIN_FLOAT32_BOXED_NUM_TAG : WasmI32
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### Tags.**_GRAIN_FLOAT64_BOXED_NUM_TAG**
|
|
92
|
+
|
|
93
|
+
```grain
|
|
94
|
+
_GRAIN_FLOAT64_BOXED_NUM_TAG : WasmI32
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### Tags.**_GRAIN_INT32_BOXED_NUM_TAG**
|
|
98
|
+
|
|
99
|
+
```grain
|
|
100
|
+
_GRAIN_INT32_BOXED_NUM_TAG : WasmI32
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### Tags.**_GRAIN_INT64_BOXED_NUM_TAG**
|
|
104
|
+
|
|
105
|
+
```grain
|
|
106
|
+
_GRAIN_INT64_BOXED_NUM_TAG : WasmI32
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### Tags.**_GRAIN_RATIONAL_BOXED_NUM_TAG**
|
|
110
|
+
|
|
111
|
+
```grain
|
|
112
|
+
_GRAIN_RATIONAL_BOXED_NUM_TAG : WasmI32
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### Tags.**_GRAIN_BIGINT_BOXED_NUM_TAG**
|
|
116
|
+
|
|
117
|
+
```grain
|
|
118
|
+
_GRAIN_BIGINT_BOXED_NUM_TAG : WasmI32
|
|
119
|
+
```
|
|
120
|
+
|
|
@@ -2,7 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
// WebAssembly Memory Instructions
|
|
4
4
|
export primitive load: (WasmI32, WasmI32) -> WasmF32 = "@wasm.load_float32"
|
|
5
|
-
export primitive store: (
|
|
5
|
+
export primitive store: (
|
|
6
|
+
WasmI32,
|
|
7
|
+
WasmF32,
|
|
8
|
+
WasmI32,
|
|
9
|
+
) -> Void = "@wasm.store_float32"
|
|
6
10
|
|
|
7
11
|
// WebAssembly Unary Instructions
|
|
8
12
|
export primitive neg: WasmF32 -> WasmF32 = "@wasm.neg_float32"
|
|
@@ -18,7 +22,10 @@ export primitive add: (WasmF32, WasmF32) -> WasmF32 = "@wasm.add_float32"
|
|
|
18
22
|
export primitive sub: (WasmF32, WasmF32) -> WasmF32 = "@wasm.sub_float32"
|
|
19
23
|
export primitive mul: (WasmF32, WasmF32) -> WasmF32 = "@wasm.mul_float32"
|
|
20
24
|
export primitive div: (WasmF32, WasmF32) -> WasmF32 = "@wasm.div_float32"
|
|
21
|
-
export primitive copySign: (
|
|
25
|
+
export primitive copySign: (
|
|
26
|
+
WasmF32,
|
|
27
|
+
WasmF32,
|
|
28
|
+
) -> WasmF32 = "@wasm.copy_sign_float32"
|
|
22
29
|
export primitive min: (WasmF32, WasmF32) -> WasmF32 = "@wasm.min_float32"
|
|
23
30
|
export primitive max: (WasmF32, WasmF32) -> WasmF32 = "@wasm.max_float32"
|
|
24
31
|
export primitive eq: (WasmF32, WasmF32) -> Bool = "@wasm.eq_float32"
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
### Wasmf32.**load**
|
|
2
|
+
|
|
3
|
+
```grain
|
|
4
|
+
load : (WasmI32, WasmI32) -> WasmF32
|
|
5
|
+
```
|
|
6
|
+
|
|
7
|
+
### Wasmf32.**store**
|
|
8
|
+
|
|
9
|
+
```grain
|
|
10
|
+
store : (WasmI32, WasmF32, WasmI32) -> Void
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
### Wasmf32.**neg**
|
|
14
|
+
|
|
15
|
+
```grain
|
|
16
|
+
neg : WasmF32 -> WasmF32
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### Wasmf32.**abs**
|
|
20
|
+
|
|
21
|
+
```grain
|
|
22
|
+
abs : WasmF32 -> WasmF32
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### Wasmf32.**ceil**
|
|
26
|
+
|
|
27
|
+
```grain
|
|
28
|
+
ceil : WasmF32 -> WasmF32
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### Wasmf32.**floor**
|
|
32
|
+
|
|
33
|
+
```grain
|
|
34
|
+
floor : WasmF32 -> WasmF32
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Wasmf32.**trunc**
|
|
38
|
+
|
|
39
|
+
```grain
|
|
40
|
+
trunc : WasmF32 -> WasmF32
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### Wasmf32.**nearest**
|
|
44
|
+
|
|
45
|
+
```grain
|
|
46
|
+
nearest : WasmF32 -> WasmF32
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### Wasmf32.**sqrt**
|
|
50
|
+
|
|
51
|
+
```grain
|
|
52
|
+
sqrt : WasmF32 -> WasmF32
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### Wasmf32.**add**
|
|
56
|
+
|
|
57
|
+
```grain
|
|
58
|
+
add : (WasmF32, WasmF32) -> WasmF32
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Wasmf32.**sub**
|
|
62
|
+
|
|
63
|
+
```grain
|
|
64
|
+
sub : (WasmF32, WasmF32) -> WasmF32
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Wasmf32.**mul**
|
|
68
|
+
|
|
69
|
+
```grain
|
|
70
|
+
mul : (WasmF32, WasmF32) -> WasmF32
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Wasmf32.**div**
|
|
74
|
+
|
|
75
|
+
```grain
|
|
76
|
+
div : (WasmF32, WasmF32) -> WasmF32
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### Wasmf32.**copySign**
|
|
80
|
+
|
|
81
|
+
```grain
|
|
82
|
+
copySign : (WasmF32, WasmF32) -> WasmF32
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Wasmf32.**min**
|
|
86
|
+
|
|
87
|
+
```grain
|
|
88
|
+
min : (WasmF32, WasmF32) -> WasmF32
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### Wasmf32.**max**
|
|
92
|
+
|
|
93
|
+
```grain
|
|
94
|
+
max : (WasmF32, WasmF32) -> WasmF32
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### Wasmf32.**eq**
|
|
98
|
+
|
|
99
|
+
```grain
|
|
100
|
+
eq : (WasmF32, WasmF32) -> Bool
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### Wasmf32.**ne**
|
|
104
|
+
|
|
105
|
+
```grain
|
|
106
|
+
ne : (WasmF32, WasmF32) -> Bool
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### Wasmf32.**lt**
|
|
110
|
+
|
|
111
|
+
```grain
|
|
112
|
+
lt : (WasmF32, WasmF32) -> Bool
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### Wasmf32.**le**
|
|
116
|
+
|
|
117
|
+
```grain
|
|
118
|
+
le : (WasmF32, WasmF32) -> Bool
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### Wasmf32.**gt**
|
|
122
|
+
|
|
123
|
+
```grain
|
|
124
|
+
gt : (WasmF32, WasmF32) -> Bool
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### Wasmf32.**ge**
|
|
128
|
+
|
|
129
|
+
```grain
|
|
130
|
+
ge : (WasmF32, WasmF32) -> Bool
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### Wasmf32.**reinterpretI32**
|
|
134
|
+
|
|
135
|
+
```grain
|
|
136
|
+
reinterpretI32 : WasmI32 -> WasmF32
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### Wasmf32.**convertI32S**
|
|
140
|
+
|
|
141
|
+
```grain
|
|
142
|
+
convertI32S : WasmI32 -> WasmF32
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### Wasmf32.**convertI32U**
|
|
146
|
+
|
|
147
|
+
```grain
|
|
148
|
+
convertI32U : WasmI32 -> WasmF32
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
### Wasmf32.**convertI64S**
|
|
152
|
+
|
|
153
|
+
```grain
|
|
154
|
+
convertI64S : WasmI64 -> WasmF32
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### Wasmf32.**convertI64U**
|
|
158
|
+
|
|
159
|
+
```grain
|
|
160
|
+
convertI64U : WasmI64 -> WasmF32
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### Wasmf32.**demoteF64**
|
|
164
|
+
|
|
165
|
+
```grain
|
|
166
|
+
demoteF64 : WasmF64 -> WasmF32
|
|
167
|
+
```
|
|
168
|
+
|
|
@@ -2,7 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
// WebAssembly Memory Instructions
|
|
4
4
|
export primitive load: (WasmI32, WasmI32) -> WasmF64 = "@wasm.load_float64"
|
|
5
|
-
export primitive store: (
|
|
5
|
+
export primitive store: (
|
|
6
|
+
WasmI32,
|
|
7
|
+
WasmF64,
|
|
8
|
+
WasmI32,
|
|
9
|
+
) -> Void = "@wasm.store_float64"
|
|
6
10
|
|
|
7
11
|
// WebAssembly Unary Instructions
|
|
8
12
|
export primitive neg: WasmF64 -> WasmF64 = "@wasm.neg_float64"
|
|
@@ -18,7 +22,10 @@ export primitive add: (WasmF64, WasmF64) -> WasmF64 = "@wasm.add_float64"
|
|
|
18
22
|
export primitive sub: (WasmF64, WasmF64) -> WasmF64 = "@wasm.sub_float64"
|
|
19
23
|
export primitive mul: (WasmF64, WasmF64) -> WasmF64 = "@wasm.mul_float64"
|
|
20
24
|
export primitive div: (WasmF64, WasmF64) -> WasmF64 = "@wasm.div_float64"
|
|
21
|
-
export primitive copySign: (
|
|
25
|
+
export primitive copySign: (
|
|
26
|
+
WasmF64,
|
|
27
|
+
WasmF64,
|
|
28
|
+
) -> WasmF64 = "@wasm.copy_sign_float64"
|
|
22
29
|
export primitive min: (WasmF64, WasmF64) -> WasmF64 = "@wasm.min_float64"
|
|
23
30
|
export primitive max: (WasmF64, WasmF64) -> WasmF64 = "@wasm.max_float64"
|
|
24
31
|
export primitive eq: (WasmF64, WasmF64) -> Bool = "@wasm.eq_float64"
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
### Wasmf64.**load**
|
|
2
|
+
|
|
3
|
+
```grain
|
|
4
|
+
load : (WasmI32, WasmI32) -> WasmF64
|
|
5
|
+
```
|
|
6
|
+
|
|
7
|
+
### Wasmf64.**store**
|
|
8
|
+
|
|
9
|
+
```grain
|
|
10
|
+
store : (WasmI32, WasmF64, WasmI32) -> Void
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
### Wasmf64.**neg**
|
|
14
|
+
|
|
15
|
+
```grain
|
|
16
|
+
neg : WasmF64 -> WasmF64
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### Wasmf64.**abs**
|
|
20
|
+
|
|
21
|
+
```grain
|
|
22
|
+
abs : WasmF64 -> WasmF64
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### Wasmf64.**ceil**
|
|
26
|
+
|
|
27
|
+
```grain
|
|
28
|
+
ceil : WasmF64 -> WasmF64
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### Wasmf64.**floor**
|
|
32
|
+
|
|
33
|
+
```grain
|
|
34
|
+
floor : WasmF64 -> WasmF64
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Wasmf64.**trunc**
|
|
38
|
+
|
|
39
|
+
```grain
|
|
40
|
+
trunc : WasmF64 -> WasmF64
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### Wasmf64.**nearest**
|
|
44
|
+
|
|
45
|
+
```grain
|
|
46
|
+
nearest : WasmF64 -> WasmF64
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### Wasmf64.**sqrt**
|
|
50
|
+
|
|
51
|
+
```grain
|
|
52
|
+
sqrt : WasmF64 -> WasmF64
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### Wasmf64.**add**
|
|
56
|
+
|
|
57
|
+
```grain
|
|
58
|
+
add : (WasmF64, WasmF64) -> WasmF64
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Wasmf64.**sub**
|
|
62
|
+
|
|
63
|
+
```grain
|
|
64
|
+
sub : (WasmF64, WasmF64) -> WasmF64
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Wasmf64.**mul**
|
|
68
|
+
|
|
69
|
+
```grain
|
|
70
|
+
mul : (WasmF64, WasmF64) -> WasmF64
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Wasmf64.**div**
|
|
74
|
+
|
|
75
|
+
```grain
|
|
76
|
+
div : (WasmF64, WasmF64) -> WasmF64
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### Wasmf64.**copySign**
|
|
80
|
+
|
|
81
|
+
```grain
|
|
82
|
+
copySign : (WasmF64, WasmF64) -> WasmF64
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Wasmf64.**min**
|
|
86
|
+
|
|
87
|
+
```grain
|
|
88
|
+
min : (WasmF64, WasmF64) -> WasmF64
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### Wasmf64.**max**
|
|
92
|
+
|
|
93
|
+
```grain
|
|
94
|
+
max : (WasmF64, WasmF64) -> WasmF64
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### Wasmf64.**eq**
|
|
98
|
+
|
|
99
|
+
```grain
|
|
100
|
+
eq : (WasmF64, WasmF64) -> Bool
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### Wasmf64.**ne**
|
|
104
|
+
|
|
105
|
+
```grain
|
|
106
|
+
ne : (WasmF64, WasmF64) -> Bool
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### Wasmf64.**lt**
|
|
110
|
+
|
|
111
|
+
```grain
|
|
112
|
+
lt : (WasmF64, WasmF64) -> Bool
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### Wasmf64.**le**
|
|
116
|
+
|
|
117
|
+
```grain
|
|
118
|
+
le : (WasmF64, WasmF64) -> Bool
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### Wasmf64.**gt**
|
|
122
|
+
|
|
123
|
+
```grain
|
|
124
|
+
gt : (WasmF64, WasmF64) -> Bool
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### Wasmf64.**ge**
|
|
128
|
+
|
|
129
|
+
```grain
|
|
130
|
+
ge : (WasmF64, WasmF64) -> Bool
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### Wasmf64.**reinterpretI64**
|
|
134
|
+
|
|
135
|
+
```grain
|
|
136
|
+
reinterpretI64 : WasmI64 -> WasmF64
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### Wasmf64.**convertI32S**
|
|
140
|
+
|
|
141
|
+
```grain
|
|
142
|
+
convertI32S : WasmI32 -> WasmF64
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### Wasmf64.**convertI32U**
|
|
146
|
+
|
|
147
|
+
```grain
|
|
148
|
+
convertI32U : WasmI32 -> WasmF64
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
### Wasmf64.**convertI64S**
|
|
152
|
+
|
|
153
|
+
```grain
|
|
154
|
+
convertI64S : WasmI64 -> WasmF64
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### Wasmf64.**convertI64U**
|
|
158
|
+
|
|
159
|
+
```grain
|
|
160
|
+
convertI64U : WasmI64 -> WasmF64
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### Wasmf64.**promoteF32**
|
|
164
|
+
|
|
165
|
+
```grain
|
|
166
|
+
promoteF32 : WasmF32 -> WasmF64
|
|
167
|
+
```
|
|
168
|
+
|