ruby_wasm 2.5.0-x64-mingw-ucrt → 2.5.1-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 (43) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.md +9 -7
  3. data/Gemfile +1 -1
  4. data/README.md +10 -9
  5. data/Rakefile +8 -7
  6. data/docs/cheat_sheet.md +8 -8
  7. data/lib/ruby_wasm/3.1/ruby_wasm.so +0 -0
  8. data/lib/ruby_wasm/3.2/ruby_wasm.so +0 -0
  9. data/lib/ruby_wasm/3.3/ruby_wasm.so +0 -0
  10. data/lib/ruby_wasm/build/executor.rb +4 -0
  11. data/lib/ruby_wasm/build/product/crossruby.rb +53 -23
  12. data/lib/ruby_wasm/build/product/libyaml.rb +5 -3
  13. data/lib/ruby_wasm/build/product/openssl.rb +7 -2
  14. data/lib/ruby_wasm/build/product/product.rb +3 -3
  15. data/lib/ruby_wasm/build/product/ruby_source.rb +3 -3
  16. data/lib/ruby_wasm/build/product/wasi_vfs.rb +1 -1
  17. data/lib/ruby_wasm/build/product/zlib.rb +3 -1
  18. data/lib/ruby_wasm/build/target.rb +24 -0
  19. data/lib/ruby_wasm/build/toolchain.rb +1 -1
  20. data/lib/ruby_wasm/build.rb +7 -3
  21. data/lib/ruby_wasm/cli.rb +141 -11
  22. data/lib/ruby_wasm/packager/component_adapter/wasi_snapshot_preview1.command.wasm +0 -0
  23. data/lib/ruby_wasm/packager/component_adapter/wasi_snapshot_preview1.reactor.wasm +0 -0
  24. data/lib/ruby_wasm/packager/component_adapter.rb +14 -0
  25. data/lib/ruby_wasm/packager/core.rb +180 -3
  26. data/lib/ruby_wasm/packager/file_system.rb +5 -3
  27. data/lib/ruby_wasm/packager.rb +18 -81
  28. data/lib/ruby_wasm/rake_task.rb +1 -0
  29. data/lib/ruby_wasm/version.rb +1 -1
  30. data/lib/ruby_wasm.rb +1 -0
  31. data/package-lock.json +410 -133
  32. data/package.json +3 -3
  33. data/rakelib/ci.rake +3 -3
  34. data/rakelib/packaging.rake +26 -12
  35. data/sig/ruby_wasm/build.rbs +36 -27
  36. data/sig/ruby_wasm/cli.rbs +27 -3
  37. data/sig/ruby_wasm/ext.rbs +15 -2
  38. data/sig/ruby_wasm/packager.rbs +37 -6
  39. metadata +8 -7
  40. data/builders/wasm32-unknown-emscripten/Dockerfile +0 -43
  41. data/builders/wasm32-unknown-emscripten/entrypoint.sh +0 -7
  42. data/builders/wasm32-unknown-wasi/Dockerfile +0 -47
  43. data/builders/wasm32-unknown-wasi/entrypoint.sh +0 -7
data/package.json CHANGED
@@ -5,8 +5,8 @@
5
5
  "packages/npm-packages/*"
6
6
  ],
7
7
  "devDependencies": {
8
- "@playwright/test": "^1.40.1",
9
- "@rollup/plugin-json": "^6.0.1",
10
- "rollup": "^4.6.1"
8
+ "@playwright/test": "^1.42.1",
9
+ "@rollup/plugin-json": "^6.1.0",
10
+ "rollup": "^4.13.2"
11
11
  }
12
12
  }
data/rakelib/ci.rake CHANGED
@@ -1,7 +1,7 @@
1
1
  def latest_build_sources
2
2
  BUILD_SOURCES
3
3
  .filter_map do |name|
