vieweditattachhistorytopchangessearchhelp

第02回


■SqueakではじめるSmalltalk入門   第2回


 本連載では、名前は知っていてもなかなか触れる機会のないSmalltalkがどんなものであるかを知っていただこう…というテーマで、最近話題のSqueakを紹介しています。今回は、Squeakの入手とインストールです。

 Squeakは、現在、アラン・ケイが主宰する非営利団体のViewPoint Research Instituteを拠点に、多くのボランティアの協力のもと活発な開発が進められています。いわゆるオープンソースソフトウエアです。squeak.orgという専用サイトに掲示されたリンクを介してFTPサイトより、これまでリリースされた公式バージョンの入手が可能です。本稿執筆時点では公式公開版としては、バージョン3.6へのリンクが張られています。

【URL:squea.orgのダウンロードページ】
http://squeak.org/download/

【URL:公式公開版への直リンク】
ftp://st.cs.uiuc.edu/pub/Smalltalk/Squeak/3.6/mac/Squeak3.6-current-MacOS-Full.sit

 上のURLよりgetした.sitファイルには、Squeakを動作させるのに必要なファイルがアーカイブされています。これを展開してApplicationsフォルダなどに移動すればインストールは完了です。展開先のフォルダ名は「Squeak3.6」とでもしておきましょう。このフォルダには、次のファイルとフォルダが収められています。

ReadMe.txt
Squeak 3.6.1Beta5.app
Plugins
  mpeg3Plugin
  mpeg3Plugin.bundle
  PrintJobPlugin
  PrintJobPlugin.bundle
  SerialExtendedMacOS9Plugin
  SerialExtendedUnixPlugin.bundle
  SqueakFFIPrims
  SqueakFFIPrims.bundle
  TestOSAPlugin
  TestOSAPlugin.bundle
