Mei+alpha on Smalltalk/V for Mac

Enhanced Mei for ST/V Mac 2.0.2

● What's this kit?

●このキットを使用するには以下のソフトウェアが必要です。

 必ず、2.0.2-2 のパッチを当てた Smalltalk/V version 2.0.2 for Macintosh にインストールした「明 (MeiSystem) 」を使用してください。

動作環境:「明(MeiSystem)」0.15 on Smalltalk/V 2.0.2 (+ Patch 2.0.2-2)
          IIci 8MB with VM / 漢字Talk 7.1 /
          PPC 8500/120 48MB / 漢字Talk 7.5.2
          カラー環境
開発環境:IIci 8MB with VM / 漢字Talk 7.1
開発言語:「明(MeiSystem)」0.15 on Smalltalk/V 2.0.2 (+ Patch 2.0.2-2)

 「明(MeiSystem)」の Smalltalk/V Mac 版は、(株)SRAのソフトウェア工学研究所に所属する青木淳さん、渡邊克宏さんによって作成されました。

 dagTSO-kit は上記 Smalltalk/V version 2.0.2 for Macintosh (+ Patch 2.0.2-2) 用「明(MeiSystem)」 version 0.15 を拡張する(つもりの) for-thrill-seekers-only のフリーソフトウェア・ライブラリです。ハンドルの頭3文字を取って dagTSO-kit という名前にしました。日本語では『駄愚キット』とでもしておきましょう。f(^^;)

 おおよそ、以下のような内容を「移植」しました。

 出典は、 <規模>
  1. classes: 138
  2. instance messages: 1228 (1674 methods)
  3. class messages: 516 (933 methods)
  4. instance variables: 193 (181 + 12)
  5. class variables: 26
  6. pool variabels: 0
  7. source code steps: 31833 (16989 + 14844)
  8. methods: 2607
  9. messages: 1744
  10. source code steps per methods: 12.21
  11. redefined messages: 863

 上記クラスはすべて で始まるクラス名を持ち、聖典がヴァージョン・アップしてもクラス名がバッティングしないようにしています。Smalltalk/V と ObjectWorks, VisualWorks は、フレームワーク等の枠組みなど、かなり違っています。本来ならば、後者用に書かれたアプリケーションを前者用に組み直して初めて「移植した」と言えるのでしょうが、そこまでやっていません。力ずくで動かしています。

 メインの環境は IIci 8MB with VM / 漢字Talk 7.1 ですが、動作は非常に重いです。030 マシンの方は腹をくくってください。(^^;) ごく最近 PPC 8500/120 を手に入れましたが、これぐらいだと、けっこう軽快に動いてくれます。

 移植したクラス群は判る範囲で動くようにしていますが、なにせ、smalltalk ワナビー志願者なもんで、完動品を期待しないでください。移植者はチュートリアルの4章レベルです。

 聖典のヴァージョン・アップがいちばん望ましいのですが、わたしなんぞより、もっと優秀な方が「こんな移植のやり方ではダメだ!」と拡張キットを作っていただけたらありがたいです。「明(MeiSystem)」の Smalltalk/V Mac 版が伝説になるのは困ります。

 このキットを公開する理由はただひとつ「MeiV0.15 が早くヴァージョン・アップしないかなぁ……」。

●「明(MeiSystem)」の Smalltalk/V Mac 版は以下から入手できます。

● Patch2.0.2-2 は以下から入手できます。  およそ 252KB あります。Patch2.0.2-2 を当てると、アプリケーションのヴァージョンは V.2.0.3d4 となります。

○参考 「明(MeiSystem)」の (OW) VW 版は以下から入手できます。

● 移植にあたって、暖かい励ましのお言葉をいただいた、青木淳さん、渡邊克宏さん、矢野勉さんに深謝いたします。タコな質問にも丁寧にレスをいただいた、まさるさん、村上雅章さん、阿部和広さん、中嶋睦月さんをはじめとする、FAI「Lisp/Prolog/Smalltalkなどの言語と実践」会議室の諸賢兄にお礼申し上げます。

● How to Install?

  1. オリジナルの「明(MeiSystem)」の image と changes および、Smalltalk/V アプリケーションは、必ずバックアップを取っておいてください。
  2. キットをインストールする前に、Tools:Object Filer ディレクトリにある Object Filer.st をインストールしておいてください。
  3. 「明(MeiSystem)」のあるディレクトリで、キットを解凍します。dagClass と dagDocs、dagTSO-kit の3つのディレクトリができます。
  4. Smalltalk/V アプリケーションに RedEdit 等で dagTSO-kit ディレクトリの "appl.rsrc" をコピーし上書きします。
  5. 「明(MeiSystem)」を立ち上げ、dagClass:dagSrcs のディレクトリの中の "Dag00000.stv" をインストールします。これで、全クラスの読み込みが始まります。ファイルインするファイルはおよそ 140 近くあり、けっこうな時間が掛かります。インストールが終了すると、ランチャとクラス・リスト、ユーザ名を登録するウィンドウが開きます。
  6. 使用するユーザ名を登録します。ユーザ名を登録するウィンドウにあなたのログイン名を加えて下さい。2つめのランチャも開きます。オリジナルのランチャを閉じても結構です。新しいランチャが、(多少くどいですが)その代わりをします。現段階ではユーザ名はたいして活用されていませんが、たとえば、  ClassBrowser>>methodTemplate メソッドを以下のように変更すれば、コメントに日付とユーザ名を付加することができます。
    methodTemplate
        "Private"
    
    ^'messagePattern
        "Comment"',
    '
        "', DagMiscellany dateNowString, ' ',
        DagMiscellany userName, '"', 
    '
    
        | temporaries |
        statements'
    
  7. PixMap 等を乱発しすぎると、ヒープを喰い漁られて、「ヒープ領域が足りないよ」と怒られた上に、'Connection attempt failed.'(詳査したわけではありませんが、これはヒープ内に PixMap を確保するだけの領域がないから発生するのでしょうか)等のメッセージを出して Walkback が出る場合があります。デフォルトの設定では、Smalltalk/V の Minimum Toolbox Memory サイズは 102400 bytes なので、たとえば Metrics ツールなどでは明らかに足りません(Metrics ツールでは 20 枚近くの PixMap を要します)。というわけで、上記 Walkback が出てきた場合は、一度システムを停止して、Smalltalk setImageSize を評価して、Minimum Toolbox Memory サイズを増やしてください。10 倍程度にしておけばいいと思います。

● How to play this kit?

  1. Launcher
  2. GUI Editor
  3. クラスのメトリックス
  4. クラスごとのドキュメント
  5. Interface and Circuit
  6. SourceCodeSaver
  7. Benchmark
  8. Histogram
  9. トランスクリプトの退避
  10. My libraries
  11. yellowButtonView
  12. クラスのツリー表示
  13. Classes or Instances
  14. Enhancements
  15. Additional methods
  16. browser

Created: Mar 15, 1996, Updated: Apr 20, 1996