ruby_wasm 2.6.0-x86_64-linux-musl → 2.6.2-x86_64-linux-musl

Sign up to get free protection for your applications and to get access to all the features.
data/package.json CHANGED
@@ -5,8 +5,9 @@
5
5
  "packages/npm-packages/*"
6
6
  ],
7
7
  "devDependencies": {
8
- "@playwright/test": "^1.43.1",
8
+ "@playwright/test": "^1.44.1",
9
9
  "@rollup/plugin-json": "^6.1.0",
10
- "rollup": "^4.17.2"
10
+ "rollup": "^4.18.0",
11
+ "@bytecodealliance/jco": "./vendor/jco"
11
12
  }
12
13
  }
@@ -30,9 +30,10 @@ def npm_pkg_rubies_cache_key(pkg)
30
30
  require "open3"
31
31
  cmd = build_command + ["--print-ruby-cache-key"]
32
32
  chdir = pkg[:gemfile] ? File.dirname(pkg[:gemfile]) : Dir.pwd
33
- stdout, status = Open3.capture2(*cmd, chdir: chdir)
33
+ env = { "RUBY_WASM_ROOT" => LIB_ROOT }
34
+ stdout, status = Open3.capture2(env, *cmd, chdir: chdir)
34
35
  unless status.success?
35
- raise "Command failed with status (#{status.exitstatus}): #{cmd.join ""}"
36
+ raise "Command failed with status (#{status.exitstatus}): #{cmd.join " "}"
36
37
  end
37
38
  require "json"
38
39
  JSON.parse(stdout)["hexdigest"]
@@ -79,7 +80,7 @@ namespace :npm do
79
80
  component_path = File.join(pkg_dir, "tmp", "ruby.component.wasm")
80
81
  FileUtils.mkdir_p(File.dirname(component_path))
81
82
 
82
- sh env.merge("RUBY_WASM_EXPERIMENTAL_COMPONENT_MODEL" => "1"),
83
+ sh env.merge("RUBY_WASM_EXPERIMENTAL_DYNAMIC_LINKING" => "1"),
83
84
  *build_command, "-o", component_path
84
85
  sh "npx", "jco", "transpile",
85
86
  "--no-wasi-shim", "--instantiation", "--valid-lifting-optimization",
@@ -33,6 +33,7 @@ module RubyWasm
33
33
  @source: BuildSource
34
34
 
35
35
  attr_reader toolchain: Toolchain
36
+ attr_reader baseruby: BaseRubyProduct
36
37
 
37
38
  def initialize: (
38
39
  string name,
@@ -168,7 +169,7 @@ module RubyWasm
168
169
  def feature_name: (CrossRubyProduct crossruby) -> String
169
170
 
170
171
  def make_args: (CrossRubyProduct crossruby) -> Array[String]
171
- def build: (BuildExecutor executor, CrossRubyProduct crossruby) -> void
172
+ def build: (BuildExecutor executor, CrossRubyProduct crossruby, Array[String] extra_mkargs) -> void
172
173
  def do_extconf: (BuildExecutor executor, CrossRubyProduct crossruby) -> void
173
174
  def do_install_rb: (BuildExecutor executor, CrossRubyProduct crossruby) -> void
174
175
 
@@ -14,10 +14,12 @@ module RubyWasm
14
14
  target_triplet: String,
15
15
  profile: String,
16
16
  stdlib: bool,
17
+ without_stdlib_components: Array[String],
17
18
  disable_gems: bool,
18
19
  gemfile: String?,
19
20
  patches: Array[String],
20
21
  format: String,
22
+ dest_dir: String,
21
23
  }
22
24
 
23
25
  DEFAULT_RUBIES_DIR: string
@@ -33,4 +33,12 @@ module RubyWasmExt
33
33
  def import_name_map: (Hash[String, String] map) -> void
34
34
  def encode: () -> bytes
35
35
  end
36
+
37
+ class WasiVirt
38
+ def initialize: () -> void
39
+ def allow_all: () -> void
40
+ def map_dir: (String guest_path, String host_path) -> void
41
+ def finish: () -> bytes
42
+ def compose: (bytes component_bytes) -> bytes
43
+ end
36
44
  end
@@ -23,6 +23,7 @@ class RubyWasm::Packager
23
23
  src: RubyWasm::Packager::build_source,
24
24
  default_exts: String,
25
25
  suffix: String,
26
+ gem_home: String?,
26
27
  }
27
28
 
28
29
  type bytes = String
@@ -45,7 +46,7 @@ class RubyWasm::Packager
45
46
 
46
47
  def root: () -> string
47
48
 
48
- ALL_DEFAULT_EXTS: string
49
+ ALL_DEFAULT_EXTS: String
49
50
 
50
51
  def build_options: () -> Hash[Symbol, untyped]
51
52
  def full_build_options: () -> Hash[Symbol, untyped]
@@ -56,7 +57,8 @@ class RubyWasm::Packager
56
57
  @packager: RubyWasm::Packager
57
58
  def initialize: (RubyWasm::Packager) -> void
58
59
  def build: (RubyWasm::BuildExecutor, untyped options) -> String
59
- def build_and_link_exts: (RubyWasm::BuildExecutor, bytes module_bytes) -> bytes
60
+ def build_gem_exts: (RubyWasm::BuildExecutor, string gem_home) -> void
61
+ def link_gem_exts: (RubyWasm::BuildExecutor, string ruby_root, string gem_home, bytes module_bytes) -> bytes
60
62
 
61
63
  extend Forwardable
62
64
 
@@ -72,16 +74,19 @@ class RubyWasm::Packager
72
74
  def initialize: (RubyWasm::Packager) -> void
73
75
  def build: (RubyWasm::BuildExecutor, untyped options) -> String
74
76
  def specs_with_extensions: () -> Array[[untyped, Array[string]]]
75
- def build_and_link_exts: (RubyWasm::BuildExecutor, bytes module_bytes) -> bytes
77
+ def build_gem_exts: (RubyWasm::BuildExecutor, string gem_home) -> void
78
+ def link_gem_exts: (RubyWasm::BuildExecutor, string ruby_root, string gem_home, bytes module_bytes) -> bytes
79
+ def wasi_exec_model: () -> String
80
+ def with_unbundled_env: () { () -> void } -> void
76
81
  end
77
82
 
78
83
  class DynamicLinking < RubyWasm::Packager::Core::BuildStrategy
79
84
  @build: RubyWasm::Build
80
85
  def derive_build: () -> RubyWasm::Build
81
- def build_exts: (RubyWasm::BuildExecutor, RubyWasm::Build) -> void
82
86
  def name: () -> string
83
87
 
84
- private def link_exts: (RubyWasm::BuildExecutor, RubyWasm::Build) -> bytes
88
+ private def _build_gem_exts: (RubyWasm::BuildExecutor, RubyWasm::Build, string gem_home) -> void
89
+ private def _link_gem_exts: (RubyWasm::BuildExecutor, RubyWasm::Build, string ruby_root, string gem_home, bytes module_bytes) -> bytes
85
90
  end
86
91
 
87
92
  class StaticLinking < RubyWasm::Packager::Core::BuildStrategy
@@ -102,6 +107,7 @@ class RubyWasm::Packager
102
107
  def initialize: (string dest_dir, RubyWasm::Packager) -> void
103
108
  def package_ruby_root: (String tarball, RubyWasm::BuildExecutor) -> void
104
109
  def remove_stdlib: (RubyWasm::BuildExecutor) -> void
110
+ def remove_stdlib_component: (RubyWasm::BuildExecutor, string) -> void
105
111
  def package_gems: () -> void
106
112
 
107
113
  def setup_rb_content: () -> String
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.6.0
4
+ version: 2.6.2
5
5
  platform: x86_64-linux-musl
6
6
  authors:
7
7
  - Yuta Saito
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-05-05 00:00:00.000000000 Z
11
+ date: 2024-06-29 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.
@@ -32,9 +32,7 @@ files:
32
32
  - docs/cheat_sheet.md
33
33
  - docs/faq.md
34
34
  - exe/rbwasm
35
- - ext/.gitignore
36
- - ext/README.md
37
- - ext/extinit.c.erb
35
+ - ext/ruby_wasm/README.md
38
36
  - lib/ruby_wasm.rb
39
37
  - lib/ruby_wasm/3.1/ruby_wasm.so
40
38
  - lib/ruby_wasm/3.2/ruby_wasm.so
@@ -46,6 +44,7 @@ files:
46
44
  - lib/ruby_wasm/build/product.rb
47
45
  - lib/ruby_wasm/build/product/baseruby.rb
48
46
  - lib/ruby_wasm/build/product/crossruby.rb
47
+ - lib/ruby_wasm/build/product/crossruby/extinit.c.erb
49
48
  - lib/ruby_wasm/build/product/libyaml.rb
50
49
  - lib/ruby_wasm/build/product/openssl.rb
51
50
  - lib/ruby_wasm/build/product/product.rb
data/ext/.gitignore DELETED
@@ -1,2 +0,0 @@
1
- *.o
2
- link.filelist
data/ext/README.md DELETED
@@ -1,11 +0,0 @@
1
- # Ruby extensions
2
- `ruby.wasm` uses two C extensions to turn Ruby in to a guest module.
3
- The `js` extension enables Ruby to use JavaScript APIs.
4
- The `witapi` extension exports Ruby's interpreter interface to allow the host to use the Ruby interpreter.
5
- In other words, `js` allows Ruby to talk to Javascript and `witapi` allows a host to talk to Ruby.
6
-
7
- Under each subdirectory, there is a `bindgen/*.wit` file outlining the interfaces for each form of communication.
8
- Specifically, `bindgen/rb-js-abi-host.wit` describes embedder's requirements and `bindgen/rb-js-abi-guest.wit` describes exported API from Ruby interpreter.
9
- The `.c` and `.h` files are autogenerated from [wit-bindgen](https://github.com/bytecodealliance/wit-bindgen#host-runtimes-for-components).
10
- You can read more about it in the [contributing guide](/CONTRIBUTING.md#re-bindgen-from-wit-files).
11
- Note that we currently do not use the latest version of wit-bindgen because of how fast it is changing, with features being changed or even [removed](https://github.com/bytecodealliance/wit-bindgen/pull/346) at times.