<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/parse.y, branch v3_2_11</title>
<subtitle>The Ruby Programming Language</subtitle>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/'/>
<entry>
<title>merge revision(s) b15e88e0fcccb03b9cc5e4c1478ec9b10e26c961: [Backport #19619]</title>
<updated>2024-07-21T03:25:04+00:00</updated>
<author>
<name>nagachika</name>
<email>nagachika@ruby-lang.org</email>
</author>
<published>2024-07-21T03:25:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=483ad38c6968feb1990f36d48d14fd55988d2150'/>
<id>483ad38c6968feb1990f36d48d14fd55988d2150</id>
<content type='text'>
	[Bug #19619] Preserve numbered parameters context

	Preserve numbered parameters context across method definitions
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	[Bug #19619] Preserve numbered parameters context

	Preserve numbered parameters context across method definitions
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) 05553cf22d43dd78b8f30cc4591230b5c000c538: [Backport #20517]</title>
<updated>2024-07-15T13:01:57+00:00</updated>
<author>
<name>nagachika</name>
<email>nagachika@ruby-lang.org</email>
</author>
<published>2024-07-15T13:01:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=96a82418b2efe98a92f239a9a1cbf30dd396d335'/>
<id>96a82418b2efe98a92f239a9a1cbf30dd396d335</id>
<content type='text'>
	[Bug #20517] Make a multibyte character one token at meta escape
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	[Bug #20517] Make a multibyte character one token at meta escape
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) d503e1b95a40e45d7767e0175de60092de4ba54e: [Backport #20030]</title>
<updated>2024-07-15T12:51:03+00:00</updated>
<author>
<name>nagachika</name>
<email>nagachika@ruby-lang.org</email>
</author>
<published>2024-07-15T12:51:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=a804d5514c7c0608b9fb52426ec3ec738420ad29'/>
<id>a804d5514c7c0608b9fb52426ec3ec738420ad29</id>
<content type='text'>
	[Bug #20030] dispatch invalid escaped character without ignoring it
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	[Bug #20030] dispatch invalid escaped character without ignoring it
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "merge revision(s) c8d162c889008028b148437d02f36f4edaa749fd: [Backport #19973]"</title>
<updated>2024-02-25T05:03:05+00:00</updated>
<author>
<name>nagachika</name>
<email>nagachika@ruby-lang.org</email>
</author>
<published>2024-02-25T05:03:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=1b9ff146e38c348519434754e0466352b8b25c50'/>
<id>1b9ff146e38c348519434754e0466352b8b25c50</id>
<content type='text'>
This reverts commit 24dd529750c08b5603fb418a4f34998b9bf6c8f9.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 24dd529750c08b5603fb418a4f34998b9bf6c8f9.
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) c8d162c889008028b148437d02f36f4edaa749fd: [Backport #19973]</title>
<updated>2024-02-25T02:52:05+00:00</updated>
<author>
<name>nagachika</name>
<email>nagachika@ruby-lang.org</email>
</author>
<published>2024-02-25T02:52:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=24dd529750c08b5603fb418a4f34998b9bf6c8f9'/>
<id>24dd529750c08b5603fb418a4f34998b9bf6c8f9</id>
<content type='text'>
	[Bug #19973] Warn duplicated keyword arguments after keyword splat

	---
	 parse.y                  | 11 +++++++----
	 test/ruby/test_syntax.rb |  6 ++++++
	 2 files changed, 13 insertions(+), 4 deletions(-)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	[Bug #19973] Warn duplicated keyword arguments after keyword splat

	---
	 parse.y                  | 11 +++++++----
	 test/ruby/test_syntax.rb |  6 ++++++
	 2 files changed, 13 insertions(+), 4 deletions(-)
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) 17b0643392749f45b7aacb64fc1c1bd704d42b4c: [Backport #19924]</title>
<updated>2023-11-10T02:41:57+00:00</updated>
<author>
<name>nagachika</name>
<email>nagachika@ruby-lang.org</email>
</author>
<published>2023-11-10T02:41:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=482e1f573ee45ef562cc6d218ba26d44660f8e0a'/>
<id>482e1f573ee45ef562cc6d218ba26d44660f8e0a</id>
<content type='text'>
	[Bug #19924] Source code should be unsigned char stream

	Use `peekc` or `nextc` to fetch the next character, instead of reading
	from `lex.pcur` directly, for compilers that plain char is signed.
	---
	 parse.y                 | 10 +++++-----
	 test/ruby/test_parse.rb |  2 ++
	 2 files changed, 7 insertions(+), 5 deletions(-)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	[Bug #19924] Source code should be unsigned char stream

	Use `peekc` or `nextc` to fetch the next character, instead of reading
	from `lex.pcur` directly, for compilers that plain char is signed.
	---
	 parse.y                 | 10 +++++-----
	 test/ruby/test_parse.rb |  2 ++
	 2 files changed, 7 insertions(+), 5 deletions(-)
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) 382678d4112f4afc6272244c22924d2b004274b1: [Backport #19788]</title>
<updated>2023-09-09T10:33:29+00:00</updated>
<author>
<name>nagachika</name>
<email>nagachika@ruby-lang.org</email>
</author>
<published>2023-09-09T10:33:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=bb877e5b4fe81965af60a0d86daeb8ed477e8e87'/>
<id>bb877e5b4fe81965af60a0d86daeb8ed477e8e87</id>
<content type='text'>
	[Bug #19788] Use the result of `tCOLON2` event

	---
	 parse.y                            | 16 ++++++++--------
	 test/ripper/test_parser_events.rb  | 17 +++++++++++++++++
	 test/ripper/test_scanner_events.rb |  5 +++++
	 3 files changed, 30 insertions(+), 8 deletions(-)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	[Bug #19788] Use the result of `tCOLON2` event

	---
	 parse.y                            | 16 ++++++++--------
	 test/ripper/test_parser_events.rb  | 17 +++++++++++++++++
	 test/ripper/test_scanner_events.rb |  5 +++++
	 3 files changed, 30 insertions(+), 8 deletions(-)
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) 0b8f15575a440f85ac686f5b0eae8f8b7c2b72e7: [Backport #19836]</title>
<updated>2023-08-13T04:35:25+00:00</updated>
<author>
<name>nagachika</name>
<email>nagachika@ruby-lang.org</email>
</author>
<published>2023-08-13T04:35:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=0c908fa681271f13750aa64420203f1a58fa03fe'/>
<id>0c908fa681271f13750aa64420203f1a58fa03fe</id>
<content type='text'>
	Fix memory leak for incomplete lambdas

	[Bug #19836]

	The parser does not free the chain of `struct vtable`, which causes
	memory leaks.

	The following script reproduces this issue:

	```
	10.times do
	  100_000.times do
	    Ripper.parse("-&gt; {")
	  end

	  puts `ps -o rss= -p #{$$}`
	end
	```
	---
	 parse.y                    | 24 ++++++++++++++----------
	 test/ripper/test_ripper.rb |  7 +++++++
	 2 files changed, 21 insertions(+), 10 deletions(-)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	Fix memory leak for incomplete lambdas

	[Bug #19836]

	The parser does not free the chain of `struct vtable`, which causes
	memory leaks.

	The following script reproduces this issue:

	```
	10.times do
	  100_000.times do
	    Ripper.parse("-&gt; {")
	  end

	  puts `ps -o rss= -p #{$$}`
	end
	```
	---
	 parse.y                    | 24 ++++++++++++++----------
	 test/ripper/test_ripper.rb |  7 +++++++
	 2 files changed, 21 insertions(+), 10 deletions(-)
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) 5bc8fceca8d47ed1ef9c603c6531a408de36b60c: [Backport #19835]</title>
<updated>2023-08-13T04:21:30+00:00</updated>
<author>
<name>nagachika</name>
<email>nagachika@ruby-lang.org</email>
</author>
<published>2023-08-13T04:21:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=6898389a0f640c4155a7073579f43d1e16893698'/>
<id>6898389a0f640c4155a7073579f43d1e16893698</id>
<content type='text'>
	Fix memory leak in parser for incomplete tokens

	[Bug #19835]

	The parser does not free the `tbl` of the `struct vtable` when there are
	leftover `lvtbl` in the parser. This causes a memory leak.

	The following script reproduces this issue:

	```
	10.times do
	  100_000.times do
	    Ripper.parse("class Foo")
	  end

	  puts `ps -o rss= -p #{$$}`
	end
	```
	---
	 parse.y                    | 42 ++++++++++++++++++++++++++++--------------
	 test/ripper/test_ripper.rb |  7 +++++++
	 2 files changed, 35 insertions(+), 14 deletions(-)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	Fix memory leak in parser for incomplete tokens

	[Bug #19835]

	The parser does not free the `tbl` of the `struct vtable` when there are
	leftover `lvtbl` in the parser. This causes a memory leak.

	The following script reproduces this issue:

	```
	10.times do
	  100_000.times do
	    Ripper.parse("class Foo")
	  end

	  puts `ps -o rss= -p #{$$}`
	end
	```
	---
	 parse.y                    | 42 ++++++++++++++++++++++++++++--------------
	 test/ripper/test_ripper.rb |  7 +++++++
	 2 files changed, 35 insertions(+), 14 deletions(-)
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) 91c004885fc75a93cadf0094fa86ec3bd0ec25f5: [Backport #19025]</title>
<updated>2023-07-22T02:55:49+00:00</updated>
<author>
<name>nagachika</name>
<email>nagachika@ruby-lang.org</email>
</author>
<published>2023-07-22T02:55:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=465eb7418d7ed91f5f0c75da77765c7f5ef8354f'/>
<id>465eb7418d7ed91f5f0c75da77765c7f5ef8354f</id>
<content type='text'>
	[Bug #19025] Numbered parameter names are always local variables

	---
	 parse.y                  | 2 +-
	 test/ruby/test_syntax.rb | 1 +
	 2 files changed, 2 insertions(+), 1 deletion(-)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	[Bug #19025] Numbered parameter names are always local variables

	---
	 parse.y                  | 2 +-
	 test/ruby/test_syntax.rb | 1 +
	 2 files changed, 2 insertions(+), 1 deletion(-)
</pre>
</div>
</content>
</entry>
</feed>
