wardite 0.2.2 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
|