新千葉 ガーベージ・コレクション

FPGA マガジンやインターフェースで書けなかったこと等をちょぼちょぼ書いてます。@ryos36

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