Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Alternative Ruby Implementations #17

Open
rkh opened this issue Jun 25, 2021 · 0 comments
Open

Alternative Ruby Implementations #17

rkh opened this issue Jun 25, 2021 · 0 comments

Comments

@rkh
Copy link
Owner

rkh commented Jun 25, 2021

It would be great to support alternative Ruby implementations. But we're not compatible at the moment.

A couple of modern Ruby features we use:
• Better Unicode support (including relying on Ruby's Unicode normalization). This was introduced in Ruby 2.5, so it should work just fine. This could possibly also be backfilled.
• Pattern matching (experimental support was added in Ruby 2.7, official support in Ruby 3.0)
• Endless method definitions (these could be removed, but only if all other issues are addressed).
• Exception handling without begin (Ruby 2.6, these could also be removed, but only if all other issues are addressed).
• Assumes full separation of keyword and positional arguments (Ruby 2.7).
• Hash#slice (2.5?), Hash#except (3.0)
• Argument forwarding (2.7?), including leading arguments (3.0).
• Hash#transform_keys with hash argument (3.0, could be removed, but only if all other issues are addressed).
• NilClass#=~ (2.6)
• Endless (2.6) and beginless (2.7) range.
• Warning categories (3.0 – limited use, could be made conditional)
• Symbol#name (3.0)
• Numbered parameters (2.7)
• Enumerable#filter_map (2.7 – limited use, could be eliminated).

This list may be incomplete, as I'm only testing against Ruby 3.0.

Current Status

Compatiblity JRuby Truffle Ruby
Ruby 2.5 compatible compatible
Ruby 2.6 jruby/jruby#6161 compatible
Ruby 2.7 jruby/jruby#6464 oracle/truffleruby#2004
Ruby 3.0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant