#:g1: hemlockの紹介

Posted 2014-01-05 15:00:00 GMT

(LISP Library 365参加エントリ)

 LISP Library 365 の6日目です。

hemlockとはなにか

 hemlockは、ライブラリという訳ではなく、Emacs系のエディタです。
hemlockの歴史は古く、1980年位に開始されたSpice Projectでは、システムの標準のエディタでした。
HemlockはLispで書かれているのですが、同じくSpice Projectで開発されたSpice Lispという処理系で、これが後のCommon Lispの参照実装的なものにもなり、また、Spice Lispのマニュアルを下敷きにしてCLtLが作成されたりもしました。
また、Spice Lispは、CMUCLの直接の祖先でもあり、CMUCLからSBCLがフォークしています。

パッケージ情報

パッケージ名hemlock
Quicklisp
参考サイトCLiki: GettingStartedWithHemlock
CLiKihttp://cliki.net/hemlock
Quickdocshttp://quickdocs.org/hemlock

インストール方法

(ql:quickload :hemlock)
他、適宜
(ql:quickload :mcclim)
(ql:quickload :mcclim-freetype)
など。
※mcclim-freetypeは、quicklisp/dists/quicklisp/software/mcclim-20130813-cvs/Experimental/freetype/mcclim-freetype.asd あたりに存在しますのでloadするかなにかします。

試してみる

 どんな関数があるかは、Quickdocsで確認できますが、ライブラリではないので微妙ではあります。

 マニュアルは、

にあります。

 どうも最近メンテナンスはされていない様子ですが、手元ではclim版だと起動したのでスクリーンショットを貼っておきます。
hemlock-pcl
10年位前にCMUCLに付属してきたものをターミナルで動かした記憶があるのですが、hemlock.ttyというパッケージがあるものの上手く動きませんでした。
微妙に動かないところがあるのですが、とりあえず下記のようなコードで起動できると思います。

(defun edit-lisp (file)
  (hemlock-interface:read-buffer-file file 
                                      hemlock-interface::*current-buffer*)
  (catch 'hi::hemlock-exit
    (clim:run-frame-top-level
     (clim:make-application-frame 'clim-hemlock::hemlock))))

(edit-lisp "foo.lisp")

hemlockの紹介/関連記事等

まとめ

 今回は、hemlockを紹介してみました。
由緒正しきエディタですが、現状ではあまりメンテナンスされておらず、ASCII決め打ちだったりするみたいなので日本語入力も厳しい状況です。
色々いじって使えるように仕上げるのもまた一興ではないでしょうか。
ちなみに、Spice Projectで利用されたPERQ上の環境は、Xerox AltoのようなGUI環境だったようで、MIT系のLispマシンと大体同じような環境を実現していたものだったようです。
CLtL1等では文字のフォント属性が定義されていたりしましたが、当時は、Common LispもこのようなGUIワークステーション上で稼動することをかなり意識したものだったのかもしれません。

comments powered by Disqus