@grain/stdlib 0.5.13 → 0.6.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 (155) hide show
  1. package/CHANGELOG.md +201 -0
  2. package/LICENSE +1 -1
  3. package/README.md +25 -2
  4. package/array.gr +1512 -199
  5. package/array.md +2032 -94
  6. package/bigint.gr +239 -140
  7. package/bigint.md +450 -106
  8. package/buffer.gr +595 -102
  9. package/buffer.md +903 -145
  10. package/bytes.gr +401 -110
  11. package/bytes.md +551 -63
  12. package/char.gr +228 -49
  13. package/char.md +373 -7
  14. package/exception.gr +26 -12
  15. package/exception.md +29 -5
  16. package/float32.gr +130 -109
  17. package/float32.md +185 -57
  18. package/float64.gr +112 -99
  19. package/float64.md +185 -57
  20. package/hash.gr +62 -40
  21. package/hash.md +27 -3
  22. package/int16.gr +430 -0
  23. package/int16.md +618 -0
  24. package/int32.gr +200 -269
  25. package/int32.md +254 -289
  26. package/int64.gr +142 -225
  27. package/int64.md +254 -289
  28. package/int8.gr +511 -0
  29. package/int8.md +786 -0
  30. package/json.gr +2071 -0
  31. package/json.md +646 -0
  32. package/list.gr +120 -68
  33. package/list.md +125 -80
  34. package/map.gr +560 -57
  35. package/map.md +672 -56
  36. package/marshal.gr +239 -227
  37. package/marshal.md +36 -4
  38. package/number.gr +626 -676
  39. package/number.md +738 -153
  40. package/option.gr +33 -35
  41. package/option.md +58 -42
  42. package/package.json +2 -2
  43. package/path.gr +148 -187
  44. package/path.md +47 -96
  45. package/pervasives.gr +75 -416
  46. package/pervasives.md +85 -180
  47. package/priorityqueue.gr +433 -74
  48. package/priorityqueue.md +422 -54
  49. package/queue.gr +362 -80
  50. package/queue.md +433 -38
  51. package/random.gr +67 -75
  52. package/random.md +68 -40
  53. package/range.gr +135 -63
  54. package/range.md +198 -43
  55. package/rational.gr +284 -0
  56. package/rational.md +545 -0
  57. package/regex.gr +933 -1066
  58. package/regex.md +59 -60
  59. package/result.gr +23 -25
  60. package/result.md +54 -39
  61. package/runtime/atof/common.gr +78 -82
  62. package/runtime/atof/common.md +22 -10
  63. package/runtime/atof/decimal.gr +102 -127
  64. package/runtime/atof/decimal.md +28 -7
  65. package/runtime/atof/lemire.gr +56 -71
  66. package/runtime/atof/lemire.md +9 -1
  67. package/runtime/atof/parse.gr +83 -110
  68. package/runtime/atof/parse.md +12 -2
  69. package/runtime/atof/slow.gr +28 -35
  70. package/runtime/atof/slow.md +9 -1
  71. package/runtime/atof/table.gr +19 -18
  72. package/runtime/atof/table.md +10 -2
  73. package/runtime/atoi/parse.gr +153 -136
  74. package/runtime/atoi/parse.md +50 -1
  75. package/runtime/bigint.gr +410 -517
  76. package/runtime/bigint.md +71 -57
  77. package/runtime/compare.gr +176 -85
  78. package/runtime/compare.md +31 -1
  79. package/runtime/dataStructures.gr +144 -32
  80. package/runtime/dataStructures.md +267 -31
  81. package/runtime/debugPrint.gr +34 -15
  82. package/runtime/debugPrint.md +37 -5
  83. package/runtime/equal.gr +53 -52
  84. package/runtime/equal.md +30 -1
  85. package/runtime/exception.gr +38 -47
  86. package/runtime/exception.md +10 -8
  87. package/runtime/gc.gr +23 -152
  88. package/runtime/gc.md +13 -17
  89. package/runtime/malloc.gr +31 -31
  90. package/runtime/malloc.md +11 -3
  91. package/runtime/numberUtils.gr +193 -174
  92. package/runtime/numberUtils.md +29 -9
  93. package/runtime/numbers.gr +1695 -1021
  94. package/runtime/numbers.md +1098 -134
  95. package/runtime/string.gr +543 -245
  96. package/runtime/string.md +76 -6
  97. package/runtime/unsafe/constants.gr +30 -13
  98. package/runtime/unsafe/constants.md +80 -0
  99. package/runtime/unsafe/conv.gr +55 -28
  100. package/runtime/unsafe/conv.md +41 -9
  101. package/runtime/unsafe/memory.gr +10 -30
  102. package/runtime/unsafe/memory.md +15 -19
  103. package/runtime/unsafe/tags.gr +37 -21
  104. package/runtime/unsafe/tags.md +88 -8
  105. package/runtime/unsafe/wasmf32.gr +30 -36
  106. package/runtime/unsafe/wasmf32.md +64 -56
  107. package/runtime/unsafe/wasmf64.gr +30 -36
  108. package/runtime/unsafe/wasmf64.md +64 -56
  109. package/runtime/unsafe/wasmi32.gr +49 -66
  110. package/runtime/unsafe/wasmi32.md +102 -94
  111. package/runtime/unsafe/wasmi64.gr +52 -79
  112. package/runtime/unsafe/wasmi64.md +108 -100
  113. package/runtime/utils/printing.gr +13 -15
  114. package/runtime/utils/printing.md +11 -3
  115. package/runtime/wasi.gr +294 -295
  116. package/runtime/wasi.md +62 -42
  117. package/set.gr +574 -64
  118. package/set.md +634 -54
  119. package/stack.gr +181 -64
  120. package/stack.md +271 -42
  121. package/string.gr +453 -533
  122. package/string.md +241 -151
  123. package/uint16.gr +369 -0
  124. package/uint16.md +585 -0
  125. package/uint32.gr +470 -0
  126. package/uint32.md +737 -0
  127. package/uint64.gr +471 -0
  128. package/uint64.md +737 -0
  129. package/uint8.gr +369 -0
  130. package/uint8.md +585 -0
  131. package/uri.gr +1093 -0
  132. package/uri.md +477 -0
  133. package/{sys → wasi}/file.gr +914 -500
  134. package/{sys → wasi}/file.md +454 -50
  135. package/wasi/process.gr +292 -0
  136. package/{sys → wasi}/process.md +164 -6
  137. package/wasi/random.gr +77 -0
  138. package/wasi/random.md +80 -0
  139. package/{sys → wasi}/time.gr +15 -22
  140. package/{sys → wasi}/time.md +5 -5
  141. package/immutablearray.gr +0 -929
  142. package/immutablearray.md +0 -1038
  143. package/immutablemap.gr +0 -493
  144. package/immutablemap.md +0 -479
  145. package/immutablepriorityqueue.gr +0 -360
  146. package/immutablepriorityqueue.md +0 -291
  147. package/immutableset.gr +0 -498
  148. package/immutableset.md +0 -449
  149. package/runtime/debug.gr +0 -2
  150. package/runtime/debug.md +0 -6
  151. package/runtime/unsafe/errors.gr +0 -36
  152. package/runtime/unsafe/errors.md +0 -204
  153. package/sys/process.gr +0 -254
  154. package/sys/random.gr +0 -79
  155. package/sys/random.md +0 -66
