<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/test/ruby/test_object.rb, 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>Warn when redefining __id__ as well as object_id</title>
<updated>2024-11-30T04:41:00+00:00</updated>
<author>
<name>John Hawthorn</name>
<email>john@hawthorn.email</email>
</author>
<published>2024-11-27T00:40:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=f1dda5ed011b79d0d7bd31b09b55b5e19d8abd0c'/>
<id>f1dda5ed011b79d0d7bd31b09b55b5e19d8abd0c</id>
<content type='text'>
[Feature #20912]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[Feature #20912]
</pre>
</div>
</content>
</entry>
<entry>
<title>Emit warning for other method redefinition types</title>
<updated>2024-10-10T03:53:11+00:00</updated>
<author>
<name>Thomas Marshall</name>
<email>thomas@thomasmarshall.com</email>
</author>
<published>2024-10-08T16:30:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=5792bd7149a30f7f43a739199d84603cc579f4e5'/>
<id>5792bd7149a30f7f43a739199d84603cc579f4e5</id>
<content type='text'>
This commit ensures warnings about `object_id` and `__send__` method
redefinitions are emitted for other method types such as aliases, procs,
and attr readers—anything except C functions.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This commit ensures warnings about `object_id` and `__send__` method
redefinitions are emitted for other method types such as aliases, procs,
and attr readers—anything except C functions.
</pre>
</div>
</content>
</entry>
<entry>
<title>Do not include a backtick in error messages and backtraces</title>
<updated>2024-02-15T09:42:31+00:00</updated>
<author>
<name>Yusuke Endoh</name>
<email>mame@ruby-lang.org</email>
</author>
<published>2024-01-19T07:03:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=25d74b9527cd525042ad0b612b794fa331d3a318'/>
<id>25d74b9527cd525042ad0b612b794fa331d3a318</id>
<content type='text'>
[Feature #16495]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[Feature #16495]
</pre>
</div>
</content>
</entry>
<entry>
<title>Make the SHAPE_TOO_COMPLEX performance warning more actionable</title>
<updated>2023-12-18T09:33:18+00:00</updated>
<author>
<name>Jean Boussier</name>
<email>byroot@ruby-lang.org</email>
</author>
<published>2023-12-18T08:59:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=ba1d1522d35a7dd2595603ead57cd0fa8b21ba8b'/>
<id>ba1d1522d35a7dd2595603ead57cd0fa8b21ba8b</id>
<content type='text'>
As suggested by Mame, we should try to help users fix the issues
without having to lookup the meaning of the warning.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As suggested by Mame, we should try to help users fix the issues
without having to lookup the meaning of the warning.
</pre>
</div>
</content>
</entry>
<entry>
<title>Re-embed when removing Object instance variables</title>
<updated>2023-12-06T16:34:07+00:00</updated>
<author>
<name>Peter Zhu</name>
<email>peter@peterzhu.ca</email>
</author>
<published>2023-12-06T12:37:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=12e3b07455fea0e99e6aaf1893a7883fb2b0197e'/>
<id>12e3b07455fea0e99e6aaf1893a7883fb2b0197e</id>
<content type='text'>
Objects with the same shape must always have the same "embeddedness"
(either embedded or heap allocated) because YJIT assumes so. However,
using remove_instance_variable, it's possible that some objects are
embedded and some are heap allocated because it does not re-embed heap
allocated objects.

This commit changes remove_instance_variable to re-embed Object
instance variables when it becomes small enough.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Objects with the same shape must always have the same "embeddedness"
(either embedded or heap allocated) because YJIT assumes so. However,
using remove_instance_variable, it's possible that some objects are
embedded and some are heap allocated because it does not re-embed heap
allocated objects.

This commit changes remove_instance_variable to re-embed Object
instance variables when it becomes small enough.
</pre>
</div>
</content>
</entry>
<entry>
<title>Make the maximum shapes variation warning non-verbose</title>
<updated>2023-05-03T08:43:46+00:00</updated>
<author>
<name>Jean Boussier</name>
<email>byroot@ruby-lang.org</email>
</author>
<published>2023-04-18T10:36:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=04ee666aab071cb6fd9a8b356b22d73250ca6b9b'/>
<id>04ee666aab071cb6fd9a8b356b22d73250ca6b9b</id>
<content type='text'>
[Feature #19538]

Since that category is not enabled by default, making it a
verbose warning is redundant. Enabling performance warning should
work with the default verbosity level.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[Feature #19538]

Since that category is not enabled by default, making it a
verbose warning is redundant. Enabling performance warning should
work with the default verbosity level.
</pre>
</div>
</content>
</entry>
<entry>
<title>Emit a performance warning when a class reached max variations</title>
<updated>2023-04-13T14:36:17+00:00</updated>
<author>
<name>Jean Boussier</name>
<email>byroot@ruby-lang.org</email>
</author>
<published>2023-04-13T10:11:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=ac123f167a364c3d7a43eca78d564e41f6dbb91e'/>
<id>ac123f167a364c3d7a43eca78d564e41f6dbb91e</id>
<content type='text'>
[Feature #19538]

This new `peformance` warning category is disabled by default.
It needs to be specifically enabled via `-W:performance` or `Warning[:performance] = true`
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[Feature #19538]

This new `peformance` warning category is disabled by default.
It needs to be specifically enabled via `-W:performance` or `Warning[:performance] = true`
</pre>
</div>
</content>
</entry>
<entry>
<title>Use rb_inspect instead of +PRIsVALUE for Object.inspect</title>
<updated>2022-12-09T13:11:00+00:00</updated>
<author>
<name>Matt Valentine-House</name>
<email>matt@eightbitraptor.com</email>
</author>
<published>2022-12-07T16:01:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=181d4bee5e03a30596e78b2d7aa0396887a53881'/>
<id>181d4bee5e03a30596e78b2d7aa0396887a53881</id>
<content type='text'>
In order to preserve the values when TrueClass, FalseClass or NilClass
are stored in ivars
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In order to preserve the values when TrueClass, FalseClass or NilClass
are stored in ivars
</pre>
</div>
</content>
</entry>
<entry>
<title>Freeze singleton class, not its origin</title>
<updated>2022-12-08T20:58:26+00:00</updated>
<author>
<name>Alan Wu</name>
<email>XrXr@users.noreply.github.com</email>
</author>
<published>2022-12-06T17:06:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=bb8afd7265af41a75e8889774aa26f157f146380'/>
<id>bb8afd7265af41a75e8889774aa26f157f146380</id>
<content type='text'>
Previously, when we froze an object, we froze
`RCLASS_ORIGIN(object.singleton_class)`, which didn't freeze
`object.singleton_class` when it has some prepended modules.

Origin iclass are internal objects and users can't interact with
them through Kernel#freeze?, Kernel#freeze, or any mutation method
that checks the frozen status. So we shouldn't touch the origin
iclasses when the frozen status should be visible.

[Bug #19169]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously, when we froze an object, we froze
`RCLASS_ORIGIN(object.singleton_class)`, which didn't freeze
`object.singleton_class` when it has some prepended modules.

Origin iclass are internal objects and users can't interact with
them through Kernel#freeze?, Kernel#freeze, or any mutation method
that checks the frozen status. So we shouldn't touch the origin
iclasses when the frozen status should be visible.

[Bug #19169]
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "Revert "This commit implements the Object Shapes technique in CRuby.""</title>
<updated>2022-10-11T15:40:56+00:00</updated>
<author>
<name>Jemma Issroff</name>
<email>jemmaissroff@gmail.com</email>
</author>
<published>2022-10-03T15:14:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=ad63b668e22e21c352b852f3119ae98a7acf99f1'/>
<id>ad63b668e22e21c352b852f3119ae98a7acf99f1</id>
<content type='text'>
This reverts commit 9a6803c90b817f70389cae10d60b50ad752da48f.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 9a6803c90b817f70389cae10d60b50ad752da48f.
</pre>
</div>
</content>
</entry>
</feed>
