Think GNU 第 3 回

□ボストン編□

CUJJ#7/'90.4.18 発売号掲載

0. はじめに

 1990 ワシントン USENIX の帰りにボストンに寄ってきた。その目的は 2 つある。1 つは gdb(GNU デバッガ) の修正について gdb の保守担当者と打ち合わせをすること、もう 1 つはプロジェクト GNU の近況伺いである。その模様と、以前ボストンに 1 年いた時に十分な思い出を作ってこなかったのでその検証も兼ね (というよりは単に撮り忘れた写真を撮ろうと思ったわけであるが)、報告しようと思う。

 今月のニュースは GNU Emacs 用の拡張版 Epoch について紹介する。

1. ボストンという街とその周辺

 MIT(Massachusetts Institute of Technology、マサチューセッツ工科大学) があり、プロジェクト GNU の本拠地がある所が、米国はマサチューセッツ州ケンブリッジである。一般的にボストンというと、ダウンタウンがある市街地のみを指す (つまり、MIT があるケンブリッジやハーバード大学がある地域は含まない)。「グレート・ボストン」というとダウンタウンやケンブリッジなどを含んだ広い領域を指す。筆者らが使うボストンは、後者の「グレート・ボストン」という広い領域の方を指している。

 ボストンの国際空港は「ローガン国際空港」という。この空港の真中に比較的高い建物があるのが特徴である。盗難が多いせいか、荷物受け取り場所の周りを柵で囲っている。その柵の出入口は 1 つで、荷物を持って出る際に必ず荷物のタグを厳しくチェックされる。この空港はダウンタウンから非常に近い。空港内の無料周遊バスは地下鉄駅に接続しているので、そのバスに乗って地下鉄に乗り換えればダウンタウンまですぐに行くことができる。ただし乗り換えは結構大変で、初めて訪れた場合や荷物が多い場合は車の方が楽だろう。

 地下鉄は古いものもあれば比較的新しいものまであるが、全体的な印象は古く、なんとなくほこりっぽいという感じである。ボストニアン (ボストン人) の自慢の 1 つに、米国内で一番最初にできた地下鉄だという「グリーン・ライン」*1 がある。これは小型のバスが数輌連結されたもので、とても地下鉄とは言い難い代物である。その車輌はちょうど都電のイメージに似ている。路面電車がたまたま地下を走っているという雰囲気で、半端でないカーブも多く、信号待ちも大変多い。だからアルコールが入った帰りにでも乗るとてきめんに酔う。それでなくても、筆者らは (バスを含めて) ボストンでは酔いやすかった。

 空港から、空港内バス⇨地下鉄ブルー・ライン⇨オレンジ・ライン⇨レッド・ラインと乗り継いで MIT があるケンドール (Kendall) という駅で降りる。今回の宿は MIT に一番近いケンブリッジ・マリオット・ホテルである。通りを挟んでホテルの反対側に MIT Press という出版社がある。そこには事務所だけでなく販売店もある。ここでは時々、専門書 (もちろん MIT Press では専門書しか扱っていないが) の安売りをする。ホテルのすぐ隣りは MIT Coop(学生生協) で、夏になると観光客でいっぱいになる。観光ツアー・コースにでも入っているのだろうか ? MIT Coop の裏にはちょっとしたファースト・フードの店が連なっている。

 ボストンについて誤認をしていた点があった。ダウンタウン・ボストンの隣りの地区 (ケンブリッジ) に MIT があるとは思っていなかった。MIT とハーバード大学が近いことは知っていたが。ボストン大学はもちろんボストンにある。マサチューセッツ州には他にもいくつか大学がある。ノース・イースタン大学、マサチューセッツ大学、ボストン大学である。その中のボストン大学のバーリィ・シャインと以前メールのやりとりをしたことがある。ちなみに彼は Franz Lisp *2 の最後のバージョンを Sun-3 で動作するようにした人で、ボストンに行く前に彼からその diff(差分ファイル) を電子メールで入手し Sun-3 で動くことを確認したこともあった。◆1

 ダウンタウン・ボストンとケンブリッジはチャールズ川で分離されている。ボストンのダウンタウン (Red Sox 球団のホームグラウンドがあることで有名なフェンウェイ) に住んでいた時には天気が良ければ、MIT に一番近い橋を歩いて渡った。日中はジョギングをしている人が多い。さすがにボストン・マラソンで有名なだけあるという印象だった。

 このチャールズ川を挟んで向こう側がボストンのダウンタウンで、ハンコック・ビルやプレデンシャル・ビルなどの高い建物が並ぶ。プレデンシャルとは保険会社の名前で、AI ラボのあるテック・スクエア (Tech.Sq.) の建物群もこの会社の所有のようである。春 (といってもボストンでの訪れは 6 月ごろだが) になると、チャールズ川で MIT やスタンフォード大学のレガッタ・クラブやヨット・クラブなどの練習が活発に始まる。

 筆者らはいつもこのチャールズ川にかかっている大きな橋を渡って MIT へ出勤していた。橋を渡り切るのに徒歩で約 15 分かかるほど非常に大きな川である。おそらくボストン・マラソンのコースになっていたのではないかと思う。7 月の建国記念日は日中からお祭りで、夜になると花火が上がる。この橋から見物できればベストなのだが、ボストン中の人間がこのチャールズ川沿いに集まってくるので橋の耐久性と安全のために花火が打ち上がっている間は橋の両端は閉鎖される。ふだんならこの橋を通るバスもこの日ばかりは大きく迂回する。同じ 75 セントなら、これに乗ってみるのもなかなか面白い。

 この橋には「ハーバード橋」という名前が付いている。MIT に近い橋なので「MIT 橋」という名前が付いていてもよさそうなのだが、橋が大きな負荷に耐えられないほど古いのを嫌って MIT の方で遠慮したい、と言ったとか言わないとか。橋の両端に続くマサチューセッツ・アヴェニュー(ボストンの幹線道路、通称マスアヴ) は片側 2 車線道路なのだが、橋の上に来ると 1 車線になってしまう。ようやくその橋の修復拡張工事が 1989 年の後半から始まった。完成まで、2 年とか 2 年半かかるといわれていたが、完成した暁には「MIT 橋」という名前に変更になるのだろうか ? :-)

 MIT への最寄りの駅は「レッド・ライン」のケンドール駅である。ホームの壁には MIT とその周辺の歴史がタイル貼りで刻まれ、上り線と下り線の間には 3 種類の「鳴り物」が設置されている。列車待ちの間はこれで時間をつぶすことができる。単なる金属の板をゆらゆらゆすり、のこぎりをびよんびよん曲げたり延ばしたりするときのような音を出すものが 1 つ、ホームの両端にあるバー・タイプのものが 2 種類ある。後者の 1 つは、バーを何回も押して金属の輪を鳴らす金づちをカチカチと持ち上げる持久力依存型、もう 1 つのバーはタイミングよく押したり引いたりして、長短の金属棒をお互いにぶつかり合わせてきれいな音色を奏でるものである。

 ボストンの天候はというと、日本に比べてとても乾燥していて、非常に天候が変わりやすく、気温の高低もまた非常に差がある。最も温度変化が激しかったのは、6 月と 10 月である。6 月になればさすがに暖かくはなったが、月末に少し寒くなって結局セーターが必要だったことがある。それから 2〜3 日後には 30゜C を越す夏日になってしまって大変驚いた。またこんな日もあった。晩秋 (10〜11 月) の日中が 10゜C だったのが夜になると 15゜C に上昇し、なんだか気持ちが悪かった。一番注意が必要なのは午後のちょっとした外出である。それほど厚着をしないで出かけてしまうと、日も暮れて帰る時にはすっかり冷えきってしまってその気温の変化の激しさに何回となく驚かされた。こういった経験から少し厚着をして、あるいは上着をかかえて出歩くようになった。夏は非常に暑い。何回も眠れぬ夜を経験した。

 ボストンでの食事の 1 つに入れて欲しいのがチャイナタウンのランチである。最寄りの駅は地下鉄「レッド・ライン」のワシントン駅である。いつも立ち寄るおいしい中華レストランがある。朝の 9 時ごろから午後 3 時まで Dim Sum という飲茶や点心を味わうことができる。この店はいつも地元の中国人でごったがえしていて、きれいとは言いかねるが実に美味しい。というのは、中国ではおいしいものを食べた後はちらかっているというが、まさにその通りの店である。夢中になるほどおいしかったという意味がある、ということを聞いたことがある。

 ここを最初に教えてくれたのが Richard である。

rms「中華料理に興味ある ? いいところ知ってるんだけど」

我々「あるよ」

rms「車持ってる ?」

我々「ない」

という会話の後、rms の MIT の友人 John(もちろん車を持っている) を誘ってその店に行ったのが最初である。チャイニーズ・フード派の彼はよくここに来ている。ただ、Richard は車を持っていないので、車で通っているその友人の都合が優先される。メニューはというと、大中小のせいろなどが 20 種類ぐらい出てきて、おばさんがワゴンで回って見せてくれる。英語はあまり通じないようである。始終混んでいる店のように見えても、おばさん自身は退屈なのか、店が混んでいても急がない性格なのか、しまいには筆者らの好みのせいろの中国語講座が始まってしまう。つまり、せいろの中のものの中国語の発音を聞いて、まねるわけである。

 お勧めは小龍包の餃子版と蝦蒸し餃子。筆者らは多い時で週 3 回も通うほどであったが、前者の餃子に出会えたのはわずか 3 回しかないほどの人気メニューである。大きな餃子の中からジュワーっと美味しい汁が……、格別である。漫画の「美味しんぼ」にも同じ記述があった。後者の蝦蒸し餃子は、皮に弾力があって丈夫なものにもかかわらず赤くなった大きな蝦の身が透けて見えるほど非常に薄いのに驚かされる。中国製の酢醤油に針しょうがを合わせたタレによく合う。揚げ物も多いのでたくさんは食べきれないと思ってしまうが、どかんと 1 ポット置いてくれる中国茶と一緒なら結構入ってしまう。この中国茶が空になったら、フタをあけておくとお茶を入れてきてくれる。どうもこれが中国流らしい。もちろん無料である。

 ちなみに店にいつも流れている BGM はどれも流行のヒット曲だが、全て中国語に吹き替えられていた。歩けないほど食べても 2 人分でチップ込み 15 ドルぐらいというのも嬉しい。なお、支払いはたいていの店は TC(旅行小切手) やクレジット・カードを使えるのだが、ここは現金のみである。

 米国全土がそうかもしれないが、ボストンでは飲み水として供給している水道水に匂いがあって筆者らには使えなかった (カリフォルニアでもそうだったが、ボストンほどひどくはないようだ)。1 ガロン (3.784 リットル) の水タンクを 4 つ (1 週間分として) 買ってくる。初めてボストンに住んで、最初の 1 週間は台所で水を使う時やシャワーを浴びる時に、この水道水の匂いが鼻についてしかたがなかった。そこで、TV の宣伝を鵜のみにして買ってきた石鹸 (Spring) を使ってなんとか匂いを中和させた。米国の石鹸の香りが非常にきついのは、この水が臭いせいかと非常に納得したものである。その後訪れた時は水の匂いはそれほど鼻につかなかった。もう鼻がマヒしてしまったのか ?

 水が匂うと感じるのは筆者らに限ったわけではないらしく、職場や学校には「匂わない」飲料水 (Poland Spring) が特別に設置されている所が多かった (カリフォルニアの出張先にもあった)。給水器の上に 1 瓶当たり数ガロンも入っている大きなタンクが逆さにのっている。MIT の AI ラボでも各階に同様のものがある。2〜3 回ほど空タンクに出くわしてしまったので入れ換えたが、なかなか重くて 2 人がかりで取り替えるのがやっとである。数ガロンの水タンクの蓋を開け、手でタンクの口を押さえたままタンクをひっくり返し、給水器の上にのせる、という手順は簡単である。しかし、なにぶんにもタンクが重いから給水器の上でタンクをひっくり返す直前に相棒の手を引っ込めてもらわないと手を挟んでしまうし、タイミングが早過ぎる (いつもそうであったが) と水を床にこぼしてしまう。

 さて、この水の話で「ガロン」という単位が出てきた。日本の日常生活ではあまり馴染みのない単位である。1 ガロンは何リットルかを調べるには辞書を紐解けばよいわけだが、資源節約を目指すには紙類をなるべく使わないようにする。Unix を使って原稿を入力している場合にどうやって調べたかを参考までに示す。

 units という換算プログラムが付いている。最初は「unit というプログラムだったかな ?」と思って次のコマンドで調べた。

% man -k unit

そうすると、オンライン・マニュアルのエントリの中から unit という単語を含むコマンドを全て抜き出してくれる。その結果、unit というコマンドではなく units であるということがわかる。

 次に、この units のオンライン・マニュアルを読んで、「まず、既にある単位を入力して、次に変換したい単位を与える」という使い方がわかる。

 次の問題は「ガロン」というスペルである。誰でもが簡単に予想できる構成要素は、この単語には g、l、n が含まれるということであろう。辞書文字列検索プログラム look とパターン検索プログラム grep を使えばスペルを探すことができる。

% look g | grep 'l.*o.*n'

このコマンドの意味は、「辞書の中に入っている単語から g で始まる文字列を抜き出して、さらにその中から l、o、n を含む文字を探して出力せよ」である。これで、既にある単位を英語で入力できるようになった。次に変換したい単位、つまり「リットル」のスペルを調べなければならない。

 基本に戻って units のオンライン・マニュアルをもう 1 度詳細に読むと、実は変換できる単位を登録しているファイル (/usr/lib/units) の存在がわかる。その中から「ガロン」と「リットル」を探せばいい。そして gallon と liter という単語が得られる。このようにして得た結果は次のようになる。

% units
464 units;3569 bytes

you have:gallon
you want:liter
     *3.785412e+00
      /2.641721e-01

ガロンからリットル値を得るには 3.785412 を掛けるか、あるいは 0.2641721 で割ればいいということになる。めでたしめでたし。 :-)

2.MIT キャンパスとプロジェクト GNU

 MIT の正面の建物を入ってすぐ上を見上げると両脇に学内のテレビがある。各種セミナー案内や講義場所の変更、イベントの案内などが流れている。この正面が一番 MIT らしいので、絵はがきやシンボル・マークによく使われる。MIT のたいていの建物には「ニュートン」というふうに有名な科学者の名前が壁面に刻まれている。これは、ニックネームで、「NE 43」といった正式名はちゃんとある。

 さらに場所をわかりやすくするために、それぞれの建物に番号がついている。ちなみに AI ラボには「NE 43」という番号がついており、MIT キャンパス全体の中の北西の方角に建てられていることがわかる。

 さて、MIT と言えば、ここ数年のネットワーク時代における話題の中心はこのメディア・ラボに移ってきた。以前はアテナ・プロジェクトで、もっと昔は AI ラボであった。◆2,3

2-1. メディア・ラボ

 MIT の名物となっている建物はメディア・ラボである。日本では、MIT の中でこの研究所が一番有名であろう。1 階には外から見えるディスプレイがあるが、何を意味するのかわからない。他にも複数のギャラリーがあり、日中は自由に出入りできる。外観が白のタイル張り風で全窓スモーク・ガラスであるところから、MIT の学生の間ではこの建物を 「トイレット」と呼んでいる。

 1 階を除いてはメディア・ラボ以外の人間は入れないことになっている。エレベータを使って他の階に行くのだが、テンキーに暗唱番号を与えないと動かない仕掛けになっている。

 MIT の学生であってもメディア・ラボの人間でなければ入れないようである (だから、後述のような「メディア・ラボ見学コース」のような企画が持ち上がったのではないか ?)。「我々も見学させてね」と (メディア・ラボに友達がいる)AI ラボの人にお願いしていたが、そういった背景もあり結局実現しなかった。

 企業などには見学コースが用意されており、1 ツアー1,500 ドル前後だそうである。最近の AI ラボ関係者を対象に組まれた「メディア・ラボ・ツアー」の知らせはこうだった。



 ちなみに GNU メンバーからは rms の他に、jla や bfox、bob も参加者名簿に登録していた。筆者らもボストンにいれば是非参加したいコースであった。

