<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/test/ripper/test_ripper.rb, 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) 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>Extract the wrapped value when yydebug [Bug #18075]</title>
<updated>2021-08-15T02:40:06+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2021-08-14T16:33:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=2aa6826e81ec880f5e98fa995e44fae0819be95d'/>
<id>2aa6826e81ec880f5e98fa995e44fae0819be95d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>require 'stringio'</title>
<updated>2019-05-09T00:23:44+00:00</updated>
<author>
<name>NARUSE, Yui</name>
<email>naruse@airemix.jp</email>
</author>
<published>2019-05-09T00:23:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=f1486fea46cf36f1c936f5074a7251f29f9c1c5d'/>
<id>f1486fea46cf36f1c936f5074a7251f29f9c1c5d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>parse.y: fix segv with Ripper#yydebug</title>
<updated>2019-03-19T02:35:50+00:00</updated>
<author>
<name>nobu</name>
<email>nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2019-03-19T02:35:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=e39f7e64b73f0506def7adc88226d6821608da54'/>
<id>e39f7e64b73f0506def7adc88226d6821608da54</id>
<content type='text'>
* parse.y (parser_token_value_print): in ripper, ID values are
  wrapped in NODE_RIPPER at set_yylval_name(), so print the Symbol
  wrapped together.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67305 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* parse.y (parser_token_value_print): in ripper, ID values are
  wrapped in NODE_RIPPER at set_yylval_name(), so print the Symbol
  wrapped together.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67305 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>ripper: add states of scanner</title>
<updated>2017-09-14T10:53:47+00:00</updated>
<author>
<name>nobu</name>
<email>nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2017-09-14T10:53:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=7df1e45bb6b4326da5c799dcf58d38f0a14362af'/>
<id>7df1e45bb6b4326da5c799dcf58d38f0a14362af</id>
<content type='text'>
* parse.y (ripper_state): add states of scanner to tokens from
  Ripper.lex and Ripper::Filter#on_*.  based on the patch by
  aycabta (Code Ahss) at [ruby-core:81789].  [Feature #13686]

* ext/ripper/tools/preproc.rb (prelude, usercode): generate EXPR_*
  constants from enums.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59896 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* parse.y (ripper_state): add states of scanner to tokens from
  Ripper.lex and Ripper::Filter#on_*.  based on the patch by
  aycabta (Code Ahss) at [ruby-core:81789].  [Feature #13686]

* ext/ripper/tools/preproc.rb (prelude, usercode): generate EXPR_*
  constants from enums.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59896 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>{ext,test}/ripper: Specify frozen_string_literal: true.</title>
<updated>2017-02-05T07:54:32+00:00</updated>
<author>
<name>kazu</name>
<email>kazu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2017-02-05T07:54:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=e3300dce829955390b5099c013ab4452a74ffd20'/>
<id>e3300dce829955390b5099c013ab4452a74ffd20</id>
<content type='text'>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57538 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57538 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>parse.y: ripper generic input</title>
<updated>2016-12-08T00:45:13+00:00</updated>
<author>
<name>nobu</name>
<email>nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2016-12-08T00:45:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=510f0ec86912e31babaadf1f66bf2a82351c1359'/>
<id>510f0ec86912e31babaadf1f66bf2a82351c1359</id>
<content type='text'>
* parse.y (ripper_initialize): allow generic input as source, if
  it has #gets method.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57022 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* parse.y (ripper_initialize): allow generic input as source, if
  it has #gets method.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57022 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>* test/ripper/test_ripper.rb: fix squiggly heredoc identifier</title>
<updated>2016-09-27T12:13:52+00:00</updated>
<author>
<name>kazu</name>
<email>kazu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2016-09-27T12:13:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=078dcd267da2df887208294ddd785cd65141af27'/>
<id>078dcd267da2df887208294ddd785cd65141af27</id>
<content type='text'>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56270 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56270 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>* test/ripper/test_ripper.rb: add a test for dedent_string.</title>
<updated>2016-09-26T21:12:12+00:00</updated>
<author>
<name>headius</name>
<email>headius@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2016-09-26T21:12:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=fbaa823344c9ced2991d35fa9bedc3b5844052c5'/>
<id>fbaa823344c9ced2991d35fa9bedc3b5844052c5</id>
<content type='text'>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56260 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56260 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
</feed>
