<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/coroutine, 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>wasm: align fiber stack pointer to 16 bytes (#12101)</title>
<updated>2024-11-15T22:05:28+00:00</updated>
<author>
<name>Yuta Saito</name>
<email>kateinoigakukun@gmail.com</email>
</author>
<published>2024-11-15T22:05:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=a97621ef3c7e026651d93460bbf04d3008c5676b'/>
<id>a97621ef3c7e026651d93460bbf04d3008c5676b</id>
<content type='text'>
wasm: align fiber stack pointer to 16 bytes

In WebAssembly C ABI, the linear stack pointer must be always aligned
to 16 bytes like other archs.
The misaligned stack pointer causes some weird memory corruption since
compiler assumes the aligned stack pointer.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
wasm: align fiber stack pointer to 16 bytes

In WebAssembly C ABI, the linear stack pointer must be always aligned
to 16 bytes like other archs.
The misaligned stack pointer causes some weird memory corruption since
compiler assumes the aligned stack pointer.</pre>
</div>
</content>
</entry>
<entry>
<title>coroutine/arm64: Skip saving/restoring x30 twice and use `autiasp`</title>
<updated>2023-12-22T02:30:00+00:00</updated>
<author>
<name>Yuta Saito</name>
<email>kateinoigakukun@gmail.com</email>
</author>
<published>2023-12-21T23:52:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=fa0f7522c41bd2a71117b2428bc6fbb0bbcc9699'/>
<id>fa0f7522c41bd2a71117b2428bc6fbb0bbcc9699</id>
<content type='text'>
We don't need to save/restore x30 twice, and we can just use `ret`,
which uses x30 as return address register instead of explicit `ret &lt;reg&gt;`
instruction. This also allows us to use `autiasp` instead of `autia1716`
and we can skip setting SP/LR to x16/x17.

Also the size of register save area is shrunk by 16 bytes due to the
removal of extra x30 save/restore.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We don't need to save/restore x30 twice, and we can just use `ret`,
which uses x30 as return address register instead of explicit `ret &lt;reg&gt;`
instruction. This also allows us to use `autiasp` instead of `autia1716`
and we can skip setting SP/LR to x16/x17.

Also the size of register save area is shrunk by 16 bytes due to the
removal of extra x30 save/restore.
</pre>
</div>
</content>
</entry>
<entry>
<title>coroutine/arm64/Context.S: Append PAC/BTI note section if needed</title>
<updated>2023-12-22T02:30:00+00:00</updated>
<author>
<name>Yuta Saito</name>
<email>kateinoigakukun@gmail.com</email>
</author>
<published>2023-12-21T06:21:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=2d004decde80566c5b004c5b832e8a1ab007965f'/>
<id>2d004decde80566c5b004c5b832e8a1ab007965f</id>
<content type='text'>
Fixes https://bugs.ruby-lang.org/issues/20029
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes https://bugs.ruby-lang.org/issues/20029
</pre>
</div>
</content>
</entry>
<entry>
<title>coroutine/arm64/Context.S: Insert `bti c` as BTI landing pad</title>
<updated>2023-12-22T02:30:00+00:00</updated>
<author>
<name>Yuta Saito</name>
<email>kateinoigakukun@gmail.com</email>
</author>
<published>2023-12-21T06:19:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=35587150e21175b6a63cd02d406beff5c76f1149'/>
<id>35587150e21175b6a63cd02d406beff5c76f1149</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>coroutine/arm64: Sign return address if PAC enabled</title>
<updated>2023-12-22T02:30:00+00:00</updated>
<author>
<name>Yuta Saito</name>
<email>kateinoigakukun@gmail.com</email>
</author>
<published>2023-12-21T05:42:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=d9e5564ccd0e460b7685b786d21cf386b229e2a9'/>
<id>d9e5564ccd0e460b7685b786d21cf386b229e2a9</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Do not use non-ASCII chars in sources</title>
<updated>2023-11-04T17:14:26+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2023-11-04T17:14:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=368a1cb3c40ea7fd17809e6d2e78f6a77f770a29'/>
<id>368a1cb3c40ea7fd17809e6d2e78f6a77f770a29</id>
<content type='text'>
No encodings are guaranteed in C compilers, and other than UTF-8
encodings may be assumed in some platforms, e.g., CP932 on Windows
Japanese edition, and may result in compilation errors.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
No encodings are guaranteed in C compilers, and other than UTF-8
encodings may be assumed in some platforms, e.g., CP932 on Windows
Japanese edition, and may result in compilation errors.
</pre>
</div>
</content>
</entry>
<entry>
<title>Avoid memory dependency between instructions. (#8284)</title>
<updated>2023-08-25T01:28:33+00:00</updated>
<author>
<name>Samuel Williams</name>
<email>samuel.williams@oriontransfer.co.nz</email>
</author>
<published>2023-08-25T01:28:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=40d774bec68de3f252c0b252d9d0303a67bee0cb'/>
<id>40d774bec68de3f252c0b252d9d0303a67bee0cb</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add support for LoongArch (#7343)</title>
<updated>2023-02-22T04:11:33+00:00</updated>
<author>
<name>小MAO钓鱼</name>
<email>657757743@qq.com</email>
</author>
<published>2023-02-22T04:11:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=65ef20d2a792066542ffdd29298fd4df90e89271'/>
<id>65ef20d2a792066542ffdd29298fd4df90e89271</id>
<content type='text'>
* vm_dump.c: Dump machine registers on loongarch64 Linux.

* coroutines: Support for native loongarch64 coroutines.

---------

Co-authored-by: zangruochen &lt;zangruochen@loongson.cn&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* vm_dump.c: Dump machine registers on loongarch64 Linux.

* coroutines: Support for native loongarch64 coroutines.

---------

Co-authored-by: zangruochen &lt;zangruochen@loongson.cn&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Fix and improve coroutines for Darwin (macOS) ppc/ppc64. (#5975)</title>
<updated>2022-10-19T10:49:45+00:00</updated>
<author>
<name>Sergey Fedorov</name>
<email>vital.had@gmail.com</email>
</author>
<published>2022-10-19T10:49:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=567725ed303b6738493c80efaf93dc4c1e65a9c9'/>
<id>567725ed303b6738493c80efaf93dc4c1e65a9c9</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add support for address sanitizer for amd64 and arm64.</title>
<updated>2022-05-25T03:24:24+00:00</updated>
<author>
<name>Samuel Williams</name>
<email>samuel.williams@oriontransfer.co.nz</email>
</author>
<published>2022-05-19T11:03:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=901525b1079ac02da0122a76d8e4c3546a7f80f6'/>
<id>901525b1079ac02da0122a76d8e4c3546a7f80f6</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