4
- src = RubyWasm::Packager.build_source_aliases(LIB_ROOT)[name]
4
+ src = RubyWasm::CLI.build_source_aliases(LIB_ROOT)[name]
5
5
  case src[:type]
6
6
  when "github"
7
7
  url = "repos/#{src[:repo]}/commits/#{src[:rev]}"
@@ -23,7 +23,7 @@ def release_note
23
23
  EOS
24
24
 
25
25
  BUILD_SOURCES.each do |name|
26
- source = RubyWasm::Packager.build_source_aliases(LIB_ROOT)[name]
26
+ source = RubyWasm::CLI.build_source_aliases(LIB_ROOT)[name]
27
27
  case source[:type]
28
28
  when "github"
29
29
  output +=
@@ -86,7 +86,7 @@ def rake_task_matrix
86
86
  task: "standalone:#{pkg[:name]}",
87
87
  artifact: "packages/standalone/#{pkg[:name]}/dist",
88
88
  artifact_name: "standalone-#{pkg[:name]}",
89
- builder: "wasm32-unknown-wasi",
89
+ builder: "wasm32-unknown-wasip1",
90
90
  rubies_cache_key: ruby_cache_keys[pkg[:build]]
91
91
  }
92
92
  end
@@ -51,8 +51,9 @@ namespace :npm do
51
51
  # Share ./build and ./rubies in the same workspace
52
52
  "RUBY_WASM_ROOT" => base_dir
53
53
  }
54
+ cwd = nil
54
55
  if gemfile_path = pkg[:gemfile]
55
- env["BUNDLE_GEMFILE"] = File.join(base_dir, gemfile_path)
56
+ cwd = File.dirname(gemfile_path)
56
57
  else
57
58
  # Explicitly disable rubygems integration since Bundler finds
58
59
  # Gemfile in the repo root directory.
@@ -60,16 +61,18 @@ namespace :npm do
60
61
  end
61
62
  dist_dir = File.join(pkg_dir, "dist")
62
63
  mkdir_p dist_dir
63
- if pkg[:target] == "wasm32-unknown-wasi"
64
- sh env,
65
- *build_command,
66
- "--no-stdlib",
67
- "-o",
68
- File.join(dist_dir, "ruby.wasm")
69
- sh env,
70
- *build_command,
71
- "-o",
72
- File.join(dist_dir, "ruby.debug+stdlib.wasm")
64
+ if pkg[:target].start_with?("wasm32-unknown-wasi")
65
+ Dir.chdir(cwd || base_dir) do
66
+ sh env,
67
+ *build_command,
68
+ "--no-stdlib",
69
+ "-o",
70
+ File.join(dist_dir, "ruby.wasm")
71
+ sh env,
72
+ *build_command,
73
+ "-o",
74
+ File.join(dist_dir, "ruby.debug+stdlib.wasm")
75
+ end
73
76
  sh wasi_sdk.wasm_opt,
74
77
  "--strip-debug",
75
78
  File.join(dist_dir, "ruby.wasm"),
@@ -81,7 +84,9 @@ namespace :npm do
81
84
  "-o",
82
85
  File.join(dist_dir, "ruby+stdlib.wasm")
83
86
  elsif pkg[:target] == "wasm32-unknown-emscripten"
84
- sh env, *build_command, "-o", "/dev/null"
87
+ Dir.chdir(cwd || base_dir) do
88
+ sh env, *build_command, "-o", "/dev/null"
89
+ end
85
90
  end
86
91
  end
87
92
 
@@ -149,3 +154,12 @@ namespace :standalone do
149
154
  end
150
155
  end
151
156
  end
157
+
158
+ namespace :gem do
159
+ task :update_component_adapters do
160
+ ["command", "reactor"].each do |exec_model|
161
+ sh "curl", "-L", "-o", "lib/ruby_wasm/packager/component_adapter/wasi_snapshot_preview1.#{exec_model}.wasm",
162
+ "https://github.com/bytecodealliance/wasmtime/releases/download/v19.0.1/wasi_snapshot_preview1.#{exec_model}.wasm"
163
+ end
164
+ end
165
+ end
@@ -5,17 +5,29 @@ module RubyWasm
5
5
  def cache_key: (Digest::SHA256 digest) -> void
