wardite 0.4.2 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a6335000832a623233f1a9719fe271fa4a000270bc55312fc996fe3f4e72bad9
4
- data.tar.gz: d72874301c47400a24fa9992de296d5d490c04d2c6f1dad2b76493f7eed3b464
3
+ metadata.gz: e3ca81e45a3da7f90566d465d5248bcac03981953e97c81681de900851348407
4
+ data.tar.gz: 2b0952f92a92bce4d54283868fd2565b9dbaa178cc1187b2a7f6feca6225fe57
5
5
  SHA512:
6
- metadata.gz: 3d3a12027244cac1cc6efeb382a6a164c070946a85886eae1915c90360a6c139766ae2780103511bf1e332418576a6dbdc1fd7ca7266a2974dd228d24155bedb
7
- data.tar.gz: 282d5051760ca800a876daaa1962bea603961ce3fc4551560255030c433e445ba0efc945b75b5829112a6742b6492142ad3c2a1d577f30816bcf76f39bd58f2e
6
+ metadata.gz: 8a4db779ed117465fb2c981c0b9da39dcdd001e60abf00262d04353449b5b72ad433949d6c640458fe2b61b503e84180dbf3c7709d791b48f7ed2a5ad9dbe372
7
+ data.tar.gz: 7d00f04205f6ef10b21dee7067adf1f480a529cea4bf0caa404fd888547f101f3908f54863262333e2b363d2d17b28b4899ff12ddc5e226958eda975354fd954
data/README.md CHANGED
@@ -43,7 +43,7 @@ path = ARGV[0]
43
43
  method = ARGV[1]
44
44
  args = ARGV[2..-1] || []
45
45
 
46
- instance = Wardite::new(path: path);
46
+ instance = Wardite::new(path: path)
47
47
  if !method && instance.runtime.respond_to?(:_start)
48
48
  instance.runtime._start
49
49
  else
@@ -311,7 +311,7 @@ module Wardite
311
311
  digits = target.memsize
312
312
  count = 0
313
313
  digits.times do |i|
314
- if (target.value & (1 << i)).zero?
314
+ if (target.value & (1 << i)).nonzero?
315
315
  count += 1
316
316
  end
317
317
  end
@@ -347,7 +347,13 @@ module Wardite
347
347
  if !right.is_a?(I32) || !left.is_a?(I32)
348
348
  raise EvalError, "maybe empty or invalid stack"
349
349
  end
350
- runtime.stack.push(I32(left.value_s / right.value_s))
350
+ result = left.value_s / right.value_s.to_f
351
+ iresult = (result >= 0 ? result.floor : result.ceil).to_i
352
+ if iresult >= (1 << (left.memsize - 1))
353
+ raise IntegerOverflow, "integer overflow"
354
+ end
355
+
356
+ runtime.stack.push(I32(iresult))
351
357
 
352
358
 
353
359
  when :i32_div_u
@@ -363,7 +369,13 @@ module Wardite
363
369
  if !right.is_a?(I32) || !left.is_a?(I32)
364
370
  raise EvalError, "maybe empty or invalid stack"
365
371
  end
366
- runtime.stack.push(I32(left.value_s % right.value_s))
372
+ result = left.value_s % right.value_s
373
+ if result > 0 && left.value_s < 0
374
+ result = result - right.value_s
375
+ elsif result < 0 && left.value_s > 0
376
+ result = result - right.value_s
377
+ end
378
+ runtime.stack.push(I32(result))
367
379
 
368
380
 
369
381
  when :i32_rem_u
@@ -403,8 +415,8 @@ module Wardite
403
415
  if !right.is_a?(I32) || !left.is_a?(I32)
404
416
  raise EvalError, "maybe empty or invalid stack"
405
417
  end
406
- value = left.value << right.value
407
- value %= (1 << right.memsize)
418
+ value = left.value << (right.value % right.memsize)
419
+ value %= 1 << right.memsize
408
420
 
409
421
  runtime.stack.push(I32(value))
410
422
 
@@ -414,7 +426,7 @@ module Wardite
414
426
  if !right.is_a?(I32) || !left.is_a?(I32)
415
427
  raise EvalError, "maybe empty or invalid stack"
416
428
  end
417
- value = left.value_s >> right.value
429
+ value = left.value_s >> (right.value % right.memsize)
418
430
  runtime.stack.push(I32(value))
419
431
 
420
432
 
@@ -423,7 +435,7 @@ module Wardite
423
435
  if !right.is_a?(I32) || !left.is_a?(I32)
424
436
  raise EvalError, "maybe empty or invalid stack"
425
437
  end
426
- value = left.value >> right.value
438
+ value = left.value >> (right.value % right.memsize)
427
439
  runtime.stack.push(I32(value))
428
440
 
429
441
 
@@ -432,9 +444,10 @@ module Wardite
432
444
  if !right.is_a?(I32) || !left.is_a?(I32)
433
445
  raise EvalError, "maybe empty or invalid stack"
434
446
  end
435
- rotated = left.value << right.value
436
- rest = left.value & (I32::I32_MAX << (right.memsize - right.value))
437
- value = rotated | (rest >> (right.memsize - right.value))
447
+ k = (right.value % right.memsize)
448
+ rotated = left.value << k
449
+ rest = left.value & (I32::I32_MAX << (right.memsize - k))
450
+ value = rotated | (rest >> (right.memsize - k))
438
451
  runtime.stack.push(I32(value))
439
452
 
440
453
 
@@ -443,9 +456,10 @@ module Wardite
443
456
  if !right.is_a?(I32) || !left.is_a?(I32)
444
457
  raise EvalError, "maybe empty or invalid stack"
445
458
  end
446
- rotated = left.value >> right.value
447
- rest = left.value & (I32::I32_MAX >> (right.memsize - right.value))
448
- value = rotated | (rest << (right.memsize - right.value))
459
+ k = (right.value % right.memsize)
460
+ rotated = left.value >> k
461
+ rest = left.value & (I32::I32_MAX >> (right.memsize - k))
462
+ value = rotated | (rest << (right.memsize - k))
449
463
  runtime.stack.push(I32(value))
450
464
 
451
465
 
@@ -368,7 +368,7 @@ module Wardite
368
368
  digits = target.memsize
369
369
  count = 0
370
370
  digits.times do |i|
371
- if (target.value & (1 << i)).zero?
371
+ if (target.value & (1 << i)).nonzero?
372
372
  count += 1
373
373
  end
374
374
  end
@@ -404,7 +404,13 @@ module Wardite
404
404
  if !right.is_a?(I64) || !left.is_a?(I64)
405
405
  raise EvalError, "maybe empty or invalid stack"
406
406
  end
407
- runtime.stack.push(I64(left.value_s / right.value_s))
407
+ result = left.value_s / right.value_s.to_f
408
+ iresult = (result >= 0 ? result.floor : result.ceil).to_i
409
+ if iresult >= (1 << (left.memsize - 1))
410
+ raise IntegerOverflow, "integer overflow"
411
+ end
412
+
413
+ runtime.stack.push(I64(iresult))
408
414
 
409
415
 
410
416
  when :i64_div_u
@@ -420,7 +426,13 @@ module Wardite
420
426
  if !right.is_a?(I64) || !left.is_a?(I64)
421
427
  raise EvalError, "maybe empty or invalid stack"
422
428
  end
423
- runtime.stack.push(I64(left.value_s % right.value_s))
429
+ result = left.value_s % right.value_s
430
+ if result > 0 && left.value_s < 0
431
+ result = result - right.value_s
432
+ elsif result < 0 && left.value_s > 0
433
+ result = result - right.value_s
434
+ end
435
+ runtime.stack.push(I64(result))
424
436
 
425
437
 
426
438
  when :i64_rem_u
@@ -460,8 +472,8 @@ module Wardite
460
472
  if !right.is_a?(I64) || !left.is_a?(I64)
461
473
  raise EvalError, "maybe empty or invalid stack"
462
474
  end
463
- value = left.value << right.value
464
- value %= (1 << right.memsize)
475
+ value = left.value << (right.value % right.memsize)
476
+ value %= 1 << right.memsize
465
477
 
466
478
  runtime.stack.push(I64(value))
467
479
 
@@ -471,7 +483,7 @@ module Wardite
471
483
  if !right.is_a?(I64) || !left.is_a?(I64)
472
484
  raise EvalError, "maybe empty or invalid stack"
473
485
  end
474
- value = left.value_s >> right.value
486
+ value = left.value_s >> (right.value % right.memsize)
475
487
  runtime.stack.push(I64(value))
476
488
 
477
489
 
