wasmerio / wasmer-ruby

💎🕸 WebAssembly runtime for Ruby
https://wasmer.io
MIT License
465 stars 18 forks source link

Support latest rust/wasmer-runtime/ruby #45

Closed geoffyoungs closed 3 years ago

geoffyoungs commented 3 years ago

The current version of the gem/master doesn't compile with rustc 1.50.0 - this PR works for me, but I'm very much a rust newbie & I don't pretend to understand all the implications of these changes. With the attached patches, the code compiles and tests pass on Ruby 2.7/3.0

Changes:

Hywan commented 3 years ago

bors try

Hywan commented 3 years ago

Thanks for the PR :-). We are going to revamp the project entirely, meanwhile your PR is very welcome! Thanks!

bors[bot] commented 3 years ago

try

Build failed:

geoffyoungs commented 3 years ago

Thanks for taking a look - I notice the github workflow isn't working, but that is unrelated to the code changes in the PR.

I've added a commit to make the workflow to use some standard-ish actions for ruby/rust install, which is sufficient for it to run/compile again. cf. https://github.com/livelink/wasmer-ruby/actions/runs/617310318

geoffyoungs commented 3 years ago

bors try

bors[bot] commented 3 years ago

:lock: Permission denied

Existing reviewers: click here to make geoffyoungs a reviewer

Hywan commented 3 years ago

OK, thanks for your PR :-). I'll get back to it as soon as I've time. I don't want to merge it like that because we have plans for this project that could conflict with the PR. But for sure, it will be integrate one way or another! Thanks!

geoffyoungs commented 3 years ago

OK, thanks for your PR :-). I'll get back to it as soon as I've time. I don't want to merge it like that because we have plans for this project that could conflict with the PR. But for sure, it will be integrate one way or another! Thanks!

Sure - thanks for taking a look.

Hywan commented 3 years ago

Closed by #48 which rewrites the entire project. It supports the latest version of Rutie, but it also introduces new crates like rutie-derive and rutie-derive-macros that introduce the #[rubyclass], #[rubymethods] and #[rubyfunction] procedural macros. It makes the code so much easier to write, to read, and to maintain!

I've noticed that you're using the rutie features no-link. Why? It makes tests to fail miserably on my machine with this feature.

geoffyoungs commented 3 years ago

Thanks for the update - I'll give that a go.

I added "no-link" to rutie because I was getting link errors & the feature solved them. Tests were passing fine on my machine.

From the docs, the link option should only be needed when embedding ruby within rust - but this is compiles to a shared library loaded from libruby, so all of the symbols in libruby should be available without needing to specify it as a dependency?

Hywan commented 3 years ago

We aren't embedding Ruby inside Rust, it's rather the opposite, so I understand it's not necessary. Can you tell me what linking issues to have (if you can reproduce them)?