- もどる -
MindでGUIプログラミング

■ 1998-12-08 [Tcl/Tk] 配布ファイルとサイズ


Mindで作ったGUIプログラムを使うためには、Tcl/Tkのランタイムも一緒に配布しなければならないので、アプリケーションのサイズが大きくなってしまいます。

しかし、キリー博士からのご教授で、不要なTcl/Tkファイルを削除すれば、かなりサイズを抑えられることがわかりました。

いま作っているプログラムの場合、ダイエットしたTcl/Tkのランタイムを含んだ状態で、実行に必要なファイルは、約2.2Mバイトくらいです。きょう試しに、その全ファイルをディレクトリ付きで圧縮してみたら、

   自己解凍形式で  →  sxc100.EXE  845,298 byte
   LZH形式なら   →  sxc100.lzh  825,842 byte

という具合に、1Mバイトを切るサイズとなりました。これなら、まだまだ作り込んでもフロッピーに収まりそう。(^o^)

ベクターが発行しているフリーウェア・シェアウエアのCD-ROM集を眺めてみたけど、サイズが1M、2Mのソフトは結構多く珍しくありません。このくらいのサイズなら、ホームページでも充分に配布できそうです。(^o^)v


■配布ファイルの一覧(例)
sxc\
    sxc.exe                    73,216    起動プログラム(mindexecw.exe)
    sxc.mco                    55,114    作成したプログラム(Mコード)
    mrunt117.exe              158,720    Mindランタイム
    TclTk-license.txt           2,249    Tcl/Tkライセンス条件のファイル
    tcl81.dll                 602,112    以下、すべてTcl/Tkファイル
    tk81.dll                  857,088

lib\
    tcl8.1\
           encoding\                     ←ここのディレクトリにあるファイルは
                    ascii.enc   1,090   かなり不要な物が多い。
                    cp932.enc  48,025   最低限この2つさえあれば充分とか。

           opt0.4\
                  optparse.tcl 33,620
                  pkgIndex.tcl    545

           reg1.0\
                  pkgIndex.tcl    444
                  tclreg81.dll 15,872

           auto.tcl             5,768
           history.tcl          8,967
           init.tcl            11,340
           package.tcl          9,984
           parray.tcl             861
           safe.tcl            26,880
           tclIndex             1,979
           word.tcl             4,448

    tk8.1\
          bgerror.tcl           3,469
          button.tcl           11,044
          clrpick.tcl          19,869
          comdlg.tcl            7,475
          console.tcl          12,105
          dialog.tcl            5,469
          entry.tcl            15,255
          focus.tcl             4,883
          listbox.tcl          11,710
          menu.tcl             33,751
          msgbox.tcl            7,109
          obsolete.tcl            781
          optMenu.tcl           1,638
          palette.tcl           7,333
          safetk.tcl            6,250
          scale.tcl             6,792
          scrlbar.tcl          11,588
          tclIndex             18,155
          tearoff.tcl           4,565
          text.tcl             26,332
          tk.tcl                6,293
          tkfbox.tcl           37,529
          xmfbox.tcl           21,196
●開発するプログラムの機能によっては、これ以外のTcl/Tkファイルが必要な場合もあります。(今作っているSXCは上記のファイルだけで動いています)


1998-12-30 追加 ※この件でキリーさんとやりとりした内容は以下の通りです。(伝言板より)


サイズ削減
1998-12-08火 20:47.28 START

キリーさんへ

>例の、Tcl/TkのUNICODEエンコーディングテーブル削減の件ですが、
>mind7\lib\tcl8.1\encoding\ にあるテーブルのうち、
>ascii.enc
>cp932.enc
>の二つだけ残せば良いと思います。(いまのところ正常に動いています)

さっそくやってみました。
私のもその2つだけで問題なく動いています。

>これによる削減量は、972KBです。

これは効果絶大です!(^o^)
試しに配布に必要なファイル一式をまとめて圧縮したら、
800kちょっとになりました。
これならフロッピーでも配布できそうです。(^o^)

配布ファイルの目安になればと思って
ファイルの一覧表をホームページに追加してみました。

http://www.vtama.com/start/mgui/index.html
1998-12-06日 22:04.09 片桐 明 <http://www.rigy.co.jp>

STARTさん、こんにちは。
例の、Tcl/TkのUNICODEエンコーディングテーブル削減の件ですが、
mind7\lib\tcl8.1\encoding\ にあるテーブルのうち、
ascii.enc
cp932.enc
の二つだけ残せば良いと思います。(いまのところ正常に動いています)
あとはアーカイブしてどこかにセーブしてしまって良いです。
これによる削減量は、972KBです。


Re:Tcl/Tkランタイムの削減のこと
1998-12-05土 13:07.27 START

キリーさんへ

おはようございます。
こちらは昨日から天気がくずれて、きょうは雨です。

説明ありがとうございました。

>日本語のものはサイズがでかいですね。週末にでも詳しく調べて
>みます。

やったぁ。(^o^)
こういう情報は貴重ですよね。Mindの可能性が広がってきます。
よろしくお願いいたします。m(_ _)m

Tcl/Tkランタイムの削減のこと
1998-12-04金 10:41.56 キリー <http://www.rigy.co.jp>

STARTさん、おはようございます。
ようやく今日は晴れてすっきりです。

