<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/lib/prism/debug.rb, branch v3_3_11</title>
<subtitle>The Ruby Programming Language</subtitle>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/'/>
<entry>
<title>[ruby/prism] Change numbered parameters</title>
<updated>2023-12-01T17:03:09+00:00</updated>
<author>
<name>Kevin Newton</name>
<email>kddnewton@gmail.com</email>
</author>
<published>2023-12-01T01:47:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=cdb74d74afb87a0d7048a53aaf12d32516033a3c'/>
<id>cdb74d74afb87a0d7048a53aaf12d32516033a3c</id>
<content type='text'>
Previously numbered parameters were a field on blocks and lambdas
that indicated the maximum number of numbered parameters in either
the block or lambda, respectively. However they also had a
parameters field that would always be nil in these cases.

This changes it so that we introduce a NumberedParametersNode that
goes in place of parameters, which has a single uint8_t maximum
field on it. That field contains the maximum numbered parameter in
either the block or lambda.

As a part of the PR, I'm introducing a new UInt8Field type that
can be used on nodes, which is just to make it a little more
explicit what the maximum values can be (the maximum is actually 9,
since it only goes up to _9). Plus we can do a couple of nice
things in serialization like just read a single byte.

https://github.com/ruby/prism/commit/2d87303903
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously numbered parameters were a field on blocks and lambdas
that indicated the maximum number of numbered parameters in either
the block or lambda, respectively. However they also had a
parameters field that would always be nil in these cases.

This changes it so that we introduce a NumberedParametersNode that
goes in place of parameters, which has a single uint8_t maximum
field on it. That field contains the maximum numbered parameter in
either the block or lambda.

As a part of the PR, I'm introducing a new UInt8Field type that
can be used on nodes, which is just to make it a little more
explicit what the maximum values can be (the maximum is actually 9,
since it only goes up to _9). Plus we can do a couple of nice
things in serialization like just read a single byte.

https://github.com/ruby/prism/commit/2d87303903
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/prism] Implicit rest nodes</title>
<updated>2023-11-28T22:33:50+00:00</updated>
<author>
<name>Kevin Newton</name>
<email>kddnewton@gmail.com</email>
</author>
<published>2023-11-28T20:49:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=49383901772f874569bbdc992867bd02b4b597a8'/>
<id>49383901772f874569bbdc992867bd02b4b597a8</id>
<content type='text'>
Fundamentally, `foo { |bar,| }` is different from `foo { |bar, *| }`
because of arity checks. This PR introduces a new node to handle
that, `ImplicitRestNode`, which goes in the `rest` slot of parameter
nodes instead of `RestParameterNode` instances.

This is also used in a couple of other places, namely:

* pattern matching: `foo in [bar,]`
* multi target: `for foo, in bar do end`
* multi write: `foo, = bar`

Now the only splat nodes with a `NULL` value are when you're
forwarding, as in: `def foo(*) = bar(*)`.

https://github.com/ruby/prism/commit/dba2a3b652
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fundamentally, `foo { |bar,| }` is different from `foo { |bar, *| }`
because of arity checks. This PR introduces a new node to handle
that, `ImplicitRestNode`, which goes in the `rest` slot of parameter
nodes instead of `RestParameterNode` instances.

This is also used in a couple of other places, namely:

* pattern matching: `foo in [bar,]`
* multi target: `for foo, in bar do end`
* multi write: `foo, = bar`

Now the only splat nodes with a `NULL` value are when you're
forwarding, as in: `def foo(*) = bar(*)`.

https://github.com/ruby/prism/commit/dba2a3b652
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/prism] Remove extra locals added by ...</title>
<updated>2023-11-10T21:50:12+00:00</updated>
<author>
<name>Kevin Newton</name>
<email>kddnewton@gmail.com</email>
</author>
<published>2023-11-10T05:09:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=85db7baccb946c6bb463166acdd0fd7b12568d35'/>
<id>85db7baccb946c6bb463166acdd0fd7b12568d35</id>
<content type='text'>
https://github.com/ruby/prism/commit/b7850f2d30
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/ruby/prism/commit/b7850f2d30
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/prism] Wire up options through the FFI API</title>
<updated>2023-11-03T14:13:49+00:00</updated>
<author>
<name>Kevin Newton</name>
<email>kddnewton@gmail.com</email>
</author>
<published>2023-11-02T18:01:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=05f5c545d232554b6ffb183d6948ad37f46df53b'/>
<id>05f5c545d232554b6ffb183d6948ad37f46df53b</id>
<content type='text'>
https://github.com/ruby/prism/commit/f0aa8ad93b
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/ruby/prism/commit/f0aa8ad93b
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/prism] Fix up Prism and Debug docs</title>
<updated>2023-11-01T17:10:29+00:00</updated>
<author>
<name>Kevin Newton</name>
<email>kddnewton@gmail.com</email>
</author>
<published>2023-10-30T17:49:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=f12617ec9832ff8979cd86eb717fa9ee5820123e'/>
<id>f12617ec9832ff8979cd86eb717fa9ee5820123e</id>
<content type='text'>
https://github.com/ruby/prism/commit/c2b7724d91
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/ruby/prism/commit/c2b7724d91
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/prism] Flip incorrect names of OptionalKeywordParameterNode and RequiredKeywordParameterNode</title>
<updated>2023-11-01T14:40:45+00:00</updated>
<author>
<name>Jemma Issroff</name>
<email>jemmaissroff@gmail.com</email>
</author>
<published>2023-11-01T12:36:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=e80ca70b9bd1ccfa319790475dc9c0dd125f4f0d'/>
<id>e80ca70b9bd1ccfa319790475dc9c0dd125f4f0d</id>
<content type='text'>
https://github.com/ruby/prism/commit/c31f61e898
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/ruby/prism/commit/c31f61e898
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/prism] Split KeywordParameterNode into Optional and Required</title>
<updated>2023-11-01T14:40:44+00:00</updated>
<author>
<name>Jemma Issroff</name>
<email>jemmaissroff@gmail.com</email>
</author>
<published>2023-10-31T20:00:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=d0625099e0f691f44fb4c796d8d497d818bf7c8e'/>
<id>d0625099e0f691f44fb4c796d8d497d818bf7c8e</id>
<content type='text'>
Prior to this commit, KeywordParameterNode included both optional
and required keywords. With this commit, it is split in two, with
`OptionalKeywordParameterNode`s no longer having a value field.

https://github.com/ruby/prism/commit/89084d9af4
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Prior to this commit, KeywordParameterNode included both optional
and required keywords. With this commit, it is split in two, with
`OptionalKeywordParameterNode`s no longer having a value field.

https://github.com/ruby/prism/commit/89084d9af4
</pre>
</div>
</content>
</entry>
<entry>
<title>[prism] handle locals consistently</title>
<updated>2023-10-26T19:08:31+00:00</updated>
<author>
<name>Kevin Newton</name>
<email>kddnewton@gmail.com</email>
</author>
<published>2023-10-26T15:37:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=6241cfab74ad8a996875dc79a9b0355cf67853aa'/>
<id>6241cfab74ad8a996875dc79a9b0355cf67853aa</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/prism] Rename to lefts/rights</title>
<updated>2023-10-26T18:59:13+00:00</updated>
<author>
<name>Kevin Newton</name>
<email>kddnewton@gmail.com</email>
</author>
<published>2023-10-26T18:56:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=018f0a9c5fda185f91edf3da797b9e1b1df14706'/>
<id>018f0a9c5fda185f91edf3da797b9e1b1df14706</id>
<content type='text'>
https://github.com/ruby/prism/commit/e6deed05a5
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/ruby/prism/commit/e6deed05a5
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/prism] Remove RequiredDestructuredParameterNode in favor of MultiTargetNode</title>
<updated>2023-10-26T18:59:07+00:00</updated>
<author>
<name>Kevin Newton</name>
<email>kddnewton@gmail.com</email>
</author>
<published>2023-10-23T17:43:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=922f48f08158332c8cf94ad37f9e307f80200bf9'/>
<id>922f48f08158332c8cf94ad37f9e307f80200bf9</id>
<content type='text'>
https://github.com/ruby/prism/commit/6d1858192e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/ruby/prism/commit/6d1858192e
</pre>
</div>
</content>
</entry>
</feed>
