<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/error.c, 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>merge revision(s) 43dbb9a93f4de3f1170d7d18641c30e81cc08365, 2bb6fe3854e2a4854bb89bfce4eaaea9d848fd1b, 7c9dd0ecff61153b96473c6c51d5582e809da489: [Backport #21629]</title>
<updated>2025-10-08T13:56:02+00:00</updated>
<author>
<name>nagachika</name>
<email>nagachika@ruby-lang.org</email>
</author>
<published>2025-10-08T13:55:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=5a8d7642168f4ea0d9331fded3033c225bbc36c5'/>
<id>5a8d7642168f4ea0d9331fded3033c225bbc36c5</id>
<content type='text'>
	[PATCH] [Bug #21629] Enable `nonstring` attribute on clang 21

	[PATCH] [Bug #21629] Initialize `struct RString`

	[PATCH] [Bug #21629] Initialize `struct RArray`
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	[PATCH] [Bug #21629] Enable `nonstring` attribute on clang 21

	[PATCH] [Bug #21629] Initialize `struct RString`

	[PATCH] [Bug #21629] Initialize `struct RArray`
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) b959263b58e26ef630c085f9f7ddc04373a998c7: [Backport #21344]</title>
<updated>2025-05-18T04:32:52+00:00</updated>
<author>
<name>nagachika</name>
<email>nagachika@ruby-lang.org</email>
</author>
<published>2025-05-18T04:32:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=1f226f1efeeae3a5091c60e2f51e027d0598f394'/>
<id>1f226f1efeeae3a5091c60e2f51e027d0598f394</id>
<content type='text'>
	Fix Exception#detailed_message for GC compaction

	Before this commit, the test fails with RGENGC_CHECK_MODE enabled:

	    TestException#test_detailed_message_under_gc_compact_stress [test/ruby/test_exception.rb:1466]:
	    &lt;"\e[1mfoo (\e[1;4mRuntimeError\e[m\e[1m)\e[m\n" +
	    "\e[1mbar\e[m\n" +
	    "\e[1mbaz\e[m"&gt; expected but was
	    &lt;"\e[1mfoo (\e[1;4mRuntimeError\e[m\e[1m)\e[m\n" +
	    "\e[1m\x00\x00\x00\x00\x00\x00\x00\e[m"&gt;.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	Fix Exception#detailed_message for GC compaction

	Before this commit, the test fails with RGENGC_CHECK_MODE enabled:

	    TestException#test_detailed_message_under_gc_compact_stress [test/ruby/test_exception.rb:1466]:
	    &lt;"\e[1mfoo (\e[1;4mRuntimeError\e[m\e[1m)\e[m\n" +
	    "\e[1mbar\e[m\n" +
	    "\e[1mbaz\e[m"&gt; expected but was
	    &lt;"\e[1mfoo (\e[1;4mRuntimeError\e[m\e[1m)\e[m\n" +
	    "\e[1m\x00\x00\x00\x00\x00\x00\x00\e[m"&gt;.
</pre>
</div>
</content>
</entry>
<entry>
<title>Don't call `Warning.warn` unless the category is enabled (#10981)</title>
<updated>2024-06-13T17:02:32+00:00</updated>
<author>
<name>Aaron Patterson</name>
<email>tenderlove@ruby-lang.org</email>
</author>
<published>2024-06-13T17:02:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=a3eb5e5c70eaee12964cdd807b8f19950003141f'/>
<id>a3eb5e5c70eaee12964cdd807b8f19950003141f</id>
<content type='text'>
Don't call `Warning.warn` unless the category is enabled

The warning category should be enabled if we want to call
`Warning.warn`.

This commit speeds up the following benchmark:

```ruby
eval "def test; " +
  1000.times.map { "'  '.chomp!" }.join(";") + "; end"

def run_benchmark count
  i = 0
  while i &lt; count
    start = Process.clock_gettime(Process::CLOCK_MONOTONIC)
    yield
    ms = Process.clock_gettime(Process::CLOCK_MONOTONIC) - start
    puts "itr ##{i}: #{(ms * 1000).to_i}ms"
    i += 1
  end
end

run_benchmark(25) do
  250.times do
    test
  end
end
```

On `master` this runs at about 92ms per iteration. With this patch, it
is 7ms per iteration.

[Bug #20573]</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Don't call `Warning.warn` unless the category is enabled

The warning category should be enabled if we want to call
`Warning.warn`.

This commit speeds up the following benchmark:

```ruby
eval "def test; " +
  1000.times.map { "'  '.chomp!" }.join(";") + "; end"

def run_benchmark count
  i = 0
  while i &lt; count
    start = Process.clock_gettime(Process::CLOCK_MONOTONIC)
    yield
    ms = Process.clock_gettime(Process::CLOCK_MONOTONIC) - start
    puts "itr ##{i}: #{(ms * 1000).to_i}ms"
    i += 1
  end
end

run_benchmark(25) do
  250.times do
    test
  end
end
```

On `master` this runs at about 92ms per iteration. With this patch, it
is 7ms per iteration.

[Bug #20573]</pre>
</div>
</content>
</entry>
<entry>
<title>[DOC] Fix NoMethodError example of rendering (#9309)</title>
<updated>2023-12-21T20:27:18+00:00</updated>
<author>
<name>Victor Shepelev</name>
<email>zverok.offline@gmail.com</email>
</author>
<published>2023-12-21T20:27:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=e04197aba74e62aae163f0cdc7058861047045a2'/>
<id>e04197aba74e62aae163f0cdc7058861047045a2</id>
<content type='text'>
Fix NoMethodError example of rendering</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix NoMethodError example of rendering</pre>
</div>
</content>
</entry>
<entry>
<title>rb_bug_for_fatal_signal: exit with the right signal</title>
<updated>2023-12-15T16:48:43+00:00</updated>
<author>
<name>Jean Boussier</name>
<email>byroot@ruby-lang.org</email>
</author>
<published>2023-12-15T16:08:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=1ac0afab4da1986d6eefd421ca3877afd47d2a77'/>
<id>1ac0afab4da1986d6eefd421ca3877afd47d2a77</id>
<content type='text'>
`die()` calls `abort()` which always exit as it `SIGABRT`
was received.

This isn't very friendly with systems that automatically
collect crashes as the `%s` parameter will be changed.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
`die()` calls `abort()` which always exit as it `SIGABRT`
was received.

This isn't very friendly with systems that automatically
collect crashes as the `%s` parameter will be changed.
</pre>
</div>
</content>
</entry>
<entry>
<title>[DOC] Small fixes for documentation rendering</title>
<updated>2023-12-09T04:54:33+00:00</updated>
<author>
<name>Victor Shepelev</name>
<email>zverok.offline@gmail.com</email>
</author>
<published>2023-12-09T04:54:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=07734b51c66756c4a7a512ebb4736763542d99f3'/>
<id>07734b51c66756c4a7a512ebb4736763542d99f3</id>
<content type='text'>
Mostly just fixing RDoc's incorrect treatment of `+`</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Mostly just fixing RDoc's incorrect treatment of `+`</pre>
</div>
</content>
</entry>
<entry>
<title>Free everything at shutdown</title>
<updated>2023-12-07T20:52:35+00:00</updated>
<author>
<name>Adam Hess</name>
<email>adamhess1991@gmail.com</email>
</author>
<published>2023-10-12T18:15:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=6816e8efcff3be75f8020cd1b0ea57d3cd664bbc'/>
<id>6816e8efcff3be75f8020cd1b0ea57d3cd664bbc</id>
<content type='text'>
when the RUBY_FREE_ON_SHUTDOWN environment variable is set, manually free memory at shutdown.

Co-authored-by: Nobuyoshi Nakada &lt;nobu@ruby-lang.org&gt;
Co-authored-by: Peter Zhu &lt;peter@peterzhu.ca&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
when the RUBY_FREE_ON_SHUTDOWN environment variable is set, manually free memory at shutdown.

Co-authored-by: Nobuyoshi Nakada &lt;nobu@ruby-lang.org&gt;
Co-authored-by: Peter Zhu &lt;peter@peterzhu.ca&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix parameter types for rb_ivar_foreach() callbacks</title>
<updated>2023-12-05T23:19:42+00:00</updated>
<author>
<name>Alan Wu</name>
<email>XrXr@users.noreply.github.com</email>
</author>
<published>2023-12-05T22:54:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=0346cbbc148a6eec2f3a5b840758b00b51b3d016'/>
<id>0346cbbc148a6eec2f3a5b840758b00b51b3d016</id>
<content type='text'>
For this public API, the callback is declared to take
`(ID, VALUE, st_data_t)`, but it so happens that using
`(st_data_t, st_data_t, st_data_t)` also
type checks, because the underlying type is identical.
Use it as declared and get rid of some casts.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
For this public API, the callback is declared to take
`(ID, VALUE, st_data_t)`, but it so happens that using
`(st_data_t, st_data_t, st_data_t)` also
type checks, because the underlying type is identical.
Use it as declared and get rid of some casts.
</pre>
</div>
</content>
</entry>
<entry>
<title>Refactor NameError::message and make it embeded</title>
<updated>2023-11-21T15:54:40+00:00</updated>
<author>
<name>Jean Boussier</name>
<email>byroot@ruby-lang.org</email>
</author>
<published>2023-11-21T12:07:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=903b0931a116691386e71fa30fb1698bbd785853'/>
<id>903b0931a116691386e71fa30fb1698bbd785853</id>
<content type='text'>
These aren't particularly common, but avoiding the malloc churn
for small types is always nice, and this commit also modernize
and cleanup the TypedData API usage.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These aren't particularly common, but avoiding the malloc churn
for small types is always nice, and this commit also modernize
and cleanup the TypedData API usage.
</pre>
</div>
</content>
</entry>
<entry>
<title>Implement embedded TypedData objects</title>
<updated>2023-11-07T20:48:06+00:00</updated>
<author>
<name>Peter Zhu</name>
<email>peter@peterzhu.ca</email>
</author>
<published>2023-03-03T21:05:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=392238e3fd76beb923de1ba3f8d8d6bd28c7030e'/>
<id>392238e3fd76beb923de1ba3f8d8d6bd28c7030e</id>
<content type='text'>
This commit adds a new flag RUBY_TYPED_EMBEDDABLE that allows the data
of a TypedData object to be embedded after the object itself. This will
improve cache locality and allow us to save the 8 byte data pointer.

Co-Authored-By: Jean Boussier &lt;byroot@ruby-lang.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This commit adds a new flag RUBY_TYPED_EMBEDDABLE that allows the data
of a TypedData object to be embedded after the object itself. This will
improve cache locality and allow us to save the 8 byte data pointer.

Co-Authored-By: Jean Boussier &lt;byroot@ruby-lang.org&gt;
</pre>
</div>
</content>
</entry>
</feed>