6
6
  end
7
7
 
8
+ class Target
9
+ include _Cacheable
10
+
11
+ @triple: String
12
+ @pic: bool
13
+
14
+ attr_reader triple: String
15
+
16
+ def initialize: (String triple, ?pic: bool) -> void
17
+ def pic?: -> bool
18
+ end
19
+
8
20
  class Build
9
21
  include _Cacheable
10
22
 
11
- @target: String
23
+ @target: Target
12
24
  @build_dir: String
13
25
  @rubies_dir: String
14
26
  @toolchain: Toolchain
15
27
  @libyaml: LibYAMLProduct
16
28
  @zlib: ZlibProduct
17
29
  @openssl: OpenSSLProduct
18
- @wasi_vfs: WasiVfsProduct
30
+ @wasi_vfs: WasiVfsProduct?
19
31
  @baseruby: BaseRubyProduct
20
32
  @crossruby: CrossRubyProduct
21
33
  @source: BuildSource
@@ -24,11 +36,12 @@ module RubyWasm
24
36
 
25
37
  def initialize: (
26
38
  string name,
27
- target: String,
39
+ target: Target,
28
40
  src: Packager::build_source,
29
41
  toolchain: Toolchain?,
30
42
  build_dir: string,
31
43
  rubies_dir: string,
44
+ ?wasi_vfs: :default | WasiVfsProduct?,
32
45
  **untyped
33
46
  ) -> void
34
47
  def crossruby: () -> CrossRubyProduct
@@ -36,10 +49,10 @@ module RubyWasm
36
49
 
37
50
  class BuildParams
38
51
  attr_accessor name: String
39
- attr_accessor target: String
52
+ attr_accessor target: Target
40
53
  attr_accessor default_exts: String
41
54
 
42
- def initialize: (name: string, target: string, default_exts: string) -> void
55
+ def initialize: (name: string, target: Target, default_exts: string) -> void
43
56
  end
44
57
 
45
58
  class BuildProduct
@@ -47,10 +60,10 @@ module RubyWasm
47
60
  end
48
61
 
49
62
  class AutoconfProduct < BuildProduct
50
- @target: String
63
+ @target: Target
51
64
  @toolchain: Toolchain
52
65
 
53
- def initialize: (String target, Toolchain toolchain) -> void
66
+ def initialize: (Target target, Toolchain toolchain) -> void
54
67
  def system_triplet_args: -> Array[String]
55
68
  | -> Array[String]
56
69
  def tools_args: -> Array[String]
@@ -88,8 +101,8 @@ module RubyWasm
88
101
  ZLIB_VERSION: String
89
102
  @build_dir: String
90
103
 
91
- attr_reader target: String
92
- def initialize: (String build_dir, String target, Toolchain toolchain) -> void
104
+ attr_reader target: Target
105
+ def initialize: (String build_dir, Target target, Toolchain toolchain) -> void
93
106
  def product_build_dir: -> String
94
107
  def destdir: -> String
95
108
  def install_root: -> String
@@ -102,8 +115,8 @@ module RubyWasm
102
115
  LIBYAML_VERSION: String
103
116
  @build_dir: String
104
117
 
105
- attr_reader target: String
106
- def initialize: (String build_dir, String target, Toolchain toolchain) -> void
118
+ attr_reader target: Target
119
+ def initialize: (String build_dir, Target target, Toolchain toolchain) -> void
107
120
  def product_build_dir: -> String
108
121
  def destdir: -> String
109
122
  def install_root: -> String
@@ -115,8 +128,8 @@ module RubyWasm
115
128
  OPENSSL_VERSION: String
