テールコールインタープリタ:4年間の進歩

2025-02-20

4年前、テールコールと`musttail`属性を使った超高速インタープリタの書き方に関する記事が大きな注目を集めました。現在、この技術はPython 3.14、LuaJIT Remakeなどで採用され、大幅なパフォーマンス向上を実現しています。この記事では、GCCとClangによる`musttail`のサポート、C標準の"return goto"提案がテールコールインタープリタに及ぼす潜在的な影響、そして`preserve_none`と`preserve_most`属性がテールコールインタープリタの最適化において果たす役割を詳しく解説しています。最後に、コンパイラとプログラミング言語インタープリタ開発におけるエキサイティングな進歩のまとめが記載されています。

続きを読む

パニックなしRust:Rustは低レベルシステムプログラミングにおいてCに取って代わる事ができるか?

2025-02-03

この記事は、低レベルシステムプログラミングにおいてRustがCに取って代わる可能性、特にupbというProtocol Buffersライブラリに焦点を当てて探求しています。著者は当初、RustがCのパフォーマンスとコードサイズに匹敵できるかどうかを疑問視していましたが、「パニックなしRust」と呼ばれる手法を発見しました。これは`panic!()`の使用を避けることを意味します。この記事では、「パニックなしRust」の原則、利点、課題について詳しく説明し、コードサイズ、回復不能な終了、ランタイムオーバーヘッドなどの問題を取り上げています。libcライブラリ、最適化オプション、`std::hint::assert_unchecked`などのテクニックを使用してパニックなしRustコードを記述する方法を示し、デバッグモードでのオーバーフローチェックの保持を強調することで、追加の一貫性チェックを行います。この手法は綿密な作業を必要とし、標準ライブラリのほとんどを避ける必要があるかもしれませんが、Rustの安全性保証を維持しながら、Cライブラリと同じパフォーマンスとコードサイズを提供することを約束します。

続きを読む
開発