wag 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (241) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +11 -0
  3. data/.gitlab-ci.yml +15 -0
  4. data/.rspec +3 -0
  5. data/.rubocop.yml +32 -0
  6. data/.travis.yml +6 -0
  7. data/Gemfile +13 -0
  8. data/Gemfile.lock +66 -0
  9. data/LICENSE.txt +40 -0
  10. data/README.md +170 -0
  11. data/Rakefile +8 -0
  12. data/bin/console +15 -0
  13. data/bin/setup +8 -0
  14. data/lib/wag.rb +42 -0
  15. data/lib/wag/data.rb +18 -0
  16. data/lib/wag/element.rb +18 -0
  17. data/lib/wag/encodable.rb +23 -0
  18. data/lib/wag/export.rb +39 -0
  19. data/lib/wag/f32_instructions.rb +21 -0
  20. data/lib/wag/f64_instructions.rb +21 -0
  21. data/lib/wag/function.rb +33 -0
  22. data/lib/wag/function_type.rb +16 -0
  23. data/lib/wag/global.rb +18 -0
  24. data/lib/wag/global_instructions.rb +19 -0
  25. data/lib/wag/i32_instructions.rb +22 -0
  26. data/lib/wag/i64_instructions.rb +23 -0
  27. data/lib/wag/import.rb +42 -0
  28. data/lib/wag/indices.rb +14 -0
  29. data/lib/wag/indices/base.rb +16 -0
  30. data/lib/wag/indices/func.rb +8 -0
  31. data/lib/wag/indices/global.rb +8 -0
  32. data/lib/wag/indices/label.rb +8 -0
  33. data/lib/wag/indices/local.rb +8 -0
  34. data/lib/wag/indices/mem.rb +8 -0
  35. data/lib/wag/indices/table.rb +8 -0
  36. data/lib/wag/indices/type.rb +8 -0
  37. data/lib/wag/inflector.rb +13 -0
  38. data/lib/wag/instructable.rb +65 -0
  39. data/lib/wag/instruction.rb +193 -0
  40. data/lib/wag/instructions/base.rb +24 -0
  41. data/lib/wag/instructions/block.rb +21 -0
  42. data/lib/wag/instructions/br.rb +18 -0
  43. data/lib/wag/instructions/br_if.rb +18 -0
  44. data/lib/wag/instructions/br_table.rb +18 -0
  45. data/lib/wag/instructions/call.rb +18 -0
  46. data/lib/wag/instructions/call_indirect.rb +18 -0
  47. data/lib/wag/instructions/drop.rb +8 -0
  48. data/lib/wag/instructions/else.rb +9 -0
  49. data/lib/wag/instructions/end.rb +8 -0
  50. data/lib/wag/instructions/f32/abs.rb +11 -0
  51. data/lib/wag/instructions/f32/add.rb +11 -0
  52. data/lib/wag/instructions/f32/base.rb +13 -0
  53. data/lib/wag/instructions/f32/ceil.rb +11 -0
  54. data/lib/wag/instructions/f32/const.rb +20 -0
  55. data/lib/wag/instructions/f32/convert_i32_s.rb +11 -0
  56. data/lib/wag/instructions/f32/convert_i32_u.rb +11 -0
  57. data/lib/wag/instructions/f32/convert_i64_s.rb +11 -0
  58. data/lib/wag/instructions/f32/convert_i64_u.rb +11 -0
  59. data/lib/wag/instructions/f32/copysign.rb +11 -0
  60. data/lib/wag/instructions/f32/demote_f64.rb +11 -0
  61. data/lib/wag/instructions/f32/div.rb +11 -0
  62. data/lib/wag/instructions/f32/eq.rb +11 -0
  63. data/lib/wag/instructions/f32/floor.rb +11 -0
  64. data/lib/wag/instructions/f32/ge.rb +11 -0
  65. data/lib/wag/instructions/f32/gt.rb +11 -0
  66. data/lib/wag/instructions/f32/le.rb +11 -0
  67. data/lib/wag/instructions/f32/load.rb +11 -0
  68. data/lib/wag/instructions/f32/lt.rb +11 -0
  69. data/lib/wag/instructions/f32/max.rb +11 -0
  70. data/lib/wag/instructions/f32/min.rb +11 -0
  71. data/lib/wag/instructions/f32/mul.rb +11 -0
  72. data/lib/wag/instructions/f32/ne.rb +11 -0
  73. data/lib/wag/instructions/f32/nearest.rb +11 -0
  74. data/lib/wag/instructions/f32/neg.rb +11 -0
  75. data/lib/wag/instructions/f32/reinterpret_i32.rb +11 -0
  76. data/lib/wag/instructions/f32/sqrt.rb +11 -0
  77. data/lib/wag/instructions/f32/store.rb +11 -0
  78. data/lib/wag/instructions/f32/sub.rb +11 -0
  79. data/lib/wag/instructions/f32/trunc.rb +11 -0
  80. data/lib/wag/instructions/f64/abs.rb +11 -0
  81. data/lib/wag/instructions/f64/add.rb +11 -0
  82. data/lib/wag/instructions/f64/base.rb +13 -0
  83. data/lib/wag/instructions/f64/ceil.rb +11 -0
  84. data/lib/wag/instructions/f64/const.rb +20 -0
  85. data/lib/wag/instructions/f64/convert_i32_s.rb +11 -0
  86. data/lib/wag/instructions/f64/convert_i32_u.rb +11 -0
  87. data/lib/wag/instructions/f64/convert_i64_s.rb +11 -0
  88. data/lib/wag/instructions/f64/convert_i64_u.rb +11 -0
  89. data/lib/wag/instructions/f64/copysign.rb +11 -0
  90. data/lib/wag/instructions/f64/div.rb +11 -0
  91. data/lib/wag/instructions/f64/eq.rb +11 -0
  92. data/lib/wag/instructions/f64/floor.rb +11 -0
  93. data/lib/wag/instructions/f64/ge.rb +11 -0
  94. data/lib/wag/instructions/f64/gt.rb +11 -0
  95. data/lib/wag/instructions/f64/le.rb +11 -0
  96. data/lib/wag/instructions/f64/load.rb +11 -0
  97. data/lib/wag/instructions/f64/lt.rb +11 -0
  98. data/lib/wag/instructions/f64/max.rb +11 -0
  99. data/lib/wag/instructions/f64/min.rb +11 -0
  100. data/lib/wag/instructions/f64/mul.rb +11 -0
  101. data/lib/wag/instructions/f64/ne.rb +11 -0
  102. data/lib/wag/instructions/f64/nearest.rb +11 -0
  103. data/lib/wag/instructions/f64/neg.rb +11 -0
  104. data/lib/wag/instructions/f64/promote_f32.rb +11 -0
  105. data/lib/wag/instructions/f64/reinterpret_i64.rb +11 -0
  106. data/lib/wag/instructions/f64/sqrt.rb +11 -0
  107. data/lib/wag/instructions/f64/store.rb +11 -0
  108. data/lib/wag/instructions/f64/sub.rb +11 -0
  109. data/lib/wag/instructions/f64/trunc.rb +11 -0
  110. data/lib/wag/instructions/global/base.rb +13 -0
  111. data/lib/wag/instructions/global/get.rb +20 -0
  112. data/lib/wag/instructions/global/set.rb +20 -0
  113. data/lib/wag/instructions/i32/add.rb +11 -0
  114. data/lib/wag/instructions/i32/and.rb +11 -0
  115. data/lib/wag/instructions/i32/base.rb +13 -0
  116. data/lib/wag/instructions/i32/clz.rb +11 -0
  117. data/lib/wag/instructions/i32/const.rb +20 -0
  118. data/lib/wag/instructions/i32/ctz.rb +11 -0
  119. data/lib/wag/instructions/i32/div_s.rb +11 -0
  120. data/lib/wag/instructions/i32/div_u.rb +11 -0
  121. data/lib/wag/instructions/i32/eq.rb +11 -0
  122. data/lib/wag/instructions/i32/eqz.rb +11 -0
  123. data/lib/wag/instructions/i32/ge_s.rb +11 -0
  124. data/lib/wag/instructions/i32/ge_u.rb +11 -0
  125. data/lib/wag/instructions/i32/gt_s.rb +11 -0
  126. data/lib/wag/instructions/i32/gt_u.rb +11 -0
  127. data/lib/wag/instructions/i32/le_s.rb +11 -0
  128. data/lib/wag/instructions/i32/le_u.rb +11 -0
  129. data/lib/wag/instructions/i32/load.rb +11 -0
  130. data/lib/wag/instructions/i32/load16_s.rb +11 -0
  131. data/lib/wag/instructions/i32/load16_u.rb +11 -0
  132. data/lib/wag/instructions/i32/load8_s.rb +11 -0
  133. data/lib/wag/instructions/i32/load8_u.rb +11 -0
  134. data/lib/wag/instructions/i32/lt_s.rb +11 -0
  135. data/lib/wag/instructions/i32/lt_u.rb +11 -0
  136. data/lib/wag/instructions/i32/mul.rb +11 -0
  137. data/lib/wag/instructions/i32/ne.rb +11 -0
  138. data/lib/wag/instructions/i32/or.rb +11 -0
  139. data/lib/wag/instructions/i32/popcnt.rb +11 -0
  140. data/lib/wag/instructions/i32/reinterpret_f32.rb +11 -0
  141. data/lib/wag/instructions/i32/rem_s.rb +11 -0
  142. data/lib/wag/instructions/i32/rem_u.rb +11 -0
  143. data/lib/wag/instructions/i32/rotl.rb +11 -0
  144. data/lib/wag/instructions/i32/rotr.rb +11 -0
  145. data/lib/wag/instructions/i32/shl.rb +11 -0
  146. data/lib/wag/instructions/i32/shr_s.rb +11 -0
  147. data/lib/wag/instructions/i32/shr_u.rb +11 -0
  148. data/lib/wag/instructions/i32/store.rb +11 -0
  149. data/lib/wag/instructions/i32/store16.rb +11 -0
  150. data/lib/wag/instructions/i32/store8.rb +11 -0
  151. data/lib/wag/instructions/i32/sub.rb +11 -0
  152. data/lib/wag/instructions/i32/trunc_f32_s.rb +11 -0
  153. data/lib/wag/instructions/i32/trunc_f32_u.rb +11 -0
  154. data/lib/wag/instructions/i32/trunc_f64_s.rb +11 -0
  155. data/lib/wag/instructions/i32/trunc_f64_u.rb +11 -0
  156. data/lib/wag/instructions/i32/wrap_i64.rb +11 -0
  157. data/lib/wag/instructions/i32/xor.rb +11 -0
  158. data/lib/wag/instructions/i64/add.rb +11 -0
  159. data/lib/wag/instructions/i64/and.rb +11 -0
  160. data/lib/wag/instructions/i64/base.rb +13 -0
  161. data/lib/wag/instructions/i64/clz.rb +11 -0
  162. data/lib/wag/instructions/i64/const.rb +20 -0
  163. data/lib/wag/instructions/i64/ctz.rb +11 -0
  164. data/lib/wag/instructions/i64/div_s.rb +11 -0
  165. data/lib/wag/instructions/i64/div_u.rb +11 -0
  166. data/lib/wag/instructions/i64/eq.rb +11 -0
  167. data/lib/wag/instructions/i64/eqz.rb +11 -0
  168. data/lib/wag/instructions/i64/extend_i32_s.rb +11 -0
  169. data/lib/wag/instructions/i64/extend_i32_u.rb +11 -0
  170. data/lib/wag/instructions/i64/ge_s.rb +11 -0
  171. data/lib/wag/instructions/i64/ge_u.rb +11 -0
  172. data/lib/wag/instructions/i64/gt_s.rb +11 -0
  173. data/lib/wag/instructions/i64/gt_u.rb +11 -0
  174. data/lib/wag/instructions/i64/le_s.rb +11 -0
  175. data/lib/wag/instructions/i64/le_u.rb +11 -0
  176. data/lib/wag/instructions/i64/load.rb +11 -0
  177. data/lib/wag/instructions/i64/load16_s.rb +11 -0
  178. data/lib/wag/instructions/i64/load16_u.rb +11 -0
  179. data/lib/wag/instructions/i64/load32_s.rb +11 -0
  180. data/lib/wag/instructions/i64/load32_u.rb +11 -0
  181. data/lib/wag/instructions/i64/load8_s.rb +11 -0
  182. data/lib/wag/instructions/i64/load8_u.rb +11 -0
  183. data/lib/wag/instructions/i64/lt_s.rb +11 -0
  184. data/lib/wag/instructions/i64/lt_u.rb +11 -0
  185. data/lib/wag/instructions/i64/mul.rb +11 -0
  186. data/lib/wag/instructions/i64/ne.rb +11 -0
  187. data/lib/wag/instructions/i64/or.rb +11 -0
  188. data/lib/wag/instructions/i64/popcnt.rb +11 -0
  189. data/lib/wag/instructions/i64/reinterpret_f64.rb +11 -0
  190. data/lib/wag/instructions/i64/rem_s.rb +11 -0
  191. data/lib/wag/instructions/i64/rem_u.rb +11 -0
  192. data/lib/wag/instructions/i64/rotl.rb +11 -0
  193. data/lib/wag/instructions/i64/rotr.rb +11 -0
  194. data/lib/wag/instructions/i64/shl.rb +11 -0
  195. data/lib/wag/instructions/i64/shr_s.rb +11 -0
  196. data/lib/wag/instructions/i64/shr_u.rb +11 -0
  197. data/lib/wag/instructions/i64/store.rb +11 -0
  198. data/lib/wag/instructions/i64/store16.rb +11 -0
  199. data/lib/wag/instructions/i64/store32.rb +11 -0
  200. data/lib/wag/instructions/i64/store8.rb +11 -0
  201. data/lib/wag/instructions/i64/sub.rb +11 -0
  202. data/lib/wag/instructions/i64/trunc_f32_s.rb +11 -0
  203. data/lib/wag/instructions/i64/trunc_f32_u.rb +11 -0
  204. data/lib/wag/instructions/i64/trunc_f64_s.rb +11 -0
  205. data/lib/wag/instructions/i64/trunc_f64_u.rb +11 -0
  206. data/lib/wag/instructions/i64/xor.rb +11 -0
  207. data/lib/wag/instructions/if.rb +26 -0
  208. data/lib/wag/instructions/local/base.rb +13 -0
  209. data/lib/wag/instructions/local/get.rb +20 -0
  210. data/lib/wag/instructions/local/set.rb +20 -0
  211. data/lib/wag/instructions/local/tee.rb +20 -0
  212. data/lib/wag/instructions/loop.rb +9 -0
  213. data/lib/wag/instructions/memory/base.rb +13 -0
  214. data/lib/wag/instructions/memory/grow.rb +11 -0
  215. data/lib/wag/instructions/memory/size.rb +11 -0
  216. data/lib/wag/instructions/nop.rb +8 -0
  217. data/lib/wag/instructions/return.rb +9 -0
  218. data/lib/wag/instructions/select.rb +9 -0
  219. data/lib/wag/instructions/unreachable.rb +8 -0
  220. data/lib/wag/label.rb +32 -0
  221. data/lib/wag/local.rb +19 -0
  222. data/lib/wag/local_instructions.rb +19 -0
  223. data/lib/wag/memory.rb +26 -0
  224. data/lib/wag/memory_instructions.rb +19 -0
  225. data/lib/wag/module.rb +100 -0
  226. data/lib/wag/param.rb +20 -0
  227. data/lib/wag/result.rb +17 -0
  228. data/lib/wag/table.rb +17 -0
  229. data/lib/wag/then.rb +13 -0
  230. data/lib/wag/type.rb +19 -0
  231. data/lib/wag/types/base.rb +16 -0
  232. data/lib/wag/types/f32.rb +8 -0
  233. data/lib/wag/types/f64.rb +8 -0
  234. data/lib/wag/types/i32.rb +8 -0
  235. data/lib/wag/types/i64.rb +8 -0
  236. data/lib/wag/version.rb +5 -0
  237. data/lib/wag/wabt.rb +45 -0
  238. data/lib/wag/wasm.rb +22 -0
  239. data/lib/wag/wat.rb +18 -0
  240. data/wag.gemspec +35 -0
  241. metadata +299 -0
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module WAG
4
+ VERSION = '0.1.0'
5
+ end
data/lib/wag/wabt.rb ADDED
@@ -0,0 +1,45 @@
1
+ # frozen_string_literal: true
2
+
3
+ module WAG
4
+ # This class wraps the [WebAssembly Binary Toolkit][1] utilities to make it easier to
5
+ # work with from within WAG.
6
+
7
+ # 1: https://github.com/WebAssembly/wabt
8
+ class WABT
9
+ def initialize
10
+ throw 'Unable to find `wat2wasm` in path. Please install WABT.' unless find_util('wat2wasm')
11
+ end
12
+
13
+ def wat2wasm(wat_source)
14
+ Dir.mktmpdir('wat2wasm') do |dir|
15
+ wat_path = File.join(dir, 'source.wat')
16
+ wasm_path = File.join(dir, 'target.wasm')
17
+ File.write(wat_path, wat_source)
18
+ system(find_util('wat2wasm'), '-o', wasm_path, wat_path, exception: true)
19
+ File.unlink(wat_path)
20
+ File.read(wasm_path)
21
+ end
22
+ end
23
+
24
+ def wasm_validate(wasm_source)
25
+ Dir.mktmpdir('wasm-validate') do |dir|
26
+ wasm_path = File.join(dir, 'validate.wasm')
27
+ File.write(wasm_path, wasm_source)
28
+ if system(find_util('wasm-validate'), wasm_path)
29
+ true
30
+ else
31
+ false
32
+ end
33
+ end
34
+ end
35
+
36
+ private
37
+
38
+ def find_util(util_name)
39
+ path = `which #{util_name}`.strip
40
+ return nil if path.empty?
41
+
42
+ path
43
+ end
44
+ end
45
+ end
data/lib/wag/wasm.rb ADDED
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module WAG
4
+ # A container for the WebAssembly binary format.
5
+ class WASM
6
+ def initialize(code)
7
+ @code = code
8
+ end
9
+
10
+ def valid?
11
+ WAG::WABT.new.wasm_validate(@code)
12
+ end
13
+
14
+ def save(path)
15
+ File.write(path, @code)
16
+ end
17
+
18
+ def to_s
19
+ @code
20
+ end
21
+ end
22
+ end
data/lib/wag/wat.rb ADDED
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module WAG
4
+ # A container for the WebAssembly text format.
5
+ class WAT
6
+ def initialize(source)
7
+ @source = source
8
+ end
9
+
10
+ def to_wasm
11
+ WAG::WASM.new(WAG::WABT.new.wat2wasm(@source))
12
+ end
13
+
14
+ def to_s
15
+ @source
16
+ end
17
+ end
18
+ end
data/wag.gemspec ADDED
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'lib/wag/version'
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = 'wag'
7
+ spec.version = WAG::VERSION
8
+ spec.authors = ['James Harton']
9
+ spec.email = ['james@automat.nz']
10
+
11
+ spec.summary = 'WebAssembly Generator'
12
+ spec.description = 'Generate and compile WebAssembly code from Ruby'
13
+ spec.homepage = 'https://gitlab.com/jimsy/wag'
14
+ spec.license = 'Hippcratic'
15
+ spec.required_ruby_version = Gem::Requirement.new('>= 2.3.0')
16
+
17
+ # spec.metadata["allowed_push_host"] = "TODO: Set to 'http://mygemserver.com'"
18
+
19
+ spec.metadata['homepage_uri'] = spec.homepage
20
+ spec.metadata['source_code_uri'] = 'https://gitlab.com/jimsy/wag'
21
+ spec.metadata['changelog_uri'] = 'https://gitlab.com/jimsy/wag'
22
+
23
+ # Specify which files should be added to the gem when it is released. The `git
24
+ # ls-files -z` loads the files in the RubyGem that have been added into git.
25
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
26
+ `git ls-files -z`
27
+ .split("\x0")
28
+ .reject { |f| f.match(%r{^(test|spec|features)/}) }
29
+ end
30
+ spec.bindir = 'exe'
31
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
32
+ spec.require_paths = ['lib']
33
+
34
+ spec.add_runtime_dependency('dry-inflector', '~> 0.2.0')
35
+ end
metadata ADDED
@@ -0,0 +1,299 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: wag
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - James Harton
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2020-04-01 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: dry-inflector
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.2.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 0.2.0
27
+ description: Generate and compile WebAssembly code from Ruby
28
+ email:
29
+ - james@automat.nz
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - ".gitignore"
35
+ - ".gitlab-ci.yml"
36
+ - ".rspec"
37
+ - ".rubocop.yml"
38
+ - ".travis.yml"
39
+ - Gemfile
40
+ - Gemfile.lock
41
+ - LICENSE.txt
42
+ - README.md
43
+ - Rakefile
44
+ - bin/console
45
+ - bin/setup
46
+ - lib/wag.rb
47
+ - lib/wag/data.rb
48
+ - lib/wag/element.rb
49
+ - lib/wag/encodable.rb
50
+ - lib/wag/export.rb
51
+ - lib/wag/f32_instructions.rb
52
+ - lib/wag/f64_instructions.rb
53
+ - lib/wag/function.rb
54
+ - lib/wag/function_type.rb
55
+ - lib/wag/global.rb
56
+ - lib/wag/global_instructions.rb
57
+ - lib/wag/i32_instructions.rb
58
+ - lib/wag/i64_instructions.rb
59
+ - lib/wag/import.rb
60
+ - lib/wag/indices.rb
61
+ - lib/wag/indices/base.rb
62
+ - lib/wag/indices/func.rb
63
+ - lib/wag/indices/global.rb
64
+ - lib/wag/indices/label.rb
65
+ - lib/wag/indices/local.rb
66
+ - lib/wag/indices/mem.rb
67
+ - lib/wag/indices/table.rb
68
+ - lib/wag/indices/type.rb
69
+ - lib/wag/inflector.rb
70
+ - lib/wag/instructable.rb
71
+ - lib/wag/instruction.rb
72
+ - lib/wag/instructions/base.rb
73
+ - lib/wag/instructions/block.rb
74
+ - lib/wag/instructions/br.rb
75
+ - lib/wag/instructions/br_if.rb
76
+ - lib/wag/instructions/br_table.rb
77
+ - lib/wag/instructions/call.rb
78
+ - lib/wag/instructions/call_indirect.rb
79
+ - lib/wag/instructions/drop.rb
80
+ - lib/wag/instructions/else.rb
81
+ - lib/wag/instructions/end.rb
82
+ - lib/wag/instructions/f32/abs.rb
83
+ - lib/wag/instructions/f32/add.rb
84
+ - lib/wag/instructions/f32/base.rb
85
+ - lib/wag/instructions/f32/ceil.rb
86
+ - lib/wag/instructions/f32/const.rb
87
+ - lib/wag/instructions/f32/convert_i32_s.rb
88
+ - lib/wag/instructions/f32/convert_i32_u.rb
89
+ - lib/wag/instructions/f32/convert_i64_s.rb
90
+ - lib/wag/instructions/f32/convert_i64_u.rb
91
+ - lib/wag/instructions/f32/copysign.rb
92
+ - lib/wag/instructions/f32/demote_f64.rb
93
+ - lib/wag/instructions/f32/div.rb
94
+ - lib/wag/instructions/f32/eq.rb
95
+ - lib/wag/instructions/f32/floor.rb
96
+ - lib/wag/instructions/f32/ge.rb
97
+ - lib/wag/instructions/f32/gt.rb
98
+ - lib/wag/instructions/f32/le.rb
99
+ - lib/wag/instructions/f32/load.rb
100
+ - lib/wag/instructions/f32/lt.rb
101
+ - lib/wag/instructions/f32/max.rb
102
+ - lib/wag/instructions/f32/min.rb
103
+ - lib/wag/instructions/f32/mul.rb
104
+ - lib/wag/instructions/f32/ne.rb
105
+ - lib/wag/instructions/f32/nearest.rb
106
+ - lib/wag/instructions/f32/neg.rb
107
+ - lib/wag/instructions/f32/reinterpret_i32.rb
108
+ - lib/wag/instructions/f32/sqrt.rb
109
+ - lib/wag/instructions/f32/store.rb
110
+ - lib/wag/instructions/f32/sub.rb
111
+ - lib/wag/instructions/f32/trunc.rb
112
+ - lib/wag/instructions/f64/abs.rb
113
+ - lib/wag/instructions/f64/add.rb
114
+ - lib/wag/instructions/f64/base.rb
115
+ - lib/wag/instructions/f64/ceil.rb
116
+ - lib/wag/instructions/f64/const.rb
117
+ - lib/wag/instructions/f64/convert_i32_s.rb
118
+ - lib/wag/instructions/f64/convert_i32_u.rb
119
+ - lib/wag/instructions/f64/convert_i64_s.rb
120
+ - lib/wag/instructions/f64/convert_i64_u.rb
121
+ - lib/wag/instructions/f64/copysign.rb
122
+ - lib/wag/instructions/f64/div.rb
123
+ - lib/wag/instructions/f64/eq.rb
124
+ - lib/wag/instructions/f64/floor.rb
125
+ - lib/wag/instructions/f64/ge.rb
126
+ - lib/wag/instructions/f64/gt.rb
127
+ - lib/wag/instructions/f64/le.rb
128
+ - lib/wag/instructions/f64/load.rb
129
+ - lib/wag/instructions/f64/lt.rb
130
+ - lib/wag/instructions/f64/max.rb
131
+ - lib/wag/instructions/f64/min.rb
132
+ - lib/wag/instructions/f64/mul.rb
133
+ - lib/wag/instructions/f64/ne.rb
134
+ - lib/wag/instructions/f64/nearest.rb
135
+ - lib/wag/instructions/f64/neg.rb
136
+ - lib/wag/instructions/f64/promote_f32.rb
137
+ - lib/wag/instructions/f64/reinterpret_i64.rb
138
+ - lib/wag/instructions/f64/sqrt.rb
139
+ - lib/wag/instructions/f64/store.rb
140
+ - lib/wag/instructions/f64/sub.rb
141
+ - lib/wag/instructions/f64/trunc.rb
142
+ - lib/wag/instructions/global/base.rb
143
+ - lib/wag/instructions/global/get.rb
144
+ - lib/wag/instructions/global/set.rb
145
+ - lib/wag/instructions/i32/add.rb
146
+ - lib/wag/instructions/i32/and.rb
147
+ - lib/wag/instructions/i32/base.rb
148
+ - lib/wag/instructions/i32/clz.rb
149
+ - lib/wag/instructions/i32/const.rb
150
+ - lib/wag/instructions/i32/ctz.rb
151
+ - lib/wag/instructions/i32/div_s.rb
152
+ - lib/wag/instructions/i32/div_u.rb
153
+ - lib/wag/instructions/i32/eq.rb
154
+ - lib/wag/instructions/i32/eqz.rb
155
+ - lib/wag/instructions/i32/ge_s.rb
156
+ - lib/wag/instructions/i32/ge_u.rb
157
+ - lib/wag/instructions/i32/gt_s.rb
158
+ - lib/wag/instructions/i32/gt_u.rb
159
+ - lib/wag/instructions/i32/le_s.rb
160
+ - lib/wag/instructions/i32/le_u.rb
161
+ - lib/wag/instructions/i32/load.rb
162
+ - lib/wag/instructions/i32/load16_s.rb
163
+ - lib/wag/instructions/i32/load16_u.rb
164
+ - lib/wag/instructions/i32/load8_s.rb
165
+ - lib/wag/instructions/i32/load8_u.rb
166
+ - lib/wag/instructions/i32/lt_s.rb
167
+ - lib/wag/instructions/i32/lt_u.rb
168
+ - lib/wag/instructions/i32/mul.rb
169
+ - lib/wag/instructions/i32/ne.rb
170
+ - lib/wag/instructions/i32/or.rb
171
+ - lib/wag/instructions/i32/popcnt.rb
172
+ - lib/wag/instructions/i32/reinterpret_f32.rb
173
+ - lib/wag/instructions/i32/rem_s.rb
174
+ - lib/wag/instructions/i32/rem_u.rb
175
+ - lib/wag/instructions/i32/rotl.rb
176
+ - lib/wag/instructions/i32/rotr.rb
177
+ - lib/wag/instructions/i32/shl.rb
178
+ - lib/wag/instructions/i32/shr_s.rb
179
+ - lib/wag/instructions/i32/shr_u.rb
180
+ - lib/wag/instructions/i32/store.rb
181
+ - lib/wag/instructions/i32/store16.rb
182
+ - lib/wag/instructions/i32/store8.rb
183
+ - lib/wag/instructions/i32/sub.rb
184
+ - lib/wag/instructions/i32/trunc_f32_s.rb
185
+ - lib/wag/instructions/i32/trunc_f32_u.rb
186
+ - lib/wag/instructions/i32/trunc_f64_s.rb
187
+ - lib/wag/instructions/i32/trunc_f64_u.rb
188
+ - lib/wag/instructions/i32/wrap_i64.rb
189
+ - lib/wag/instructions/i32/xor.rb
190
+ - lib/wag/instructions/i64/add.rb
191
+ - lib/wag/instructions/i64/and.rb
192
+ - lib/wag/instructions/i64/base.rb
193
+ - lib/wag/instructions/i64/clz.rb
194
+ - lib/wag/instructions/i64/const.rb
195
+ - lib/wag/instructions/i64/ctz.rb
196
+ - lib/wag/instructions/i64/div_s.rb
197
+ - lib/wag/instructions/i64/div_u.rb
198
+ - lib/wag/instructions/i64/eq.rb
199
+ - lib/wag/instructions/i64/eqz.rb
200
+ - lib/wag/instructions/i64/extend_i32_s.rb
201
+ - lib/wag/instructions/i64/extend_i32_u.rb
202
+ - lib/wag/instructions/i64/ge_s.rb
203
+ - lib/wag/instructions/i64/ge_u.rb
204
+ - lib/wag/instructions/i64/gt_s.rb
205
+ - lib/wag/instructions/i64/gt_u.rb
206
+ - lib/wag/instructions/i64/le_s.rb
207
+ - lib/wag/instructions/i64/le_u.rb
208
+ - lib/wag/instructions/i64/load.rb
209
+ - lib/wag/instructions/i64/load16_s.rb
210
+ - lib/wag/instructions/i64/load16_u.rb
211
+ - lib/wag/instructions/i64/load32_s.rb
212
+ - lib/wag/instructions/i64/load32_u.rb
213
+ - lib/wag/instructions/i64/load8_s.rb
214
+ - lib/wag/instructions/i64/load8_u.rb
215
+ - lib/wag/instructions/i64/lt_s.rb
216
+ - lib/wag/instructions/i64/lt_u.rb
217
+ - lib/wag/instructions/i64/mul.rb
218
+ - lib/wag/instructions/i64/ne.rb
219
+ - lib/wag/instructions/i64/or.rb
220
+ - lib/wag/instructions/i64/popcnt.rb
221
+ - lib/wag/instructions/i64/reinterpret_f64.rb
222
+ - lib/wag/instructions/i64/rem_s.rb
223
+ - lib/wag/instructions/i64/rem_u.rb
224
+ - lib/wag/instructions/i64/rotl.rb
225
+ - lib/wag/instructions/i64/rotr.rb
226
+ - lib/wag/instructions/i64/shl.rb
227
+ - lib/wag/instructions/i64/shr_s.rb
228
+ - lib/wag/instructions/i64/shr_u.rb
229
+ - lib/wag/instructions/i64/store.rb
230
+ - lib/wag/instructions/i64/store16.rb
231
+ - lib/wag/instructions/i64/store32.rb
232
+ - lib/wag/instructions/i64/store8.rb
233
+ - lib/wag/instructions/i64/sub.rb
234
+ - lib/wag/instructions/i64/trunc_f32_s.rb
235
+ - lib/wag/instructions/i64/trunc_f32_u.rb
236
+ - lib/wag/instructions/i64/trunc_f64_s.rb
237
+ - lib/wag/instructions/i64/trunc_f64_u.rb
238
+ - lib/wag/instructions/i64/xor.rb
239
+ - lib/wag/instructions/if.rb
240
+ - lib/wag/instructions/local/base.rb
241
+ - lib/wag/instructions/local/get.rb
242
+ - lib/wag/instructions/local/set.rb
243
+ - lib/wag/instructions/local/tee.rb
244
+ - lib/wag/instructions/loop.rb
245
+ - lib/wag/instructions/memory/base.rb
246
+ - lib/wag/instructions/memory/grow.rb
247
+ - lib/wag/instructions/memory/size.rb
248
+ - lib/wag/instructions/nop.rb
249
+ - lib/wag/instructions/return.rb
250
+ - lib/wag/instructions/select.rb
251
+ - lib/wag/instructions/unreachable.rb
252
+ - lib/wag/label.rb
253
+ - lib/wag/local.rb
254
+ - lib/wag/local_instructions.rb
255
+ - lib/wag/memory.rb
256
+ - lib/wag/memory_instructions.rb
257
+ - lib/wag/module.rb
258
+ - lib/wag/param.rb
259
+ - lib/wag/result.rb
260
+ - lib/wag/table.rb
261
+ - lib/wag/then.rb
262
+ - lib/wag/type.rb
263
+ - lib/wag/types/base.rb
264
+ - lib/wag/types/f32.rb
265
+ - lib/wag/types/f64.rb
266
+ - lib/wag/types/i32.rb
267
+ - lib/wag/types/i64.rb
268
+ - lib/wag/version.rb
269
+ - lib/wag/wabt.rb
270
+ - lib/wag/wasm.rb
271
+ - lib/wag/wat.rb
272
+ - wag.gemspec
273
+ homepage: https://gitlab.com/jimsy/wag
274
+ licenses:
275
+ - Hippcratic
276
+ metadata:
277
+ homepage_uri: https://gitlab.com/jimsy/wag
278
+ source_code_uri: https://gitlab.com/jimsy/wag
279
+ changelog_uri: https://gitlab.com/jimsy/wag
280
+ post_install_message:
281
+ rdoc_options: []
282
+ require_paths:
283
+ - lib
284
+ required_ruby_version: !ruby/object:Gem::Requirement
285
+ requirements:
286
+ - - ">="
287
+ - !ruby/object:Gem::Version
288
+ version: 2.3.0
289
+ required_rubygems_version: !ruby/object:Gem::Requirement
290
+ requirements:
291
+ - - ">="
292
+ - !ruby/object:Gem::Version
293
+ version: '0'
294
+ requirements: []
295
+ rubygems_version: 3.1.2
296
+ signing_key:
297
+ specification_version: 4
298
+ summary: WebAssembly Generator
299
+ test_files: []