2-2.AI ラボ

 AI ラボと LCS(コンピュータ科学研究所) が入っている建物のあるブロックはテック・スクエアと呼ばれている 。建物の看板は No.545 となっているこのビルに MIT の AI ラボや LCS、プロジェクト GNU の作業部屋が入っている。このビルはビジネス時間帯以外は鍵がないと部屋まで到達できないようになっている。

 1 人 1 個ずつ鍵の申請書に担当の教授からサインをもらい、鍵を管理している秘書から受け取る。この鍵はビジネス時間帯以外にエレベータ・ホールから各階の研究フロアに入る時に必要になる。たいていのフロアは洗面所がエレベータ・ホールにある。そのため時間外に MIT で作業する時は鍵を持って洗面所に行かないと、自分の作業場所に戻れないはめになる。そういった学生は 1 日に 1 人はいて、エレベータ・ホールでドアを一生懸命叩いているのである。研究フロアに入っても、研究員はさらに自分の部屋の中で作業をしているので、たまたま通りがかった人が開けてくれることもある。

 いくら鍵をもらえたからといってもスムーズに目的とする階まで行けない場合がある。1 階の守衛コーナーのチェックポイントを無事通過する必要がある。昼と夜と曜日によって守衛の顔が変わり、また配属もよく変わるようである。守衛と顔見知りになることで起きる犯罪を恐れてかのようである。このビルに通勤し始めて間もないころ、ここから HP マシンなどが大量に盗まれたからかもしれない。もちろん土、日には MIT 以外の人間は、守衛コーナーで名前を書いて ID を提示しなければならない。

 たとえ鍵と ID カードがあっても、守衛の記憶にない顔はチェックされ、行き先の部屋へ電話で確認される。当時の筆者らは、研究室周りのフロアに設置されたマシンで作業をしていた (当時の GNU 作業の中心は 7 階の AI ラボ内の往来であった) ので、rms が部屋にいないときは、守衛コーナーから廊下の電話にかけてもらい、付近の GNU メンバーにとりついでもらうことが何回かあった。ここで通用する ID カードとは、LCS か AI ラボ関係者であることを証明したものである。他の学部生も同様に質問されていることが多い。まるでゲーム・ソフトさながらの光景である。

 鍵といえば、マサチューセッツ州では合い鍵を作ることが法的に禁じられている。オリジナルの鍵にはその旨が刻まれている。しかし、家族が 2 人ならばもう 1 つは自分でコピーするように言うアパートの家主もいた。通常、アパートでは 3 種類の鍵が必要で、ちゃんとしたアパートなら事前に必要個数を渡してくれる。建物に入るときの最初のドア用、郵便受け用、そして自分の部屋に入るためのドアの鍵の 3 種類である。

 AI ラボの時代経過を追ってみることにする。1950 年代終わりから、MIT は Lisp 文化の発祥の地として有名であった。そのころ、MIT にいたマッカーシという人が設計試作したものが Lisp であり、自分自身の Lisp 処理系について (1959 年だったと思う) 記述した本が現在でも店頭に並んでいる (筆者の大学の教科書としても使われた)。

 さらに、1960 年代の MULTICS という OS のプロジェクトでも MIT は名をあげた。この MULTICS 中のいくつかのアイデアが Unix に採り入れられ、また、Unix は MULTICS という OS を反面教師として開発された OS でもある。Unix という名前も MULTICS の MULT に引っかけて UNI にしたものが Unix になった。

 1970 年代の専用マシンが流行していたころ、AI ラボでは Lisp マシンが開発され、さらに Lisp チップが開発されたころの AI ラボは有名であった。筆者は「bit」という雑誌の紹介記事で MIT を知った。その時に感動したのは Lisp チップの設計も Lisp で行なった、という話である。余談として、金曜日の夕方になるとビール・パーティが開催される、という記述も印象に残っている。

 MIT に 1 年いて、やはり毎週金曜日にビール・パーティが開かれているのをたびたび見かけた。ただ単に集まっている場合もある。筆者らも 1 度だけこのパーティに参加したことがある。そのときは、ちゃんと名目がついていた。AI ラボの人間が交通事故で重体になり入院している。その人のガール・フレンドが日本人で、彼を励ますために千羽鶴を折ってあげたいと言っている。それでパーティを開いて皆で折ってあげましょうよ、という会であった。ところが思うようになかなか折れないので講師として招かれたのが我々である。皆に折りかたを教えて、冷えている缶ビール (一律 1 ドルであった) を飲んだ。筆者らのうちの 1 人は日本人の器用さを示そうと 1 枚の紙から 4 つ、8 つ繋がった鶴を折る技を披露してうけていた。それに対して何でも目立ちたがり屋の AI ラボの住人が 1 ドル紙幣を取り出して、それで折ったりしていた。ちなみに重体の彼は、筆者らの帰国時期が迫ってきたところで退院できて、ガール・フレンドと MIT にやって来ていた。

 MIT のメディア・ラボはだいぶ日本にも紹介されているし、日本から研究資金も出ているようである。クレジット・カードに付いている光って立体的に見える部分はホログラフの応用で、メディア・ラボが発祥の地である。メディア・ラボを紹介した本の日本語訳も出ているので、興味のある人はそれを参照されたい。

 それに比べて、アテナ・プロジェクト (athena project、ちなみに athena はアスィ [th]ーナと発音されるが) は、メディア・ラボほど目立ってはいないが、筆者らへの影響はこちらの方が大きいかもしれない。このプロジェクトの立ち上がりは、もとは AI ラボから派生したもので、現在では独立した研究を行なっている。X Window System がここで開発・拡張されている。このプロジェクトの入っている建物は、メディア・ラボや AI ラボとは別の建物である。2 年ほど前にアテナ・プロジェクトではどのエディタを標準として使おうか、と話題になったことがある。その時の候補に上がったのが 2 つの Emacs(Unipress Emacs と GNU Emacs) で結局 GNU Emacs を採用することになった。

2-3. LCS とプロジェクト GNU

 各階のエレベータ・ホールには、各種イベントやセミナーなどを掲示するコルク板の脇に、その階に部屋を持つ教授の名前とその部屋番号が刻まれている 。

 4 階以下は LCS の研究フロアで、その 4 階に FSF の役員である Halord Abelson 教授 (ログイン名は hal) と Sussman 教授 (ログイン名は gjs) の部屋があり、Sussman 教授の部屋⇨秘書 (Sussman 教授と Abelson 教授の両方を担当している男性) の部屋⇨Abelson 教授の部屋と並んでいる。

 Sussman 教授の部屋の入口の外壁には、自身が設計した Lisp(Scheme) チップのマスク・パターンの写真が貼られている 。この写真の中に設計者の名前や MIT の校章が入っている。

 Gerald J. Sussman 教授は、Gay L. Steele Jr. と共に 1975 年に Scheme という Lisp の方言を作成した人である。Scheme をベースにして研究を続けている。Scheme の言語を作成した後は Scheme を直接実行する LSI チップを作成する研究を Halord Abelson 教授や rms らと行なった。チップは 2 種類あり、それらの名前は Scheme 79 と Scheme 81 である。

 現在、研究中のテーマの 1 つに Scheme コンパイラがある。今回筆者が訪問したときは、Scheme コンパイラのオブジェクトの性能に関して話を伺った。それによると Motorola 社の 68000 シリーズを使用したワークステーション上で、浮動小数点を扱う Scheme プログラムをコンパイルしたオブジェクトの性能が、システムに付属している C コンパイラで同等の C プログラムをコンパイルしたオブジェクトと同程度の性能が得られたとのこと。「GNU C コンパイラと比較した場合は ?」と尋ねたところ、GNU C コンパイラよりは 20〜30% オブジェクトの性能が劣るそうである。現在、別のターゲット・マシンとして HP の RISC マシンがあり、他の RISC マシンも加えたい、とのことであった。

 プロジェクト GNU の作業の中心は、1989 年後半からこの LCS の一部を借りてプロジェクト GNU 専用の 3 部屋となった。マニュアルやテープを配布したり、電話の対応を行なっている FSF 自体は、MIT(ケンドール駅) から地下鉄で 1 駅隣の「セントラル・スクエア」駅にある。

 この GNU 部屋が借りられたいきさつには、NeXT 社の Steven Jobs 氏の多大な助力があった。MIT の学長に会って、GNU の社会的貢献や MIT にとっても名誉であることなどを説得したのだ。そして、学長から反対者を含む関係者にプロジェクト GNU は MIT にとってもけっこうなことであり、それを認めるようお達しがあったようだ。

 部屋の中には DEC マシンのテキスト・エディタ TECO や、「STALMANNEN」(Richard Stallman に掛けた) のポスターがあった 。

 マシン (名前) は左から、SONY/NEWS 841(hobbes)、hobbes に接続してある端末 (ダンプ用)、HP マシン (ホスト名不明)、SONY/NEWS 1850(spike) である。さらに左側は人の踏み入れる余裕がないほどちらかったままで、頭上からイーサネット・ケーブルを引き、天井などは照明とスプリンクラーのためにあればいい、といった風景である。

 また隣の GNU 部屋には NeXT マシンがあり、配線も前述の部屋よりはましなもののスパゲッティになっている。

 大きなホワイト・ボードもある。これは GNU Emacs バージョン 19 の構想を rms と jla(Joseph Arceneaux のログイン名) が書いたもののようだ。Non smoking&phone である。ホワイト・ボードの下にはコーラの空き缶がいっぱい置いてある。マサチューセッツ州では缶ジュースやビール瓶には保証金が上乗せしてあって、空になったものは 5 セントで店に引き取ってもらえる。そのために貯めているのだろう。

 古参のメンバーを紹介する。プロジェクト・リーダ兼 FSF の社長兼ボランティアが Richard Stallman(rms) である。

 rms の性格は非常に意志が強く、一見ちょっと変わって見えるかもしれない。筆者らはもう慣れてしまったが。

 先のチャイナタウンへ John と 4 人でランチを食べに行ったときに、彼の創造力をかいま見た。筆者が GNU インタープリタを作成し始めて壁にぶつかり rms に相談したときに、彼は料理やそれらの食べ方を説明してくれながら、始終インタープリタのアイデアを、食事中から次々と湧かせていた。あまりに多くのアイデアがあり過ぎて当の本人もどれを最適とするか躊躇している。もってまわった言い方が好きなのか、とにかくそういう傾向にあるようだ。しかし、非常に熱心である。もう 1 人の筆者と John はそのような rms を「結局、各々一長一短があるがどれがベストなのか ?」と冷やかしながら、「これはうまい、うまい」と言いつつ食べてはいたのだが、いつもは時間をかけて食べている rms の食べる速度はなぜか速い。これも不思議である。

 不思議といえば、ある日某メーカのマネージャが貸し出し用のマシンの契約にサインを求めてきた。昼時で rms はちょうど食事中だったが、場所を変えても、ずっと皿を持ったままで、彼とミーティングをしている。終わってもまだ食べ切らない。時間をかけて食べるのが常だった。何とか貸し出しマシンの話がまとまり、そのマシンが来た時のことである。担当マネージャがインストール中、rms はずっとぴったりと彼のそばについて、ディスクレス・マシン用のディスクのパーティションを見ている。正確には、見ているのではなく、なぜそういう区切り方をするのか、こういう理由でおかしい、こうするべきではないか、と質問しているのである。後でそのマネージャは、自社のいわゆる標準でやろうとしていたのだが、よもやそこで討論が始まるとは思いもよらなかったと、驚いていた。最後に一言、やっぱりあの人変わってる、と。本当はそうではなく、自分の考えが支柱にあって、その通りでないことについては、ちゃんと納得をしたいのである。とにかく納得がいくまでやるのである。

 しかし、激しやすいということもわかった。技術的な内容の話をしている場合もそうである。電話でのどなり声が廊下にひびきわたってしまうほどである。それがきっかけのようにも思うが、筆者の地獄耳ヒヤリングは通常の会話よりも完璧になってしまったという、あまり自慢のできない得意技が身に付いた。

 また別の日、ちょうど「GNU ダイジェスト」を MIT で徹夜をして作っていたときのこと。明くる朝、6:00 ごろ起きてきて隣のマシンで仕事を始めた Richard が手にしていたものが、自然食品のピーナッツ・バターの瓶とミックス・ナッツの袋だった。カレー用スプーンもあった。ビール・ジョッキのようなコップに水が入っていた。これをお昼まで例によって時間をかけて食べて、決して急がない。まあメールなんぞを読みながら食べているせいかもしれない。砂糖なしの純粋なピーナッツ・バターなので上にたまった油をスプーンでぐちょぐちょかき混ぜていた。混ぜてはそのスプーンをなめていた。そして彼はナッツにもバターをつけて食べていた。筆者がじーっとその様子を横目で気付かれないように見ていると「どう、食べてみないか」と誘うではないか。まずはもう 1 人の筆者にやらせる。塩気も甘味もないピーナッツ・バターだから、特に「どう、うまいだろう ?」と言われても「まあまあ」としか返事ができない。次に「あなたも食べなさいよ」と言う。どちらかというとバターよりも袋の中のマガタマに似たカシュー・ナッツに興味があったので、それにバターを少しつけようとしたら、手をはたくではないか。つまり、指でバターをすくって食せというわけである。うーん困った。でもやるっきゃない。本当に自然の味だけ。これで喉が乾いて水がいるのだった。にこにこしながら、MIT からちょっと歩いたところにある自然食品屋を丁寧に教えてくれた。あのあたりのベジタリアンや純自然食品愛好家が通う店のようである。彼に言わせると、日本でいう御用達ブランドのようである。

 筆者らが帰国してから、rms の名刺をもっともらっておくんだったと思い、その名刺を送っておくれとメールでお願いしたら、何枚か送ってくれた。しかし、封筒に入っていたのは本当に名刺だけで、手紙もメモもなーんにもない。思わず彼らしいなぁとほほえんでしまった。無駄 (?) がない、と良いほうに解釈しておいた。

 この名刺は、秋ごろだったか、rms がプライベート用に作ったものである。名前の上に「sharing good books, good food, and exotic music and dance」と書かれていて、全てカーリー・フォントで飾っている。「一体何のために使うの ? ビジネス ?」とからかったら、彼は真面目に「レディーに渡すんだから、冷やかさないでよ」と照れて言っていた。

 去年の年末ごろだったか、Macintosh ユーザが、ニュース・グループの gnu.emacs.bugs に GNU Emacs が Macintosh に移植されているかどうかを問い合わせる投稿をした。Richard は、すかさず「裁判のために今後もサポートしない。だから、売るか、あるいは理由を付けて返せ。ついでにゼロックス社のコピー・マシンも他のに取り替えろ」と返事をしていた。

 脱線ついでに、英語事件も暴露しよう。はんだごて事件である。はんだごてを英語で言うと、ソーダリング・アイロン。使っていた MIT の Sun と先に繋いでいたパソコンとの間のケーブル (RS232C) のはんだ付けが悪くて、rms に言って直す道具を借りようとした。はんだ付けのことをソーダリングと言うのは知っていたのでハンダごてのことをソーダリング・ヒータと呼ぶのだろうと勘違いして、rms に「ソーダリング・ヒータどこかにある ?」と尋ねた。彼からは「ソーダをホットにすることは可能だけど、誰もホットにしないよ。冷たくするもんだよ」という返事。つまり、ソーダ水とはんだのソーダが入れ違ってしまった。こうなったら、モノを見せて繋げたいんだと言うしかなく、見せたところようやく理解してもらえた。その後が問題で、これが rms には大うけで、大笑いしてあちこちの研究員の友達の部屋に顔を突っ込んでは、この話をして回ったのであった。

 ちなみに rms の部屋は乱雑だが、どうしてあのような高品質、高性能のソフトウェアができるか不思議である。借用 Sun-3 が rms の部屋にくるので、我々と rms 3 人で部屋の片付けをした。rms いわく「この部屋を片付けるのは僕も初めて」なほどだから。Sussman 教授によれば、rms は素晴らしいプロジェクト・リーダとのこと。

 FSF の人々の話に戻して、役員は前述の MIT/LCS の Gerald Sussman 教授や Halord Abelson 教授である。

 Len Tower は、プロジェクト GNU のメールやニュースの情報管理者 (FSF の役員でもある) 兼ボストン大学の研究員である。また、前号でも紹介したが毎年 2 回開催される USENIX コンファレンスの夜に行なわれるインフォーマルな集まり GNU BOF のチェア・パーソンも務める。通称 Len。いつも腰には小さなポシェットをつけ、中にはメモ用紙と鉛筆を入れている。長髪長髭に圧倒されるかもしれないが、ものごしが穏やかな人である。6 月 17 日生まれの O 型。

 その他に古参のプログラマとして、Jay(プロジェクト GNU で働く前は、高校生のころからいくつかの Logo を作っていた経験の持ち主であることから、ログイン名が hack になっている) がいる。

 会計兼テクニカル・ライターは Bob Chassell が担当である。◆4

 テープやマニュアルの送付、電話応対の担当は Stacey Goldstein である。早口で多弁なので、漫画のペンギンに付いていた名前をとって opus というログイン名が付いている。5 月 7 日生まれ。

 新人メンバーとして、1988 年は細身の Randy が gdb の保守と拡張を担当していた。Stacey は自称するほどの早口だったが、Randy はもっと高速にしゃべる。自分がよく使うマシンの近くには、ドライフードのタッパーを 2 種類常備している。スキー、サーフィン、映画鑑賞、フォークダンスが趣味の 1964 年 12 月 30 日生まれ、O 型である。GNU の人間に似ておらず人当たりも良く、格好も普通である。

 1989 年 Randy がボストン大学 (現在は MIT で認知工学を研究している) へ戻るので、その後 gdb を引き継いだのが Jim Kingdon である。その雰囲気は、どことなく近寄り難さを覚えるという点で rms に似ている。彼がよく使っているのは HP マシンで、夜型 (深夜型 ?) の人間のようである。

3. バージョン管理について

 この原稿の起稿は日本語 GNU Emacs である Nemacs(電総研の半田氏や戸村氏が日本語を扱えるように修正、拡張したもの。GNU Emacs バージョン 18.55 をベースにしている) を使って Unix ワークステーション上で作成している。

 さて、このテキスト・ファイルの作成途中のバージョンの管理をどのように行なうかについては (それほどだいそれたものではないが)、問題がある。以前は適当なファイル名を付けて、例えば al などとし、更新ごとに a2、a3 とファイル名を変えていった。これは面倒であり、また、Unix のバージョン管理システム (例えば、RCS や SCCS) を改めて使うほど大げさなものでもない。Unix のバージョン管理システムを使った場合、ヘテロジニアスな分散開発環境 *3(MS-DOS と Unix の世界で入力編集を行なった場合) では、それぞれのシステムにバージョン管理システムを用意しなければならない。

 今回、GNU Emacs を利用した典型的なバージョン管理システムを使って、Unix 上の扱いを若干変更した。これはファイルの更新のたびにファイル名に 〜(チルダ) とバージョンを示す数字が付く。GNU Emacs の中で version-control という変数の値を t(Lisp の世界でいう true) にすればよい。これでファイルのバックアップを自動的に行なうようになる。MS-DOS ではマニュアルでこの操作を行なった。

 GNU Emacs 内の変数の設定を毎回行なうのが面倒な場合は、希望する GNU Emacs 内の変数の設定を、テキスト・ファイル内の最後に与えることも可能である。その例がリスト 1 である。この仕組みを使って作成したファイルのリスト例がリスト 2 である。

〈リスト 1〉

:
テキストの本文 :
:

% Local variables:
% mode:indented-text
% version-control:t
% End:

〈リスト 2〉

