Hatena::Groupcadr

わだばLisperになる このページをアンテナに追加 RSSフィード

2004 | 12 |
2005 | 01 | 02 | 07 | 10 | 11 |
2006 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 11 |

2008-05-30

LISP引きこもり生活 (10) SWANK環境

| 22:04 | LISP引きこもり生活 (10) SWANK環境 - わだばLisperになる を含むブックマーク はてなブックマーク - LISP引きこもり生活 (10) SWANK環境 - わだばLisperになる

当初身の回りのものを全部CLで揃える試みを綴る予定だったのですが、どんどんひよってきてしまいました。

もっとアグレッシブに行きたいのですが、なかなか難しい…。

ここ最近で変化したことといえば、SBCLでの開発環境をちょっと変更してみていました。

どういう風に変更したかというと、SLIMEはCL側でSWANKというサーバを立てて、EMACS等のクライアントを通信するという形で開発が行われるわけなのですが、SBCLのSWANKサーバを単体の実行ファイルにしてみました。

起動時に色々設定ファイルを読ませる設定を書いたりするより、すっきりするかと思い試してみているのですが、気分的にはなんとなくすっきりするような…。

あんまり役に立ちそうもないですが、なんとなく手順を書いてみます。

1. SBCLは起動時に実行する関数が指定できるので、この機能を利用して、SWANKサーバを起動させます。

(pushnew
  (lambda () (swank:create-server :port 4005 :dont-close 'T))
   sb-ext:*init-hooks*)

sb-ext:*init-hooks*に起動時に実行する関数をリストで指定します。

2. 他、SWANK関係のいつもの設定をいろいろ

(progn
  (setq sb-impl::*default-external-format* :utf-8)
  (setq swank::*coding-system* "utf-8-unix")
  ;; ...
  )

3. 普段、イメージを作成するのと同じようにしてダンプするところで、実行ファイルにするように指定します。

(sb-ext:save-lisp-and-die "/tmp/swank-sbcl" :purify 'T :executable 'T)

これでできた、/tmp/swank-sbclを実行すれば、SWANKサーバが起動します。