<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/shape.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>[3.3 backport] Do not emit shape transition warnings when YJIT is compiling (#10911)</title>
<updated>2024-06-04T20:21:58+00:00</updated>
<author>
<name>Jean byroot Boussier</name>
<email>jean.boussier+github@shopify.com</email>
</author>
<published>2024-06-04T20:21:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=4f00d98b327e3aa23564aa765488d15bc60c9e79'/>
<id>4f00d98b327e3aa23564aa765488d15bc60c9e79</id>
<content type='text'>
Do not emit shape transition warnings when YJIT is compiling

[Bug #20522]

If `Warning.warn` is redefined in Ruby, emitting a warning would invoke
Ruby code, which can't safely be done when YJIT is compiling.

Co-authored-by: Jean Boussier &lt;jean.boussier@gmail.com&gt;
Co-authored-by: Takashi Kokubun &lt;takashikkbn@gmail.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Do not emit shape transition warnings when YJIT is compiling

[Bug #20522]

If `Warning.warn` is redefined in Ruby, emitting a warning would invoke
Ruby code, which can't safely be done when YJIT is compiling.

Co-authored-by: Jean Boussier &lt;jean.boussier@gmail.com&gt;
Co-authored-by: Takashi Kokubun &lt;takashikkbn@gmail.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Backport #9498 to Ruby 3.3 (#9805)</title>
<updated>2024-03-14T16:26:35+00:00</updated>
<author>
<name>Kerem Kat</name>
<email>keremkat@gmail.com</email>
</author>
<published>2024-03-14T16:26:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=53f0c5a4e8834f11af0f903d2c59754d9be2a7f2'/>
<id>53f0c5a4e8834f11af0f903d2c59754d9be2a7f2</id>
<content type='text'>
Handle mmap failures for redblack tree cache

The redblack tree cache is totally optional, so if we can't allocate
room for the cache, then just pretend as if the cache is full if mmap
fails

Co-authored-by: Aaron Patterson &lt;tenderlove@ruby-lang.org&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Handle mmap failures for redblack tree cache

The redblack tree cache is totally optional, so if we can't allocate
room for the cache, then just pretend as if the cache is full if mmap
fails

Co-authored-by: Aaron Patterson &lt;tenderlove@ruby-lang.org&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Fix a grammar issue in the shape performance warning message</title>
<updated>2023-12-20T08:28:45+00:00</updated>
<author>
<name>Jean Boussier</name>
<email>byroot@ruby-lang.org</email>
</author>
<published>2023-12-20T08:05:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=7c2d8198625ca2e38835ad06ab47b4ea3afbc34b'/>
<id>7c2d8198625ca2e38835ad06ab47b4ea3afbc34b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Use #initialize instead of `initialize` in shape perf warning</title>
<updated>2023-12-18T12:42:02+00:00</updated>
<author>
<name>Jean Boussier</name>
<email>jean.boussier@gmail.com</email>
</author>
<published>2023-12-18T12:16:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=f6ad49b87c110b618632a4a258896e3f5673000b'/>
<id>f6ad49b87c110b618632a4a258896e3f5673000b</id>
<content type='text'>
This is more consistent with other messages.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is more consistent with other messages.
</pre>
</div>
</content>
</entry>
<entry>
<title>[DOC] No document for internal or debug methods</title>
<updated>2023-12-18T11:17:45+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2023-12-18T10:57:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=40fc9b070ca68e0bd1d57e4dd712172e2faeaa2b'/>
<id>40fc9b070ca68e0bd1d57e4dd712172e2faeaa2b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</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>Deduplicate assertions in redblack_balance</title>
<updated>2023-12-06T15:16:58+00:00</updated>
<author>
<name>Peter Zhu</name>
<email>peter@peterzhu.ca</email>
</author>
<published>2023-12-06T15:16:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=4a7151a8e4806917f1bdca2a5b5a3b82d7959d32'/>
<id>4a7151a8e4806917f1bdca2a5b5a3b82d7959d32</id>
<content type='text'>
The bug in i686 was fixed in commit
71babe5536bdb2238509752d8706194ee57ff485.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The bug in i686 was fixed in commit
71babe5536bdb2238509752d8706194ee57ff485.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix alphabetical order of include in shape.c</title>
<updated>2023-12-05T21:25:34+00:00</updated>
<author>
<name>Peter Zhu</name>
<email>peter@peterzhu.ca</email>
</author>
<published>2023-12-05T21:25:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=56eccb350b8872b4eca051cc3e2732cefb717637'/>
<id>56eccb350b8872b4eca051cc3e2732cefb717637</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add assertions for shape cache grandchild nodes</title>
<updated>2023-12-01T14:56:32+00:00</updated>
<author>
<name>Peter Zhu</name>
<email>peter@peterzhu.ca</email>
</author>
<published>2023-12-01T14:56:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=43ef0da0fb308c937dd0261d5204bd72e8b6867a'/>
<id>43ef0da0fb308c937dd0261d5204bd72e8b6867a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