|さっそくlibフォルダの中を見てみました。

情報ありがとうございます。

|とくに、最もでかいlib\tcl8.1\encoding\の中には
|ずいぶん不要なファイルがありそうで、

そうそう、encodingのことですが、各国のUNICODEテーブルが
格納されているので、相当な量あります。
実は、Windows95にはUNICODEのエンコード/デコード機能が
あるので、プログラム言語側でテーブルを持つ必要は本来は
無いのですが、UNIX環境との互換性のために自前処理にしてい
るのではないかと思います。
絶対必要なものは、
ASCII(英語圏)←→UNICODE
  日本語ShiftJis←→UNICODE
だけだと思います。ごていねいに、後者は新旧の2種類が入っ
ていますが、古いほうは新JISに相当する文字コードに対応して
ないので使われてません。(そんなら入れるなよ・・って思い
ますが・・)
日本語のものはサイズがでかいですね。週末にでも詳しく調べて
みます。

|lib\tcl8.1\http1.0\ <----これは使わないかも
|lib\tcl8.1\http2.0\ <----これも使わないかも

これはWebブラウザのプラグインとしてTcl/Tkを動かすときのもじ
ゃないかと思います。当面は関係ないですよね。

|lib\tcl8.1\reg1.0\

これは、レジストリを操作するのに使われます。Win版Mind
では、installer\ ディレクトリにあるソースが関係していま
す。当然ですが、Mind7パッケージのインストールはもちろん
のこと、ユーザさん独自のインストーラなど作ってレジストリ
に登録するような場合にはこれつける必要があります。

|lib\tk8.1\images\ <------これはまず使わない

確かに・・、不要みたいですね。
では。


Re:アプリケーションのサイズ
1998-12-04金 05:37.35 START

キリーさんへ おはようございます。(^o^)
(きょうはなぜか早起きなのだぁ)

さっそくlibフォルダの中を見てみました。

---------------
lib\tcl8.1\encoding\ <---この中のmacxxxxx.encというファイル群は
Mac用(?)なので不要
lib\tcl8.1\http1.0\ <----これは使わないかも
lib\tcl8.1\http2.0\ <----これも使わないかも
lib\tcl8.1\opt0.4\
lib\tcl8.1\reg1.0\
lib\tk8.1\images\ <------これはまず使わない
---------------

とくに、最もでかいlib\tcl8.1\encoding\の中には
ずいぶん不要なファイルがありそうで、
動作を確認しながら上の物や他のも外していったら、
なんといきなり500kくらい削れちゃいました!!
思いのほか小さくなりそうです。(^o^)
ありがとうございます。

アプリケーションのサイズ
1998-12-03木 23:16.34 片桐 明 <http://www.rigy.co.jp>

STARTさん、こんにちは。
そうですね、Win版MindはTcl/Tkランタイムまで配布する必要が
あるのでサイズがでかくなりますね。
lib\tcl8.1\, lib\tk8.1\ の下のほうにあるファイル群が
大きな割合を締めます。
このうち、1種は実行中にダイナミックにロードされる
Tkライブラリ、もう1種は、イメージなどのリソースです。
どっちにしても、アプリケーションが確定した段階で
使わないファイルが分かるはずなんですね。うまくすれば
ですが。そうすると小さくできるのではないかと思うのです。
では。


Re:Re3:カレンダー
1998-12-03木 16:26.58 START

てきとうさんへ

>ところで、このカレンダー完成したらどうやって配布するの。

そうなんです、そこが気になるところ。
ちゃんとしたカタチで配布するなら、例えば商品化するとかなら
やっぱりCD-ROMに書き込んで配布するのがいいのでしょうね。
でも私CDR持ってない。(^_^;
あと、ベータ版はFTPなどのサーバーでダウンロードするように
するとか?
いずれにしても割と大きなサイズになるので、ネックですね〜。

DOS時代のMindはサイズも小さく、実行ファイルひとつで
完結していたので、ちょっとしたツールとか、単機能のソフトづくり
に向いていたと思います。
そうした点で考えると、Win版のMindは逆で、機能がある程度多いソフト、
ある種、総合的なソフトづくり(?)が向いているのかも知れませんね。
その辺のことを確かめる意味でも、いま作っているソフトには
いろいろな機能を付けてみようと思っています。
今まで作ってきた似たようなものを全部1本のソフトに
集約するとか。
例えば、カレンダー、スケジュール、メモ、電話帳などなど。

Re3:カレンダー
1998-12-02水 17:37.30 てきとう <http://www.small-j.com/>


ところで、このカレンダー完成したらどうやって配布するの。

これが気になる所です。あると便利そうですね。

Re:re:カレンダー
1998-11-29日 15:49.11 START

キリーさん、どうも。(^o^)

>おー、いつの間にここまで(^^)。
>これいいですね。完成が楽しみです。

デスクのFMVで使ってますが、なかなか使えますよ。(^o^)v
持ち歩く軽快なWindowsノートが欲しくなってきました。
(Think Pad 235あたりがいいなぁ〜)

re:カレンダー
1998-11-27金 10:44.54 キリー <http://www.rigy.co.jp>

STARTさん、こんにちは。

どうもご無沙汰です。

|カレンダー(Win版)を作ってみました。(^o^)

おー、いつの間にここまで(^^)。
これいいですね。完成が楽しみです。


 - もどる -