(rontolisp) docs
← マクロ

load-time-value

(load-time-value form [read-only-p])

form はソース中の出現ごとに一度だけ評価されます (使用のたびではありません)。その出現に最初に到達した時点で計算され、以降は再利用されます。read-only-p は受理されますが無視されます。

コンパイル系バックエンドは結果を、初回使用時に埋められる生成グローバルへ巻き上げます。インタプリタは出現ごとにメモ化します。埋めるタイミングはプログラム開始時ではなく遅延で、到達しなかった出現は評価されません — ライブラリから展開された値フォームは、後続のトップレベルフォームが初期化するグローバルを必要とすることが多いためです。

スロットを割り当てるまでもない安価な値フォーム — アトム、変数参照、quote/function/find-package のラッパ — は素の低位化のままで、単に再評価されます。--no-gc バックエンドは巻き上げを行いません。