ruby_wasm 2.5.0-x64-mingw-ucrt

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 (65) hide show
  1. checksums.yaml +7 -0
  2. data/.clang-format +8 -0
  3. data/CONTRIBUTING.md +126 -0
  4. data/Gemfile +17 -0
  5. data/LICENSE +21 -0
  6. data/NOTICE +1293 -0
  7. data/README.md +153 -0
  8. data/Rakefile +163 -0
  9. data/Steepfile +24 -0
  10. data/benchmarks/vm_deep_call.rb +55 -0
  11. data/builders/wasm32-unknown-emscripten/Dockerfile +43 -0
  12. data/builders/wasm32-unknown-emscripten/entrypoint.sh +7 -0
  13. data/builders/wasm32-unknown-wasi/Dockerfile +47 -0
  14. data/builders/wasm32-unknown-wasi/entrypoint.sh +7 -0
  15. data/docs/api.md +2 -0
  16. data/docs/cheat_sheet.md +195 -0
  17. data/docs/faq.md +25 -0
  18. data/exe/rbwasm +7 -0
  19. data/ext/.gitignore +2 -0
  20. data/ext/README.md +11 -0
  21. data/ext/extinit.c.erb +32 -0
  22. data/lib/ruby_wasm/3.1/ruby_wasm.so +0 -0
  23. data/lib/ruby_wasm/3.2/ruby_wasm.so +0 -0
  24. data/lib/ruby_wasm/build/build_params.rb +3 -0
  25. data/lib/ruby_wasm/build/downloader.rb +18 -0
  26. data/lib/ruby_wasm/build/executor.rb +187 -0
  27. data/lib/ruby_wasm/build/product/baseruby.rb +37 -0
  28. data/lib/ruby_wasm/build/product/crossruby.rb +330 -0
  29. data/lib/ruby_wasm/build/product/libyaml.rb +68 -0
  30. data/lib/ruby_wasm/build/product/openssl.rb +88 -0
  31. data/lib/ruby_wasm/build/product/product.rb +39 -0
  32. data/lib/ruby_wasm/build/product/ruby_source.rb +103 -0
  33. data/lib/ruby_wasm/build/product/wasi_vfs.rb +45 -0
  34. data/lib/ruby_wasm/build/product/zlib.rb +68 -0
  35. data/lib/ruby_wasm/build/product.rb +8 -0
  36. data/lib/ruby_wasm/build/toolchain/wit_bindgen.rb +31 -0
  37. data/lib/ruby_wasm/build/toolchain.rb +193 -0
  38. data/lib/ruby_wasm/build.rb +88 -0
  39. data/lib/ruby_wasm/cli.rb +217 -0
  40. data/lib/ruby_wasm/packager/core.rb +156 -0
  41. data/lib/ruby_wasm/packager/file_system.rb +158 -0
  42. data/lib/ruby_wasm/packager.rb +159 -0
  43. data/lib/ruby_wasm/rake_task.rb +59 -0
  44. data/lib/ruby_wasm/util.rb +15 -0
  45. data/lib/ruby_wasm/version.rb +3 -0
  46. data/lib/ruby_wasm.rb +33 -0
  47. data/package-lock.json +9500 -0
  48. data/package.json +12 -0
  49. data/rakelib/check.rake +37 -0
  50. data/rakelib/ci.rake +152 -0
  51. data/rakelib/doc.rake +29 -0
  52. data/rakelib/format.rake +35 -0
  53. data/rakelib/gem.rake +22 -0
  54. data/rakelib/packaging.rake +151 -0
  55. data/rakelib/version.rake +40 -0
  56. data/sig/open_uri.rbs +4 -0
  57. data/sig/ruby_wasm/build.rbs +318 -0
  58. data/sig/ruby_wasm/cli.rbs +27 -0
  59. data/sig/ruby_wasm/ext.rbs +13 -0
  60. data/sig/ruby_wasm/packager.rbs +91 -0
  61. data/sig/ruby_wasm/util.rbs +5 -0
  62. data/tools/clang-format-diff.sh +18 -0
  63. data/tools/exe/rbminify +12 -0
  64. data/tools/lib/syntax_tree/minify_ruby.rb +63 -0
  65. metadata +113 -0
