@grain/stdlib 0.5.13 → 0.6.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 +193 -0
- package/LICENSE +1 -1
- package/README.md +25 -2
- package/array.gr +1512 -199
- package/array.md +2032 -94
- package/bigint.gr +239 -140
- package/bigint.md +450 -106
- package/buffer.gr +595 -102
- package/buffer.md +903 -145
- package/bytes.gr +401 -110
- package/bytes.md +551 -63
- package/char.gr +228 -49
- package/char.md +373 -7
- package/exception.gr +26 -12
- package/exception.md +29 -5
- package/float32.gr +130 -109
- package/float32.md +185 -57
- package/float64.gr +112 -99
- package/float64.md +185 -57
- package/hash.gr +47 -37
- package/hash.md +21 -3
- package/int16.gr +430 -0
- package/int16.md +618 -0
- package/int32.gr +200 -269
- package/int32.md +254 -289
- package/int64.gr +142 -225
- package/int64.md +254 -289
- package/int8.gr +511 -0
- package/int8.md +786 -0
- package/json.gr +2084 -0
- package/json.md +608 -0
- package/list.gr +120 -68
- package/list.md +125 -80
- package/map.gr +560 -57
- package/map.md +672 -56
- package/marshal.gr +239 -227
- package/marshal.md +36 -4
- package/number.gr +626 -676
- package/number.md +738 -153
- package/option.gr +33 -35
- package/option.md +58 -42
- package/package.json +2 -2
- package/path.gr +148 -187
- package/path.md +47 -96
- package/pervasives.gr +75 -416
- package/pervasives.md +85 -180
- package/priorityqueue.gr +433 -74
- package/priorityqueue.md +422 -54
- package/queue.gr +362 -80
- package/queue.md +433 -38
- package/random.gr +67 -75
- package/random.md +68 -40
- package/range.gr +135 -63
- package/range.md +198 -43
- package/rational.gr +284 -0
- package/rational.md +545 -0
- package/regex.gr +933 -1066
- package/regex.md +59 -60
- package/result.gr +23 -25
- package/result.md +54 -39
- package/runtime/atof/common.gr +78 -82
- package/runtime/atof/common.md +22 -10
- package/runtime/atof/decimal.gr +102 -127
- package/runtime/atof/decimal.md +28 -7
- package/runtime/atof/lemire.gr +56 -71
- package/runtime/atof/lemire.md +9 -1
- package/runtime/atof/parse.gr +83 -110
- package/runtime/atof/parse.md +12 -2
- package/runtime/atof/slow.gr +28 -35
- package/runtime/atof/slow.md +9 -1
- package/runtime/atof/table.gr +19 -18
- package/runtime/atof/table.md +10 -2
- package/runtime/atoi/parse.gr +153 -136
- package/runtime/atoi/parse.md +50 -1
- package/runtime/bigint.gr +410 -517
- package/runtime/bigint.md +71 -57
- package/runtime/compare.gr +176 -85
- package/runtime/compare.md +31 -1
- package/runtime/dataStructures.gr +144 -32
- package/runtime/dataStructures.md +267 -31
- package/runtime/debugPrint.gr +34 -15
- package/runtime/debugPrint.md +37 -5
- package/runtime/equal.gr +53 -52
- package/runtime/equal.md +30 -1
- package/runtime/exception.gr +38 -47
- package/runtime/exception.md +10 -8
- package/runtime/gc.gr +23 -152
- package/runtime/gc.md +13 -17
- package/runtime/malloc.gr +31 -31
- package/runtime/malloc.md +11 -3
- package/runtime/numberUtils.gr +191 -172
- package/runtime/numberUtils.md +17 -9
- package/runtime/numbers.gr +1695 -1021
- package/runtime/numbers.md +1098 -134
- package/runtime/string.gr +540 -242
- package/runtime/string.md +76 -6
- package/runtime/unsafe/constants.gr +30 -13
- package/runtime/unsafe/constants.md +80 -0
- package/runtime/unsafe/conv.gr +55 -28
- package/runtime/unsafe/conv.md +41 -9
- package/runtime/unsafe/memory.gr +10 -30
- package/runtime/unsafe/memory.md +15 -19
- package/runtime/unsafe/tags.gr +37 -21
- package/runtime/unsafe/tags.md +88 -8
- package/runtime/unsafe/wasmf32.gr +30 -36
- package/runtime/unsafe/wasmf32.md +64 -56
- package/runtime/unsafe/wasmf64.gr +30 -36
- package/runtime/unsafe/wasmf64.md +64 -56
- package/runtime/unsafe/wasmi32.gr +49 -66
- package/runtime/unsafe/wasmi32.md +102 -94
- package/runtime/unsafe/wasmi64.gr +52 -79
- package/runtime/unsafe/wasmi64.md +108 -100
- package/runtime/utils/printing.gr +13 -15
- package/runtime/utils/printing.md +11 -3
- package/runtime/wasi.gr +294 -295
- package/runtime/wasi.md +62 -42
- package/set.gr +574 -64
- package/set.md +634 -54
- package/stack.gr +181 -64
- package/stack.md +271 -42
- package/string.gr +453 -533
- package/string.md +241 -151
- package/uint16.gr +369 -0
- package/uint16.md +585 -0
- package/uint32.gr +470 -0
- package/uint32.md +737 -0
- package/uint64.gr +471 -0
- package/uint64.md +737 -0
- package/uint8.gr +369 -0
- package/uint8.md +585 -0
- package/uri.gr +1093 -0
- package/uri.md +477 -0
- package/{sys → wasi}/file.gr +914 -500
- package/{sys → wasi}/file.md +454 -50
- package/wasi/process.gr +292 -0
- package/{sys → wasi}/process.md +164 -6
- package/wasi/random.gr +77 -0
- package/wasi/random.md +80 -0
- package/{sys → wasi}/time.gr +15 -22
- package/{sys → wasi}/time.md +5 -5
- package/immutablearray.gr +0 -929
- package/immutablearray.md +0 -1038
- package/immutablemap.gr +0 -493
- package/immutablemap.md +0 -479
- package/immutablepriorityqueue.gr +0 -360
- package/immutablepriorityqueue.md +0 -291
- package/immutableset.gr +0 -498
- package/immutableset.md +0 -449
- package/runtime/debug.gr +0 -2
- package/runtime/debug.md +0 -6
- package/runtime/unsafe/errors.gr +0 -36
- package/runtime/unsafe/errors.md +0 -204
- package/sys/process.gr +0 -254
- package/sys/random.gr +0 -79
- package/sys/random.md +0 -66
package/runtime/wasi.gr
CHANGED
|
@@ -1,331 +1,330 @@
|
|
|
1
|
-
|
|
1
|
+
module Wasi
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
from "runtime/unsafe/wasmi32" include WasmI32
|
|
4
|
+
from "exception" include Exception
|
|
5
|
+
from "runtime/string" include String
|
|
6
|
+
use String.{ concat as (++), toString }
|
|
7
7
|
|
|
8
8
|
// env
|
|
9
|
-
|
|
10
|
-
WasmI32,
|
|
11
|
-
|
|
12
|
-
)
|
|
13
|
-
|
|
14
|
-
WasmI32,
|
|
15
|
-
|
|
16
|
-
)
|
|
17
|
-
import foreign wasm environ_get: (
|
|
18
|
-
WasmI32,
|
|
19
|
-
WasmI32,
|
|
20
|
-
) -> WasmI32 from "wasi_snapshot_preview1"
|
|
21
|
-
import foreign wasm environ_sizes_get: (
|
|
22
|
-
WasmI32,
|
|
23
|
-
WasmI32,
|
|
24
|
-
) -> WasmI32 from "wasi_snapshot_preview1"
|
|
9
|
+
provide foreign wasm args_get:
|
|
10
|
+
(WasmI32, WasmI32) => WasmI32 from "wasi_snapshot_preview1"
|
|
11
|
+
provide foreign wasm args_sizes_get:
|
|
12
|
+
(WasmI32, WasmI32) => WasmI32 from "wasi_snapshot_preview1"
|
|
13
|
+
provide foreign wasm environ_get:
|
|
14
|
+
(WasmI32, WasmI32) => WasmI32 from "wasi_snapshot_preview1"
|
|
15
|
+
provide foreign wasm environ_sizes_get:
|
|
16
|
+
(WasmI32, WasmI32) => WasmI32 from "wasi_snapshot_preview1"
|
|
25
17
|
|
|
26
18
|
// proc
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
19
|
+
provide foreign wasm proc_exit: WasmI32 => Void from "wasi_snapshot_preview1"
|
|
20
|
+
provide foreign wasm proc_raise:
|
|
21
|
+
WasmI32 => WasmI32 from "wasi_snapshot_preview1"
|
|
22
|
+
provide foreign wasm sched_yield: () => WasmI32 from "wasi_snapshot_preview1"
|
|
30
23
|
|
|
31
24
|
// random
|
|
32
|
-
|
|
33
|
-
WasmI32,
|
|
34
|
-
WasmI32,
|
|
35
|
-
) -> WasmI32 from "wasi_snapshot_preview1"
|
|
25
|
+
provide foreign wasm random_get:
|
|
26
|
+
(WasmI32, WasmI32) => WasmI32 from "wasi_snapshot_preview1"
|
|
36
27
|
|
|
37
28
|
// time
|
|
38
|
-
|
|
39
|
-
WasmI32,
|
|
40
|
-
WasmI64,
|
|
41
|
-
WasmI32,
|
|
42
|
-
) -> WasmI32 from "wasi_snapshot_preview1"
|
|
29
|
+
provide foreign wasm clock_time_get:
|
|
30
|
+
(WasmI32, WasmI64, WasmI32) => WasmI32 from "wasi_snapshot_preview1"
|
|
43
31
|
|
|
44
32
|
// file
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
WasmI32,
|
|
59
|
-
|
|
60
|
-
WasmI32,
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
WasmI32,
|
|
65
|
-
WasmI32,
|
|
66
|
-
WasmI64,
|
|
67
|
-
WasmI32,
|
|
68
|
-
) -> WasmI32 from "wasi_snapshot_preview1"
|
|
33
|
+
provide foreign wasm path_open:
|
|
34
|
+
(
|
|
35
|
+
WasmI32,
|
|
36
|
+
WasmI32,
|
|
37
|
+
WasmI32,
|
|
38
|
+
WasmI32,
|
|
39
|
+
WasmI32,
|
|
40
|
+
WasmI64,
|
|
41
|
+
WasmI64,
|
|
42
|
+
WasmI32,
|
|
43
|
+
WasmI32,
|
|
44
|
+
) => WasmI32 from "wasi_snapshot_preview1"
|
|
45
|
+
provide foreign wasm fd_read:
|
|
46
|
+
(WasmI32, WasmI32, WasmI32, WasmI32) => WasmI32 from "wasi_snapshot_preview1"
|
|
47
|
+
provide foreign wasm fd_pread:
|
|
48
|
+
(WasmI32, WasmI32, WasmI32, WasmI64, WasmI32) => WasmI32 from "wasi_snapshot_preview1"
|
|
49
|
+
provide foreign wasm fd_prestat_get:
|
|
50
|
+
(WasmI32, WasmI32) => WasmI32 from "wasi_snapshot_preview1"
|
|
51
|
+
provide foreign wasm fd_prestat_dir_name:
|
|
52
|
+
(WasmI32, WasmI32, WasmI32) => WasmI32 from "wasi_snapshot_preview1"
|
|
69
53
|
/**
|
|
70
54
|
* Invokes the `fd_write` system call.
|
|
71
55
|
*
|
|
72
|
-
* @param
|
|
73
|
-
* @param
|
|
74
|
-
* @param
|
|
75
|
-
* @param
|
|
56
|
+
* @param 0: The file descriptor to write to
|
|
57
|
+
* @param 1: The pointer to the array of iovs to write
|
|
58
|
+
* @param 2: The length of the array of iovs
|
|
59
|
+
* @param 3: Where to store the number of bytes written
|
|
76
60
|
* @returns The number of bytes written
|
|
77
61
|
*/
|
|
78
|
-
|
|
79
|
-
WasmI32,
|
|
80
|
-
|
|
81
|
-
WasmI32,
|
|
82
|
-
|
|
83
|
-
)
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
WasmI32
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
WasmI32,
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
WasmI64,
|
|
94
|
-
|
|
95
|
-
)
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
WasmI32,
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
WasmI32,
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
)
|
|
112
|
-
|
|
113
|
-
WasmI32,
|
|
114
|
-
|
|
115
|
-
)
|
|
116
|
-
|
|
117
|
-
WasmI32,
|
|
118
|
-
|
|
119
|
-
)
|
|
120
|
-
|
|
121
|
-
WasmI32,
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
)
|
|
126
|
-
import foreign wasm fd_readdir: (
|
|
127
|
-
WasmI32,
|
|
128
|
-
WasmI32,
|
|
129
|
-
WasmI32,
|
|
130
|
-
WasmI64,
|
|
131
|
-
WasmI32,
|
|
132
|
-
) -> WasmI32 from "wasi_snapshot_preview1"
|
|
133
|
-
import foreign wasm fd_renumber: (
|
|
134
|
-
WasmI32,
|
|
135
|
-
WasmI32,
|
|
136
|
-
) -> WasmI32 from "wasi_snapshot_preview1"
|
|
137
|
-
import foreign wasm fd_seek: (
|
|
138
|
-
WasmI32,
|
|
139
|
-
WasmI64,
|
|
140
|
-
WasmI32,
|
|
141
|
-
WasmI32,
|
|
142
|
-
) -> WasmI32 from "wasi_snapshot_preview1"
|
|
143
|
-
import foreign wasm fd_tell: (
|
|
144
|
-
WasmI32,
|
|
145
|
-
WasmI32,
|
|
146
|
-
) -> WasmI32 from "wasi_snapshot_preview1"
|
|
147
|
-
import foreign wasm path_create_directory: (
|
|
148
|
-
WasmI32,
|
|
149
|
-
WasmI32,
|
|
150
|
-
WasmI32,
|
|
151
|
-
) -> WasmI32 from "wasi_snapshot_preview1"
|
|
152
|
-
import foreign wasm path_filestat_get: (
|
|
153
|
-
WasmI32,
|
|
154
|
-
WasmI32,
|
|
155
|
-
WasmI32,
|
|
156
|
-
WasmI32,
|
|
157
|
-
WasmI32,
|
|
158
|
-
) -> WasmI32 from "wasi_snapshot_preview1"
|
|
159
|
-
import foreign wasm path_filestat_set_times: (
|
|
160
|
-
WasmI32,
|
|
161
|
-
WasmI32,
|
|
162
|
-
WasmI32,
|
|
163
|
-
WasmI32,
|
|
164
|
-
WasmI64,
|
|
165
|
-
WasmI64,
|
|
166
|
-
WasmI32,
|
|
167
|
-
) -> WasmI32 from "wasi_snapshot_preview1"
|
|
168
|
-
import foreign wasm path_link: (
|
|
169
|
-
WasmI32,
|
|
170
|
-
WasmI32,
|
|
171
|
-
WasmI32,
|
|
172
|
-
WasmI32,
|
|
173
|
-
WasmI32,
|
|
174
|
-
WasmI32,
|
|
175
|
-
WasmI32,
|
|
176
|
-
) -> WasmI32 from "wasi_snapshot_preview1"
|
|
177
|
-
import foreign wasm path_symlink: (
|
|
178
|
-
WasmI32,
|
|
179
|
-
WasmI32,
|
|
180
|
-
WasmI32,
|
|
181
|
-
WasmI32,
|
|
182
|
-
WasmI32,
|
|
183
|
-
) -> WasmI32 from "wasi_snapshot_preview1"
|
|
184
|
-
import foreign wasm path_unlink_file: (
|
|
185
|
-
WasmI32,
|
|
186
|
-
WasmI32,
|
|
187
|
-
WasmI32,
|
|
188
|
-
) -> WasmI32 from "wasi_snapshot_preview1"
|
|
189
|
-
import foreign wasm path_readlink: (
|
|
190
|
-
WasmI32,
|
|
191
|
-
WasmI32,
|
|
192
|
-
WasmI32,
|
|
193
|
-
WasmI32,
|
|
194
|
-
WasmI32,
|
|
195
|
-
WasmI32,
|
|
196
|
-
) -> WasmI32 from "wasi_snapshot_preview1"
|
|
197
|
-
import foreign wasm path_remove_directory: (
|
|
198
|
-
WasmI32,
|
|
199
|
-
WasmI32,
|
|
200
|
-
WasmI32,
|
|
201
|
-
) -> WasmI32 from "wasi_snapshot_preview1"
|
|
202
|
-
import foreign wasm path_rename: (
|
|
203
|
-
WasmI32,
|
|
204
|
-
WasmI32,
|
|
205
|
-
WasmI32,
|
|
206
|
-
WasmI32,
|
|
207
|
-
WasmI32,
|
|
208
|
-
WasmI32,
|
|
209
|
-
) -> WasmI32 from "wasi_snapshot_preview1"
|
|
62
|
+
provide foreign wasm fd_write:
|
|
63
|
+
(WasmI32, WasmI32, WasmI32, WasmI32) => WasmI32 from "wasi_snapshot_preview1"
|
|
64
|
+
provide foreign wasm fd_pwrite:
|
|
65
|
+
(WasmI32, WasmI32, WasmI32, WasmI64, WasmI32) => WasmI32 from "wasi_snapshot_preview1"
|
|
66
|
+
provide foreign wasm fd_allocate:
|
|
67
|
+
(WasmI32, WasmI64, WasmI64) => WasmI32 from "wasi_snapshot_preview1"
|
|
68
|
+
provide foreign wasm fd_close: WasmI32 => WasmI32 from "wasi_snapshot_preview1"
|
|
69
|
+
provide foreign wasm fd_datasync:
|
|
70
|
+
WasmI32 => WasmI32 from "wasi_snapshot_preview1"
|
|
71
|
+
provide foreign wasm fd_sync: WasmI32 => WasmI32 from "wasi_snapshot_preview1"
|
|
72
|
+
provide foreign wasm fd_fdstat_get:
|
|
73
|
+
(WasmI32, WasmI32) => WasmI32 from "wasi_snapshot_preview1"
|
|
74
|
+
provide foreign wasm fd_fdstat_set_flags:
|
|
75
|
+
(WasmI32, WasmI32) => WasmI32 from "wasi_snapshot_preview1"
|
|
76
|
+
provide foreign wasm fd_fdstat_set_rights:
|
|
77
|
+
(WasmI32, WasmI64, WasmI64) => WasmI32 from "wasi_snapshot_preview1"
|
|
78
|
+
provide foreign wasm fd_filestat_get:
|
|
79
|
+
(WasmI32, WasmI32) => WasmI32 from "wasi_snapshot_preview1"
|
|
80
|
+
provide foreign wasm fd_filestat_set_size:
|
|
81
|
+
(WasmI32, WasmI64) => WasmI32 from "wasi_snapshot_preview1"
|
|
82
|
+
provide foreign wasm fd_filestat_set_times:
|
|
83
|
+
(WasmI32, WasmI64, WasmI64, WasmI32) => WasmI32 from "wasi_snapshot_preview1"
|
|
84
|
+
provide foreign wasm fd_readdir:
|
|
85
|
+
(WasmI32, WasmI32, WasmI32, WasmI64, WasmI32) => WasmI32 from "wasi_snapshot_preview1"
|
|
86
|
+
provide foreign wasm fd_renumber:
|
|
87
|
+
(WasmI32, WasmI32) => WasmI32 from "wasi_snapshot_preview1"
|
|
88
|
+
provide foreign wasm fd_seek:
|
|
89
|
+
(WasmI32, WasmI64, WasmI32, WasmI32) => WasmI32 from "wasi_snapshot_preview1"
|
|
90
|
+
provide foreign wasm fd_tell:
|
|
91
|
+
(WasmI32, WasmI32) => WasmI32 from "wasi_snapshot_preview1"
|
|
92
|
+
provide foreign wasm path_create_directory:
|
|
93
|
+
(WasmI32, WasmI32, WasmI32) => WasmI32 from "wasi_snapshot_preview1"
|
|
94
|
+
provide foreign wasm path_filestat_get:
|
|
95
|
+
(WasmI32, WasmI32, WasmI32, WasmI32, WasmI32) => WasmI32 from "wasi_snapshot_preview1"
|
|
96
|
+
provide foreign wasm path_filestat_set_times:
|
|
97
|
+
(WasmI32, WasmI32, WasmI32, WasmI32, WasmI64, WasmI64, WasmI32) => WasmI32 from "wasi_snapshot_preview1"
|
|
98
|
+
provide foreign wasm path_link:
|
|
99
|
+
(WasmI32, WasmI32, WasmI32, WasmI32, WasmI32, WasmI32, WasmI32) => WasmI32 from "wasi_snapshot_preview1"
|
|
100
|
+
provide foreign wasm path_symlink:
|
|
101
|
+
(WasmI32, WasmI32, WasmI32, WasmI32, WasmI32) => WasmI32 from "wasi_snapshot_preview1"
|
|
102
|
+
provide foreign wasm path_unlink_file:
|
|
103
|
+
(WasmI32, WasmI32, WasmI32) => WasmI32 from "wasi_snapshot_preview1"
|
|
104
|
+
provide foreign wasm path_readlink:
|
|
105
|
+
(WasmI32, WasmI32, WasmI32, WasmI32, WasmI32, WasmI32) => WasmI32 from "wasi_snapshot_preview1"
|
|
106
|
+
provide foreign wasm path_remove_directory:
|
|
107
|
+
(WasmI32, WasmI32, WasmI32) => WasmI32 from "wasi_snapshot_preview1"
|
|
108
|
+
provide foreign wasm path_rename:
|
|
109
|
+
(WasmI32, WasmI32, WasmI32, WasmI32, WasmI32, WasmI32) => WasmI32 from "wasi_snapshot_preview1"
|
|
210
110
|
|
|
211
111
|
// clocks
|
|
212
|
-
|
|
213
|
-
let
|
|
214
|
-
|
|
215
|
-
let
|
|
112
|
+
@unsafe
|
|
113
|
+
provide let _CLOCK_REALTIME = 0n
|
|
114
|
+
@unsafe
|
|
115
|
+
provide let _CLOCK_MONOTONIC = 1n
|
|
116
|
+
@unsafe
|
|
117
|
+
provide let _CLOCK_PROCESS_CPUTIME = 2n
|
|
118
|
+
@unsafe
|
|
119
|
+
provide let _CLOCK_THREAD_CPUTIME = 3n
|
|
216
120
|
|
|
217
121
|
// time
|
|
218
122
|
|
|
219
|
-
|
|
220
|
-
let
|
|
221
|
-
|
|
222
|
-
let
|
|
123
|
+
@unsafe
|
|
124
|
+
provide let _TIME_SET_ATIM = 1n
|
|
125
|
+
@unsafe
|
|
126
|
+
provide let _TIME_SET_ATIM_NOW = 2n
|
|
127
|
+
@unsafe
|
|
128
|
+
provide let _TIME_SET_MTIM = 4n
|
|
129
|
+
@unsafe
|
|
130
|
+
provide let _TIME_SET_MTIM_NOW = 8n
|
|
223
131
|
|
|
224
132
|
// lookup flags
|
|
225
|
-
|
|
133
|
+
@unsafe
|
|
134
|
+
provide let _LOOKUP_FLAG_SYMLINK_FOLLOW = 1n
|
|
226
135
|
|
|
227
136
|
// open flags
|
|
228
|
-
|
|
229
|
-
let
|
|
230
|
-
|
|
231
|
-
let
|
|
137
|
+
@unsafe
|
|
138
|
+
provide let _OPEN_FLAG_CREAT = 1n
|
|
139
|
+
@unsafe
|
|
140
|
+
provide let _OPEN_FLAG_DIRECTORY = 2n
|
|
141
|
+
@unsafe
|
|
142
|
+
provide let _OPEN_FLAG_EXCL = 4n
|
|
143
|
+
@unsafe
|
|
144
|
+
provide let _OPEN_FLAG_TRUNC = 8n
|
|
232
145
|
|
|
233
146
|
// fdflags
|
|
234
|
-
|
|
235
|
-
let
|
|
236
|
-
|
|
237
|
-
let
|
|
238
|
-
|
|
147
|
+
@unsafe
|
|
148
|
+
provide let _FDFLAG_APPEND = 1n
|
|
149
|
+
@unsafe
|
|
150
|
+
provide let _FDFLAG_DSYNC = 2n
|
|
151
|
+
@unsafe
|
|
152
|
+
provide let _FDFLAG_NONBLOCK = 4n
|
|
153
|
+
@unsafe
|
|
154
|
+
provide let _FDFLAG_RSYNC = 8n
|
|
155
|
+
@unsafe
|
|
156
|
+
provide let _FDFLAG_SYNC = 16n
|
|
239
157
|
|
|
240
158
|
// whence
|
|
241
|
-
|
|
242
|
-
let
|
|
243
|
-
|
|
159
|
+
@unsafe
|
|
160
|
+
provide let _WHENCE_SET = 0n
|
|
161
|
+
@unsafe
|
|
162
|
+
provide let _WHENCE_CUR = 1n
|
|
163
|
+
@unsafe
|
|
164
|
+
provide let _WHENCE_END = 2n
|
|
244
165
|
|
|
245
166
|
// error codes
|
|
246
|
-
|
|
247
|
-
let
|
|
248
|
-
|
|
249
|
-
let
|
|
250
|
-
|
|
251
|
-
let
|
|
252
|
-
|
|
253
|
-
let
|
|
254
|
-
|
|
255
|
-
let
|
|
256
|
-
|
|
257
|
-
let
|
|
258
|
-
|
|
259
|
-
let
|
|
260
|
-
|
|
261
|
-
let
|
|
262
|
-
|
|
263
|
-
let
|
|
264
|
-
|
|
265
|
-
let
|
|
266
|
-
|
|
267
|
-
let
|
|
268
|
-
|
|
269
|
-
let
|
|
270
|
-
|
|
271
|
-
let
|
|
272
|
-
|
|
273
|
-
let
|
|
274
|
-
|
|
275
|
-
let
|
|
276
|
-
|
|
277
|
-
let
|
|
278
|
-
|
|
279
|
-
let
|
|
280
|
-
|
|
281
|
-
let
|
|
282
|
-
|
|
283
|
-
let
|
|
284
|
-
|
|
285
|
-
let
|
|
286
|
-
|
|
287
|
-
let
|
|
288
|
-
|
|
289
|
-
let
|
|
290
|
-
|
|
291
|
-
let
|
|
292
|
-
|
|
293
|
-
let
|
|
294
|
-
|
|
295
|
-
let
|
|
296
|
-
|
|
297
|
-
let
|
|
298
|
-
|
|
299
|
-
let
|
|
300
|
-
|
|
301
|
-
let
|
|
302
|
-
|
|
303
|
-
let
|
|
304
|
-
|
|
305
|
-
let
|
|
306
|
-
|
|
307
|
-
let
|
|
308
|
-
|
|
309
|
-
let
|
|
310
|
-
|
|
311
|
-
let
|
|
312
|
-
|
|
313
|
-
let
|
|
314
|
-
|
|
315
|
-
let
|
|
316
|
-
|
|
317
|
-
let
|
|
318
|
-
|
|
319
|
-
let
|
|
320
|
-
|
|
321
|
-
let
|
|
322
|
-
|
|
167
|
+
@unsafe
|
|
168
|
+
provide let _ESUCCESS = 0n
|
|
169
|
+
@unsafe
|
|
170
|
+
provide let _ETOOBIG = 1n
|
|
171
|
+
@unsafe
|
|
172
|
+
provide let _EACCES = 2n
|
|
173
|
+
@unsafe
|
|
174
|
+
provide let _EADDRINUSE = 3n
|
|
175
|
+
@unsafe
|
|
176
|
+
provide let _EADDRNOTAVAIL = 4n
|
|
177
|
+
@unsafe
|
|
178
|
+
provide let _EAFNOSUPPORT = 5n
|
|
179
|
+
@unsafe
|
|
180
|
+
provide let _EAGAIN = 6n
|
|
181
|
+
@unsafe
|
|
182
|
+
provide let _EALREADY = 7n
|
|
183
|
+
@unsafe
|
|
184
|
+
provide let _EBADF = 8n
|
|
185
|
+
@unsafe
|
|
186
|
+
provide let _EBADMSG = 9n
|
|
187
|
+
@unsafe
|
|
188
|
+
provide let _EBUSY = 10n
|
|
189
|
+
@unsafe
|
|
190
|
+
provide let _ECANCELED = 11n
|
|
191
|
+
@unsafe
|
|
192
|
+
provide let _ECHILD = 12n
|
|
193
|
+
@unsafe
|
|
194
|
+
provide let _ECONNABORTED = 13n
|
|
195
|
+
@unsafe
|
|
196
|
+
provide let _ECONNREFUSED = 14n
|
|
197
|
+
@unsafe
|
|
198
|
+
provide let _ECONNRESET = 15n
|
|
199
|
+
@unsafe
|
|
200
|
+
provide let _EDEADLK = 16n
|
|
201
|
+
@unsafe
|
|
202
|
+
provide let _EDESTADDRREQ = 17n
|
|
203
|
+
@unsafe
|
|
204
|
+
provide let _EDOM = 18n
|
|
205
|
+
@unsafe
|
|
206
|
+
provide let _EDQUOT = 19n
|
|
207
|
+
@unsafe
|
|
208
|
+
provide let _EEXIST = 20n
|
|
209
|
+
@unsafe
|
|
210
|
+
provide let _EFAULT = 21n
|
|
211
|
+
@unsafe
|
|
212
|
+
provide let _EFBIG = 22n
|
|
213
|
+
@unsafe
|
|
214
|
+
provide let _EHOSTUNREACH = 23n
|
|
215
|
+
@unsafe
|
|
216
|
+
provide let _EIDRM = 24n
|
|
217
|
+
@unsafe
|
|
218
|
+
provide let _EILSEQ = 25n
|
|
219
|
+
@unsafe
|
|
220
|
+
provide let _EINPROGRESS = 26n
|
|
221
|
+
@unsafe
|
|
222
|
+
provide let _EINTR = 27n
|
|
223
|
+
@unsafe
|
|
224
|
+
provide let _EINVAL = 28n
|
|
225
|
+
@unsafe
|
|
226
|
+
provide let _EIO = 29n
|
|
227
|
+
@unsafe
|
|
228
|
+
provide let _EISCONN = 30n
|
|
229
|
+
@unsafe
|
|
230
|
+
provide let _EISDIR = 31n
|
|
231
|
+
@unsafe
|
|
232
|
+
provide let _ELOOP = 32n
|
|
233
|
+
@unsafe
|
|
234
|
+
provide let _EMFILE = 33n
|
|
235
|
+
@unsafe
|
|
236
|
+
provide let _EMLINK = 34n
|
|
237
|
+
@unsafe
|
|
238
|
+
provide let _EMSGSIZE = 35n
|
|
239
|
+
@unsafe
|
|
240
|
+
provide let _EMULTIHOP = 36n
|
|
241
|
+
@unsafe
|
|
242
|
+
provide let _ENAMETOOLONG = 37n
|
|
243
|
+
@unsafe
|
|
244
|
+
provide let _ENETDOWN = 38n
|
|
245
|
+
@unsafe
|
|
246
|
+
provide let _ENETRESET = 39n
|
|
247
|
+
@unsafe
|
|
248
|
+
provide let _ENETUNREACH = 40n
|
|
249
|
+
@unsafe
|
|
250
|
+
provide let _ENFILE = 41n
|
|
251
|
+
@unsafe
|
|
252
|
+
provide let _ENOBUFS = 42n
|
|
253
|
+
@unsafe
|
|
254
|
+
provide let _ENODEV = 43n
|
|
255
|
+
@unsafe
|
|
256
|
+
provide let _ENOENT = 44n
|
|
257
|
+
@unsafe
|
|
258
|
+
provide let _ENOEXEC = 45n
|
|
259
|
+
@unsafe
|
|
260
|
+
provide let _ENOLCK = 46n
|
|
261
|
+
@unsafe
|
|
262
|
+
provide let _ENOLINK = 47n
|
|
263
|
+
@unsafe
|
|
264
|
+
provide let _ENOMEM = 48n
|
|
265
|
+
@unsafe
|
|
266
|
+
provide let _ENOMSG = 49n
|
|
267
|
+
@unsafe
|
|
268
|
+
provide let _ENOPROTOOPT = 50n
|
|
269
|
+
@unsafe
|
|
270
|
+
provide let _ENOSPC = 51n
|
|
271
|
+
@unsafe
|
|
272
|
+
provide let _ENOSYS = 52n
|
|
273
|
+
@unsafe
|
|
274
|
+
provide let _ENOTCONN = 53n
|
|
275
|
+
@unsafe
|
|
276
|
+
provide let _ENOTDIR = 54n
|
|
277
|
+
@unsafe
|
|
278
|
+
provide let _ENOTEMPTY = 55n
|
|
279
|
+
@unsafe
|
|
280
|
+
provide let _ENOTRECOVERABLE = 56n
|
|
281
|
+
@unsafe
|
|
282
|
+
provide let _ENOTSOCK = 57n
|
|
283
|
+
@unsafe
|
|
284
|
+
provide let _ENOTSUP = 58n
|
|
285
|
+
@unsafe
|
|
286
|
+
provide let _ENOTTY = 59n
|
|
287
|
+
@unsafe
|
|
288
|
+
provide let _ENXIO = 60n
|
|
289
|
+
@unsafe
|
|
290
|
+
provide let _EOVERFLOW = 61n
|
|
291
|
+
@unsafe
|
|
292
|
+
provide let _EOWNERDEAD = 62n
|
|
293
|
+
@unsafe
|
|
294
|
+
provide let _EPERM = 63n
|
|
295
|
+
@unsafe
|
|
296
|
+
provide let _EPIPE = 64n
|
|
297
|
+
@unsafe
|
|
298
|
+
provide let _EPROTO = 65n
|
|
299
|
+
@unsafe
|
|
300
|
+
provide let _EPROTONOSUPPORT = 66n
|
|
301
|
+
@unsafe
|
|
302
|
+
provide let _EPROTOTYPE = 67n
|
|
303
|
+
@unsafe
|
|
304
|
+
provide let _ERANGE = 68n
|
|
305
|
+
@unsafe
|
|
306
|
+
provide let _EROFS = 69n
|
|
307
|
+
@unsafe
|
|
308
|
+
provide let _ESPIPE = 70n
|
|
309
|
+
@unsafe
|
|
310
|
+
provide let _ESRCH = 71n
|
|
311
|
+
@unsafe
|
|
312
|
+
provide let _ESTALE = 72n
|
|
313
|
+
@unsafe
|
|
314
|
+
provide let _ETIMEDOUT = 73n
|
|
315
|
+
@unsafe
|
|
316
|
+
provide let _ETXTBSY = 74n
|
|
317
|
+
@unsafe
|
|
318
|
+
provide let _EXDEV = 75n
|
|
319
|
+
@unsafe
|
|
320
|
+
provide let _ENOTCAPABLE = 76n
|
|
323
321
|
|
|
324
|
-
exception SystemError(Number)
|
|
322
|
+
provide exception SystemError(Number)
|
|
325
323
|
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
324
|
+
@disableGC
|
|
325
|
+
provide let stringOfSystemError = code => {
|
|
326
|
+
use WasmI32.{ (==), (>>) }
|
|
327
|
+
let n = WasmI32.fromGrain(code) >> 1n
|
|
329
328
|
match (n) {
|
|
330
329
|
n when n == _ESUCCESS =>
|
|
331
330
|
"SystemError: No error occurred. System call completed successfully.",
|