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

Update compatibility.md re. TruffleRuby 24.0 #3530

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

ParadoxV5
Copy link

  • 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

Copy link

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.

@oracle-contributor-agreement oracle-contributor-agreement bot added the OCA Required At least one contributor does not have an approved Oracle Contributor Agreement. label Apr 15, 2024
doc/user/compatibility.md Outdated Show resolved Hide resolved
@ParadoxV5
Copy link
Author

ParadoxV5 commented Apr 15, 2024

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?

Copy link

Thank you for signing the OCA.

@oracle-contributor-agreement oracle-contributor-agreement bot added OCA Verified All contributors have signed the Oracle Contributor Agreement. and removed OCA Required At least one contributor does not have an approved Oracle Contributor Agreement. labels Apr 15, 2024
@eregon
Copy link
Member

eregon commented Apr 15, 2024

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
Copy link
Author

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.

@ParadoxV5 ParadoxV5 marked this pull request as draft April 15, 2024 17:30
@eregon
Copy link
Member

eregon commented Apr 15, 2024

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
Copy link
Author

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
Copy link
Member

eregon commented Apr 16, 2024

(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.

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

Does _not_ mention Ruby 3.3 *syntax* as it’s currently the only Ruby 3.3 feature officially supported.
The changelogs will also receive a clarification. See oracle#3530

Co-Authored-By: Benoit Daloze <168854+eregon@users.noreply.github.com>
@@ -32,7 +32,7 @@ Memory Footprint:
New features:

* C/C++ extensions are now compiled using the system toolchain and executed natively instead of using GraalVM LLVM (Sulong). This leads to faster startup, no warmup, better compatibility, smaller distribution and faster installation for C/C++ extensions (#3118, @eregon).
* Full support for the Ruby 3.2 and Ruby 3.3 syntax by adopting the [Prism](https://github.com/ruby/prism) parser, which is about twice as fast as the old parser (#3117, #3038, #3039, @andrykonchin, @eregon).
* Full support for the Ruby 3.2 (and Ruby 3.3) _syntax_ by adopting the [Prism](https://github.com/ruby/prism) parser, which is about twice as fast as the old parser (#3117, #3038, #3039, @andrykonchin, @eregon).
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How’s this? Is it acceptable by Truffle’s style guidelines?
(I use _ over * whenever underlining suits better than italicizing for the emphasis.)

@ParadoxV5 ParadoxV5 marked this pull request as ready for review April 22, 2024 18:36
@ParadoxV5 ParadoxV5 requested a review from eregon April 22, 2024 18:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
OCA Verified All contributors have signed the Oracle Contributor Agreement.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants