<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/test/prism/snapshots/lambda.txt, 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] Move flag position consistently to front</title>
<updated>2023-12-06T20:50:02+00:00</updated>
<author>
<name>Kevin Newton</name>
<email>kddnewton@gmail.com</email>
</author>
<published>2023-12-06T20:32:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=fe6ee5e92148755b75ffd00ab29611b59a416d5a'/>
<id>fe6ee5e92148755b75ffd00ab29611b59a416d5a</id>
<content type='text'>
https://github.com/ruby/prism/commit/6e69a81737
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/ruby/prism/commit/6e69a81737
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/prism] Add locals_body_index to DefNode, BlockNode, LambdaNode</title>
<updated>2023-12-06T14:55:48+00:00</updated>
<author>
<name>Jemma Issroff</name>
<email>jemmaissroff@gmail.com</email>
</author>
<published>2023-12-04T21:40:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=018dbf18d50b34a3ea564bfe0264a423de4b33bb'/>
<id>018dbf18d50b34a3ea564bfe0264a423de4b33bb</id>
<content type='text'>
The locals_body_index gives the index in the locals array where
the locals from the body start. This allows compilers to easily
index past the parameters in the locals array.

https://github.com/ruby/prism/commit/5d4627b890
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The locals_body_index gives the index in the locals array where
the locals from the body start. This allows compilers to easily
index past the parameters in the locals array.

https://github.com/ruby/prism/commit/5d4627b890
</pre>
</div>
</content>
</entry>
<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] Add numbered_parameters field to BlockNode and LambdaNode</title>
<updated>2023-11-28T21:08:46+00:00</updated>
<author>
<name>Jemma Issroff</name>
<email>jemmaissroff@gmail.com</email>
</author>
<published>2023-11-28T20:42:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=04cbcd37b1c18c4db4b9df8d80abb4efec11755c'/>
<id>04cbcd37b1c18c4db4b9df8d80abb4efec11755c</id>
<content type='text'>
We are aware at parse time how many numbered parameters we have
on a BlockNode or LambdaNode, but prior to this commit, did not
store that information anywhere in its own right.

The numbered parameters were stored as locals, but this does not
distinguish them from other locals that have been set, for example
in `a { b = 1; _1 }` there is nothing on the AST that distinguishes
b from _1.

Consumers such as the compiler need to know information about how
many numbered parameters exist to set up their own tables around
parameters. Since we have this information at parse time, we should
compute it here, instead of deferring the work later on.

https://github.com/ruby/prism/commit/bf4a1e124d
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We are aware at parse time how many numbered parameters we have
on a BlockNode or LambdaNode, but prior to this commit, did not
store that information anywhere in its own right.

The numbered parameters were stored as locals, but this does not
distinguish them from other locals that have been set, for example
in `a { b = 1; _1 }` there is nothing on the AST that distinguishes
b from _1.

Consumers such as the compiler need to know information about how
many numbered parameters exist to set up their own tables around
parameters. Since we have this information at parse time, we should
compute it here, instead of deferring the work later on.

https://github.com/ruby/prism/commit/bf4a1e124d
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/prism] Move CallNode#name field between receiver and arguments</title>
<updated>2023-11-22T12:15:20+00:00</updated>
<author>
<name>Benoit Daloze</name>
<email>eregontp@gmail.com</email>
</author>
<published>2023-11-20T16:43:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=018e6abf8509c7de2a8efb49741d594b15f49fbf'/>
<id>018e6abf8509c7de2a8efb49741d594b15f49fbf</id>
<content type='text'>
* The same order as in source code.
* CallOrWriteNode, CallOperatorWriteNode, CallAndWriteNode already have
  the correct order so it was also inconsistent with them.

https://github.com/ruby/prism/commit/4434e4bc22
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* The same order as in source code.
* CallOrWriteNode, CallOperatorWriteNode, CallAndWriteNode already have
  the correct order so it was also inconsistent with them.

https://github.com/ruby/prism/commit/4434e4bc22
</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>[ruby/prism] Add KeywordSplat flag to ArgumentsNode</title>
<updated>2023-10-26T18:47:50+00:00</updated>
<author>
<name>Jemma Issroff</name>
<email>jemmaissroff@gmail.com</email>
</author>
<published>2023-10-26T18:02:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=7e4ee92de225473d3ad3ac8d0a27bd02a2905738'/>
<id>7e4ee92de225473d3ad3ac8d0a27bd02a2905738</id>
<content type='text'>
Method calls with keyword splat args compile differently than
without since they merge the keyword arg hash with the keyword splat
hash. We know this information at parse time, so can set a flag
which the compiler can use.

https://github.com/ruby/prism/commit/e5f8a9a3cd
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Method calls with keyword splat args compile differently than
without since they merge the keyword arg hash with the keyword splat
hash. We know this information at parse time, so can set a flag
which the compiler can use.

https://github.com/ruby/prism/commit/e5f8a9a3cd
</pre>
</div>
</content>
</entry>
<entry>
<title>Sync with prism CallNode#name changes</title>
<updated>2023-10-02T13:18:56+00:00</updated>
<author>
<name>Benoit Daloze</name>
<email>eregontp@gmail.com</email>
</author>
<published>2023-10-01T10:34:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=87dad067e03f98df7a64d4ce555e1213847e8dbb'/>
<id>87dad067e03f98df7a64d4ce555e1213847e8dbb</id>
<content type='text'>
* https://github.com/ruby/prism/pull/1533
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* https://github.com/ruby/prism/pull/1533
</pre>
</div>
</content>
</entry>
<entry>
<title>Rename YARP filepaths to prism filepaths</title>
<updated>2023-09-27T17:57:38+00:00</updated>
<author>
<name>Kevin Newton</name>
<email>kddnewton@gmail.com</email>
</author>
<published>2023-09-27T16:22:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=8ab56869a64fdccc094f4a83c6367fb23b72d38b'/>
<id>8ab56869a64fdccc094f4a83c6367fb23b72d38b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
