Rustのビルド待ちを消すJITコンパイラ「Relax」、大規模3Dゲームが11秒で起動
Relax: JIT compiler for Rust to reduce build times
Makepadが開発したRelaxは、rustcやLLVM、リンカーを使わずにCargoパッケージをソースから直接実行するRust向けのライブコンパイラ兼JITランタイム。関数を初回呼び出し時にコンパイルし、ホットな関数は実行中に最適化。ファイル保存時には変更部分だけを稼働中のプロセスにパッチし、状態を保ったまま92件のテストを2.2秒で再実行できる。M4 MacBookで大規模3Dゲームの初回起動は11秒、2回目は1.15秒。型・借用チェックは従来通り実施するが、最適化コードの速度はrustc --releaseにまだ及ばない。
Rustの速度と安全性を、コンパイル待ちなしで。
- faresahmed
なぜかいつも、どこかで誰かが、コーディングからコード実行までの時間を短縮することが我々の生活を楽にし、ある程度はより良いプログラムを書けるようにしてくれることに、再び気づくのだ。
おそらく最も初期にして最良の試みは、Lispの計算モデルだった。それ以来、このアイデアは異なる形で何度も何度も[1]、そしてまた[2]、さらにまた[3]姿を現してきた。
[1]: Inventing on Principle, Bret Victor: https://www.youtube.com/watch?v=PUv66718DII
[2]: REPL-Driven Development, Stuart Halloway: https://vimeo.com/223309989
[3]: LIVE, Live Programming workshop: https://liveprog.org/
- Sytten
これまでkacheにはCIやローカルでのビルド高速化で良い経験をさせてもらっている
- kennykartman
makepadの開発者たちがビルド時間に注力しているのは知っていたが、ここまでとは思わなかった!