25 Commits

Author SHA1 Message Date
Kevin Newton
050ffab82b [ruby/prism] Polyfill Kernel#warn category parameter
https://github.com/ruby/prism/commit/d85c72a1b9
2025-03-19 21:03:18 +00:00
Kevin Newton
da93c9ae29 [ruby/prism] Refactor serializer
https://github.com/ruby/prism/commit/8ab2532f09
2025-01-14 15:32:41 +00:00
Kevin Newton
713f31872a [ruby/prism] Freeze AST option
To make it so that you can pass `freeze: true` to Prism parse
methods and get back a deeply-frozen AST that is Ractor-
shareable.

https://github.com/ruby/prism/commit/8e6a93b2d2
2025-01-14 15:32:39 +00:00
Kevin Newton
550ae745f6 [ruby/prism] Relocation
https://github.com/ruby/prism/commit/5ea6042408
2024-10-16 15:56:01 +00:00
Kevin Newton
5f62522d5b [ruby/prism] Prism::StringQuery
Introduce StringQuery to provide methods to access some metadata
about the Ruby lexer.

https://github.com/ruby/prism/commit/d3f55b67b9
2024-10-11 19:34:57 +00:00
Kevin Newton
f8b750370e [ruby/prism] Remove Debug module
https://github.com/ruby/prism/commit/4d8929ff6a
2024-05-24 17:19:38 +00:00
Kevin Newton
e6340258f8 [ruby/prism] Autoload newlines and comment visitors
Having the @newline instance variable in every node adds up, and
since it is so rarely used, we only want to add it when necessary.

Moving this into an autoloaded file and moving the instance variable
out of the default initializers reduces allocated memory because the
nodes are now smaller and some fit into the compact list. On my
machine, I'm seeing about an 8% drop.

https://github.com/ruby/prism/commit/eea92c07d2
2024-05-13 15:34:47 +00:00
Kevin Newton
d4a6d0c177 [ruby/prism] Prism::Location#adjoin
https://github.com/ruby/prism/commit/a298db68e3
2024-05-03 19:14:03 +00:00
Kevin Newton
6d9ba1e014 [ruby/prism] Change inspect from recursive to a queue
We would previously cause a stack overflow if we parsed a file that
was too deeply nested when we were calling inspect. Instead, we now
use a queue of commands to do it linearly so we don't.

https://github.com/ruby/prism/commit/0f21f5bfe1
2024-04-24 14:16:42 -04:00
Kevin Newton
23be6599a2 [ruby/prism] Split parse result based on type
https://github.com/ruby/prism/commit/17194e096d
2024-04-19 19:25:32 +00:00
Kevin Newton
d186eb36a4 [ruby/prism] Add a reflection API for determining the fields of a node
https://github.com/ruby/prism/commit/f3f9950a74
2024-04-17 13:54:29 -04:00
Benoit Daloze
6075f67ae6 [ruby/prism] Tweak wording for Prism::BACKEND
* TruffleRuby does support C extensions but FFI is faster there.

https://github.com/ruby/prism/commit/d211a87691
2024-02-29 19:24:04 +00:00
Kevin Newton
cd8d1018bb [ruby/prism] Resync RBI and test it in CI
https://github.com/ruby/prism/commit/4ef4032774
2024-02-29 16:29:16 +00:00
Gopal Patel
dfee033746 [ruby/prism] Replace awkward code changes with steep:ignore
Also remove RBS for currently ignored files. Will follow-up when those
check fully in later PRs.

https://github.com/ruby/prism/commit/2cae58f86d
2024-02-24 03:39:28 +00:00
Gopal Patel
bfbaafbd9c [ruby/prism] Make rake check_annotations verify public RBS
https://github.com/ruby/prism/commit/db78eef6a2
2024-02-24 03:39:26 +00:00
Noah Gibbs
16b39072a5 [ruby/prism] Move Prism::RipperCompat to Prism::Translation::Ripper
https://github.com/ruby/prism/commit/c0331abe4f
2024-02-12 15:57:57 +00:00
Kevin Newton
f12ebe1188 [ruby/prism] Add parser translation
https://github.com/ruby/prism/commit/8cdec8070c
2024-01-27 19:59:42 +00:00
Kevin Newton
10bc0bd4ab [ruby/prism] Remove warnings check from parse_success? method
https://github.com/ruby/prism/commit/e30a241fb3
2023-12-07 14:39:11 +00:00
Kevin Newton
d35aa58b2f [ruby/prism] Fix up docs for lex_compat
https://github.com/ruby/prism/commit/9131e84060
2023-12-04 17:15:19 +00:00
Kevin Newton
492c82cb41 [ruby/prism] Prism.parse_success?(source)
A lot of tools use Ripper/RubyVM::AbstractSyntaxTree to determine
if a source is valid. These tools both create an AST instead of
providing an API that will return a boolean only.

This new API only creates the C structs, but doesn't bother
reifying them into Ruby/the serialization API. Instead it only
returns true/false, which is significantly more efficient.

https://github.com/ruby/prism/commit/7014740118
2023-12-01 20:53:34 +00:00
Kevin Newton
94f82a65f7 [ruby/prism] Add the ability to convert nodes to dot
https://github.com/ruby/prism/commit/3e4b4fb947
2023-11-12 02:53:33 +00:00
Kevin Newton
05f5c545d2
[ruby/prism] Wire up options through the FFI API
https://github.com/ruby/prism/commit/f0aa8ad93b
2023-11-03 10:13:49 -04:00
Kevin Newton
f12617ec98 [ruby/prism] Fix up Prism and Debug docs
https://github.com/ruby/prism/commit/c2b7724d91
2023-11-01 13:10:29 -04:00
Kevin Newton
4f73a7c2f7 Sync to prism rename commits 2023-09-27 13:57:38 -04:00
Kevin Newton
8ab56869a6 Rename YARP filepaths to prism filepaths 2023-09-27 13:57:38 -04:00