116
129
  @build_dir: String
117
130
 
118
- attr_reader target: String
119
- def initialize: (String build_dir, String target, Toolchain toolchain) -> void
131
+ attr_reader target: Target
132
+ def initialize: (String build_dir, Target target, Toolchain toolchain) -> void
120
133
  def product_build_dir: -> String
121
134
  def destdir: -> String
122
135
  def install_root: -> String
@@ -157,6 +170,8 @@ module RubyWasm
157
170
  def build: (BuildExecutor executor, CrossRubyProduct crossruby) -> void
158
171
  def do_extconf: (BuildExecutor executor, CrossRubyProduct crossruby) -> void
159
172
  def do_install_rb: (BuildExecutor executor, CrossRubyProduct crossruby) -> void
173
+
174
+ private def do_legacy_extconf: (BuildExecutor executor, CrossRubyProduct crossruby) -> void
160
175
  end
161
176
 
162
177
  class CrossRubyProduct < AutoconfProduct
@@ -171,6 +186,7 @@ module RubyWasm
171
186
  @openssl: OpenSSLProduct
172
187
  @wasi_vfs: WasiVfsProduct
173
188
 
189
+ attr_reader target: Target
174
190
  attr_reader source: BuildSource
175
191
  attr_reader toolchain: Toolchain
176
192
  attr_accessor user_exts: Array[CrossRubyExtProduct]
@@ -183,6 +199,8 @@ module RubyWasm
183
199
  attr_accessor xldflags: Array[String]
184
200
  def initialize: (BuildParams params, String build_dir, String rubies_dir, BaseRubyProduct baseruby, BuildSource source, Toolchain toolchain) -> void
185
201
  def configure: (BuildExecutor executor, ?reconfigure: bool) -> void
202
+ def need_exts_build?: -> bool
203
+ def need_extinit_obj?: -> bool
186
204
  def build_exts: (BuildExecutor executor) -> void
187
205
  def build: (BuildExecutor executor, ?remake: bool, ?reconfigure: bool) -> void
188
206
  def clean: (BuildExecutor executor) -> void
@@ -191,7 +209,7 @@ module RubyWasm
191
209
  def ext_build_dir: -> String
192
210
  def with_libyaml: (LibYAMLProduct libyaml) -> LibYAMLProduct
193
211
  def with_zlib: (ZlibProduct zlib) -> ZlibProduct
194
- def with_wasi_vfs: (WasiVfsProduct wasi_vfs) -> WasiVfsProduct
212
+ def with_wasi_vfs: (WasiVfsProduct? wasi_vfs) -> WasiVfsProduct?
195
213
  def with_openssl: (OpenSSLProduct openssl) -> OpenSSLProduct
196
214
  def dest_dir: -> String
197
215
  def artifact: -> String
@@ -219,7 +237,7 @@ module RubyWasm
219
237
  def initialize: -> void
220
238
  def find_tool: (Symbol name) -> String
221
239
  def check_envvar: (untyped name) -> void
222
- def self.get: (String target, ?String? build_dir) -> (Toolchain)
240
+ def self.get: (Target target, ?String? build_dir) -> (Toolchain)
223
241
  def self.find_path: (String command) -> String?
224
242
  def self.check_executable: (String command) -> String
225
243
  def cc: -> String
@@ -273,6 +291,7 @@ module RubyWasm
273
291
  def cp_r: (FileUtils::pathlist src, path dest) -> void
274
292
  def mv: (FileUtils::pathlist src, path dest) -> void
275
293
  def mkdir_p: (FileUtils::pathlist list) -> void
294
+ def ln_s: (String src, String dest) -> void
276
295
  def write: (String path, _ToS data) -> void
277
296
 
278
297
  def begin_section: (Class klass, String name, String note) -> void
@@ -299,19 +318,9 @@ module RubyWasm
299
318
  end
