TL;DR
darkmatter といえば、Common Lisp のノートブック形式の環境。macOSで darkm を実行するとlibevがみつからないときがある。
LD_LIBRARY_PATH=/opt/local/lib darkm
としてやるとうまくいく。 ここで /opt/local/lib は libevのあるパス
CFFIがlibevを見付けられない場合のメッセージ例
Unhandled CFFI:LOAD-FOREIGN-LIBRARY-ERROR:
Unable to load any of the alternatives:
("libev.4.dylib" "libev.4.so" "libev.so.4" "libev.dylib" "libev.so")
libev のパス
この libev は homebrewでインストールしていれば、/usr/local/lib に macportであれば、/usr/local/lib にあるはずである。
ライブラリのパスの設定
CFFI:LOAD-FOREIGN-LIBRARY-ERROR で検索すると、~/.sbclrc (処理系がClozure CLなら ~/.ccl-init.lisp) に
(pushnew "/opt/local/lib/" cffi:*foreign-library-directories* :test #'equal)
と書いて、パスを追加すればいい旨が記載されているんだが、~/.sbclrc の時点で cffiパッケージを読み込んでいるようにしなければ、cffi:*foreign-library-directories* が undefined となってしまう。それってどうなの?
そこで ql:quickload :cffi して、cffi:*foreign-library-directories* の値をみたところ、 cffi:*foreign-library-directories* の初期値は環境変数の LD_LIBRARY_PATH からひっぱってくるもよう。
じゃあ、bashrcで設定して、 export すればいいのかと思うのだがそうではない。
macOS は El Capitan では LD_LIBRARY_PATH, DYLD_LIBRARY_PATH が環境変数にならない のです。
しかたがないので、 LD_LIBRARY_PATH=/opt/local/lib darkm として実行するとうまくいった。