コンパイラは、常に最適化の一貫性をチェックします。あるセキュリティ規則に反する最適化オプションを指定すると、警告メッセージが表示されます。
次に、セキュリティ規則を示します。
コンパイラは、次の状況を検出したときのみ AutoLISP 関数呼び出しを直接リンクします。
コンパイラは、一致するすべての関数呼び出しを関数定義に直接リンクできるときだけ関数名のドロップを試みます。コンパイラは、プログラムがシンボル名で関数を呼び出す場合は、関数定義のシンボルをドロップしません。関数は、次の場合にシンボルで呼び出されます。
コンパイラは、次のいずれかの状況に当てはまる場合は、defun、lambda、および foreach 式の結合リスト内の変数をローカル化しません。
最適化が常にキャンセルされたり警告メッセージが表示される状況以外に、不正なコードが生成されたり、または生成されない可能性がある状況が他にもあります。プロジェクトをコンパイルするときは、プロジェクトに対して[セーフ最適化]オプションを使用して、これらの状況が起きないようにします。[セーフ最適化]がオフのときは、コンパイラがこれらの状況が検出したときに警告メッセージを表示します。