@@ -1,168 +1,176 @@
1
- ### Wasmf64.**load**
1
+ ---
2
+ title: WasmF64
3
+ ---
4
+
5
+ ## Values
6
+
7
+ Functions and constants included in the WasmF64 module.
8
+
9
+ ### WasmF64.**load**
2
10
 
3
11
  ```grain
4
- load : (WasmI32, WasmI32) -> WasmF64
12
+ load : (ptr: WasmI32, offset: WasmI32) => WasmF64
5
13
  ```
6
14
 
7
- ### Wasmf64.**store**
15
+ ### WasmF64.**store**
8
16
 
9
17
  ```grain
10
- store : (WasmI32, WasmF64, WasmI32) -> Void
18
+ store : (ptr: WasmI32, value: WasmF64, offset: WasmI32) => Void
11
19
  ```
12
20
 
13
- ### Wasmf64.**neg**
21
+ ### WasmF64.**neg**
14
22
 
15
23
  ```grain
16
- neg : WasmF64 -> WasmF64
24
+ neg : (num: WasmF64) => WasmF64
17
25
  ```
18
26
 
19
- ### Wasmf64.**abs**
27
+ ### WasmF64.**abs**
20
28
 
21
29
  ```grain
22
- abs : WasmF64 -> WasmF64
30
+ abs : (num: WasmF64) => WasmF64
23
31
  ```
