(rontolisp) docs
← 関数

ql:update-dist

(ql:update-dist name &rest options)

dist のキャッシュ済み index を破棄し、次の ql:quickload がそのディストリビューションの systems.txtreleases.txt を読み直して、キャッシュ作成後に公開されたリリースを見えるようにします。引数は追加済みの dist 名 ("quicklisp""ultralisp" など) を文字列・キーワード・シンボルで指定し、戻り値はその名前です。追加されていない dist を指定するとエラーになります。キーワードオプションは受理され、無視されます。

これがないと dist の index は永久にキャッシュされます。それが quickload の 2 回目をタダにしている仕組みですが、数分ごとに再構築されるディストリビューション (Ultralisp) では、キャッシュされた index が知らないリリースが次々に公開されます。展開済みのソースはそのまま残ります: リリースのディレクトリ名はバージョンを含むので、新しいリリースは古いものを置き換えるのではなく隣に展開されます。

タイミングは ql:quickload と同じで、インタプリタ実行時か、リテラルかつトップレベルの呼び出しならコンパイル時です (その場合フォームは消費され、コンパイル済みプログラムは実行時に何もダウンロードしません)。ネストされた呼び出しや計算された呼び出しは JVM/WASM バックエンドではコンパイルエラーです。

$ rontolisp
CL-USER> (ql:update-dist "ultralisp")
"ultralisp"
CL-USER> (ql:quickload "split-sequence")
(split-sequence)

システムガイドql-dist:install-dist も参照してください。