wardite 0.2.2 → 0.4.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.
- checksums.yaml +4 -4
- data/Rakefile +6 -0
- data/examples/break.wat +13 -0
- data/examples/call_indirect.wat +15 -0
- data/examples/loop.wat +20 -0
- data/examples/memory_init.wat +18 -0
- data/examples/saturate.wat +8 -0
- data/examples/saturate_u.wat +9 -0
- data/examples/start.wat +12 -0
- data/lib/wardite/const.rb +13 -12
- data/lib/wardite/convert.generated.rb +104 -0
- data/lib/wardite/instruction.rb +67 -8
- data/lib/wardite/load.rb +216 -28
- data/lib/wardite/value.rb +247 -70
- data/lib/wardite/version.rb +1 -1
- data/lib/wardite/wasi.rb +2 -2
- data/lib/wardite.rb +471 -17
- data/scripts/gen_conv.rb +12 -2
- data/sig/generated/wardite/const.rbs +2 -0
- data/sig/generated/wardite/instruction.rbs +15 -3
- data/sig/generated/wardite/load.rbs +63 -7
- data/sig/generated/wardite/value.rbs +142 -82
- data/sig/generated/wardite/wasi.rbs +4 -4
- data/sig/generated/wardite.rbs +103 -17
- data/sig/wardite.rbs +1 -3
- metadata +9 -2
data/scripts/gen_conv.rb
CHANGED
@@ -39,11 +39,18 @@ module GenConv
|
|
39
39
|
code = DEF.dup
|
40
40
|
method = op.to_s
|
41
41
|
symbol = "#{to.to_s}_#{method}_#{from.to_sym}"
|
42
|
+
extra_kargs = ""
|
42
43
|
|
43
44
|
if method == "extend"
|
44
45
|
method = "extend_"
|
46
|
+
elsif method =~ /^extendN_(u|s)$/
|
47
|
+
suffix = $1
|
48
|
+
from_size = from.to_s.scan(/\d+/).join
|
49
|
+
symbol = "#{to.to_s}_extend_#{from_size}_#{suffix}"
|
50
|
+
extra_kargs = ", from: :#{from.to_s}"
|
45
51
|
elsif method.end_with?("_s") or method.end_with?("_u")
|
46
|
-
core
|
52
|
+
core = method.sub(/_(s|u)$/, "")
|
53
|
+
suffix = method.scan(/_(s|u)$/).join
|
47
54
|
symbol = "#{to.to_s}_#{core}_#{from.to_sym}_#{suffix}"
|
48
55
|
end
|
49
56
|
# NOTE to is as namespace
|
@@ -52,11 +59,14 @@ module GenConv
|
|
52
59
|
code.gsub!(/\$\{TO\}/, to.to_s)
|
53
60
|
code.gsub!(/\$\{TO_CLASS\}/, to_class(to.to_sym))
|
54
61
|
code.gsub!(/\$\{FROM_CLASS\}/, to_class(from.to_sym))
|
62
|
+
code.gsub!(/\$\{EXTRA_KARGS\}/, extra_kargs)
|
55
63
|
return code
|
56
64
|
end
|
57
65
|
|
58
66
|
def self.to_class(typ)
|
59
67
|
{
|
68
|
+
i8: "I32",
|
69
|
+
i16: "I32",
|
60
70
|
i32: "I32",
|
61
71
|
i64: "I64",
|
62
72
|
f32: "F32",
|
@@ -69,7 +79,7 @@ module GenConv
|
|
69
79
|
when :${SYMBOL}
|
70
80
|
from = runtime.stack.pop
|
71
81
|
raise EvalError, "maybe empty or invalid stack" if !from.is_a?(${FROM_CLASS})
|
72
|
-
to = from.${METHOD}(to: :${TO})
|
82
|
+
to = from.${METHOD}(to: :${TO}${EXTRA_KARGS})
|
73
83
|
raise EvalError, "failed to convert type" if !to.is_a?(${TO_CLASS})
|
74
84
|
runtime.stack.push(to)
|
75
85
|
RUBY
|
@@ -1,34 +1,46 @@
|
|
1
1
|
# Generated from lib/wardite/instruction.rb with RBS::Inline
|
2
2
|
|
3
3
|
module Wardite
|
4
|
+
type operandItem = Integer | Array[Integer] | Float | Block
|
5
|
+
|
4
6
|
class Op
|
5
7
|
# @see https://pengowray.github.io/wasm-ops/
|
6
8
|
SYMS: Array[Symbol]
|
7
9
|
|
10
|
+
FC_SYMS: Array[Symbol]
|
11
|
+
|
8
12
|
# @rbs return: Hash[Integer, Symbol]
|
9
13
|
def self.table: () -> Hash[Integer, Symbol]
|
10
14
|
|
15
|
+
# @rbs return: Hash[Integer, Symbol]
|
16
|
+
def self.fc_table: () -> Hash[Integer, Symbol]
|
17
|
+
|
11
18
|
attr_accessor namespace: Symbol
|
12
19
|
|
13
20
|
attr_accessor code: Symbol
|
14
21
|
|
15
22
|
# TODO: add types of potential operands
|
16
|
-
attr_accessor operand: Array[
|
23
|
+
attr_accessor operand: Array[operandItem]
|
17
24
|
|
18
25
|
# @rbs namespace: Symbol
|
19
26
|
# @rbs code: Symbol
|
20
|
-
# @rbs operand: Array[
|
21
|
-
def initialize: (Symbol namespace, Symbol code, Array[
|
27
|
+
# @rbs operand: Array[operandItem]
|
28
|
+
def initialize: (Symbol namespace, Symbol code, Array[operandItem] operand) -> untyped
|
22
29
|
|
23
30
|
# @rbs chr: String
|
24
31
|
# @rbs return: [Symbol, Symbol]
|
25
32
|
def self.to_sym: (String chr) -> [ Symbol, Symbol ]
|
26
33
|
|
34
|
+
# @rbs lower: Integer
|
35
|
+
# @rbs return: [Symbol, Symbol]
|
36
|
+
def self.resolve_fc_sym: (Integer lower) -> [ Symbol, Symbol ]
|
37
|
+
|
27
38
|
# @rbs code: Symbol
|
28
39
|
# @rbs return: Array[Symbol]
|
29
40
|
def self.operand_of: (Symbol code) -> Array[Symbol]
|
30
41
|
|
31
42
|
# @see https://www.w3.org/TR/wasm-core-1/#value-types%E2%91%A2
|
43
|
+
# We use this for reftype conversion. https://webassembly.github.io/spec/core/binary/types.html#binary-reftype
|
32
44
|
# @rbs code: Integer
|
33
45
|
# @rbs return: Symbol
|
34
46
|
def self.i2type: (Integer code) -> Symbol
|
@@ -26,8 +26,17 @@ module Wardite
|
|
26
26
|
def initialize: () -> void
|
27
27
|
end
|
28
28
|
|
29
|
+
class TableSection < Section
|
30
|
+
attr_accessor table_types: Array[Symbol]
|
31
|
+
|
32
|
+
attr_accessor table_limits: Array[[ Integer, Integer? ]]
|
33
|
+
|
34
|
+
# @rbs return: void
|
35
|
+
def initialize: () -> void
|
36
|
+
end
|
37
|
+
|
29
38
|
class MemorySection < Section
|
30
|
-
attr_accessor limits: Array[[ Integer, Integer
|
39
|
+
attr_accessor limits: Array[[ Integer, Integer? ]]
|
31
40
|
|
32
41
|
# @rbs return: void
|
33
42
|
def initialize: () -> void
|
@@ -42,7 +51,7 @@ module Wardite
|
|
42
51
|
# TODO: unused in wasm 1.0 spec?
|
43
52
|
attr_accessor shared: bool
|
44
53
|
|
45
|
-
attr_accessor value:
|
54
|
+
attr_accessor value: wasmValue
|
46
55
|
|
47
56
|
# @rbs &blk: (Global) -> void
|
48
57
|
# @rbs return: void
|
@@ -55,6 +64,24 @@ module Wardite
|
|
55
64
|
def initialize: () -> void
|
56
65
|
end
|
57
66
|
|
67
|
+
class StartSection < Section
|
68
|
+
attr_accessor func_index: Integer
|
69
|
+
|
70
|
+
# @rbs return: void
|
71
|
+
def initialize: () -> void
|
72
|
+
end
|
73
|
+
|
74
|
+
class ElemSection < Section
|
75
|
+
attr_accessor table_indices: Array[Integer]
|
76
|
+
|
77
|
+
attr_accessor table_offsets: Array[Integer]
|
78
|
+
|
79
|
+
attr_accessor element_indices: Array[Array[Integer]]
|
80
|
+
|
81
|
+
# @rbs return: void
|
82
|
+
def initialize: () -> void
|
83
|
+
end
|
84
|
+
|
58
85
|
class CodeSection < Section
|
59
86
|
class CodeBody
|
60
87
|
attr_accessor locals_count: Array[Integer]
|
@@ -76,7 +103,9 @@ module Wardite
|
|
76
103
|
|
77
104
|
class DataSection < Section
|
78
105
|
class Segment
|
79
|
-
attr_accessor
|
106
|
+
attr_accessor mode: :active | :passive
|
107
|
+
|
108
|
+
attr_accessor mem_index: Integer
|
80
109
|
|
81
110
|
attr_accessor offset: Integer
|
82
111
|
|
@@ -93,6 +122,14 @@ module Wardite
|
|
93
122
|
def initialize: () -> void
|
94
123
|
end
|
95
124
|
|
125
|
+
class DataCountSection < Section
|
126
|
+
attr_accessor count: Integer
|
127
|
+
|
128
|
+
# @rbs count: Integer
|
129
|
+
# @rbs return: void
|
130
|
+
def initialize: (Integer count) -> void
|
131
|
+
end
|
132
|
+
|
96
133
|
class ExportSection < Section
|
97
134
|
class ExportDesc
|
98
135
|
attr_accessor name: String
|
@@ -134,11 +171,13 @@ module Wardite
|
|
134
171
|
|
135
172
|
extend Wardite::ValueHelper
|
136
173
|
|
174
|
+
self.@buf: File | StringIO
|
175
|
+
|
137
176
|
# @rbs buf: File|StringIO
|
138
|
-
# @rbs import_object: Hash[Symbol, Hash[Symbol,
|
177
|
+
# @rbs import_object: Hash[Symbol, Hash[Symbol, wasmCallable]]
|
139
178
|
# @rbs enable_wasi: boolish
|
140
179
|
# @rbs return: Instance
|
141
|
-
def self.load_from_buffer: (File | StringIO buf, ?import_object: Hash[Symbol, Hash[Symbol,
|
180
|
+
def self.load_from_buffer: (File | StringIO buf, ?import_object: Hash[Symbol, Hash[Symbol, wasmCallable]], ?enable_wasi: boolish) -> Instance
|
142
181
|
|
143
182
|
# @rbs return: Integer
|
144
183
|
def self.preamble: () -> Integer
|
@@ -155,12 +194,21 @@ module Wardite
|
|
155
194
|
# @rbs return: MemorySection
|
156
195
|
def self.memory_section: () -> MemorySection
|
157
196
|
|
197
|
+
# @rbs return: StartSection
|
198
|
+
def self.start_section: () -> StartSection
|
199
|
+
|
200
|
+
# @rbs return: ElemSection
|
201
|
+
def self.elem_section: () -> ElemSection
|
202
|
+
|
158
203
|
# @rbs return: GlobalSection
|
159
204
|
def self.global_section: () -> GlobalSection
|
160
205
|
|
161
206
|
# @rbs return: FunctionSection
|
162
207
|
def self.function_section: () -> FunctionSection
|
163
208
|
|
209
|
+
# @rbs return: TableSection
|
210
|
+
def self.table_section: () -> TableSection
|
211
|
+
|
164
212
|
# @rbs return: CodeSection
|
165
213
|
def self.code_section: () -> CodeSection
|
166
214
|
|
@@ -168,9 +216,17 @@ module Wardite
|
|
168
216
|
# @rbs return: Array[::Wardite::Op]
|
169
217
|
def self.code_body: (StringIO buf) -> Array[::Wardite::Op]
|
170
218
|
|
219
|
+
# @rbs c: String
|
220
|
+
# @rbs buf: StringIO
|
221
|
+
# @rbs return: [Symbol, Symbol]
|
222
|
+
def self.resolve_code: (String c, StringIO buf) -> [ Symbol, Symbol ]
|
223
|
+
|
171
224
|
# @rbs return: DataSection
|
172
225
|
def self.data_section: () -> DataSection
|
173
226
|
|
227
|
+
# @rbs return: DataCountSection
|
228
|
+
def self.data_count_section: () -> DataCountSection
|
229
|
+
|
174
230
|
# @rbs sbuf: StringIO
|
175
231
|
# @rbs return: String
|
176
232
|
def self.fetch_insn_while_end: (StringIO sbuf) -> String
|
@@ -180,8 +236,8 @@ module Wardite
|
|
180
236
|
def self.decode_expr: (Array[Op] ops) -> Integer
|
181
237
|
|
182
238
|
# @rbs ops: Array[Op]
|
183
|
-
# @rbs return:
|
184
|
-
def self.decode_global_expr: (Array[Op] ops) ->
|
239
|
+
# @rbs return: wasmValue
|
240
|
+
def self.decode_global_expr: (Array[Op] ops) -> wasmValue
|
185
241
|
|
186
242
|
# @rbs return: ExportSection
|
187
243
|
def self.export_section: () -> ExportSection
|
@@ -1,6 +1,8 @@
|
|
1
1
|
# Generated from lib/wardite/value.rb with RBS::Inline
|
2
2
|
|
3
3
|
module Wardite
|
4
|
+
type wasmValue = I32 | I64 | F32 | F64
|
5
|
+
|
4
6
|
module ValueHelper
|
5
7
|
# @rbs value: Integer
|
6
8
|
# @rbs return: I32
|
@@ -34,7 +36,7 @@ module Wardite
|
|
34
36
|
class I32
|
35
37
|
include ValueHelper
|
36
38
|
|
37
|
-
I32_MAX:
|
39
|
+
I32_MAX: Integer
|
38
40
|
|
39
41
|
# value should be stored as unsigned Integer, even in I32/I64
|
40
42
|
# when we want to access signed value, it'd be done via #value_s
|
@@ -59,44 +61,57 @@ module Wardite
|
|
59
61
|
def packed: (?size: Integer | nil) -> String
|
60
62
|
|
61
63
|
# @rbs to: Symbol
|
62
|
-
# @rbs return:
|
63
|
-
def wrap: (to: Symbol) ->
|
64
|
+
# @rbs return: wasmValue
|
65
|
+
def wrap: (to: Symbol) -> wasmValue
|
66
|
+
|
67
|
+
# @rbs to: Symbol
|
68
|
+
# @rbs return: wasmValue
|
69
|
+
def extend_s: (to: Symbol) -> wasmValue
|
70
|
+
|
71
|
+
# @rbs to: Symbol
|
72
|
+
# @rbs return: wasmValue
|
73
|
+
def extend_u: (to: Symbol) -> wasmValue
|
74
|
+
|
75
|
+
# @rbs to: Symbol
|
76
|
+
# @rbs return: wasmValue
|
77
|
+
def trunc_s: (to: Symbol) -> wasmValue
|
64
78
|
|
65
79
|
# @rbs to: Symbol
|
66
|
-
# @rbs return:
|
67
|
-
def
|
80
|
+
# @rbs return: wasmValue
|
81
|
+
def trunc_u: (to: Symbol) -> wasmValue
|
68
82
|
|
69
83
|
# @rbs to: Symbol
|
70
|
-
# @rbs return:
|
71
|
-
def
|
84
|
+
# @rbs return: wasmValue
|
85
|
+
def convert_s: (to: Symbol) -> wasmValue
|
72
86
|
|
73
87
|
# @rbs to: Symbol
|
74
|
-
# @rbs return:
|
75
|
-
def
|
88
|
+
# @rbs return: wasmValue
|
89
|
+
def convert_u: (to: Symbol) -> wasmValue
|
76
90
|
|
77
91
|
# @rbs to: Symbol
|
78
|
-
# @rbs return:
|
79
|
-
def
|
92
|
+
# @rbs return: wasmValue
|
93
|
+
def demote: (to: Symbol) -> wasmValue
|
80
94
|
|
81
95
|
# @rbs to: Symbol
|
82
|
-
# @rbs return:
|
83
|
-
def
|
96
|
+
# @rbs return: wasmValue
|
97
|
+
def promote: (to: Symbol) -> wasmValue
|
84
98
|
|
85
99
|
# @rbs to: Symbol
|
86
|
-
# @rbs return:
|
87
|
-
def
|
100
|
+
# @rbs return: wasmValue
|
101
|
+
def reinterpret: (to: Symbol) -> wasmValue
|
88
102
|
|
103
|
+
# @rbs from: Symbol
|
89
104
|
# @rbs to: Symbol
|
90
|
-
# @rbs return:
|
91
|
-
def
|
105
|
+
# @rbs return: wasmValue
|
106
|
+
def extendN_s: (from: Symbol, to: Symbol) -> wasmValue
|
92
107
|
|
93
108
|
# @rbs to: Symbol
|
94
|
-
# @rbs return:
|
95
|
-
def
|
109
|
+
# @rbs return: wasmValue
|
110
|
+
def trunc_sat_u: (to: Symbol) -> wasmValue
|
96
111
|
|
97
112
|
# @rbs to: Symbol
|
98
|
-
# @rbs return:
|
99
|
-
def
|
113
|
+
# @rbs return: wasmValue
|
114
|
+
def trunc_sat_s: (to: Symbol) -> wasmValue
|
100
115
|
|
101
116
|
# I32#inspect shows signed value for convinience
|
102
117
|
def inspect: () -> untyped
|
@@ -105,7 +120,7 @@ module Wardite
|
|
105
120
|
class I64
|
106
121
|
include ValueHelper
|
107
122
|
|
108
|
-
I64_MAX:
|
123
|
+
I64_MAX: Integer
|
109
124
|
|
110
125
|
attr_accessor value: Integer
|
111
126
|
|
@@ -127,44 +142,57 @@ module Wardite
|
|
127
142
|
def packed: (?size: Integer | nil) -> String
|
128
143
|
|
129
144
|
# @rbs to: Symbol
|
130
|
-
# @rbs return:
|
131
|
-
def wrap: (to: Symbol) ->
|
145
|
+
# @rbs return: wasmValue
|
146
|
+
def wrap: (to: Symbol) -> wasmValue
|
147
|
+
|
148
|
+
# @rbs to: Symbol
|
149
|
+
# @rbs return: wasmValue
|
150
|
+
def extend_s: (to: Symbol) -> wasmValue
|
151
|
+
|
152
|
+
# @rbs to: Symbol
|
153
|
+
# @rbs return: wasmValue
|
154
|
+
def extend_u: (to: Symbol) -> wasmValue
|
155
|
+
|
156
|
+
# @rbs to: Symbol
|
157
|
+
# @rbs return: wasmValue
|
158
|
+
def trunc_s: (to: Symbol) -> wasmValue
|
132
159
|
|
133
160
|
# @rbs to: Symbol
|
134
|
-
# @rbs return:
|
135
|
-
def
|
161
|
+
# @rbs return: wasmValue
|
162
|
+
def trunc_u: (to: Symbol) -> wasmValue
|
136
163
|
|
137
164
|
# @rbs to: Symbol
|
138
|
-
# @rbs return:
|
139
|
-
def
|
165
|
+
# @rbs return: wasmValue
|
166
|
+
def convert_s: (to: Symbol) -> wasmValue
|
140
167
|
|
141
168
|
# @rbs to: Symbol
|
142
|
-
# @rbs return:
|
143
|
-
def
|
169
|
+
# @rbs return: wasmValue
|
170
|
+
def convert_u: (to: Symbol) -> wasmValue
|
144
171
|
|
145
172
|
# @rbs to: Symbol
|
146
|
-
# @rbs return:
|
147
|
-
def
|
173
|
+
# @rbs return: wasmValue
|
174
|
+
def demote: (to: Symbol) -> wasmValue
|
148
175
|
|
149
176
|
# @rbs to: Symbol
|
150
|
-
# @rbs return:
|
151
|
-
def
|
177
|
+
# @rbs return: wasmValue
|
178
|
+
def promote: (to: Symbol) -> wasmValue
|
152
179
|
|
153
180
|
# @rbs to: Symbol
|
154
|
-
# @rbs return:
|
155
|
-
def
|
181
|
+
# @rbs return: wasmValue
|
182
|
+
def reinterpret: (to: Symbol) -> wasmValue
|
156
183
|
|
184
|
+
# @rbs from: Symbol
|
157
185
|
# @rbs to: Symbol
|
158
|
-
# @rbs return:
|
159
|
-
def
|
186
|
+
# @rbs return: wasmValue
|
187
|
+
def extendN_s: (from: Symbol, to: Symbol) -> wasmValue
|
160
188
|
|
161
189
|
# @rbs to: Symbol
|
162
|
-
# @rbs return:
|
163
|
-
def
|
190
|
+
# @rbs return: wasmValue
|
191
|
+
def trunc_sat_u: (to: Symbol) -> wasmValue
|
164
192
|
|
165
193
|
# @rbs to: Symbol
|
166
|
-
# @rbs return:
|
167
|
-
def
|
194
|
+
# @rbs return: wasmValue
|
195
|
+
def trunc_sat_s: (to: Symbol) -> wasmValue
|
168
196
|
|
169
197
|
# I64#inspect shows signed value
|
170
198
|
def inspect: () -> untyped
|
@@ -190,47 +218,64 @@ module Wardite
|
|
190
218
|
def packed: (?size: Integer | nil) -> String
|
191
219
|
|
192
220
|
# @rbs to: Symbol
|
193
|
-
# @rbs return:
|
194
|
-
def wrap: (to: Symbol) ->
|
221
|
+
# @rbs return: wasmValue
|
222
|
+
def wrap: (to: Symbol) -> wasmValue
|
195
223
|
|
196
224
|
# @rbs to: Symbol
|
197
|
-
# @rbs return:
|
198
|
-
def extend_s: (to: Symbol) ->
|
225
|
+
# @rbs return: wasmValue
|
226
|
+
def extend_s: (to: Symbol) -> wasmValue
|
199
227
|
|
200
228
|
# @rbs to: Symbol
|
201
|
-
# @rbs return:
|
202
|
-
def extend_u: (to: Symbol) ->
|
229
|
+
# @rbs return: wasmValue
|
230
|
+
def extend_u: (to: Symbol) -> wasmValue
|
203
231
|
|
204
232
|
# @todo need more testcase...
|
205
233
|
# @see https://webassembly.github.io/spec/core/exec/numerics.html#xref-exec-numerics-op-trunc-s-mathrm-trunc-mathsf-s-m-n-z
|
234
|
+
# @see copy this impl to F64 when changed
|
206
235
|
# @rbs to: Symbol
|
207
|
-
# @rbs
|
208
|
-
|
236
|
+
# @rbs saturating: bool
|
237
|
+
# @rbs return: wasmValue
|
238
|
+
def trunc_s: (to: Symbol, ?saturating: bool) -> wasmValue
|
209
239
|
|
210
240
|
# @see https://webassembly.github.io/spec/core/exec/numerics.html#xref-exec-numerics-op-trunc-u-mathrm-trunc-mathsf-u-m-n-z
|
241
|
+
# @see copy this impl to F64 when changed
|
211
242
|
# @rbs to: Symbol
|
212
|
-
# @rbs
|
213
|
-
|
243
|
+
# @rbs sturating: bool
|
244
|
+
# @rbs return: wasmValue
|
245
|
+
def trunc_u: (to: Symbol, ?saturating: untyped) -> wasmValue
|
214
246
|
|
215
247
|
# @rbs to: Symbol
|
216
|
-
# @rbs return:
|
217
|
-
def convert_s: (to: Symbol) ->
|
248
|
+
# @rbs return: wasmValue
|
249
|
+
def convert_s: (to: Symbol) -> wasmValue
|
218
250
|
|
219
251
|
# @rbs to: Symbol
|
220
|
-
# @rbs return:
|
221
|
-
def convert_u: (to: Symbol) ->
|
252
|
+
# @rbs return: wasmValue
|
253
|
+
def convert_u: (to: Symbol) -> wasmValue
|
222
254
|
|
223
255
|
# @rbs to: Symbol
|
224
|
-
# @rbs return:
|
225
|
-
def demote: (to: Symbol) ->
|
256
|
+
# @rbs return: wasmValue
|
257
|
+
def demote: (to: Symbol) -> wasmValue
|
226
258
|
|
227
259
|
# @rbs to: Symbol
|
228
|
-
# @rbs return:
|
229
|
-
def promote: (to: Symbol) ->
|
260
|
+
# @rbs return: wasmValue
|
261
|
+
def promote: (to: Symbol) -> wasmValue
|
230
262
|
|
231
263
|
# @rbs to: Symbol
|
232
|
-
# @rbs return:
|
233
|
-
def reinterpret: (to: Symbol) ->
|
264
|
+
# @rbs return: wasmValue
|
265
|
+
def reinterpret: (to: Symbol) -> wasmValue
|
266
|
+
|
267
|
+
# @rbs from: Symbol
|
268
|
+
# @rbs to: Symbol
|
269
|
+
# @rbs return: wasmValue
|
270
|
+
def extendN_s: (from: Symbol, to: Symbol) -> wasmValue
|
271
|
+
|
272
|
+
# @rbs to: Symbol
|
273
|
+
# @rbs return: wasmValue
|
274
|
+
def trunc_sat_u: (to: Symbol) -> wasmValue
|
275
|
+
|
276
|
+
# @rbs to: Symbol
|
277
|
+
# @rbs return: wasmValue
|
278
|
+
def trunc_sat_s: (to: Symbol) -> wasmValue
|
234
279
|
|
235
280
|
def inspect: () -> untyped
|
236
281
|
end
|
@@ -255,47 +300,62 @@ module Wardite
|
|
255
300
|
def packed: (?size: Integer | nil) -> String
|
256
301
|
|
257
302
|
# @rbs to: Symbol
|
258
|
-
# @rbs return:
|
259
|
-
def wrap: (to: Symbol) ->
|
303
|
+
# @rbs return: wasmValue
|
304
|
+
def wrap: (to: Symbol) -> wasmValue
|
260
305
|
|
261
306
|
# @rbs to: Symbol
|
262
|
-
# @rbs return:
|
263
|
-
def extend_s: (to: Symbol) ->
|
307
|
+
# @rbs return: wasmValue
|
308
|
+
def extend_s: (to: Symbol) -> wasmValue
|
264
309
|
|
265
310
|
# @rbs to: Symbol
|
266
|
-
# @rbs return:
|
267
|
-
def extend_u: (to: Symbol) ->
|
311
|
+
# @rbs return: wasmValue
|
312
|
+
def extend_u: (to: Symbol) -> wasmValue
|
268
313
|
|
269
314
|
# @see the same as F32
|
270
315
|
# @rbs to: Symbol
|
271
|
-
# @rbs
|
272
|
-
|
316
|
+
# @rbs saturating: bool
|
317
|
+
# @rbs return: wasmValue
|
318
|
+
def trunc_s: (to: Symbol, ?saturating: bool) -> wasmValue
|
273
319
|
|
274
320
|
# @see the same as F32
|
275
321
|
# @rbs to: Symbol
|
276
|
-
# @rbs
|
277
|
-
|
322
|
+
# @rbs saturating: bool
|
323
|
+
# @rbs return: wasmValue
|
324
|
+
def trunc_u: (to: Symbol, ?saturating: bool) -> wasmValue
|
278
325
|
|
279
326
|
# @rbs to: Symbol
|
280
|
-
# @rbs return:
|
281
|
-
def convert_s: (to: Symbol) ->
|
327
|
+
# @rbs return: wasmValue
|
328
|
+
def convert_s: (to: Symbol) -> wasmValue
|
282
329
|
|
283
330
|
# @rbs to: Symbol
|
284
|
-
# @rbs return:
|
285
|
-
def convert_u: (to: Symbol) ->
|
331
|
+
# @rbs return: wasmValue
|
332
|
+
def convert_u: (to: Symbol) -> wasmValue
|
286
333
|
|
287
334
|
# @todo no loss of digits...
|
288
335
|
# @rbs to: Symbol
|
289
|
-
# @rbs return:
|
290
|
-
def demote: (to: Symbol) ->
|
336
|
+
# @rbs return: wasmValue
|
337
|
+
def demote: (to: Symbol) -> wasmValue
|
338
|
+
|
339
|
+
# @rbs to: Symbol
|
340
|
+
# @rbs return: wasmValue
|
341
|
+
def promote: (to: Symbol) -> wasmValue
|
342
|
+
|
343
|
+
# @rbs to: Symbol
|
344
|
+
# @rbs return: wasmValue
|
345
|
+
def reinterpret: (to: Symbol) -> wasmValue
|
346
|
+
|
347
|
+
# @rbs from: Symbol
|
348
|
+
# @rbs to: Symbol
|
349
|
+
# @rbs return: wasmValue
|
350
|
+
def extendN_s: (from: Symbol, to: Symbol) -> wasmValue
|
291
351
|
|
292
352
|
# @rbs to: Symbol
|
293
|
-
# @rbs return:
|
294
|
-
def
|
353
|
+
# @rbs return: wasmValue
|
354
|
+
def trunc_sat_u: (to: Symbol) -> wasmValue
|
295
355
|
|
296
356
|
# @rbs to: Symbol
|
297
|
-
# @rbs return:
|
298
|
-
def
|
357
|
+
# @rbs return: wasmValue
|
358
|
+
def trunc_sat_s: (to: Symbol) -> wasmValue
|
299
359
|
|
300
360
|
def inspect: () -> untyped
|
301
361
|
end
|
@@ -10,12 +10,12 @@ module Wardite
|
|
10
10
|
def initialize: () -> untyped
|
11
11
|
|
12
12
|
# @rbs store: Store
|
13
|
-
# @rbs args: Array[
|
13
|
+
# @rbs args: Array[wasmValue]
|
14
14
|
# @rbs return: Object
|
15
|
-
def fd_write: (Store store, Array[
|
15
|
+
def fd_write: (Store store, Array[wasmValue] args) -> Object
|
16
16
|
|
17
|
-
# @rbs return: Hash[Symbol,
|
18
|
-
def to_module: () -> Hash[Symbol,
|
17
|
+
# @rbs return: Hash[Symbol, wasmCallable]
|
18
|
+
def to_module: () -> Hash[Symbol, wasmCallable]
|
19
19
|
|
20
20
|
private
|
21
21
|
|