質問: ■やりたい事 CLISPを利用し、Qt4を利用したGUIアプリケーションを作成したい。 CLISPからQt4を利用する為に、CommonQtライブラリを採用する。 ■OS環境 OS → Windows7 Pro ■構築済み開発環境 言語 → CommonLisp「CLISP」(GNU CLISP 2.49 (2010-07-07) ) ライブラリ管理 → quicklisp(version 2016-02-22) CLISP用Qtライブラリ → CommonQt GUIFrameWork → Qt4.8.7 Qt4用g++コンパイラ → MinGW ※付属のQt4デモアプリケーションの動作確認済み。 ※NTEmacs24.5で開発。slime導入済み。 ただし、最終実行・デバッグについては、slimeではなくCLISPプロンプト上で行っている。 ■直面している問題 https://common-lisp.net/project/commonqt/#id105941 ここにあるInstallationに習い、(ql:quickload :qt)を実行すると、下記のエラーが発生。 どのように解決すればよいのか分からずGoogle検索をさまよっています。 原因と解決についてご存知の方、ご教示願います。 -----ここから ;; Loaded file C:\Users\kamuycikap\.clisprc.lisp [1]> (ql:quickload :qt) To load "qt": Load 1 ASDF system: qt ; Loading "qt" *** - Error while trying to load definition for system closer-mop from pathname C:\Users\kamuycikap\quicklisp\dists\quicklisp\software\closer-mop-20170124-gi t\closer-mop.asd: MAKE-INSTANCE: illegal keyword/value pair :IF-FEATURE, :ABCL in argument list. The allowed keywords are (:NAME :VERSION :DESCRIPTION :LONG-DESCRIPTION :IN-ORDER-TO :DO-FIRST :PARENT :PATHNAME :AROUND-COMPILE :ENCODING :PROPERTIES :TYPE) The following restarts are available: SKIP :R1 skip (DEFSYSTEM CLOSER-MOP NAME ...) RETRY :R2 retry (DEFSYSTEM CLOSER-MOP NAME ...) STOP :R3 stop loading file C:\Users\kamuycikap\quicklisp\dists\quick lisp\software\closer-mop-20170124-git\closer-mop.asd REINITIALIZE-SOURCE-REGISTRY-AND-RETRY :R4 Retry finding system closer-mop after reinitializing the source-registry. ABORT :R5 Give up on "qt" ABORT :R6 Abort main loop Break 1 ASDF0[2]> :R6 [3]> -----ここまで ★★★2017/03/05 追記★★★ アドバイスいただいた内容が、Debian/Linuxでしたので、私が普段使いしているLinuxMint18でやってみました。 しかし、残念ながら下記の手順を実施したのですが、まだ解決に至っておりません。。。。 <1> gitにて、asdf3をダウンロード git clone https://gitlab.common-lisp.net/asdf/asdf.git <2> その後、ダウンロードしたフォルダにあるコマンドを実行 bash$ make-asdf.sh <3> clispを起動し、lisp関数実行 [1]> (load "./build/asdf.lisp") ;; Loading file build/asdf.lisp ... ; Renamed old ASDF package away to ASDF-2.26 ;; Loaded file build/asdf.lisp T [2]> (load "asdf.asd") ;; Loading file asdf.asd ... ;; Loaded file asdf.asd T [3]> (asdf:load-system :asdf) ...ここに沢山のワーニングが表示される ;; Loaded file /home/k/.cache/common-lisp/clisp-2.49-unix-x86/home/k/Downloads/asdf/build/asdf.fas 0 errors, 595 warnings 0 errors, 0 warnings T [4]> (print (list "asdf" (asdf:asdf-version))) ("asdf" "3.2.0.1") ("asdf" "3.2.0.1") [5]> (asdf:initialize-source-registry) [6]> (ql:quickload :qt) *** - Error while trying to load definition for system qt from pathname /home/k/quicklisp/dists/quicklisp/software/commonqt-20161208-git/qt.asd: Component :TRIVIAL-FEATURES not found The following restarts are available: RETRY :R1 Retry ASDF operation. CLEAR-CONFIGURATION-AND-RETRY :R2 Retry ASDF operation after resetting the configuration. SKIP :R3 skip (EVAL-WHEN # #) RETRY :R4 retry (EVAL-WHEN # #) STOP :R5 stop loading file /home/k/quicklisp/dists/quicklisp/software/commonqt-20161208-git/qt.asd REINITIALIZE-SOURCE-REGISTRY-AND-RETRY :R6 Retry finding system qt after reinitializing the source-registry. ABORT :R7 Give up on "qt" ABORT :R8 Abort main loop ★★★2017/03/25 追記★★★ Linux環境ではなく、Windows環境で実施。 Linuxで通った所がWindowsでは通らず・・・・ 下記の[1]で読み込んでいるasdf.asdは、asdf3のtarボールを展開して取り出したもの。 私の力量では、LinuxでもWindowsでもCommonQTを動かすことは出来なさそうです。 --- 実施コマンド [1]> (load "asdf.asd") ;; Loading file asdf.asd ... ;; Loaded file asdf.asd T [2]> (asdf:load-system :asdf) *** - Internal error: statement in file "../src/pathname.d", line 6144 has been reached!! Please see for bug reporting instructions. The following restarts are available: RETRY :R1 Retry compiling #. ACCEPT :R2 Continue, treating compiling # as having been successful. ABORT :R3 Abort main loop Break 1 [3]> :R3 0 errors, 0 warnings [4]> (print (list "asdf" (asdf:asdf-version))) ("asdf" "2.26") ("asdf" "2.26")
回答: 直接的な原因は、Closer to mopが ASDF3 を採用していて、CLISPのASDFが3でないためです。 CLISPは2010年辺りから開発が停滞していますので色々と取り残されつつあります。 CLISPであれこれするよりは、SBCL等の方が楽かもしれません。