300
319
 
301
320
  class BuildTask
302
- @build_dir: String
303
- @rubies_dir: String
304
- @openssl: OpenSSLProduct
305
-
321
+ @build: Build
306
322
  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
323
+
315
324
  def initialize: (String name, target: String, src: untyped, ?toolchain: Toolchain?, ?build_dir: String?, ?rubies_dir: String?, **untyped) -> void
316
325
  def hexdigest: -> String
317
326
  end
@@ -1,5 +1,25 @@
1
1
  module RubyWasm
2
2
  class CLI
3
+ type cli_options = {
4
+ print_ruby_cache_key: bool,
5
+ save_temps: bool,
6
+ output: String,
7
+
8
+ optimize: bool,
9
+ remake: bool,
10
+ reconfigure: bool,
11
+ clean: bool,
12
+
13
+ ruby_version: String,
14
+ target_triplet: String,
15
+ profile: String,
16
+ stdlib: bool,
17
+ disable_gems: bool,
18
+ gemfile: String?,
19
+ patches: Array[String],
20
+ format: String,
21
+ }
22
+
3
23
  DEFAULT_RUBIES_DIR: string
4
24
 
5
25
  @stdout: IO
@@ -12,11 +32,15 @@ module RubyWasm
12
32
 
13
33
  private
14
34
 
15
- def build_config: (Hash[untyped, untyped] options) -> Hash[untyped, untyped]
35
+ def build_config: (cli_options options) -> Packager::build_config
36
+ def compute_build_source: (cli_options options) -> Packager::build_source
37
+ def self.build_source_aliases: (string root) -> Hash[string, Packager::build_source]
38
+ def self.bundled_patches_path: () -> string
39
+ def root: () -> string
16
40
 
17
- def derive_packager: (Hash[untyped, untyped] options) -> Packager
41
+ def derive_packager: (cli_options options) -> Packager
18
42
  def do_print_ruby_cache_key: (Packager) -> void
19
- def do_build: (BuildExecutor, string tmpdir, Packager, Hash[untyped, untyped] options) -> void
43
+ def do_build: (BuildExecutor, string tmpdir, Packager, cli_options options) -> void
20
44
 
21
45
  def require_extension: () -> void
22
46
  end
@@ -1,5 +1,7 @@
1
1
  module RubyWasmExt
2
- def self.preinitialize: (Array[Integer] module_bytes) -> Array[Integer]
2
+ type bytes = String
3
+
4
+ def self.preinitialize: (bytes module_bytes) -> bytes
3
5
 
4
6
  class WasiVfs
5
7
  def initialize: () -> void
@@ -8,6 +10,17 @@ module RubyWasmExt
8
10
 
9
11
  def map_dir: (String guest_path, String host_path) -> void
10
12
 
11
- def pack: (Array[Integer] module_bytes) -> Array[Integer]
13
+ def pack: (bytes module_bytes) -> bytes
14
+ end
15
+
16
+ class ComponentLink
17
+ def initialize: () -> void
18
+ def library: (String name, bytes module, bool dl_openable) -> void
19
+ def adapter: (String name, bytes module) -> void
20
+ def validate: (bool) -> void
21
+ def stack_size: (Integer) -> void
22
+ def stub_missing_functions: (bool) -> void
23
+ def use_built_in_libdl: (bool) -> void
24
+ def encode: () -> bytes
12
25
  end
13
26
  end
@@ -1,11 +1,33 @@
1
1
 
2
2
  class RubyWasm::Packager
3
+ type build_source_github = {
4
+ type: "github",
5
+ repo: String,
6
+ rev: String,
7
+ }
8
+ type build_source_tarball = {
9
+ type: "tarball",
10
+ url: String,
11
+ }
12
+ type build_source_local = {
13
+ type: "local",
14
+ path: String,
15
+ }
16
+ type build_source = (build_source_github | build_source_tarball | build_source_local) & {
17
+ name: string,
18
+ patches: Array[String],
19
+ }
20
+
21
+ type build_config = Hash[untyped, untyped]
22
+
23
+ type bytes = String
24
+
3
25
  @definition: untyped
