概要 - セーフ最適化(Visual LISP IDE)

[セーフ最適化]オプションを使用すると、コンパイラの最適化の効果は減少しますが、コンパイルによってエラーが発生しないようコードを保護します。

注: Visual LISP IDE は Windows でのみ使用可能です。

[セーフ最適化]を選択すると、たとえソース コードが正しいように思えても、プログラムを最適化したことによって失敗する可能性のある実行時の不確実性が妨げられます。

たとえば、次のような状況を考えてみてください。

ここで、可能性のある状況が 2 つあります。setq 関数を使用して割り当てられた値が、calculate-corner 関数の定義を変更することを意図している場合は、直接リンクすると関数を再定義できなくなります。最初の定義は直接参照され、setq 関数によっては変更できません。言い換えれば、シンボル名が個別に処理される場合は、不正なコードを生成することなく、calculate-corner がリンクされます。

[セーフ最適化]を有効にすると、たとえユーザが明示的に calculate-corner を直接リンクするよう要求しても、コンパイラは常に安全な立場にとどまります。これにより、あまり効率のよくないコードが生成されますが、確実に正しいコードが生成されます。[セーフ最適化]を無効にすると、コンパイラの提案を無効にして calculate-corner を間接リンクできます。この場合は、ユーザがリンク オプションの責任を負うべきです。

既定では、[セーフ最適化]モードは有効です。結果を完全に理解するまでは、このモードを無効にしないでください。