Hemlock は、POSIX準拠のUnixシステム用の自由ソフトのEmacs系テキストエディタである。
Lispマシン用エディタであるZWEIや、ITS/TOPS-20用のEmacs実装の流れを汲むが、XEmacsやGNU Emacsとは異なり、Emacs LispとCとの組み合わせでの実装ではなく、Common Lispで実装され、Emacs系エディタとして機能拡張がなされてきた。
Hemlockは当初、PERQコンピューター用にSpice Lisp(後のCMU Common Lisp)で書かれた[1]。
Hemlockは、CMU Common LispのCommon Lisp開発環境として、コンパイラ、インタプリタと統合されているが、スタンドアロンのエディタとして利用することも可能である。
なお、CMU Common Lispでは、開発環境としてGNU Emacsと連携することも可能だが、より密な連携がHemlockでは可能である。しかし、エディタ拡張や編集機能等はGNU Emacsに比して少ない。
Hemlockの特徴の一つとして、Lispの関数名と対話コマンド名の分離がある。
これはオリジナルのMIT系LispマシンのエディタであるZmacsやTECO Emacs由来のより自然言語に近いスタイルを継承している。
Hemlockは、ターミナル表示、CLXライブラリを利用したX11上の表示が可能である。
Hemlockの派生:
- Clozure CLのmacOS版開発環境は、Cocoa上のHemlockのコードをベースにしたエディタを持つ。
- LispWorksのエディタは初期バージョンのHemlockをベースにしている。[2] Windows、macOS, X11/Motif、Gtk+とマルチプラットフォーム対応であり、また、LispWorksだけでなく、Liquid Common Lisp上でも稼動する。[3]
- Lucid Common Lisp の提供していたHelixエディタはHemlockをベースにしていた。
- Portable Hemlockは、様々なCommon Lispで稼動するポータブルなHemlockの派生である。[4]