<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/prism, branch v3_4_9</title>
<subtitle>The Ruby Programming Language</subtitle>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/'/>
<entry>
<title>Bump Prism to v1.5.2</title>
<updated>2025-12-08T23:30:35+00:00</updated>
<author>
<name>Takashi Kokubun</name>
<email>takashikkbn@gmail.com</email>
</author>
<published>2025-12-08T22:56:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=d282e76fb6c9f56ac44b3abfc8a3fc9f10edd6f0'/>
<id>d282e76fb6c9f56ac44b3abfc8a3fc9f10edd6f0</id>
<content type='text'>
[Backport #21187]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[Backport #21187]
</pre>
</div>
</content>
</entry>
<entry>
<title>Bump Prism version to 1.5.1 (#14549)</title>
<updated>2025-09-14T03:53:54+00:00</updated>
<author>
<name>Takashi Kokubun</name>
<email>takashi.kokubun@shopify.com</email>
</author>
<published>2025-09-14T03:53:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=9c65da014548a141137e7e692699b129e3bc655f'/>
<id>9c65da014548a141137e7e692699b129e3bc655f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[ruby/prism] Clear flags on interpolated strings"</title>
<updated>2025-09-12T21:30:16+00:00</updated>
<author>
<name>Hiroshi SHIBATA</name>
<email>hsbt@ruby-lang.org</email>
</author>
<published>2025-07-22T00:06:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=cdd1de636bfa7790c72949d01e4a083845781d87'/>
<id>cdd1de636bfa7790c72949d01e4a083845781d87</id>
<content type='text'>
This reverts commit a495e6a44ce8cff17461b250e32ab63e409a642d.

This break extension builds:

```
/Users/hsbt/Documents/github.com/ruby/ruby/rbconfig.rb:321:in 'String#replace': can't modify frozen String: "$(SDKROOT)$(prefix)/include" (FrozenError)
        from /Users/hsbt/Documents/github.com/ruby/ruby/rbconfig.rb:321:in 'RbConfig.expand'
        from /Users/hsbt/Documents/github.com/ruby/ruby/rbconfig.rb:314:in 'block in RbConfig.expand'
        from /Users/hsbt/Documents/github.com/ruby/ruby/rbconfig.rb:307:in 'String#gsub'
        from /Users/hsbt/Documents/github.com/ruby/ruby/rbconfig.rb:307:in 'RbConfig.expand'
        from /Users/hsbt/Documents/github.com/ruby/ruby/rbconfig.rb:314:in 'block in RbConfig.expand'
        from /Users/hsbt/Documents/github.com/ruby/ruby/rbconfig.rb:307:in 'String#gsub'
        from /Users/hsbt/Documents/github.com/ruby/ruby/rbconfig.rb:307:in 'RbConfig.expand'
        from /Users/hsbt/Documents/github.com/ruby/ruby/rbconfig.rb:314:in 'block in RbConfig.expand'
        from /Users/hsbt/Documents/github.com/ruby/ruby/rbconfig.rb:307:in 'String#gsub'
        from /Users/hsbt/Documents/github.com/ruby/ruby/rbconfig.rb:307:in 'RbConfig.expand'
        from /Users/hsbt/Documents/github.com/ruby/ruby/rbconfig.rb:325:in 'block in &lt;module:RbConfig&gt;'
        from /Users/hsbt/Documents/github.com/ruby/ruby/rbconfig.rb:324:in 'Hash#each_value'
        from /Users/hsbt/Documents/github.com/ruby/ruby/rbconfig.rb:324:in '&lt;module:RbConfig&gt;'
        from /Users/hsbt/Documents/github.com/ruby/ruby/rbconfig.rb:11:in '&lt;top (required)&gt;'
        from ./ext/extmk.rb:42:in 'Kernel#require'
        from ./ext/extmk.rb:42:in '&lt;main&gt;'
make[1]: *** [ext/configure-ext.mk:70: ext/json/exts.mk] Error 1
```
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit a495e6a44ce8cff17461b250e32ab63e409a642d.

This break extension builds:

```
/Users/hsbt/Documents/github.com/ruby/ruby/rbconfig.rb:321:in 'String#replace': can't modify frozen String: "$(SDKROOT)$(prefix)/include" (FrozenError)
        from /Users/hsbt/Documents/github.com/ruby/ruby/rbconfig.rb:321:in 'RbConfig.expand'
        from /Users/hsbt/Documents/github.com/ruby/ruby/rbconfig.rb:314:in 'block in RbConfig.expand'
        from /Users/hsbt/Documents/github.com/ruby/ruby/rbconfig.rb:307:in 'String#gsub'
        from /Users/hsbt/Documents/github.com/ruby/ruby/rbconfig.rb:307:in 'RbConfig.expand'
        from /Users/hsbt/Documents/github.com/ruby/ruby/rbconfig.rb:314:in 'block in RbConfig.expand'
        from /Users/hsbt/Documents/github.com/ruby/ruby/rbconfig.rb:307:in 'String#gsub'
        from /Users/hsbt/Documents/github.com/ruby/ruby/rbconfig.rb:307:in 'RbConfig.expand'
        from /Users/hsbt/Documents/github.com/ruby/ruby/rbconfig.rb:314:in 'block in RbConfig.expand'
        from /Users/hsbt/Documents/github.com/ruby/ruby/rbconfig.rb:307:in 'String#gsub'
        from /Users/hsbt/Documents/github.com/ruby/ruby/rbconfig.rb:307:in 'RbConfig.expand'
        from /Users/hsbt/Documents/github.com/ruby/ruby/rbconfig.rb:325:in 'block in &lt;module:RbConfig&gt;'
        from /Users/hsbt/Documents/github.com/ruby/ruby/rbconfig.rb:324:in 'Hash#each_value'
        from /Users/hsbt/Documents/github.com/ruby/ruby/rbconfig.rb:324:in '&lt;module:RbConfig&gt;'
        from /Users/hsbt/Documents/github.com/ruby/ruby/rbconfig.rb:11:in '&lt;top (required)&gt;'
        from ./ext/extmk.rb:42:in 'Kernel#require'
        from ./ext/extmk.rb:42:in '&lt;main&gt;'
make[1]: *** [ext/configure-ext.mk:70: ext/json/exts.mk] Error 1
```
</pre>
</div>
</content>
</entry>
<entry>
<title>Bump Prism version to 1.5.0</title>
<updated>2025-09-12T21:30:16+00:00</updated>
<author>
<name>Takashi Kokubun</name>
<email>takashikkbn@gmail.com</email>
</author>
<published>2025-09-12T20:09:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=52b3f006cb31672c45b26f6a44a609fd1b8e2ee5'/>
<id>52b3f006cb31672c45b26f6a44a609fd1b8e2ee5</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>When reading from stdin, put a wrapper around the IO object</title>
<updated>2025-08-27T16:07:32+00:00</updated>
<author>
<name>Aaron Patterson</name>
<email>tenderlove@ruby-lang.org</email>
</author>
<published>2025-07-17T22:20:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=1f421d092bb8c290df5cfc9e95a01e279ebadc42'/>
<id>1f421d092bb8c290df5cfc9e95a01e279ebadc42</id>
<content type='text'>
The purpose of this commit is to fix Bug #21188.  We need to detect when
stdin has run in to an EOF case.  Unfortunately we can't _call_ the eof
function on IO because it will block.

Here is a short script to demonstrate the issue:

```ruby
x = STDIN.gets
puts x
puts x.eof?
```

If you run the script, then type some characters (but _NOT_ a newline),
then hit Ctrl-D twice, it will print the input string.  Unfortunately,
calling `eof?` will try to read from STDIN again causing us to need a
3rd Ctrl-D to exit the program.

Before introducing the EOF callback to Prism, the input loop looked
kind of like this:

```ruby
loop do
  str = STDIN.gets
  process(str)

  if str.nil?
    p :DONE
  end
end
```

Which required 3 Ctrl-D to exit.  If we naively changed it to something
like this:

```ruby
loop do
  str = STDIN.gets
  process(str)

  if STDIN.eof?
    p :DONE
  end
end
```

It would still require 3 Ctrl-D because `eof?` would block.  In this
patch, we're wrapping the IO object, checking the buffer for a newline
and length, and then using that to simulate a non-blocking eof? method.

This commit wraps STDIN and emulates a non-blocking `eof` function.

[Backport #21188]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The purpose of this commit is to fix Bug #21188.  We need to detect when
stdin has run in to an EOF case.  Unfortunately we can't _call_ the eof
function on IO because it will block.

Here is a short script to demonstrate the issue:

```ruby
x = STDIN.gets
puts x
puts x.eof?
```

If you run the script, then type some characters (but _NOT_ a newline),
then hit Ctrl-D twice, it will print the input string.  Unfortunately,
calling `eof?` will try to read from STDIN again causing us to need a
3rd Ctrl-D to exit the program.

Before introducing the EOF callback to Prism, the input loop looked
kind of like this:

```ruby
loop do
  str = STDIN.gets
  process(str)

  if str.nil?
    p :DONE
  end
end
```

Which required 3 Ctrl-D to exit.  If we naively changed it to something
like this:

```ruby
loop do
  str = STDIN.gets
  process(str)

  if STDIN.eof?
    p :DONE
  end
end
```

It would still require 3 Ctrl-D because `eof?` would block.  In this
patch, we're wrapping the IO object, checking the buffer for a newline
and length, and then using that to simulate a non-blocking eof? method.

This commit wraps STDIN and emulates a non-blocking `eof` function.

[Backport #21188]
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/prism] Accept a newline after the defined? keyword [Backport #21197] (#13327)</title>
<updated>2025-07-09T21:51:32+00:00</updated>
<author>
<name>Takashi Kokubun</name>
<email>takashi.kokubun@shopify.com</email>
</author>
<published>2025-07-09T21:51:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=1e3d24a0f47e142270bfb6073feb77f6364af052'/>
<id>1e3d24a0f47e142270bfb6073feb77f6364af052</id>
<content type='text'>
* [ruby/prism] Accept a newline after the defined? keyword

[Bug #21197]

https://github.com/ruby/prism/commit/22be955ce9

* Fix a compilation error

Co-authored-by: Stan Lo &lt;stan001212@gmail.com&gt;

---------

Co-authored-by: Kevin Newton &lt;kddnewton@gmail.com&gt;
Co-authored-by: Stan Lo &lt;stan001212@gmail.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* [ruby/prism] Accept a newline after the defined? keyword

[Bug #21197]

https://github.com/ruby/prism/commit/22be955ce9

* Fix a compilation error

Co-authored-by: Stan Lo &lt;stan001212@gmail.com&gt;

---------

Co-authored-by: Kevin Newton &lt;kddnewton@gmail.com&gt;
Co-authored-by: Stan Lo &lt;stan001212@gmail.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "merge revision(s) 052794bfe1970e90f4f4f9e37fc362dd27903a8d: [Backport #21197]"</title>
<updated>2025-04-14T07:29:03+00:00</updated>
<author>
<name>Takashi Kokubun</name>
<email>takashikkbn@gmail.com</email>
</author>
<published>2025-04-14T07:29:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=1c23c3095325a4ade2064cc3b35ce8e678e03ebf'/>
<id>1c23c3095325a4ade2064cc3b35ce8e678e03ebf</id>
<content type='text'>
This reverts commit e630a0f7ae909dafe2e1dbc47baf90cd795b4a5f.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit e630a0f7ae909dafe2e1dbc47baf90cd795b4a5f.
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) f27ed98effff9891d28edc7119d45811bcedd510: [Backport #21183]</title>
<updated>2025-04-14T07:20:04+00:00</updated>
<author>
<name>Takashi Kokubun</name>
<email>takashikkbn@gmail.com</email>
</author>
<published>2025-04-14T07:20:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=7b5e4125b9935cd78d80719de018dad446780e40'/>
<id>7b5e4125b9935cd78d80719de018dad446780e40</id>
<content type='text'>
	[ruby/prism] Freeze `Prism::VERSION`

	Closes https://github.com/ruby/prism/pull/3422

	https://github.com/ruby/prism/commit/b488a84253
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	[ruby/prism] Freeze `Prism::VERSION`

	Closes https://github.com/ruby/prism/pull/3422

	https://github.com/ruby/prism/commit/b488a84253
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) 052794bfe1970e90f4f4f9e37fc362dd27903a8d: [Backport #21197]</title>
<updated>2025-04-14T07:18:37+00:00</updated>
<author>
<name>Takashi Kokubun</name>
<email>takashikkbn@gmail.com</email>
</author>
<published>2025-04-14T07:18:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=e630a0f7ae909dafe2e1dbc47baf90cd795b4a5f'/>
<id>e630a0f7ae909dafe2e1dbc47baf90cd795b4a5f</id>
<content type='text'>
	[ruby/prism] Accept a newline after the defined? keyword

	[Bug #21197]

	https://github.com/ruby/prism/commit/22be955ce9
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	[ruby/prism] Accept a newline after the defined? keyword

	[Bug #21197]

	https://github.com/ruby/prism/commit/22be955ce9
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/prism] Use a locale-insensitive version of tolower</title>
<updated>2025-03-03T23:42:16+00:00</updated>
<author>
<name>Jean Boussier</name>
<email>jean.boussier@gmail.com</email>
</author>
<published>2025-02-27T20:53:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=3d744a0a9436fbf7901c345055dd3d775b518361'/>
<id>3d744a0a9436fbf7901c345055dd3d775b518361</id>
<content type='text'>
[Bug #21161]

The `tolower` function provided by the libc is locale dependent
and can behave in ways you wouldn't expect for some value
of `LC_CTYPE`.

https://github.com/ruby/prism/commit/e3488256b4

Co-Authored-By: Nobuyoshi Nakada &lt;nobu@ruby-lang.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[Bug #21161]

The `tolower` function provided by the libc is locale dependent
and can behave in ways you wouldn't expect for some value
of `LC_CTYPE`.

https://github.com/ruby/prism/commit/e3488256b4

Co-Authored-By: Nobuyoshi Nakada &lt;nobu@ruby-lang.org&gt;
</pre>
</div>
</content>
</entry>
</feed>