% ls -lt a3*
-rw-r--r-- l hikichi  2716 Mar 15 20:26 a3
-rw-r--r-- l hikichi  2943 Mar 15 10:48 a3.〜4〜
-rw-r--r-- l hikichi  2832 Mar 14 21:22 a3.〜3〜
-rw-r--r-- l hikichi  1861 Mar 13 20:43 a3.〜2〜
-rw-r--r-- l hikichi   617 Mar 13 18:23 a3.〜1〜
-rw-r--r-- l hikichi   163 Mar 13 18:02 a3〜

4.GNU 作業援助希望リスト

 GNU 用の ftp マシン (prep.ai.mit.edu) の /u/emacs というディレクトリには、GNU 作業リストを記した tasks というファイルが置いてある。それには現在のプロジェクト GNU の行なうべき、あるいは行なったほうがよい項目が書いてある。これらの作業をこれからやりたい人、あるいは関連する作業をやった人を募集中ということである。

 リストの訳を下に示す。このリストは不定期に更新され、本文中にあるように Internet の gnu@prep.ai.mit.edu というメーリング・リストに投稿される。

 さらに、この作業リスト tasks 以外に次のものが追加投稿された。

 また、「GNU's Bulletin」やその日本語版である「GNU ダイジェスト」の「GNU 援助希望リスト」という欄も併せて参考にして欲しい。

 このリストから、プロジェクト GNU のこれからの方向性が汲み取れると思う。◆5

4-1. 筆者らから

 加えて筆者らが考えている GNU 関係の作業リストは次のようなものである。

4-2.GNU 作業援助希望リスト (1990/03/06 現在)

 最新情報は、Internet のメーリング・リスト gnu@prep.ai.mit.edu を読んで確認すること。また、プロジェクトに関係する作業をずっと行なっている方は gnu@prep まで知らせて欲しい。役に立つ情報を提供できると思う。必要に応じて、GNU コーディング規則をお送りしたい。◆9

A.ドキュメンテーション ( 注 英語で書かれていることが前提である)

 既存の、あるいはじきに作成される幾つかのシステムのドキュメンテーションを大募集している。

B.Unix の標準部分の代用品
C.カーネル・プロジェクト

 TRIX や Mach のいずれを採用するにしても、TCE/IP やファイル・システムを新たに作成しなければならない (実際にはこのことは不要かもしれない。というのは、BSD の TCP/IP がフリーになると宣言されるかもしれないからである。おそらく Sprite からのファイル・システムは使えるかもしれない)。

 Ethernet 経由のデバッガが作成されれば、他のマシンから gdb を起動してカーネルをデバッグできるようになる。

 Mach か TRIX 上で動作する共有メモリ型 X11 サーバを切望する。マシン依存の部分はうまく独立していること。

D.既存の GNU ソフトウェア拡張作業
E.その他任意のプロジェクト

  将来の GNU ウィンドウ・システムとして、X Window System を採用する予定である。これは MIT や DEC から出ているフリー・ソフトウェアで、しかも移植性の良いシステムである。従って、GNU ソフトウェアの中のグラフィック関係のものは X Window System 上で動くようにすべきである。

F.他の言語のコンパイラ

 Algol 60、Algol 68、Modula、PL/I、Ada などのような言語用で、構文解析部などのフロントエンドを作成するボランティアを募集している。コード生成部は GNU C コンパイラのものを使う (C++ は終了している。Fortran や Pascal、Modula は作成中である)。

 C 言語のフロントエンドを流用すれば、lint として使えるかもしれないが、Unix の lint のように機能が良くなく、取り扱いにくいものは好ましくない。ただし、このツールは ANSI C の、より強力な型チェックが提供されれば必要ではなくなるかもしれない。◆10

G.ゲームや娯楽品の類

5. 今月のニュース「Epoch ほか」

5-1.Epoch とは何か

 ニュース・グループ comp.emacs の中で Kaplan がリリースした Epoch について、その特徴や入手方法について取り上げる。Kaplan がリリースした時の情報を日本語にしたものを次に示す。

 この Epoch(バージョン 3.1、1990/2/1 付リリース) は GNU Emacs 18.55 がインストールされていれば、GNU Emacs の etc や Lisp ディレクトリをそのまま使うことができる。ただし、その前に Epoch のバイナリと etc/DOC ファイルをインストールするのを忘れないように。

5-2.Epoch の特徴

 GNU Emacs に対して次ような拡張が施されている。

 ただし、X-Menu コードは Epoch では動作しない。HAVE_X_MENUS を定義しないこと。

 Sun マシン用の s-ファイルは少し変更しなければならない。バージョン 4.0.3 が動作する Sun-3 上では、STARTFILES を変更して crt0.o/lib/Mcrtl.o にしなければならない (これは、私 (kaplan) がコンパイルするときに _f6881 オプションを使わなかった場合でも、_f68881_used が未定義シンボルになるという問題を回避するためである)。これを修正すれば動作するだろう。

 HP マシン上で作成する場合は、MAXHOSTNAMELEN をどこかで定義しなければならない。1024 が適切な値のようである。

 いろいろな OS やマシンのために用意した etc/MACHINES のメモを読むと役に立つ。

 beldar@mips.com から提供された RISC OS が動作する MIPS マシン用の s-ファイルと m-ファイルが含まれている。

 また、Epoch は GWM(Lisp に似た拡張言語を備える X Window System 用ウィンドウ・マネージャ) のような「プログラマブル」なウィンドウ・マネージャを使うと一番よく動作するように設計されている。GWM(1.5.1.1) の最新バージョンもリリースの中に入っている。

5-3.Epoch の入手方法

 Epoch は cs.uiuc.edu(128.174.252.1) マシンから anonymous ftp で入手可能。あるいは、テープでの配布を行なっている。費用を補うために少々の手数料も上乗せしてほしい。また、Epoch のメーリング・リストも用意した。このリストに登録して欲しい方やもっと Epoch 関係の情報を入手したい方は次の所まで電子メールのこと。

epoch-request@cs.uiuc.edu
uunet!uiucdcs!epoch-request
(最悪の場合は)
epoch-request%cs.uiuc.edu@uiucvmd.bitnet

