oracle / truffleruby

A high performance implementation of the Ruby programming language, built on GraalVM.
https://www.graalvm.org/ruby/
Other
2.98k stars 180 forks source link

Update `compatibility.md` re. TruffleRuby 24.0 #3530

Open ParadoxV5 opened 2 months ago

ParadoxV5 commented 2 months ago
  • Full support for the Ruby 3.2 and Ruby 3.3 syntax by adopting the Prism parser, which is about twice as fast as the old parser.
  • Pattern matching is now fully supported.

https://github.com/oracle/truffleruby/releases/tag/graal-24.0.0

oracle-contributor-agreement[bot] commented 2 months ago

Thank you for your pull request and welcome to our community! To contribute, please sign the Oracle Contributor Agreement (OCA). The following contributors of this PR have not signed the OCA:

To sign the OCA, please create an Oracle account and sign the OCA in Oracle's Contributor Agreement Application.

When signing the OCA, please provide your GitHub username. After signing the OCA and getting an OCA approval from Oracle, this PR will be automatically updated.

If you are an Oracle employee, please make sure that you are a member of the main Oracle GitHub organization, and your membership in this organization is public.

ParadoxV5 commented 2 months ago

Thank you for your pull request and welcome to our community! To contribute, please sign the Oracle Contributor Agreement (OCA).

Man… this process is so clunky.

[P.S.] Why does a doc amendment need to run the entire CI? Also, there isn’t a CRuby 3.3 test. Is it intentional?

oracle-contributor-agreement[bot] commented 2 months ago

Thank you for signing the OCA.

eregon commented 2 months ago

TruffleRuby does not yet implement Ruby 3.3 features, and that's why there is also no Ruby 3.3 issue yet (it will be created when work starts on it).

TruffleRuby does support Ruby 3.3 syntax, because that is the minimum version that Prism supports and we have implemented all Prism nodes. I am sorry for the confusion.

Looking at https://github.com/ruby/ruby/blob/master/doc/NEWS/NEWS-3.3.0.md there does not seem to be NEWS-worthy syntax changes in 3.3 (although probably there are some small fixes). So I think we could update CHANGELOG.md to just drop "and 3.3" there to avoid confusion (and I can update the release description). Could you update this PR to do that?

ParadoxV5 commented 2 months ago

Thank you for your clarification.

There weren’t a lot of feature improvements listed in https://github.com/ruby/ruby/blob/v3_3_0/NEWS.md. In fact, I see a handful of easy #good-first-issues. It would be more progressive to prepare a tracker soon to link in the docs (this or future PR).

So I think we could update CHANGELOG.md to just drop "and 3.3" there to avoid confusion (and I can update the release description). Could you update this PR to do that?

I would like to be more optimistic and retain the 3.3 syntax announcement by clarifying that library features are not yet 3.3.

eregon commented 2 months ago

It would be more progressive to prepare a tracker soon to link in the docs (this or future PR).

That could be done, OTOH it's significantly easier to contribute once the RUBY_VERSION has been bumped, and that can only be done after importing the updated files from CRuby (otherwise there are basically 2 versions, that works OK-ish with :next specs but doesn't work for anything else like CRuby tests).

I would like to be more optimistic and retain the 3.3 syntax announcement by clarifying that library features are not yet 3.3.

The line is only about syntax and parser, so it feels out of place to mention core library/standard library there. OTOH there has been some confusion around it (IIRC in at least one other place than this PR), and since syntax-wise it seems very close between 3.2 and 3.3 addressing the confusion seems more important than the exact details (which is that we use Prism 3.3 syntax because there isn't a Prism 3.2 syntax).

Also in general I think we won't mention updates to syntax much in the changelog anymore, since we'll just update Prism regularly and get the new syntax early when updating to a new Ruby version.

ParadoxV5 commented 2 months ago

OTOH it's significantly easier to contribute once the RUBY_VERSION has been bumped

How’s the roadmap looking?

The line is only about syntax and parser, so it feels out of place to mention core library/standard library there.

I agree: the bullet point explicitly mentions the adoption of Prism. How about clarification with an indented bullet?

Also in general I think we won't mention updates to syntax much in the changelog anymore, since we'll just update Prism regularly and get the new syntax early when updating to a new Ruby version.

People (including me) will not enjoy the changelogs seemingly hanging the syntax compability at Ruby 3.3/3.2 with no further updates. If we go this route, we have to rephrase the changelog (24.0 or the next one) to assert Truffle staying up-to-date in syntax through Prism.

eregon commented 2 months ago

(for some reason your last reply didn't get notified on Slack via the integration, weird)

How’s the roadmap looking?

We plan to do the Ruby 3.3 import but there are several more important things to finish first, notably we're reviewing several things related to performance.

How about clarification with an indented bullet?

We typically avoid indented bullets in the changelog. But we could do it in the release description, what would you suggest?

People (including me) will not enjoy the changelogs seemingly hanging the syntax compability at Ruby 3.3/3.2 with no further updates.

The idea is we will have things like Updated to Ruby 3.x.y like in https://github.com/oracle/truffleruby/blob/master/CHANGELOG.md#2310 which just means most of that version is supported, including syntax, core library, standard library, default & bundled gems, etc.