clisp で cl-smtp が使えない、sbcl で ironclad がコンパイルできない
cl-smtp
どういうわけか clisp で test がコンパイルできない。
define-cl-smtp-test
というマクロが実行できない。正確にはその中で rfc2045-q-encode-string-to-stream が使えない。これは export こそされていないが cl-smtp 内の関数。たぶん、clisp の package が順序悪く?でもなっているのだろう。ほかのパッケージは大抵 test を別パッケージにしているからね。そうすべきなんだと思う。
ってことでコメントアウト。
format がおかしい
clisp の format がおかしい。(format t "X-Mailer:~a" (format nil "~a~%~a" (lisp-implementation-type) (lisp-implementation-version)))
みたいにすると余計な改行を入れる。sbcl では起きない
X-Mailer: CLISP 2.49.60+ (2017-06-25) (built on lgw01-amd64-012.buildd [127.0.1.1]) NIL
このおかげでヘッダーが壊れてしまう。適当に修正。postfix 経由でメール発信できたから良し(ベネ)とする。sbcl ではきれいに動くから良しとする。
sbcl で ironclad がコンパイルできない
理由は不明。sbcl の内部の問題と思われる。1.4.10 まではうまくコンパイルできる。現時点の、最新の 1.5.0 でもだめだね。も~。
そうか lack を使うのか、、、
clack をつかっていて clack は単なる引き渡しルーチン(アダプタ?)であることが分かった。lack の builder というのをつかうのね。middleware というものが定義されていて、実用的な?ものがそろってそう。名前からの憶測だけど。誰も語っていないのでソースを読んだ人しかわからないだろうな。
- Lack.Middleware.Accesslog
- Lack.Middleware.Auth.Basic
- Lack.Middleware.Backtrace
- Lack.Middleware.Csrf
- Lack.Middleware.Mount
- Lack.Middleware.Session
- Lack.Middleware.Static
ここが比較的わかりやすかった。深堀を(私が)読みこなせてない。 diary.wshito.com