5-4.Epoch 配布に入っているファイルについて

 Epoch は、cs.uiuc.edu マシンの pub/epoch-files/epoch ディレクトリにある。入手後は、GNU Emacs 18.55 のときと同じようにインストールする。

 配布には次のものがある。

epoch-3.1.tar.Z               全リリース
epoch-3.1-stripped.tar.Z      Lisp や src ディレクトリ
epoch-3.1.epoch-man.tar.Z     マニュアルだけ (興味のある方のために)
epoch-3.1.epoch-man.ps.Z      PostScript 形式のマニュアル
README.Epoch-3.1              このファイル
epoch-3.0-3.1-diffs.tar.Z     バージョン 3.0 と 3.1 の差分。この中は、
                              src の diff、完全な新しい src ファイル
                              (前回にはないのでこれは diff ではない)

5-5. その他の GNU ソフトウェア・リリース情報

 次の表を参照されたい。

ソフトウェア名   バージョン  リリース日   コメント
--------------+------------+------------+-----------------------------
gdb              3.5         1990/02/08   今回のリリースで Emacs テープ
                                          の gdb2.8 と差し替えられる予
                                          定。バージョン 4 に向けて作業
                                          中。4 のαテストをしてくれる
                                          方は kingdon@ai.mit.edu まで
                                          電子メールにて問い合わせてほ
                                          しい。
gcc              1.37        1990/02/14   一番信頼性のあるバージョン。
                                          バージョン 2 に向けて作業中。
libg++           1.36.3      1990/01/16   g++1.36.3 を使ってコンパイル
                                          する。
G++              1.37.3      1990/03/02   1.37.0 のバグ修正分の diff
                                          ファイル。
bash             1.05        1990/03/03   移植が容易になった。make と
                                          入力するとインストールされる。

6. おわりに

 ボストンと MIT の中のプロジェクト GNU の周辺についてお伝えした。GNU の作業環境のフレーバーが伝われば幸いである。

 最後に付け加えたいことは、今回報告した MIT の GNU 作業部屋だけで GNU ソフトウェアが開発や保守されているのではない、という点である。例えば、西海岸では、Brian Fox が bash(GNU シェル) の拡張保守を行ない、Tiemann は GNU C++ コンパイラを担当している。その他にも全世界で数百人のボランティアがいる、という話である。

 今後もこの GNU コミュニティの輪を拡げ、我々の環境をより良いものにしていきたいし、広く他の人にも伝えたい。


Think GNU 連載 第 3 回【脚注】

*1

グリーン・ライン…ワシントンでもそうだったが地下鉄の路線名に色の名前がついている。この沿線にはボストン大学、ボストン美術館 (Fine Art) などがある。ボストンには、この線の他に MIT、ハーバード大学などが沿線にあるレッド・ライン、オレンジ・ライン、ボストン水族館や空港があるブルーラインなどがある 。

*2

Franz Lisp…カリフォルニア州立大学バークリー校で開発された MAC Lisp 系の Lisp である。これは、そもそも MAXIMA という数式処理システムが動作するシステムを、DEC VAX 11 用に動かしたいがために開発されたのが発端である。その後、Motorola 社の MC 68000 系でも動作するようになった。筆者がそれを SONY NEWS に移植した。バージョン 39 以降は Franz Inc.という会社で商品化された。バージョン 38 のものはコピー・フリーになったので、商品化されたものと区別する場合に、前者は PDS Franz Lisp と呼ばれている。

◆1

*2 で SONY NEWS マシンに PDS Franz Lisp を移植したことについて触れている。

 このオリジナル・ソース・コードは、VAX と Motorola 社 MC68000 を対象としていた。移植作業のため、その後 Sun-3 用のものを入手し、それをベースとした。

 PDS Franz Lisp は、インタープリタを含む主要部分が C 言語で記述され、ライブラリを Lisp で、初期化部分はアセンブラで記述されている。NEWS への移植に必要な作業は次のように分類することができる。

 最近 Lisp の状況はというと、教育用に Scheme、それ以外の分野では Common Lisp が使用されている。

◆2

AI ラボの建物の概要について触れている。ちなみに MIT は全ての建物で禁煙である。AI ラボのある建物の 1 階には食堂がある。本文でも触れているようにポラロイド社の管轄で禁煙ではなかったが、最近禁煙になった。良い傾向である。

◆3

アテナ・プロジェクトは X コンソシアムを興し、X Window System の改良を継続する一方、アテナ・プロジェクト自体は最近終了した。

◆4

FSF のスタッフの一人である Bob Chassell は会計兼テクニカル・ライターであるが、最近は事務局も担当している。Jay は FSF を離れ、会社に就職した。Stacey Goldstein は最近名前を変えようとしている。新しい名前は Lisa である。彼女のまわりで変えるのが流行しており、感化されたようである。

*3

ヘテロジニアスな分散開発環境…異質なアーキテクチャのマシンから構成される (ソフトウェア) 開発環境のこと。ここではソフトウェア開発ではなくテキスト・ファイルの作成 (開発) を指す。

◆5

「GNU 援助希望リスト」として Objective C コンパイラの組み込み、という項目を記していたが、gcc バージョン 2 でこの作業は完了した。Objective C 用のライブラリが必要であるが、それも最近 (1992 年) 完成したようである。

◆6

gdb バージョン 4 以降では、バージョン 3 ではできなかった漢字の出力が可能となっている。

 また、RISC 用の gcc のオブジェクトの効率がたいぶ改良され、バージョン 2 以降ではだいたい市販のものより生成コードの品質がよい。MIPS 用のデバッグ・オプションも機能している。

◆7

GNU カーネルの作業も始まっており、一部動作テストしている。

◆8

X Window System 専用 Emacs(Epoch) の日本語化は現在すでに行なわれており、Nepoch という名前で配布されている (FSF からは直接配布していない点に注意されたい)。

◆9

「2.GNU 作業援助希望リスト」の中で次の作業項目は完了した。

◆10

lint は C 言語用の静的検査プログラムである。