@@ -0,0 +1,318 @@
1
+ module RubyWasm
2
+ VERSION: String
3
+
4
+ interface _Cacheable
5
+ def cache_key: (Digest::SHA256 digest) -> void
6
+ end
7
+
8
+ class Build
9
+ include _Cacheable
10
+
11
+ @target: String
12
+ @build_dir: String
13
+ @rubies_dir: String
14
+ @toolchain: Toolchain
15
+ @libyaml: LibYAMLProduct
16
+ @zlib: ZlibProduct
17
+ @openssl: OpenSSLProduct
18
+ @wasi_vfs: WasiVfsProduct
19
+ @baseruby: BaseRubyProduct
20
+ @crossruby: CrossRubyProduct
21
+ @source: BuildSource
22
+
23
+ attr_reader toolchain: Toolchain
24
+
25
+ def initialize: (
26
+ string name,
27
+ target: String,
28
+ src: Packager::build_source,
29
+ toolchain: Toolchain?,
30
+ build_dir: string,
31
+ rubies_dir: string,
32
+ **untyped
33
+ ) -> void
34
+ def crossruby: () -> CrossRubyProduct
35
+ end
36
+
37
+ class BuildParams
38
+ attr_accessor name: String
39
+ attr_accessor target: String
40
+ attr_accessor default_exts: String
41
+
42
+ def initialize: (name: string, target: string, default_exts: string) -> void
43
+ end
44
+
45
+ class BuildProduct
46
+ def name: -> String
47
+ end
48
+
49
+ class AutoconfProduct < BuildProduct
50
+ @target: String
51
+ @toolchain: Toolchain
52
+
53
+ def initialize: (String target, Toolchain toolchain) -> void
54
+ def system_triplet_args: -> Array[String]
55
+ | -> Array[String]
56
+ def tools_args: -> Array[String]
57
+ | -> Array[String]
58
+ def configure_args: -> Array[String]
59
+ | -> Array[String]
60
+ end
61
+
62
+ class BuildSource < BuildProduct
63
+ @params: Hash[untyped, untyped]
64
+ @build_dir: String
65
+
66
+ def initialize: (untyped params, String build_dir) -> void
67
+ def name: -> String
68
+ def cache_key: (Digest::SHA256 digest) -> void
69
+ def src_dir: -> String
70
+ def configure_file: -> String
71
+ def fetch: (BuildExecutor executor) -> void
72
+ def build: (BuildExecutor executor) -> void
73
+ end
74
+
75
+ class BaseRubyProduct < BuildProduct
76
+ @build_dir: String
77
+ @source: BuildSource
78
+ @channel: String
79
+
80
+ def initialize: (String build_dir, BuildSource source) -> void
81
+ def product_build_dir: -> String
82
+ def install_dir: -> String
83
+ def name: -> String
84
+ def build: (BuildExecutor executor) -> void
85
+ end
86
+
87
+ class ZlibProduct < AutoconfProduct
88
+ ZLIB_VERSION: String
89
+ @build_dir: String
90
+
91
+ attr_reader target: String
92
+ def initialize: (String build_dir, String target, Toolchain toolchain) -> void
93
+ def product_build_dir: -> String
94
+ def destdir: -> String
95
+ def install_root: -> String
96
+ def name: -> String
97
+ def configure_args: -> Array[String]
98
+ def build: (BuildExecutor executor) -> void
99
+ end
100
+
101
+ class LibYAMLProduct < AutoconfProduct
102
+ LIBYAML_VERSION: String
103
+ @build_dir: String
104
+
105
+ attr_reader target: String
106
+ def initialize: (String build_dir, String target, Toolchain toolchain) -> void
107
+ def product_build_dir: -> String
108
+ def destdir: -> String
109
+ def install_root: -> String
110
+ def name: -> String
111
+ def build: (BuildExecutor executor) -> void
112
+ end
113
+
114
+ class OpenSSLProduct < AutoconfProduct
115
+ OPENSSL_VERSION: String
116
+ @build_dir: String
117
+
118
+ attr_reader target: String
119
+ def initialize: (String build_dir, String target, Toolchain toolchain) -> void
120
+ def product_build_dir: -> String
121
+ def destdir: -> String
122
+ def install_root: -> String
123
+ def name: -> String
124
+ def configure_args: -> Array[String]
125
+ def build: (BuildExecutor executor) -> void
126
+ end
127
+
128
+ class WasiVfsProduct < BuildProduct
129
+ WASI_VFS_VERSION: String
130
+ @build_dir: String
131
+ @need_fetch_lib: bool
132
+ @cli_path: String
133
+ @need_fetch_cli: bool
134
+
135
+ def initialize: (String build_dir) -> void
136
+ def lib_product_build_dir: -> String
137
+ def lib_wasi_vfs_a: -> String
138
+ def name: -> String
139
+ def build: (BuildExecutor executor) -> void
140
+ end
141
+
142
+ class CrossRubyExtProduct < BuildProduct
143
+ include RubyWasm::_Cacheable
144
+
145
+ @toolchain: Toolchain
146
+ @srcdir: String
147
+ @ext_relative_path: String
148
+
149
+ attr_reader name: String
150
+ def initialize: (String srcdir, Toolchain toolchain, ?ext_relative_path: String?) -> void
151
+ def product_build_dir: (CrossRubyProduct crossruby) -> String
152
+ def linklist: (CrossRubyProduct crossruby) -> String
153
+ def metadata_json: (CrossRubyProduct crossruby) -> String
154
+ def feature_name: (CrossRubyProduct crossruby) -> String
155
+
156
+ def make_args: (CrossRubyProduct crossruby) -> Array[String]
157
+ def build: (BuildExecutor executor, CrossRubyProduct crossruby) -> void
158
+ def do_extconf: (BuildExecutor executor, CrossRubyProduct crossruby) -> void
159
+ def do_install_rb: (BuildExecutor executor, CrossRubyProduct crossruby) -> void
160
+ end
161
+
162
+ class CrossRubyProduct < AutoconfProduct
163
+ include RubyWasm::_Cacheable
164
+
165
+ @params: BuildParams
166
+ @rubies_dir: String
167
+ @build_dir: String
168
+ @baseruby: BaseRubyProduct
169
+ @libyaml: LibYAMLProduct
170
+ @zlib: ZlibProduct
171
+ @openssl: OpenSSLProduct
172
+ @wasi_vfs: WasiVfsProduct
173
+
174
+ attr_reader source: BuildSource
175
+ attr_reader toolchain: Toolchain
176
+ attr_accessor user_exts: Array[CrossRubyExtProduct]
177
+ attr_accessor wasmoptflags: Array[String]
178
+ attr_accessor cppflags: Array[String]
179
+ attr_accessor cflags: Array[String]
180
+ attr_accessor ldflags: Array[String]
181
+ attr_accessor debugflags: Array[String]
182
+ attr_accessor xcflags: Array[String]
183
+ attr_accessor xldflags: Array[String]
184
+ def initialize: (BuildParams params, String build_dir, String rubies_dir, BaseRubyProduct baseruby, BuildSource source, Toolchain toolchain) -> void
185
+ def configure: (BuildExecutor executor, ?reconfigure: bool) -> void
186
+ def build_exts: (BuildExecutor executor) -> void
187
+ def build: (BuildExecutor executor, ?remake: bool, ?reconfigure: bool) -> void
188
+ def clean: (BuildExecutor executor) -> void
189
+ def name: -> String
190
+ def build_dir: -> String
191
+ def ext_build_dir: -> String
192
+ def with_libyaml: (LibYAMLProduct libyaml) -> LibYAMLProduct
193
+ def with_zlib: (ZlibProduct zlib) -> ZlibProduct
194
+ def with_wasi_vfs: (WasiVfsProduct wasi_vfs) -> WasiVfsProduct
195
+ def with_openssl: (OpenSSLProduct openssl) -> OpenSSLProduct
196
+ def dest_dir: -> String
197
+ def artifact: -> String
198
+ def extinit_obj: -> String
199
+ def extinit_c_erb: -> String
200
+ def baseruby_path: -> String
201
+ def configure_args: (String build_triple, Toolchain toolchain) -> Array[String]
202
+ end
203
+
204
+ class WitBindgen
205
+ @build_dir: String
206
+ @tool_dir: String
207
+ @revision: String
208
+
209
+ attr_reader bin_path: String
210
+ def initialize: (build_dir: String, ?revision: String) -> void
211
+ def install: -> void
212
+ end
213
+
214
+ class Toolchain
215
+ @tools: Hash[untyped, untyped]
216
+ @tools_cache: Hash[untyped, untyped]
217
+
218
+ attr_reader name: String
219
+ def initialize: -> void
220
+ def find_tool: (Symbol name) -> String
221
+ def check_envvar: (untyped name) -> void
222
+ def self.get: (String target, ?String? build_dir) -> (Toolchain)
223
+ def self.find_path: (String command) -> String?
224
+ def self.check_executable: (String command) -> String
225
+ def cc: -> String
226
+ def ranlib: -> String
227
+ def ld: -> String
228
+ def ar: -> String
229
+
230
+ def install: -> void
231
+ end
232
+
233
+ class WASISDK < Toolchain
234
+ @wasm_opt_path: String
235
+ @need_fetch_wasi_sdk: bool
236
+ @need_fetch_binaryen: bool
237
+ @tools: Hash[Symbol, String]
238
+ @wasi_sdk_path: String
239
+ @binaryen_version: Integer
240
+ @version_major: Integer
241
+ @version_minor: Integer
242
+ @binaryen_path: String
243
+
244
+ def initialize: (?String? wasi_sdk_path, ?build_dir: String?, ?version_major: Integer, ?version_minor: Integer, ?binaryen_version: Integer) -> void
245
+ def find_tool: (Symbol name) -> String
246
+ def wasm_opt: -> String
247
+ def wasi_sdk_path: -> String
248
+ def download_url: (Integer? version_major, Integer? version_minor) -> String
249
+ def binaryen_download_url: (Integer? version) -> String
250
+ def install_wasi_sdk: -> void
251
+ def install_binaryen: -> void
252
+ end
253
+
254
+ class Emscripten < Toolchain
255
+ @tools: Hash[Symbol, String]
256
+
257
+ def initialize: -> void
258
+ def find_tool: (Symbol name) -> String
259
+ end
260
+
261
+ class BuildExecutor
262
+ @verbose: bool
263
+ @github_actions_markup: bool
264
+ @process_count: Integer
265
+ @start_times: Hash[[Class, String], Time]
266
+
267
+ attr_reader process_count: Integer
268
+
269
+ def initialize: (?verbose: bool) -> void
270
+ def system: (*_ToS args, ?chdir: String?, ?env: Hash[String, String]?) -> void
271
+ def rm_rf: (FileUtils::pathlist list) -> void
272
+ def rm_f: (FileUtils::pathlist list) -> void
273
+ def cp_r: (FileUtils::pathlist src, path dest) -> void
274
+ def mv: (FileUtils::pathlist src, path dest) -> void
275
+ def mkdir_p: (FileUtils::pathlist list) -> void
276
+ def write: (String path, _ToS data) -> void
277
+
278
+ def begin_section: (Class klass, String name, String note) -> void
279
+ def end_section: (Class klass, String name) -> void
280
+
281
+ private def _print_command: (Array[_ToS] command, Hash[String, String]? env) -> void
282
+ end
283
+
284
+ class StatusPrinter
285
+ @mutex: Mutex
286
+ @counter: Integer
287
+ @indicators: String
288
+
289
+ def initialize: () -> void
290
+ def stdout: (String message) -> void
291
+ def stderr: (String message) -> void
292
+ def done: () -> void
293
+ end
294
+
295
+ class Downloader
296
+ def format_size: (Integer size) -> String
297
+
298
+ def download: (String url, String dest, String message) -> void
299
+ end
300
+
301
+ class BuildTask
302
+ @build_dir: String
303
+ @rubies_dir: String
304
+ @openssl: OpenSSLProduct
305
+
306
+ attr_accessor name: String
307
+ attr_reader source: BuildSource
308
+ attr_reader target: String
309
+ attr_reader toolchain: Toolchain
310
+ attr_reader libyaml: LibYAMLProduct
311
+ attr_reader zlib: ZlibProduct
312
+ attr_reader wasi_vfs: WasiVfsProduct
313
+ attr_reader baseruby: BaseRubyProduct
314
+ attr_reader crossruby: CrossRubyProduct
315
+ def initialize: (String name, target: String, src: untyped, ?toolchain: Toolchain?, ?build_dir: String?, ?rubies_dir: String?, **untyped) -> void
316
+ def hexdigest: -> String
317
+ end
318
+ end
@@ -0,0 +1,27 @@
1
+ module RubyWasm
2
+ class CLI
3
+ DEFAULT_RUBIES_DIR: string
4
+
5
+ @stdout: IO
6
+ @stderr: IO
7
+
8
+ def initialize: (stdout: IO, stderr: IO) -> void
9
+
10
+ def build: (Array[String] args) -> void
11
+ def pack: (Array[String] args) -> void
12
+
13
+ private
14
+
15
+ def build_config: (Hash[untyped, untyped] options) -> Hash[untyped, untyped]
16
+
17
+ def derive_packager: (Hash[untyped, untyped] options) -> Packager
18
+ def do_print_ruby_cache_key: (Packager) -> void
19
+ def do_build: (BuildExecutor, string tmpdir, Packager, Hash[untyped, untyped] options) -> void
20
+
21
+ def require_extension: () -> void
22
+ end
23
+
24
+ self.@logger: Logger?
25
+ def self.logger: () -> Logger
26
+ attr_accessor self.log_level: Symbol
27
+ end
@@ -0,0 +1,13 @@
1
+ module RubyWasmExt
2
+ def self.preinitialize: (Array[Integer] module_bytes) -> Array[Integer]
3
+
4
+ class WasiVfs
5
+ def initialize: () -> void
6
+
7
+ def self.run_cli: (Array[String] args) -> void
8
+
9
+ def map_dir: (String guest_path, String host_path) -> void
10
+
11
+ def pack: (Array[Integer] module_bytes) -> Array[Integer]
12
+ end
13
+ end
@@ -0,0 +1,91 @@
1
+
2
+ class RubyWasm::Packager
3
+ @definition: untyped
4
+ @config: Hash[untyped, untyped]
5
+
6
+ def initialize: (untyped?, Hash[untyped, untyped]?) -> void
7
+
8
+ def package: (RubyWasm::BuildExecutor, string dest_dir, untyped options) -> Array[Integer]
9
+
10
+ @ruby_core_build: RubyWasm::Packager::Core?
11
+ def ruby_core_build: () -> RubyWasm::Packager::Core
12
+
13
+ EXCLUDED_GEMS: Array[string]
14
+
15
+ def specs: () -> Array[untyped]
16
+ def support_dynamic_linking?: () -> bool
17
+
18
+ def root: () -> string
19
+
20
+ type build_source = Hash[Symbol, (String | Array[String])]
21
+ def self.build_source_aliases: (string root) -> Hash[string, build_source]
22
+
23
+ ALL_DEFAULT_EXTS: string
24
+
25
+ def build_options: () -> Hash[Symbol, untyped]
26
+ def full_build_options: () -> Hash[Symbol, untyped]
27
+
28
+ class Core
29
+ include RubyWasm::_Cacheable
30
+
31
+ @packager: RubyWasm::Packager
32
+ def initialize: (RubyWasm::Packager) -> void
33
+ def build: (RubyWasm::BuildExecutor, untyped options) -> String
34
+
35
+ extend Forwardable
36
+
37
+ def artifact: () -> string
38
+
39
+ private
40
+
41
+ @build_strategy: BuildStrategy?
42
+ def build_strategy: () -> BuildStrategy
43
+
44
+ class BuildStrategy
45
+ @packager: RubyWasm::Packager
46
+ def initialize: (RubyWasm::Packager) -> void
47
+ def build: (RubyWasm::BuildExecutor, untyped options) -> String
48
+ def specs_with_extensions: () -> Array[[untyped, Array[string]]]
49
+ end
50
+
51
+ class DynamicLinking < RubyWasm::Packager::Core::BuildStrategy
52
+ end
53
+
54
+ class StaticLinking < RubyWasm::Packager::Core::BuildStrategy
55
+ @build: RubyWasm::Build
56
+ def derive_build: () -> RubyWasm::Build
57
+ @user_exts: Array[RubyWasm::CrossRubyExtProduct]?
58
+ def user_exts: (RubyWasm::Build) -> Array[RubyWasm::CrossRubyExtProduct]
59
+
60
+ def name: () -> string
61
+ end
62
+ end
63
+
64
+ class FileSystem
65
+ @dest_dir: string
66
+ @packager: RubyWasm::Packager
67
+ @ruby_root: string
68
+
69
+ def initialize: (string dest_dir, RubyWasm::Packager) -> void
70
+ def package_ruby_root: (String tarball, RubyWasm::BuildExecutor) -> void
71
+ def remove_stdlib: (RubyWasm::BuildExecutor) -> void
72
+ def package_gems: () -> void
73
+
74
+ def setup_rb_content: () -> String
75
+
76
+ def remove_non_runtime_files: (RubyWasm::BuildExecutor) -> void
77
+
78
+ def bundle_dir: () -> String
79
+ def ruby_root: () -> string
80
+
81
+ private
82
+
83
+ def each_gem_content_path: () { (String, String) -> void } -> void
84
+ def each_gem_require_path: () { (String, String) -> void } -> void
85
+ def each_gem_extension_path: () { (String, String) -> void } -> void
86
+
87
+ def bundle_relative_path: () -> String
88
+ def ruby_version: () -> String
89
+ def rubyarchdir: () -> String
90
+ end
91
+ end
@@ -0,0 +1,5 @@
1
+ module RubyWasm
2
+ module SizeFormatter
3
+ def self?.format: (Integer size) -> String
4
+ end
5
+ end
@@ -0,0 +1,18 @@
1
+ #!/bin/bash
2
+
3
+ set -eo pipefail
4
+
5
+ if [ -n "$1" ]; then
6
+ BASE_BRANCH="$1"
7
+ elif [ -n "$GITHUB_EVENT_BEFORE" ] && [ "push" = "$GITHUB_EVENT_NAME" ]; then
8
+ BASE_BRANCH="$GITHUB_EVENT_BEFORE"
9
+ elif [ -n "$GITHUB_BASE_REF" ]; then
10
+ BASE_BRANCH="origin/$GITHUB_BASE_REF"
11
+ else
12
+ BASE_BRANCH="@{upstream}"
13
+ fi
14
+
15
+ MERGE_BASE=$(git merge-base $BASE_BRANCH HEAD)
16
+
17
+ git diff -U0 --no-color $MERGE_BASE -- '*.c' '*.h' | clang-format-diff -i -p1
18
+ exit $?
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $LOAD_PATH << File.join(File.dirname(__FILE__), "../lib")
4
+
5
+ require "syntax_tree"
6
+ require "syntax_tree/cli"
7
+ require "syntax_tree/minify_ruby"
8
+
9
+ # Override the default formatter with our own.
10
+ SyntaxTree.register_handler(".rb", SyntaxTree::MinifyRuby)
11
+
12
+ exit(SyntaxTree::CLI.run(ARGV))
@@ -0,0 +1,63 @@
1
+ require "syntax_tree"
2
+
3
+ module SyntaxTree
4
+ module MinifyRuby
5
+
6
+ # This is a required API for syntax tree which just delegates to SyntaxTree.parse.
7
+ def self.parse(source)
8
+ ::SyntaxTree.parse(source)
9
+ end
10
+
11
+ # This is the main entrypoint for the formatter. It parses the source,
12
+ # builds a formatter, then prints the result.
13
+ def self.format(source, _maxwidth = nil)
14
+ formatter = Formatter.new(source)
15
+ program = parse(source)
16
+ CommentStrippingVisitor.new.visit(program)
17
+ program.format(formatter)
18
+
19
+ formatter.flush
20
+ formatter.output.join
21
+ end
22
+
23
+ # This is a required API for syntax tree which just delegates to SyntaxTree.read.
24
+ def self.read(filepath)
25
+ ::SyntaxTree.read(filepath)
26
+ end
27
+
28
+ class CommentStrippingVisitor < SyntaxTree::Visitor
29
+ def visit(node)
30
+ if node and node.comments.any?
31
+ node.comments.clear
32
+ end
33
+ super(node)
34
+ end
35
+
36
+ def visit_statements(node)
37
+ node.body.delete_if { _1.is_a?(SyntaxTree::Comment) }
38
+ super(node)
39
+ end
40
+ end
41
+
42
+ class Formatter < SyntaxTree::Formatter
43
+ def initialize(source)
44
+ super(source, [], Float::INFINITY) do |n|
45
+ # This block, called `genspace`, is used to generate indentation for `n` depth.
46
+ ""
47
+ end
48
+ end
49
+
50
+ def breakable(
51
+ separator = " ",
52
+ _width = separator.length,
53
+ indent: nil,
54
+ force: nil
55
+ )
56
+ # Don't break when already broken
57
+ return if target.last.is_a?(PrettierPrint::BreakParent)
58
+ return if not force and separator == ""
59
+ super(separator, _width, indent: indent, force: force)
60
+ end
61
+ end
62
+ end
63
+ end
metadata ADDED
@@ -0,0 +1,113 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ruby_wasm
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.5.0
5
+ platform: x64-mingw-ucrt
6
+ authors:
7
+ - Yuta Saito
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2024-01-28 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Ruby to WebAssembly toolkit. This gem takes Ruby code and Gemfile, and
14
+ packages them with Ruby runtime into a WebAssembly binary.
15
+ email:
16
+ - kateinoigakukun@gmail.com
17
+ executables:
18
+ - rbwasm
19
+ extensions: []
20
+ extra_rdoc_files: []
21
+ files:
22
+ - ".clang-format"
23
+ - CONTRIBUTING.md
24
+ - Gemfile
25
+ - LICENSE
26
+ - NOTICE
27
+ - README.md
28
+ - Rakefile
29
+ - Steepfile
30
+ - benchmarks/vm_deep_call.rb
31
+ - builders/wasm32-unknown-emscripten/Dockerfile
32
+ - builders/wasm32-unknown-emscripten/entrypoint.sh
33
+ - builders/wasm32-unknown-wasi/Dockerfile
34
+ - builders/wasm32-unknown-wasi/entrypoint.sh
35
+ - docs/api.md
36
+ - docs/cheat_sheet.md
37
+ - docs/faq.md
38
+ - exe/rbwasm
39
+ - ext/.gitignore
40
+ - ext/README.md
41
+ - ext/extinit.c.erb
42
+ - lib/ruby_wasm.rb
43
+ - lib/ruby_wasm/3.1/ruby_wasm.so
44
+ - lib/ruby_wasm/3.2/ruby_wasm.so
45
+ - lib/ruby_wasm/build.rb
46
+ - lib/ruby_wasm/build/build_params.rb
47
+ - lib/ruby_wasm/build/downloader.rb
48
+ - lib/ruby_wasm/build/executor.rb
49
+ - lib/ruby_wasm/build/product.rb
50
+ - lib/ruby_wasm/build/product/baseruby.rb
51
+ - lib/ruby_wasm/build/product/crossruby.rb
52
+ - lib/ruby_wasm/build/product/libyaml.rb
53
+ - lib/ruby_wasm/build/product/openssl.rb
54
+ - lib/ruby_wasm/build/product/product.rb
55
+ - lib/ruby_wasm/build/product/ruby_source.rb
56
+ - lib/ruby_wasm/build/product/wasi_vfs.rb
57
+ - lib/ruby_wasm/build/product/zlib.rb
58
+ - lib/ruby_wasm/build/toolchain.rb
59
+ - lib/ruby_wasm/build/toolchain/wit_bindgen.rb
60
+ - lib/ruby_wasm/cli.rb
61
+ - lib/ruby_wasm/packager.rb
62
+ - lib/ruby_wasm/packager/core.rb
63
+ - lib/ruby_wasm/packager/file_system.rb
64
+ - lib/ruby_wasm/rake_task.rb
65
+ - lib/ruby_wasm/util.rb
66
+ - lib/ruby_wasm/version.rb
67
+ - package-lock.json
68
+ - package.json
69
+ - rakelib/check.rake
70
+ - rakelib/ci.rake
71
+ - rakelib/doc.rake
72
+ - rakelib/format.rake
73
+ - rakelib/gem.rake
74
+ - rakelib/packaging.rake
75
+ - rakelib/version.rake
76
+ - sig/open_uri.rbs
77
+ - sig/ruby_wasm/build.rbs
78
+ - sig/ruby_wasm/cli.rbs
79
+ - sig/ruby_wasm/ext.rbs
80
+ - sig/ruby_wasm/packager.rbs
81
+ - sig/ruby_wasm/util.rbs
82
+ - tools/clang-format-diff.sh
83
+ - tools/exe/rbminify
84
+ - tools/lib/syntax_tree/minify_ruby.rb
85
+ homepage: https://github.com/ruby/ruby.wasm
86
+ licenses:
87
+ - MIT
88
+ metadata:
89
+ homepage_uri: https://github.com/ruby/ruby.wasm
90
+ source_code_uri: https://github.com/ruby/ruby.wasm
91
+ post_install_message:
92
+ rdoc_options: []
93
+ require_paths:
94
+ - lib
95
+ required_ruby_version: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ version: '3.1'
100
+ - - "<"
101
+ - !ruby/object:Gem::Version
102
+ version: 3.3.dev
103
+ required_rubygems_version: !ruby/object:Gem::Requirement
104
+ requirements:
105
+ - - ">="
106
+ - !ruby/object:Gem::Version
107
+ version: '0'
108
+ requirements: []
109
+ rubygems_version: 3.4.4
110
+ signing_key:
111
+ specification_version: 4
112
+ summary: Ruby to WebAssembly toolkit
113
+ test_files: []