24
32
 
25
- ### Wasmf64.**ceil**
33
+ ### WasmF64.**ceil**
26
34
 
27
35
  ```grain
28
- ceil : WasmF64 -> WasmF64
36
+ ceil : (num: WasmF64) => WasmF64
29
37
  ```
30
38
 
31
- ### Wasmf64.**floor**
39
+ ### WasmF64.**floor**
32
40
 
33
41
  ```grain
34
- floor : WasmF64 -> WasmF64
42
+ floor : (num: WasmF64) => WasmF64
35
43
  ```
36
44
 
37
- ### Wasmf64.**trunc**
45
+ ### WasmF64.**trunc**
38
46
 
39
47
  ```grain
40
- trunc : WasmF64 -> WasmF64
48
+ trunc : (num: WasmF64) => WasmF64
41
49
  ```
42
50
 
43
- ### Wasmf64.**nearest**
51
+ ### WasmF64.**nearest**
44
52
 
45
53
  ```grain
46
- nearest : WasmF64 -> WasmF64
54
+ nearest : (num: WasmF64) => WasmF64
47
55
  ```
48
56
 
49
- ### Wasmf64.**sqrt**
57
+ ### WasmF64.**sqrt**
50
58
 
51
59
  ```grain
52
- sqrt : WasmF64 -> WasmF64
60
+ sqrt : (num: WasmF64) => WasmF64
53
61
  ```
54
62
 
55
- ### Wasmf64.**add**
63
+ ### WasmF64.**(+)**
56
64
 
57
65
  ```grain
58
- add : (WasmF64, WasmF64) -> WasmF64
66
+ (+) : (left: WasmF64, right: WasmF64) => WasmF64
59
67
  ```
60
68
 
61
- ### Wasmf64.**sub**
69
+ ### WasmF64.**(-)**
62
70
 
63
71
  ```grain
64
- sub : (WasmF64, WasmF64) -> WasmF64
72
+ (-) : (left: WasmF64, right: WasmF64) => WasmF64
65
73
  ```
66
74
 
67
- ### Wasmf64.**mul**
75
+ ### WasmF64.**(*)**
68
76
 
69
77
  ```grain
70
- mul : (WasmF64, WasmF64) -> WasmF64
78
+ (*) : (left: WasmF64, right: WasmF64) => WasmF64
71
79
  ```
72
80
 
73
- ### Wasmf64.**div**
81
+ ### WasmF64.**(/)**
74
82
 
75
83
  ```grain
76
- div : (WasmF64, WasmF64) -> WasmF64
84
+ (/) : (left: WasmF64, right: WasmF64) => WasmF64
77
85
  ```
78
86
 
79
- ### Wasmf64.**copySign**
87
+ ### WasmF64.**copySign**
80
88
 
81
89
  ```grain
82
- copySign : (WasmF64, WasmF64) -> WasmF64
90
+ copySign : (left: WasmF64, right: WasmF64) => WasmF64
83
91
  ```
84
92
 
85
- ### Wasmf64.**min**
93
+ ### WasmF64.**min**
86
94
 
87
95
  ```grain
88
- min : (WasmF64, WasmF64) -> WasmF64
96
+ min : (left: WasmF64, right: WasmF64) => WasmF64
89
97
  ```
