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-01-10

TIのLispマシン - TI-Explorerのエミュレータ

| 15:00 | TIのLispマシン - TI-Explorerのエミュレータ - わだばLisperになる を含むブックマーク はてなブックマーク - TIのLispマシン - TI-Explorerのエミュレータ - わだばLisperになる

Lispマシンというのは、ある意味Lisp文化の頂点の一つだったんじゃないかと思うのですが、今年は、Lispマシン近辺をもう少し探索してみたいなと思い、手始めに、これまで、別のブログに書いていたLispマシン関連の記事もこのブログにカテゴリ:「Lispマシン」として纏めてみることにしました。

これまでは、MIT CADRや、INTERLISP-Dを、ちょっといじったりしてました。結構情報は古くなってしまったんですが…。

それで、今回は、TI-Explorerのエミュレータの導入をまとめてみることにしました。

TI Explorerとは

テキサスインスツルメンツも昔はLispマシンを製造していまして、その名をExplorerといいました。

これは、Greenbratt氏のLMIからライセンスを受けて製造されていたマシンということで、LMI系のLispマシンです。

MITのCADRを起源としているので共通点は非常に多いのですが、それなりに違いはあります。

このTI Explorerのエミュレータを開発して配布しているところがあるので、ありがたく使わせて頂きます。

Merokoという名前のようです。

なんか、日本のアニメのキャラから名前がとられているっぽいのですが、元ネタが分からない…。

インストール

ここでは、Ubuntu 7.10 x86_64にインストールする方法を書きます。

もともとコンパイル済みのLinux用のバイナリが同梱されているので、32bit環境ならば何もしなくても起動できるとは思います。

  • ダウンロード
$ wget http://www.unlambda.com/download/meroko/meroko-20060610.tar.gz
$ wget http://www.unlambda.com/download/meroko/X1-DISKS.tgz
  • 解凍
tar zxvf X1-DISKS.tgz
tar zxvf meroko-20060610.tar.gz

解凍するとsvnフォルダができます。この中に、ソースと実行バイナリがあります。

自分は、x86_64用にMakefileを書き換えて、コンパイルしなおしてみています。といってもCPUの指定を変更するだけです。

--- svn/Makefile        2006-06-11 23:57:03.000000000 +0900
+++ /share/sys/emu/Explorer64.emu/svn/Makefile  2007-12-22 07:49:53.000000000 +0900
@@ -15,7 +15,7 @@
 DISPLAY_OBJ = sdl.o
 endif
 
-CFLAGS= -O3 -ggdb -Wall -march=pentium3 -mfpmath=sse -mmmx -msse $(DEFINES) -DENABLE_ENET
+CFLAGS= -O3 -ggdb -Wall -mfpmath=sse -mmmx -msse -msse2 -msse3 $(DEFINES) -DENABLE_ENET
 # -DTRACELOG
 # -DDEI_TRACELOG
 # -DTRACELOG2

コンパイルすると、merokoという実行ファイルができるのでこれを直接実行します。

実行ファイルと同じディレクトリにディスクイメージを解凍してできたX1-DISKSディレクトリを移動します。デフォルトだと1階層上にMerokoというディレクトリを作成してそこに置くみたいですが、同じディレクトリに配置することにしてみます。

いじってみる

./meroko

で起動します。

  • 起動時に何やら質問されるのですが、とりあえず、D=Default。
  • ネットワーク関連で色々文句を言われるのですが、とりあえず無視。Ctrl-Zでトップレベルに抜けられます。
  • リスナーが立ち上がっている状態なので、ここに色々式を入力します、たとえば、(ed)でZmacsが起動します。
  • ホームディレクトリの作成
(fs:create-directory ";g000001")

";"がパスネームセパレータの様です。この場合、ルートディレクトリ直下にg000001というディレクトリを作成します。

  • ログイン
(login 'ユーザ名)

で、ログインします。デフォルトでは、ルート直下の同じログイン名と同じ名前のディレクトリがホームディレクトリとして利用されます。

ログイン初期化ファイルを作成する

リスナーに(ed)と打込むか、System Eでエディタが起動します。エミュレータでは、Systemは、F1にアサインされています。(E→エディタ、L→リスナー、P→Peek(PSのようなもの)、M→メーラ)

Zmacsが起動するので、自分用のログイン初期化ファイルを作成してみましょう。

ファイル名は、login-init.lispで、

Emacsと同様にC-X C-Fで作成します。

ログインされると、この中のLispの式が評価されます。

とりあえず、簡単なところで、自分は、

(tv:black-on-white) 
(ed "g000001;gazonk.del")

のようにしています。

black-on-whiteは、画面を黒地に白にする命令で、ed〜は、ログインしたら、Zmacsで、gazonk.delというファイルを開けということです。

大体こんな感じなのですが、基本的なEmacsの機能は大体あるので、色々試してみると面白いかと思います。

Lispの開発もSlimeのようにかなり対話的に行なえます。エディタ上の式を評価するには、C-Shift-E、コンパイルするには、C-Shift-Cです。画面のエコーエリアか、長い場合は、画面の上から、スルスルと結果が表示されてきます。これが結構良い感じで、SLIMEもこういう風に表示できたら良いのにな、とか思います。

マニュアルとかシステムのソースとか

膨大なマニュアルがbitsaversに保管されています。

システムコードの一部がウェブで公開されています

まとめ

以上、非常に簡単にですが、インストールからログイン位までで、自分の知っていることを書いてみました。

Lispマシンってどんな感じだったのか雰囲気位は、感じられるかと思います。

SymbolicsのLispマシンはもっと凄くて、TI Explorerより、もっと洗練されていて驚く程、高機能です。ただ、エミュレータは公開されているものの本格的に利用するには、Symbolicsのソースが必要なようです。こちらも、ちょっと起動するところまではできたので、そのうち纏めて書いてみたいと思います。

このエミュレータは重たくて、Core2位でないと使いものにならないかもしれません。また、どうやら外部とネットワークで通信もできるようなのですが、ドキュメントも少なく自分は、まだ使いこなせてません。もし、なにか情報お持ちでしたら、ツッコミ等大歓迎です!

ゲスト



トラックバック - http://cadr.g.hatena.ne.jp/g000001/20080110