2009年9月7日月曜日

eli の使いこなし [複数listener]


  • fi:common-lisp で REPL を起動済みなことが前提。
  • M-x fi:open-lisp-listener で対話的に新しい listener を起動できる。このときバッファ名は、*lisp-listener* になる。
  • M-x fi:open-lisp-listener を使ってさらに listener を起動するのはやめたほうがよい。この方法の場合、事前に作成した listener のバッファ名を *lisp-listener* 以外に変更しておいて、M-x fi:open-lisp-listener を実施することになるが、このバッファ名の変更が、Common Lisp に伝わらないからだ。

  • 2つ以上新規に listener を起動する場合は、対話的ではなく、

    (fi:open-lisp-listener -1 "*my-lisp-listener*")

    などを評価する方がよい。-1 は buffer-number という引数だが、Gnu Emacs 22 の Info では記述されていない。負数を設定すると自動的に空き番号を使うとのことなので、負数運用がいいのかもしれない。
  • fi:open-lisp-listener で起動した REPL はfi:inferior-common-lisp-mode ではなく、fi:lisp-listener-mode である。

  • さて、listener は プロセスとどういう関係があるのかというと、まず listener を増やしても、OS上の alisp のプロセスは増えない。Common Lisp 内のスレッドが増える。
  • listener を終了するときは、:kill で Common Lisp の内部スレッドを停止する。
  • どの listener においても、:exit すると、全ての listener というか Lisp 本体が停止してしまう。


時間があるときに、整理しながら逆引きCommon Lispに書こう。
こつこつ。

0 件のコメント: