Truffle AOTのチュートリアル

Cなどの静的にコンパイルされる言語の多くは、事前実行なしにコンパイルできるように設計されています。デフォルトでは、Truffleはコードをコンパイルする前に解釈します。静的言語のウォームアップ速度を向上させるために、AOTコンパイルをサポートできます。次のチュートリアルでは、使用している言語でTruffle AOTをサポートする方法、Truffle AOTをトリガーしてテストする方法について説明します。

言語サポート

言語でAOTコンパイルをサポートするには、RootNode.prepareForAOT()メソッドを実装する必要があります。言語実装では、このメソッドでnull以外の値を返すことにより、AOTのサポートを示すことができます。AOTのルート・ノードを実装する目的は、事前実行なしでコンパイルされたときに最適化が解除されないように、すべてのASTノードを準備することです。

このメソッドの実装で実行される一般的なアクションは次のとおりです:

AOTコンパイルのトリガー

AOTコンパイルをトリガーしてテストするには、--engine.CompileAOTOnCreate=trueオプションを使用します。これにより、AOTコンパイルをサポートするルート・ノードを使用して、作成されたすべてのコール・ターゲットに対してAOTコンパイルがトリガーされます。RootNode.prepareForAOT()でnull以外の値が返された場合、ルート・ノードはAOTコンパイルをサポートしています。このフラグを有効にすると、バックグラウンドのコンパイルも無効になるため、本番環境での使用には適さないことに注意してください。

使用例

AOTサポートのインスピレーションとして、次のドキュメント化された実行可能なTruffle言語を使用します: AOTのチュートリアル

この例は、mx unittest AOTTutorialを使用してmx unittestとして実行できます。