Squeak3.6-5429-full.changes
Squeak3.6-5429-full.image
SqueakV3.sources


 「ReadMe.txt」は、Squeak環境の簡単な解説です。これはSqueak環境内で同じものを読むことができるので、あらかじめ目を通しておかなければならない、というほどのものではありません。「Plugins」フォルダには、Mac OS用(拡張子なし)とMac OS X用(.bundle)それぞれのプラグインファイルが入っています。これは本来、唯一の実行可能なファイルである仮想マシン「Squeak 3.6.1Beta5.app」が持つべきコードが収められたファイルですが、開発途上で比較的頻繁に置き換えられる可能性があったり、極度に環境(Mac版の場合はMac OS)依存的な機能の場合はこうしてプラグインファイルとして提供されます。ReadMe.txtとプラグインは、Squeak環境をとりあえず動作させるにあたって特に意識せずともよいと思います。

 注目すべきファイルは、システムの起動に直接関わる「.app」「.image」、それと環境内の全オブジェクトの定義を収めた「.chages」「.sources」です。

 仮想マシンは実行可能なファイル(.app)ですが単独では意味を持った機能をしません。必ず仮想イメージ(.image)と呼ばれるファイルとそれに収められた情報を必要とします。仮想イメージ、「Squeak3.6-nnnn-full.image」(nnnnは4桁の数値)には環境を構成するオブジェクト群の実体が、それとペアのチェンジファイル「Squeak3.6-nnnn-full.changes」とソースファイル「SqueakV3.sources」にはその定義(正確にはオブジェクトのクラスの定義)、つまり、Smalltalkコードが入っています。

 .sourcesには、.imageの最初のバージョン(3.0)が作られたときまでのソースがまとめられていて、.changesには、現在の.imageに至るまでの過程、つまり環境内オブジェクトの特にその定義に対する改変履歴が追記されています。.changesと.sourcesの内容を合わせると、現在の.image内のすべてのオブジェクト定義がそろう算段です。.imageと.changesは拡張子以前が同名のものを必ずペアで用います。もし.imageファイルの複製を作るときは、同名の.changesファイルのも作成しておきます。名称変更をするときも同じ注意を払います。.sourcesは3.xの.image、.changesのペアで共通して使用できます。

 バイナリの.imgaeと違い、.changesと.sourcesはプレーンなテキストなので、通常のテキストエディタなどで内容を見たり、Smalltalkコードを理解できればそれを読み下すことも可能です(しかし“!”など、Smalltalkシステムがその内容を読み込むために手がかりとする余計な情報も含まれています)。ただ、環境内にはクラス定義を便利に閲覧する機能(つまり、これら2つのファイルの内容にシームレスに系統だててアクセスする機能)が用意されているので、高価で占有の許されないSmalltalk専用ワークステーションでしか環境が使えなかった昔ならいざしらず、今はこれらのファイルを開いてどうこうする必要はないでしょう。

 .image内のオブジェクトは、自分のソースコードが記載されている位置(チャンク情報)を記憶しています。不用意に内容を変えてしまい.image内情報との不一致を生じさせてしまうなどの事故を避けるために、安易に.changes、.sourcesファイルを開くことはやめておいたほうがよいと思います。改行コードはCRのみですが、この変換ももちろん御法度なのでFTPクライアントなどの介したファイル単体のやりとり、あるいはプラットフォームをまたぐ圧縮解凍作業の際にはユーティリティの設定などにも要注意です。

 仮想マシンとプラグインはMac OS(あるいはMac OS X)専用のものが必要ですが、.image、.chagnes、.sourcesは、プラットフォーム互換でMac OS専用ということはありません。つまり、仮想マシン(と、必要なプラグイン)さえ用意できれば、.image、.changesだけの移動で原則としてどこでもまったく同じ環境を使用できます。

 Squeak環境の起動は、使用したい環境を収めた仮想イメージ(.image)を仮想マシン(.app)にドロップインして行ないます。OS 9環境ではファイルタイプ不備からドロップインを受け付けないことがあるので、そのときは、とりあえず仮想マシンをダブルクリックで起動し、ファイルを開くためのダイアログから使用したい仮想イメージを改めて選択してください。仮想イメージは同名のチェンジファイル(.changes)と同じフォルダにあればどこにあっても構いません。特別な理由がなければ関連ファイルはすべて仮想マシンと同じフォルダにいれておくのがトラブルがなくてよいようです。

 Squeak環境が動き出すと、Mac OSの用意する標準ウインドウの中に環境の様子が描かれ機能し始めます。ちょうど、Virtual PCのウインドウモードと似た状態です。表示用のウインドウを介さず、仮想マシンのメニューも消して、全画面表示モード相当にすることもできますが、完全なSqueakマシンに見せかける必要がなければ、Mac OS環境との行き来を考慮してこのまま使います。

 Squeak環境の終了は環境内から仮想マシンに指示を出す方法と、Squeakを動かすのに使っているOS(この場合Mac OS/OS X)側から仮想マシンを終了する方法の二通りがあります。環境内から終了する場合は、デスクトップに相当する場所をクリックしたときに表示されるメニューから、quitを選びます。保存をしなくてよいかを確認してくるので必要なければNoを選びます。ここでYesもしくは、デスクトップメニューから直接save and quitを選ぶと環境の様子をそのまま仮想イメージに上書き保存して終了します。

 なお、先に述べたようなOS 9環境におけるファイルタイプ不備が引き起こすドロップイン障害は、いったんsaveしておけば解消します(昔ながらのファイルタイプ編集ユーティリティでSTimに変えても同じです)。Squeakは起動時に、仮想イメージ内の情報をメモリに一気に読み込んで以後、その内容は無視します。したがって、終了時にsaveさえしなければ多少無茶をしても大丈夫なので、しばらく遊んでGUIの調子を掴んでみてください。saveをしないのなら、環境外、つまりMac OS/OS Xが用意するFileメニューからQuit do not saveを選んでも同じです。

 次回は、Squeak環境のGUIの簡単な解説と、シンプルなSmalltalkコードの実行を試みます。

このページを編集 (6581 bytes)


Congratulations! 以下の 1 ページから参照されています。

This page has been visited 1862 times.