【新着】LuaをC++20経由でネイティブ実行ファイルにコンパイルする「Clx」が熱い!
Show HN: Clx – Compile Lua to Native Executables Through C++20
Show HN: Clx – Compile Lua to Native Executables Through C++20
Hacker Newsの皆さん、こんにちは!「clx」は標準LuaのためのAOT(Ahead-of-Time)コンパイラです。このツールを使えば、LuaソースをC++20コードに変換し、GCCやClang、MSVCを通じてスタンドアロンなネイティブ実行ファイルを生成できます。このプロジェクトは、LLVMや直接的なマシンコード生成の代わりに、モダンなC++をポータブルなコンパイラバックエンドとして活用できるかという実験から始まりました。生成されたコードは、ホスト環境のツールチェーンによってコンパイル・最適化されます。最新リリースでは、従来のNaNタグ付き値表現を新しい「シャドウ型」実装に刷新しました。さらに、int64の完全サポート、ネイティブ算術演算のコード生成の改善、そしてmacOSのARM64におけるコルーチンサポートを追加しています。パフォーマンス面では、通常のLuaインタプリタよりも大幅に高速で、計算負荷の高いワークロードによってはLuaJITを凌駕することもあります。しかも、完全にAOTコンパイルされた状態を維持できるのが強みです。リポジトリには、Sokolバイナリモジュール(clx C++ APIを使用)を使ったPongゲームやマンデルブロ集合の探索ツールなど、Luaで記述されたグラフィカルなサンプルも同梱しています。clxについて、ぜひ皆さんの率直なフィードバックをお待ちしています!
面白いね。自分のFunnelのセットアップと組み合わせてみて、どうなるか試してみるよ。
バックエンドはc++20を出力するの?もしそうなら、その理由は?C++20の具体的にどの機能を使っているのか興味があるな。あと、C++20のコルーチンは実際に役に立ってる?