プログラミング
Show HN: Clx – C++20経由でLuaをネイティブ実行可能ファイルにコンパイル
Show HN: Clx – Compile Lua to Native Executables Through C++20 (github.com)
要約
Clxは、標準LuaをC++20にコンパイルし、GCC、Clang、MSVC経由でスタンドアロンのネイティブ実行可能ファイルを生成するAhead-of-Time (AOT) コンパイラです。このプロジェクトは、LLVMや直接的なマシンコード生成の代わりに、モダンC++をポータブルなコンパイラバックエンドとして使用できるかどうかの実験として始まりました。生成されたコードはホストツールチェーンによってコンパイル・最適化されます。
全文翻訳
HNの皆さん、こんにちは。
clxは、標準LuaをC++20にコンパイルし、GCC、Clang、またはMSVC経由でスタンドアロンのネイティブ実行可能ファイルを生成するAhead-of-Timeコンパイラです。
このプロジェクトは、LLVMや直接的なマシンコード生成の代わりに、モダンC++をポータブルなコンパイラバックエンドとして使用できるかどうかを実験したことから始まりました。
生成されたコードは、ホストツールチェーンによってコンパイルおよび最適化されます。
最新リリースでは、以前のNaNタグ付き値表現を新しいシャドウトイプ実装に置き換え、完全なint64サポートを追加し、ネイティブ算術コード生成を改善し、ARM64 macOSコルーチンサポートを追加しました。
パフォーマンスは通常、Luaインタプリタよりもはるかに高速であり、一部の計算負荷の高いワークロードではLuaJITを上回ることもありますが、完全にAhead-of-Timeコンパイルされたままです。
リポジトリには、PongゲームやSokolバイナリモジュール(clx C++ APIを使用)を使用したMandelbrotエクスプローラーなど、Luaで書かれたグラフィカルな例も含まれています。
clxに関するフィードバックをいただけると非常に嬉しいです :)