Tcl 8.3 for Windows CE
現在のTclは、UNIX(Linux)、Windows、MacOSをサポートしていますが、
最近になって、TclをPalmOSやWindows CEに移植するプロジェクトが現れました。
そんな移植プロジェクトに1つにTcl 8.3 for Windows CEがあります。
現在、second snapshot(20010904)がリリースされているので、それを中心にレポートします。
動作保証環境
second snapshotの動作保証環境は以下の通りです。
- Windows CE 2.11 on an upgraded HP 620lx (SH3)
- Windows CE 2.11 on NEC MobilePro 770 and 780 (MIPS)
- Windows CE 3.0 on an iPAQ 3630 (StrongARM)
プロセッサは、SH3, MIPS, ARMをサポートしています。
OSは、Windows CE 2.11とWindows CE3.0をサポートしています。
Handheld PC(H/PC)とPocket PC(P/PC)で動作するようです。
インストール方法
second snapshotにはインストーラがないので、手動でインストールをします。
commonのアーカイブは共通で、それ以外のアーカイブはプロセッサ依存の.exeと.dllファイルが入っています。
両方のアーカイブをWindows CEの\Program Files\Tcl83の下に展開します。
- tclce-common-200110509.zip
- tclce-wce211-mips-20010904.zip
- tclce-wce211-sh3-20010904.zip
- tclce-wce300-arm-20010904.zip
制限事項
Windows CEの機能は、WindowsNTのサブセットになっています。
当然ながらTcl8.3のフル機能の中で使えない機能が出てしまいます。
Windows CEの制限で、以下の機能をサポートしていません。
- パイプ、I/Oリダイレクト
execコマンドは、未サポートです。
- 環境変数
Tclレベルのエミュレーションで対応する予定
- カレントワーキングディレクトリ、相対パス
cd, pwdコマンドは、Tclレベルのエミュレーションで対応する予定
- Dynamic Data Exchange(DDE)
dde packageは未サポートです。
second snapshotの制限で、以下の機能をサポートしていません。
Tkに関しては、Tk 8.3 for Windows CEのプロジェクトが動き出しているようです。
モバギで動作確認
Windows CE 2.11(MIPS)のNEC Mobile Gear II MC-R520で動作確認しました。
以下はtclsh83.exe動作中の画面です。
表示された結果を見ると、TclはTcl8.3.2がベースになっているようです。
platformの結果は、なんとなく正しいようです。
気になったのは、
国際化の機能のencodingが正しく動作しないためか、日本語の表示が化けてしまいます。
encodingは不安定なようで、encoding namesコマンドを2回入力すると、アプリエラーが発生しました。
環境変数は、env(HOME)しかなく、しかも内容は{/My Documents}になっています。
cdコマンドとファイルの相対パスが使えないので不便を感じました。
このあたりは、Windows CEによる制限なので、仕方ないとしても、やっぱり、
ソケット、国際化、Tkの機能がないと、あまり使う気がしませんね。。。
今後のバージョンアップで改善されることを期待します。
ベンチマーク
以下のコードで性能測定をしてみました。
time {for {set i 0} {$i < 10000} {incr i} {set ary($i) $i}}
|
測定結果は以下の通りで、モバギの性能は、Pentium90の約6.5倍遅い結果となりました。
さすがに、PCで実行するのに比べると遅く感じます。チューニングの余地がありそうです。
OS/CPU | 時間 |
Windows CE / VR4121 131MHz | 約14.2秒 |
Linux / Pentium 90MHz | 約2.2秒 |
Windows Me / PentiumIII 800MHz | 約0.6秒 |
Tcl 8.3 for Windows CE