90
98
 
91
- ### Wasmf64.**max**
99
+ ### WasmF64.**max**
92
100
 
93
101
  ```grain
94
- max : (WasmF64, WasmF64) -> WasmF64
102
+ max : (left: WasmF64, right: WasmF64) => WasmF64
95
103
  ```
96
104
 
97
- ### Wasmf64.**eq**
105
+ ### WasmF64.**(==)**
98
106
 
99
107
  ```grain
100
- eq : (WasmF64, WasmF64) -> Bool
108
+ (==) : (left: WasmF64, right: WasmF64) => Bool
101
109
  ```
102
110
 
103
- ### Wasmf64.**ne**
111
+ ### WasmF64.**(!=)**
104
112
 
105
113
  ```grain
106
- ne : (WasmF64, WasmF64) -> Bool
114
+ (!=) : (left: WasmF64, right: WasmF64) => Bool
107
115
  ```
108
116
 
109
- ### Wasmf64.**lt**
117
+ ### WasmF64.**(<)**
110
118
 
111
119
  ```grain
112
- lt : (WasmF64, WasmF64) -> Bool
120
+ (<) : (left: WasmF64, right: WasmF64) => Bool
113
121
  ```
114
122
 
115
- ### Wasmf64.**le**
123
+ ### WasmF64.**(<=)**
116
124
 
117
125
  ```grain
118
- le : (WasmF64, WasmF64) -> Bool
126
+ (<=) : (left: WasmF64, right: WasmF64) => Bool
119
127
  ```
120
128
 
121
- ### Wasmf64.**gt**
129
+ ### WasmF64.**(>)**
122
130
 
123
131
  ```grain
124
- gt : (WasmF64, WasmF64) -> Bool
132
+ (>) : (left: WasmF64, right: WasmF64) => Bool
125
133
  ```
126
134
 
127
- ### Wasmf64.**ge**
135
+ ### WasmF64.**(>=)**
128
136
 
129
137
  ```grain
130
- ge : (WasmF64, WasmF64) -> Bool
138
+ (>=) : (left: WasmF64, right: WasmF64) => Bool
131
139
  ```
132
140
 
133
- ### Wasmf64.**reinterpretI64**
141
+ ### WasmF64.**reinterpretI64**
134
142
 
135
143
  ```grain
136
- reinterpretI64 : WasmI64 -> WasmF64
144
+ reinterpretI64 : (num: WasmI64) => WasmF64
137
145
  ```
138
146
 
139
- ### Wasmf64.**convertI32S**
147
+ ### WasmF64.**convertI32S**
140
148
 
141
149
  ```grain
142
- convertI32S : WasmI32 -> WasmF64
150
+ convertI32S : (num: WasmI32) => WasmF64
143
151
  ```
144
152
 
145
- ### Wasmf64.**convertI32U**
153
+ ### WasmF64.**convertI32U**
146
154
 
147
155
  ```grain
148
- convertI32U : WasmI32 -> WasmF64
156
+ convertI32U : (num: WasmI32) => WasmF64
149
157
  ```
150
158
 
151
- ### Wasmf64.**convertI64S**
159
+ ### WasmF64.**convertI64S**
152
160
 
153
161
  ```grain
154
- convertI64S : WasmI64 -> WasmF64
162
+ convertI64S : (num: WasmI64) => WasmF64
155
163
  ```
156
164
 
157
- ### Wasmf64.**convertI64U**
165
+ ### WasmF64.**convertI64U**
158
166
 
159
167
  ```grain
160
- convertI64U : WasmI64 -> WasmF64
168
+ convertI64U : (num: WasmI64) => WasmF64
161
169
  ```
162
170
 
163
- ### Wasmf64.**promoteF32**
171
+ ### WasmF64.**promoteF32**
164
172
 
165
173
  ```grain
166
- promoteF32 : WasmF32 -> WasmF64
174
+ promoteF32 : (num: WasmF32) => WasmF64
167
175
  ```
