@kyanny's blog

世界に対して侵略は成功しないということを示す義務がある。もはや誰かが決断しなければならない - マーガレット・サッチャー

はじめての asdf-install (あまりうまくいってない)

Common Lisp 界における CPAN 的なものらしい ASDF というのを試してみる。

参考: macbookでsbcl+asdf(asdf-install)

というかここの通りにやっただけ。

; SLIME 2010-05-18
CL-USER> (require :asdf)
NIL
CL-USER> (require :asdf-install)
("ASDF-INSTALL")
CL-USER> (asdf-install:install 'cl-ppcre)
Install where?
1) System-wide install: 
   System in /opt/local/lib/sbcl/site-systems/
   Files in /opt/local/lib/sbcl/site/ 
2) Personal installation: 
   System in /Users/kyanny/.sbcl/systems/
   Files in /Users/kyanny/.sbcl/site/ 
 --> 2
Downloading 157665 bytes from http://weitz.de/files/cl-ppcre.tar.gz ...
Installing /Users/kyanny/CL-PPCRE.asdf-install-tmp in /Users/kyanny/.sbcl/site/,/Users/kyanny/.sbcl/systems/

(長いので略)

; /Users/kyanny/.sbcl/site/cl-unicode-0.1.1/alias.fasl written
; compilation finished in 0:00:00.349
NIL
CL-USER> 

毎度 GPG チェックで止まる。回避方法は CLiki: ASDF-Install and GPG に書いてある。しかし $HOME/.asdf-install に追記しても http://common-lisp.net/keyring.asc を落としてきて gpg --import してもダメでやっぱり GPG どーすんのと聞かれてしまう。まぁ全部 [0] 押してりゃそのうち終わる。 Mac OSX Leopard だと gpg は入ってないので sudo port install gnupg で。 gnupg12 とか gnupg2 とかいろいろあるけどよくわからん。

たぶん依存してるパッケージも入れてるみたいで何度か止まるが都度 [0] か [1] を押して進める感じで。そんで終わったらだいたいオーケーだと思う。

実際に使う方法がまた参考ページそのままだけど、

* (asdf:operate 'asdf:load-op 'cl-ppcre)

NIL
* (defun including-tax (string)
  (cl-ppcre:regex-replace-all
   "\\d+" string
   (lambda (num) (format nil "~a" (floor (* (parse-integer num) 1.05))))
   :simple-calls t))

INCLUDING-TAX
* (including-tax "ダイコン150円、ハクサイ120円、ジャガイモ30円")

"ダイコン157円、ハクサイ125円、ジャガイモ31円"
T

これを写経したらちゃんと動いた。

しかし自分でみつけてきた cl-growl というパッケージを同様にしてインストールして使ってみようとしたら実行できなかった。配布元ページの例の通りにやってるつもりなんだがなぁ。

(asdf:oos 'asdf:load-op 'cl-growl)

これでなんかエラー?になってしまうっぽい。うーむ。なんか初めて CPAN を使った頃のような気持ち。自分の周囲に情報がなさ過ぎて何をどうしたらいいかわからない感が。しかし CPAN に慣れていくとともに情報のありかがわかってきたのと同様に、たぶんこれも俺がまだ情報のありかを見つけられていないだけで、あるところにはあるのだろうなぁ。そしてありかに気づいた頃にはもう十分慣れているという。