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 |

2006-06-30

ITSでMACLISP (3)

| 19:01 | ITSでMACLISP (3) - わだばLisperになる を含むブックマーク はてなブックマーク - ITSでMACLISP (3) - わだばLisperになる

MACLISP環境探究の旅は続きます。

さて、MACLISPとEMACSの連携については、LEDITがとい

う支援環境が存在していたということが分かり、少しづ

つではありますが、ITSのMACLISPの開発環境がどんなも

のだったのかが見えて来た気がします。

それで、MACLISP関係についてITSのディレクトリを探索

してみていると、FASLファイルが沢山あるわけなのです

が、これは一体どうやって作成するんだろうなというの

が次なる謎。

FASLファイルとは、FAST LOADの略らしく、コンパイル

されたLispプログラムのファイルの名前で、これを作成

するには、当然ながらコンパイラが必要になると。

とりあえず、MACLISPを起動して、(compile foo)とかし

ても、

(compile foo)
;COMPILE UNDEFINED FUNCTION OBJECT

;BKPT UNDF-FNCTN

となり行き止まり。

コンパイラがなければ、FASLファイルなんかできる筈が

ないので、絶対どっかにあるだろうと思って探ってみた

ら、LISP;-READ- -THIS-ファイルに

Directories with MacLISP relevance are:
	LISP;	-- FASL files
	LSPDMP;	-- Dump files
	L;	-- MIDAS sources for main lisp file, and for others
 	COMLAP;	-- COMpiler (with FASLAP) and LAP assembler
	LSPSRC; -- Various auxillary out-of-core files written in lisp
	NILCOM;	-- More LSPSRC.  Mostly lisp macros, etc.
	LSPMAI;	-- Bug mail and other notices.
	LISP20;	-- Stuff for 20X MacLisp

と記載されていたので、COMLAP;ディレクトリを探って

みると、COMPLR 936を発見。

多分これがコンパイラだと思うので、これをロードして

みることに。

しかし上手く行かないので、COMLAPディレクトリを探索

してみると、CCLOAD 193というファイルがあって、

;;;   ***** Maclisp ****** CCLOAD - Loader for COMPLR **************

という記載があるので、これをロードするのが筋なのか

と、CCLOADをロード。

大量に依存しているFASLファイルがみつかんないと文句

を言われつつ、問題になってるファイルを手動でロード

したり、変数に適当にnilを代入したりして、とりあえ

Initializing
Total Time = 39.5 secs out of 407.8
Dumping LSPDMP;CL.DMP 1137

というところまで辿り着いたけれども、それでコンパイ

ラが使えるようにもなってはいない様子。そして、何故

ダンプして終了してるんだと。

とりあえず謎だらけなので、MACLISPがちゃんと稼働し

てるサイトを参考にしてみることに。

ITSのサイトは、MACLISPウェブサーバとか立ってるので、

あんまり負荷を掛けたら迷惑かなということで、MS創設

者のポール・アレンが主催するサイトであるPDP Planet

のTOPS-20(TOAD-1)の環境をちょっと覗いてみる。

そうそう、その前になぜポール・アレンが、こんなレト

ロコンピュータのサイトを主催したりしてるのかという

と、MS草創期にビル・ゲイツとポール・アレンがALTHEA

用のBASICを書き直した時に使ったりしてたのが、ハー

バード大学計算機センターにあったDECのPDP-10なわけ

ですよ。

で、このBASICがMSの大元になっているわけなので、きっ

とアレンさんはPDP-10に思い入れがあり、かつとんでも

ない大金持ちなので惜しげもなくお金を投入してくれて

るんでしょう。PDP-10の実機を常時動かして、インター

ネットに接続できるように管理するコストは結構凄い金

額だと思います。ありがたや。

申請すれば、ここのマシンのアカウントが貰えるので、

申請してみましょう。いつも大体自分一人しかログイン

してないので、みつけたら声でも掛けてみてください。

閑話休題、全部ひまばなしだけど。

それで、このサイトでは、MACLISPmaclispとして実行

できて<maclisp>ディレクトリに本体があるようなので、

complrを探してみると、COMPLR.EXE.1があった。

EXEということは、COMPLRはもしかして単体で実行でき

る形式になるってことかしらん(TOPS-20の実行形式の拡

張子は、EXEでDOSは、TOPS-20から沢山影響を受けてい

る)、と思い公開ITSサイトでも確認してみたところ、

SYS;TS COMPLRとかがあって、LSPDMP;CL.DMPにリンクし

ているではないか。

なるほど! 自分はコンパイラを作る作業をしていたのか

ということで、LSPDMP;CL.DMPをSYS;TS COMPLRにリンク

してみて実行し、適当なファイルをコンパイルすると、

FASLファイル生成完了。

なるほど! これで、FASLファイルも作れるようになった

ぞと。

そして探索は続く。