@@ -480,7 +492,7 @@ module Wardite
480
492
  if !right.is_a?(I64) || !left.is_a?(I64)
481
493
  raise EvalError, "maybe empty or invalid stack"
482
494
  end
483
- value = left.value >> right.value
495
+ value = left.value >> (right.value % right.memsize)
484
496
  runtime.stack.push(I64(value))
485
497
 
486
498
 
@@ -489,9 +501,10 @@ module Wardite
489
501
  if !right.is_a?(I64) || !left.is_a?(I64)
490
502
  raise EvalError, "maybe empty or invalid stack"
491
503
  end
492
- rotated = left.value << right.value
493
- rest = left.value & (I64::I64_MAX << (right.memsize - right.value))
494
- value = rotated | (rest >> (right.memsize - right.value))
504
+ k = (right.value % right.memsize)
505
+ rotated = left.value << k
506
+ rest = left.value & (I64::I64_MAX << (right.memsize - k))
507
+ value = rotated | (rest >> (right.memsize - k))
495
508
  runtime.stack.push(I64(value))
496
509
 
497
510
 
@@ -500,9 +513,10 @@ module Wardite
500
513
  if !right.is_a?(I64) || !left.is_a?(I64)
501
514
  raise EvalError, "maybe empty or invalid stack"
502
515
  end
503
- rotated = left.value >> right.value
504
- rest = left.value & (I64::I64_MAX >> (right.memsize - right.value))
505
- value = rotated | (rest << (right.memsize - right.value))
516
+ k = (right.value % right.memsize)
517
+ rotated = left.value >> k
518
+ rest = left.value & (I64::I64_MAX >> (right.memsize - k))
519
+ value = rotated | (rest << (right.memsize - k))
506
520
  runtime.stack.push(I64(value))
507
521
 
508
522
 
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+ # rbs_inline: enabled
3
+ module Wardite
4
+ # basic error class.
5
+ class WebAssemblyError < StandardError
6
+ end
7
+
8
+ class IntegerOverflow < WebAssemblyError; end
9
+ end
data/lib/wardite/load.rb CHANGED
@@ -193,7 +193,7 @@ module Wardite
193
193
 
194
194
  attr_accessor :kind #: Integer
195
195
 
196
- attr_accessor :func_index #: Integer
196
+ attr_accessor :index #: Integer
197
197
  end
198
198
 
199
199
  attr_accessor :exports #: Hash[String, ExportDesc]
@@ -840,7 +840,7 @@ module Wardite
840
840
  dest.add_desc do |desc|
841
841
  desc.name = name
842
842
  desc.kind = kind
843
- desc.func_index = index
843
+ desc.index = index
844
844
  end
845
845
  end
846
846
 
data/lib/wardite/value.rb CHANGED
@@ -237,6 +237,10 @@ module Wardite
237
237
  def inspect
238
238
  "I32(#{value_s})"
239
239
  end
240
+
241
+ def ==(other)
242
+ return self.class == other.class && self.value == other.value
243
+ end
240
244
  end
241
245
 
242
246
  class I64
@@ -400,6 +404,10 @@ module Wardite
400
404
  def inspect
401
405
  "I64(#{@value})"
402
406
  end
407
+
408
+ def ==(other)
409
+ return self.class == other.class && self.value == other.value
410
+ end
403
411
  end
404
412
 
405
413
  class F32
@@ -601,6 +609,10 @@ module Wardite
601
609
  def inspect
602
610
  "F32(#{@value})"
603
611
  end
612
+
613
+ def ==(other)
614
+ return self.class == other.class && self.value == other.value
615
+ end
604
616
  end
605
617
 
606
618
  class F64
@@ -800,5 +812,9 @@ module Wardite
800
812
  def inspect
801
813
  "F64(#{@value})"
802
814
  end
815
+
816
+ def ==(other)
817
+ return self.class == other.class && self.value == other.value
818
+ end
803
819
  end
804
820
  end
@@ -2,5 +2,5 @@
2
2
  # rbs_inline: enabled
3
3
 
4
4
  module Wardite
5
- VERSION = "0.4.2" #: String
5
+ VERSION = "0.5.0" #: String
6
6
  end
data/lib/wardite.rb CHANGED
@@ -7,6 +7,7 @@ require_relative "wardite/const"
7
7
  require_relative "wardite/instruction"
8
8
  require_relative "wardite/value"
9
9
  require_relative "wardite/load"
10
+ require_relative "wardite/errors"
10
11
 
11
12
  module Wardite
12
13
  module Evaluator
@@ -258,10 +259,13 @@ module Wardite
258
259
  if !callable?(name)
259
260
  raise ::NoMethodError, "function #{name} not found"
260
261
  end
261
- kind, fn = @instance.exports[name.to_s]
262
+ kind, fn = @instance.exports.mappings[name.to_s]
262
263
  if kind != 0
263
264
  raise ::NoMethodError, "#{name} is not a function"
264
265
  end
266
+ if !fn.is_a?(WasmFunction) && !fn.is_a?(ExternalFunction)
267
+ raise ::NoMethodError, "#{name} is not a function"
268
+ end
265
269
  if fn.callsig.size != args.size
266
270
  raise ArgumentError, "unmatch arg size"
267
271
  end
@@ -727,10 +731,12 @@ module Wardite
727
731
  end
728
732
 
729
733
  rescue => e
730
- require "pp"
731
- $stderr.puts "instance:::\n#{self.instance.pretty_inspect}"
732
- $stderr.puts "frame:::\n#{frame.pretty_inspect}"
733
- $stderr.puts "stack:::\n#{stack.pretty_inspect}"
734
+ if ENV["DEBUG"]
735
+ require "pp"
736
+ $stderr.puts "instance:::\n#{self.instance.pretty_inspect}"
737
+ $stderr.puts "frame:::\n#{frame.pretty_inspect}"
738
+ $stderr.puts "stack:::\n#{stack.pretty_inspect}"
739
+ end
734
740
  raise e
735
741
  end
736
742
 
@@ -1114,6 +1120,7 @@ module Wardite
1114
1120
  end
1115
1121
 
1116
1122
  @data += String.new("\0" * (delta * 64 * 1024))
1123
+ self.current = newsize
1117
1124
  prev
1118
1125
  end
1119
1126
 
@@ -1219,8 +1226,11 @@ module Wardite
1219
1226
  end
1220
1227
  end
1221
1228
 
1229
+ # @rbs!
1230
+ # type exportHandle = WasmFunction | ExternalFunction | Table | Global | Memory
1231
+
1222
1232
  class Exports
1223
- attr_accessor :mappings #: Hash[String, [Integer, WasmFunction|ExternalFunction]]
1233
+ attr_accessor :mappings #: Hash[String, [Integer, exportHandle]]
1224
1234
 
1225
1235
  # @rbs export_section: ExportSection
1226
1236
  # @rbs store: Store
@@ -1228,15 +1238,36 @@ module Wardite
1228
1238
  def initialize(export_section, store)
1229
1239
  @mappings = {}
1230
1240
  export_section.exports.each_pair do |name, desc|
1231
- # TODO: introduce map by kind
1232
- @mappings[name] = [desc.kind, store.funcs[desc.func_index]]
1241
+ case desc.kind
1242
+ when 0x0
1243
+ @mappings[name] = [desc.kind, store.funcs[desc.index]]
1244
+ when 0x1
1245
+ @mappings[name] = [desc.kind, store.tables[desc.index]]
1246
+ when 0x2
1247
+ @mappings[name] = [desc.kind, store.memories[desc.index]]
1248
+ when 0x3
1249
+ @mappings[name] = [desc.kind, store.globals[desc.index]]
1250
+ else
1251
+ end
1233
1252
  end
1234
1253
  end
1235
1254
 
1236
1255
  # @rbs name: String
1237
- # @rbs return: [Integer, WasmFunction|ExternalFunction]
1256
+ # @rbs return: exportHandle|nil
1238
1257
  def [](name)
1239
- @mappings[name]
1258
+ @mappings[name]&.[](1)
1259
+ end
1260
+
1261
+ def respond_to?(name)
1262
+ !!self[name.to_s] || super
1263
+ end
1264
+
1265
+ def method_missing(name, *_args)
1266
+ if self[name.to_s]
1267
+ self[name.to_s]
1268
+ else
1269
+ super
1270
+ end
1240
1271
  end
1241
1272
  end
1242
1273
 
data/scripts/gen_alu.rb CHANGED
@@ -480,7 +480,7 @@ module GenAlu
480
480
  digits = target.memsize
481
481
  count = 0
482
482
  digits.times do |i|
483
- if (target.value & (1 << i)).zero?
483
+ if (target.value & (1 << i)).nonzero?
484
484
  count += 1
485
485
  end
486
486
  end
@@ -520,7 +520,13 @@ module GenAlu
520
520
  if !right.is_a?(${CLASS}) || !left.is_a?(${CLASS})
521
521
  raise EvalError, "maybe empty or invalid stack"
522
522
  end
523
- runtime.stack.push(${CLASS}(left.value_s / right.value_s))
523
+ result = left.value_s / right.value_s.to_f
524
+ iresult = (result >= 0 ? result.floor : result.ceil).to_i
525
+ if iresult >= (1 << (left.memsize - 1))
526
+ raise IntegerOverflow, "integer overflow"
527
+ end
528
+
529
+ runtime.stack.push(${CLASS}(iresult))
524
530
  RUBY
525
531
 
526
532
  div_u: <<~RUBY,
@@ -547,7 +553,13 @@ module GenAlu
547
553
  if !right.is_a?(${CLASS}) || !left.is_a?(${CLASS})
548
554
  raise EvalError, "maybe empty or invalid stack"
549
555
  end
550
- runtime.stack.push(${CLASS}(left.value_s % right.value_s))
556
+ result = left.value_s % right.value_s
557
+ if result > 0 && left.value_s < 0
558
+ result = result - right.value_s
559
+ elsif result < 0 && left.value_s > 0
560
+ result = result - right.value_s
561
+ end
562
+ runtime.stack.push(${CLASS}(result))
551
563
  RUBY
552
564
 
553
565
  rem_u: <<~RUBY,
@@ -592,8 +604,8 @@ module GenAlu
592
604
  if !right.is_a?(${CLASS}) || !left.is_a?(${CLASS})
593
605
  raise EvalError, "maybe empty or invalid stack"
594
606
  end
595
- value = left.value << right.value
596
- value %= (1 << right.memsize)
607
+ value = left.value << (right.value % right.memsize)
608
+ value %= 1 << right.memsize
597
609
 
598
610
  runtime.stack.push(${CLASS}(value))
599
611
  RUBY
@@ -604,7 +616,7 @@ module GenAlu
604
616
  if !right.is_a?(${CLASS}) || !left.is_a?(${CLASS})
605
617
  raise EvalError, "maybe empty or invalid stack"
606
618
  end
607
- value = left.value_s >> right.value
619
+ value = left.value_s >> (right.value % right.memsize)
608
620
  runtime.stack.push(${CLASS}(value))
609
621
  RUBY
610
622
 
@@ -614,7 +626,7 @@ module GenAlu
614
626
  if !right.is_a?(${CLASS}) || !left.is_a?(${CLASS})
615
627
  raise EvalError, "maybe empty or invalid stack"
616
628
  end
617
- value = left.value >> right.value
629
+ value = left.value >> (right.value % right.memsize)
618
630
  runtime.stack.push(${CLASS}(value))
619
631
  RUBY
620
632
 
@@ -624,9 +636,10 @@ module GenAlu
624
636
  if !right.is_a?(${CLASS}) || !left.is_a?(${CLASS})
625
637
  raise EvalError, "maybe empty or invalid stack"
626
638
  end
627
- rotated = left.value << right.value
628
- rest = left.value & (${CLASS}::${CLASS}_MAX << (right.memsize - right.value))
629
- value = rotated | (rest >> (right.memsize - right.value))
639
+ k = (right.value % right.memsize)
640
+ rotated = left.value << k
641
+ rest = left.value & (${CLASS}::${CLASS}_MAX << (right.memsize - k))
642
+ value = rotated | (rest >> (right.memsize - k))
630
643
  runtime.stack.push(${CLASS}(value))
631
644
  RUBY
632
645
 
@@ -636,9 +649,10 @@ module GenAlu
636
649
  if !right.is_a?(${CLASS}) || !left.is_a?(${CLASS})
637
650
  raise EvalError, "maybe empty or invalid stack"
638
651
  end
639
- rotated = left.value >> right.value
640
- rest = left.value & (${CLASS}::${CLASS}_MAX >> (right.memsize - right.value))
641
- value = rotated | (rest << (right.memsize - right.value))
652
+ k = (right.value % right.memsize)
653
+ rotated = left.value >> k
654
+ rest = left.value & (${CLASS}::${CLASS}_MAX >> (right.memsize - k))
655
+ value = rotated | (rest << (right.memsize - k))
642
656
  runtime.stack.push(${CLASS}(value))