4
- @config: Hash[untyped, untyped]
26
+ @config: build_config
5
27
 
6
- def initialize: (untyped?, Hash[untyped, untyped]?) -> void
28
+ def initialize: (string root, build_config?, untyped? definition) -> void
7
29
 
8
- def package: (RubyWasm::BuildExecutor, string dest_dir, untyped options) -> Array[Integer]
30
+ def package: (RubyWasm::BuildExecutor, string dest_dir, untyped options) -> bytes
9
31
 
10
32
  @ruby_core_build: RubyWasm::Packager::Core?
11
33
  def ruby_core_build: () -> RubyWasm::Packager::Core
@@ -17,9 +39,6 @@ class RubyWasm::Packager
17
39
 
18
40
  def root: () -> string
19
41
 
20
- type build_source = Hash[Symbol, (String | Array[String])]
21
- def self.build_source_aliases: (string root) -> Hash[string, build_source]
22
-
23
42
  ALL_DEFAULT_EXTS: string
24
43
 
25
44
  def build_options: () -> Hash[Symbol, untyped]
@@ -31,6 +50,7 @@ class RubyWasm::Packager
31
50
  @packager: RubyWasm::Packager
32
51
  def initialize: (RubyWasm::Packager) -> void
33
52
  def build: (RubyWasm::BuildExecutor, untyped options) -> String
53
+ def build_and_link_exts: (RubyWasm::BuildExecutor) -> bytes
34
54
 
35
55
  extend Forwardable
36
56
 
@@ -46,9 +66,16 @@ class RubyWasm::Packager
46
66
  def initialize: (RubyWasm::Packager) -> void
47
67
  def build: (RubyWasm::BuildExecutor, untyped options) -> String
48
68
  def specs_with_extensions: () -> Array[[untyped, Array[string]]]
69
+ def build_and_link_exts: (RubyWasm::BuildExecutor) -> bytes
49
70
  end
50
71
 
51
72
  class DynamicLinking < RubyWasm::Packager::Core::BuildStrategy
73
+ @build: RubyWasm::Build
74
+ def derive_build: () -> RubyWasm::Build
75
+ def build_exts: (RubyWasm::BuildExecutor, RubyWasm::Build) -> void
76
+ def name: () -> string
77
+
78
+ private def link_exts: (RubyWasm::BuildExecutor, RubyWasm::Build) -> bytes
52
79
  end
53
80
 
54
81
  class StaticLinking < RubyWasm::Packager::Core::BuildStrategy
@@ -88,4 +115,8 @@ class RubyWasm::Packager
88
115
  def ruby_version: () -> String
89
116
  def rubyarchdir: () -> String
90
117
  end
118
+
119
+ module ComponentAdapter
120
+ def self.wasi_snapshot_preview1: (String exec_model) -> String
121
+ end
91
122
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby_wasm
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.5.0
4
+ version: 2.5.1
5
5
  platform: x64-mingw-ucrt
6
6
  authors:
7
7
  - Yuta Saito
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-01-28 00:00:00.000000000 Z
11
+ date: 2024-04-21 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Ruby to WebAssembly toolkit. This gem takes Ruby code and Gemfile, and
14
14
  packages them with Ruby runtime into a WebAssembly binary.
@@ -28,10 +28,6 @@ files:
28
28
  - Rakefile
29
29
  - Steepfile
30
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
31
  - docs/api.md
36
32
  - docs/cheat_sheet.md
37
33
  - docs/faq.md
@@ -42,6 +38,7 @@ files:
42
38
  - lib/ruby_wasm.rb
43
39
  - lib/ruby_wasm/3.1/ruby_wasm.so