168
176
 
@@ -1,76 +1,59 @@
1
- /* grainc-flags --compilation-mode=runtime */
1
+ @runtimeMode
2
+ module WasmI32
2
3
 
3
4
  // 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: (
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"
5
+ provide primitive load = "@wasm.load_int32"
6
+ provide primitive load8S = "@wasm.load_8_s_int32"
7
+ provide primitive load8U = "@wasm.load_8_u_int32"
8
+ provide primitive load16S = "@wasm.load_16_s_int32"
9
+ provide primitive load16U = "@wasm.load_16_u_int32"
10
+ provide primitive store = "@wasm.store_int32"
11
+ provide primitive store8 = "@wasm.store_8_int32"
12
+ provide primitive store16 = "@wasm.store_16_int32"
30
13
 
31
14
  // WebAssembly Unary Instructions
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"
15
+ provide primitive clz = "@wasm.clz_int32"
16
+ provide primitive ctz = "@wasm.ctz_int32"
17
+ provide primitive popcnt = "@wasm.popcnt_int32"
18
+ provide primitive eqz = "@wasm.eq_z_int32"
36
19
 
37
20
  // WebAssembly Binary Instructions
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"
21
+ provide primitive (+) = "@wasm.add_int32"
22
+ provide primitive (-) = "@wasm.sub_int32"
23
+ provide primitive (*) = "@wasm.mul_int32"
24
+ provide primitive (/) = "@wasm.div_s_int32"
25
+ provide primitive divU = "@wasm.div_u_int32"
26
+ provide primitive remS = "@wasm.rem_s_int32"
27
+ provide primitive remU = "@wasm.rem_u_int32"
28
+ provide primitive (&) = "@wasm.and_int32"
29
+ provide primitive (|) = "@wasm.or_int32"
30
+ provide primitive (^) = "@wasm.xor_int32"
31
+ provide primitive (<<) = "@wasm.shl_int32"
32
+ provide primitive (>>) = "@wasm.shr_s_int32"
33
+ provide primitive (>>>) = "@wasm.shr_u_int32"
34
+ provide primitive rotl = "@wasm.rot_l_int32"
35
+ provide primitive rotr = "@wasm.rot_r_int32"
36
+ provide primitive (==) = "@wasm.eq_int32"
37
+ provide primitive (!=) = "@wasm.ne_int32"
38
+ provide primitive (<) = "@wasm.lt_s_int32"
39
+ provide primitive ltU = "@wasm.lt_u_int32"
40
+ provide primitive (<=) = "@wasm.le_s_int32"
41
+ provide primitive leU = "@wasm.le_u_int32"
42
+ provide primitive (>) = "@wasm.gt_s_int32"
43
+ provide primitive gtU = "@wasm.gt_u_int32"
44
+ provide primitive (>=) = "@wasm.ge_s_int32"
45
+ provide primitive geU = "@wasm.ge_u_int32"
63
46
 
64
47
  // WebAssembly Conversion Instructions
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"
48
+ provide primitive wrapI64 = "@wasm.wrap_int64"
49
+ provide primitive truncF32S = "@wasm.trunc_s_float32_to_int32"
50
+ provide primitive truncF32U = "@wasm.trunc_u_float32_to_int32"
51
+ provide primitive truncF64S = "@wasm.trunc_s_float64_to_int32"
52
+ provide primitive truncF64U = "@wasm.trunc_u_float64_to_int32"
53
+ provide primitive reinterpretF32 = "@wasm.reinterpret_float32"
54
+ provide primitive extendS8 = "@wasm.extend_s8_int32"
55
+ provide primitive extendS16 = "@wasm.extend_s16_int32"
73
56
 
74
57
  // Grain Conversions
75
- export primitive fromGrain: a -> WasmI32 = "@wasm.fromGrain"
76
- export primitive toGrain: WasmI32 -> a = "@wasm.toGrain"
58
+ provide primitive fromGrain = "@wasm.fromGrain"
59
+ provide primitive toGrain = "@wasm.toGrain"