(rontolisp) docs
← 関数

lisp-implementation-type lisp-implementation-version software-type software-version machine-type machine-version machine-instance short-site-name long-site-name

(lisp-implementation-type) -- (lisp-implementation-version) -- (software-type) -- (software-version) -- (machine-type) -- (machine-version) -- (machine-instance) -- (short-site-name) -- (long-site-name)

環境問い合わせ関数です。それぞれ文字列または nil を返し、ここではすべての答えが定数です。ホストからは何も読まないため、ライブラリがこれらを組み合わせて作る User-Agent やバナーは、machine-type を除いてどのバックエンドでも同じ文字列になります。

関数返り値
lisp-implementation-type"rontolisp"
lisp-implementation-versionプロジェクトのバージョン。rontolisp --version(getf (rontolisp:version) :version) が報告するものと同じ文字列
software-type"Unix" -- uiop:os-unix-puiop:operating-system と同じ主張。どのバックエンドも POSIX 形のファイルモデルを提示します
software-versionnil
machine-type実行中の成果物が対象とする ABI。インタプリタと JVM バックエンドでは "JVM"、2 つの WASM バックエンドでは "WASM32"
machine-versionnil
machine-instancenil
short-site-namenil
long-site-namenil

machine-type はホストの CPU ではなく ABI を意図的に名乗ります。クラスファイルも wasm モジュールも CPU 非依存であり、uiop:architecture:jvm / :wasm32 を返すのと同じ理由です。rontolisp が知り得ないものはすべて nil を返します。これは適切で関連する結果を提供できない場合に Common Lisp が定める答えであり、でっち上げたホスト名やバージョンは「不在」ではなく「答え」になってしまうためです。

バージョンはビルド固有の値なので、検証はせず表示のみとします。

バックエンド対応

4 バックエンドすべて。rontolisp ソースによる 1 つの定義で、参照されたプログラムにのみ差し込まれます。バックエンドごとに異なるのは machine-type だけです。