44
40
  - lib/ruby_wasm/3.2/ruby_wasm.so
41
+ - lib/ruby_wasm/3.3/ruby_wasm.so
45
42
  - lib/ruby_wasm/build.rb
46
43
  - lib/ruby_wasm/build/build_params.rb
47
44
  - lib/ruby_wasm/build/downloader.rb
@@ -55,10 +52,14 @@ files:
55
52
  - lib/ruby_wasm/build/product/ruby_source.rb
56
53
  - lib/ruby_wasm/build/product/wasi_vfs.rb
57
54
  - lib/ruby_wasm/build/product/zlib.rb
55
+ - lib/ruby_wasm/build/target.rb
58
56
  - lib/ruby_wasm/build/toolchain.rb
59
57
  - lib/ruby_wasm/build/toolchain/wit_bindgen.rb
60
58
  - lib/ruby_wasm/cli.rb
61
59
  - lib/ruby_wasm/packager.rb
60
+ - lib/ruby_wasm/packager/component_adapter.rb
61
+ - lib/ruby_wasm/packager/component_adapter/wasi_snapshot_preview1.command.wasm
62
+ - lib/ruby_wasm/packager/component_adapter/wasi_snapshot_preview1.reactor.wasm
62
63
  - lib/ruby_wasm/packager/core.rb
63
64
  - lib/ruby_wasm/packager/file_system.rb
64
65
  - lib/ruby_wasm/rake_task.rb
@@ -99,7 +100,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
99
100
  version: '3.1'
100
101
  - - "<"
101
102
  - !ruby/object:Gem::Version
102
- version: 3.3.dev
103
+ version: 3.4.dev
103
104
  required_rubygems_version: !ruby/object:Gem::Requirement
104
105
  requirements:
105
106
  - - ">="