643
657
  RUBY
644
658
 
@@ -0,0 +1,12 @@
1
+ # Generated from lib/wardite/errors.rb with RBS::Inline
2
+
3
+ # frozen_string_literal: true
4
+ # rbs_inline: enabled
5
+ module Wardite
6
+ # basic error class.
7
+ class WebAssemblyError < StandardError
8
+ end
9
+
10
+ class IntegerOverflow < WebAssemblyError
11
+ end
12
+ end
@@ -136,7 +136,7 @@ module Wardite
136
136
 
137
137
  attr_accessor kind: Integer
138
138
 
139
- attr_accessor func_index: Integer
139
+ attr_accessor index: Integer
140
140
  end
141
141
 
142
142
  attr_accessor exports: Hash[String, ExportDesc]
@@ -115,6 +115,8 @@ module Wardite
115
115
 
116
116
  # I32#inspect shows signed value for convinience
117
117
  def inspect: () -> untyped
118
+
119
+ def ==: (untyped other) -> untyped
118
120
  end
119
121
 
120
122
  class I64
@@ -196,6 +198,8 @@ module Wardite
196
198
 
197
199
  # I64#inspect shows signed value
198
200
  def inspect: () -> untyped
201
+
202
+ def ==: (untyped other) -> untyped
199
203
  end
200
204
 
201
205
  class F32
@@ -278,6 +282,8 @@ module Wardite
278
282
  def trunc_sat_s: (to: Symbol) -> wasmValue
279
283
 
280
284
  def inspect: () -> untyped
285
+
286
+ def ==: (untyped other) -> untyped
281
287
  end
282
288
 
283
289
  class F64
@@ -358,5 +364,7 @@ module Wardite
358
364
  def trunc_sat_s: (to: Symbol) -> wasmValue
359
365
 
360
366
  def inspect: () -> untyped
367
+
368
+ def ==: (untyped other) -> untyped
361
369
  end
362
370
  end
@@ -315,8 +315,10 @@ module Wardite
315
315
  def result_size: () -> Integer
316
316
  end
317
317
 
318
+ type exportHandle = WasmFunction | ExternalFunction | Table | Global | Memory
319
+
318
320
  class Exports
319
- attr_accessor mappings: Hash[String, [ Integer, WasmFunction | ExternalFunction ]]
321
+ attr_accessor mappings: Hash[String, [ Integer, exportHandle ]]
320
322
 
321
323
  # @rbs export_section: ExportSection
322
324
  # @rbs store: Store
@@ -324,8 +326,12 @@ module Wardite
324
326
  def initialize: (ExportSection export_section, Store store) -> void
325
327
 
326
328
  # @rbs name: String
327
- # @rbs return: [Integer, WasmFunction|ExternalFunction]
328
- def []: (String name) -> [ Integer, WasmFunction | ExternalFunction ]
329
+ # @rbs return: exportHandle|nil
330
+ def []: (String name) -> (exportHandle | nil)
331
+
332
+ def respond_to?: (untyped name) -> untyped
333
+
334
+ def method_missing: (untyped name, *untyped _args) -> untyped
329
335
  end
330
336
 
331
337
  # TODO: common interface btw. WasmFunction and ExternalFunction?
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wardite
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Uchio Kondo
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-11-11 00:00:00.000000000 Z
11
+ date: 2024-11-24 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A pure-ruby webassembly runtime
14
14
  email:
@@ -49,6 +49,7 @@ files:
49
49
  - lib/wardite/alu_i64.generated.rb
50
50
  - lib/wardite/const.rb
51
51
  - lib/wardite/convert.generated.rb
52
+ - lib/wardite/errors.rb
52
53
  - lib/wardite/instruction.rb
53
54
  - lib/wardite/leb128.rb
54
55
  - lib/wardite/load.rb
@@ -66,6 +67,7 @@ files:
66
67
  - sig/generated/wardite/alu_i64.generated.rbs
67
68
  - sig/generated/wardite/const.rbs
68
69
  - sig/generated/wardite/convert.generated.rbs
70
+ - sig/generated/wardite/errors.rbs
69
71
  - sig/generated/wardite/instruction.rbs
70
72
  - sig/generated/wardite/leb128.rbs
71
73
  - sig/generated/wardite/load.rbs