@@ -1,43 +0,0 @@
1
- FROM emscripten/emsdk:3.1.31
2
-
3
- ARG NODE_MAJOR_VERSION=20
4
-
5
- RUN set -eux; \
6
- apt-get update; \
7
- apt-get install -y ca-certificates curl gnupg; \
8
- mkdir -p /etc/apt/keyrings; \
9
- curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg; \
10
- echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR_VERSION.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list; \
11
- apt-get update; \
12
- apt-get install ruby ruby-dev ruby-bundler nodejs \
13
- bison make autoconf git curl build-essential \
14
- libyaml-dev zlib1g-dev gosu \
15
- libclang-13-dev -y; \
16
- apt-get clean; \
17
- rm -r /var/lib/apt/lists/*
18
-
19
- # Prefer apt-installed nodejs instead of emsdk's old one.
20
- ENV PATH=/usr/bin:$PATH
21
-
22
- ENV RUSTUP_HOME=/usr/local/rustup \
23
- CARGO_HOME=/usr/local/cargo \
24
- PATH=/usr/local/cargo/bin:$PATH \
25
- RUST_VERSION=1.75
26
-
27
- RUN set -eux pipefail; \
28
- curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | \
29
- sh -s -- -y --no-modify-path --profile minimal --default-toolchain $RUST_VERSION; \
30
- chmod -R a+w $RUSTUP_HOME $CARGO_HOME
31
-
32
- ENV BUNDLE_PATH=/usr/local/gems
33
- RUN set -eux; \
34
- mkdir -p $BUNDLE_PATH; \
35
- chmod -R 777 $BUNDLE_PATH
36
-
37
- COPY entrypoint.sh /usr/local/bin/entrypoint.sh
38
- RUN chmod +x /usr/local/bin/entrypoint.sh
39
- ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
40
- # Build with non-root user because `@npmcli/promise-spawn` sets `uid` and `gid` to cwd owner when the current user is root.
41
- # This permission demotion results in EACCES error at reading `$HOME/.node_modules` in `resolve` package, which is used by `@rollup/plugin-node-resolve`.
42
- # * https://github.com/npm/cli/blob/32336f6efe06bd52de1dc67c0f812d4705533ef2/node_modules/%40npmcli/promise-spawn/lib/index.js#L13
43
- RUN adduser --disabled-password --gecos '' me
@@ -1,7 +0,0 @@
1
- #!/bin/bash
2
-
3
- set -e
4
-
5
- [ ! -z "${RUBYWASM_UID+x}" ] && usermod --uid "$RUBYWASM_UID" --non-unique me
6
- [ ! -z "${RUBYWASM_GID+x}" ] && groupmod --gid "$RUBYWASM_GID" --non-unique me
7
- exec gosu me "$@"
@@ -1,47 +0,0 @@
1
- FROM debian:bullseye
2
-
3
- ARG WASI_PRESET_ARGS_VERSION=0.1.1
4
- ARG NODE_MAJOR_VERSION=20
5
-
6
- RUN set -eux; \
7
- apt-get update; \
8
- apt-get install -y ca-certificates curl gnupg; \
9
- mkdir -p /etc/apt/keyrings; \
10
- curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg; \
11
- echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR_VERSION.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list; \
12
- apt-get update; \
13
- apt-get install ruby ruby-dev ruby-bundler nodejs \
14
- bison make autoconf git curl build-essential \
15
- libyaml-dev zlib1g-dev gosu \
16
- libclang-13-dev -y; \
17
- apt-get clean; \
18
- rm -r /var/lib/apt/lists/*
19
-
20
- RUN set -eux pipefail; \
21
- wasi_preset_args_url="https://github.com/kateinoigakukun/wasi-preset-args/releases/download/v${WASI_PRESET_ARGS_VERSION}/wasi-preset-args-x86_64-unknown-linux-gnu.zip"; \
22
- curl -LO "$wasi_preset_args_url"; \
23
- unzip wasi-preset-args-x86_64-unknown-linux-gnu.zip; \
24
- mv wasi-preset-args /usr/local/bin/wasi-preset-args
25
-
26
- ENV RUSTUP_HOME=/usr/local/rustup \
27
- CARGO_HOME=/usr/local/cargo \
28
- PATH=/usr/local/cargo/bin:$PATH \
29
- RUST_VERSION=1.75
30
-
31
- RUN set -eux pipefail; \
32
- curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | \
33
- sh -s -- -y --no-modify-path --profile minimal --default-toolchain $RUST_VERSION; \
34
- chmod -R a+w $RUSTUP_HOME $CARGO_HOME
35
-
36
- ENV BUNDLE_PATH=/usr/local/gems
37
- RUN set -eux; \
38
- mkdir -p $BUNDLE_PATH; \
39
- chmod -R 777 $BUNDLE_PATH
40
-
41
- COPY entrypoint.sh /usr/local/bin/entrypoint.sh
42
- RUN chmod +x /usr/local/bin/entrypoint.sh
43
- ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
44
- # Build with non-root user because `@npmcli/promise-spawn` sets `uid` and `gid` to cwd owner when the current user is root.
45
- # This permission demotion results in EACCES error at reading `$HOME/.node_modules` in `resolve` package, which is used by `@rollup/plugin-node-resolve`.
46
- # * https://github.com/npm/cli/blob/32336f6efe06bd52de1dc67c0f812d4705533ef2/node_modules/%40npmcli/promise-spawn/lib/index.js#L13
47
- RUN adduser --disabled-password --gecos '' me
@@ -1,7 +0,0 @@
1
- #!/bin/bash
2
-
3
- set -e
4
-
5
- [ ! -z "${RUBYWASM_UID+x}" ] && usermod --uid "$RUBYWASM_UID" --non-unique me
6
- [ ! -z "${RUBYWASM_GID+x}" ] && groupmod --gid "$RUBYWASM_GID" --non-unique me
7
- exec gosu me "$@"