Tclkit Mobile

Tclkit Mobile is a port of Tclkit 8.4.9 to Windows Mobile 2003 Second Edition PDA's:

Feb 14, 2005 - The latest release is TKM3, it's a minor update to TKM2.

The download area is at - you can either use the installer (launch on Windows PC with ActiveSync installed) or get the executable (ungzip, transfer to PDA and click).

The installer creates an entry in Program Files called "jcw Tclkit" and allows you to uninstall again via Settings or through ActiveSync. The installer does not create any shortcuts or registry entries at this stage.

Tclkit Mobile is a complete single-file executable, with Tcl, Tk, TclVFS, Metakit, Incr Tcl, and support for Starkits and Starpacks. This release differs from standard tclkits in that it is in fact a starpack with TkCon included as main.tcl - it may or may not be a good idea to leave this in, haven't figured that out yet.

There are a couple of differences with other tclkits:

  • the startup logic is still not quite right probably, expect some quirks
  • tkm3 creates/extends a "/kitout.txt" file (which receives stdout/stderr output)
  • only a few things have been tried, consider this alpha quality for now
  • see also the "known problems" section below

I will have some build instructions soon. All changes have been merged back into the corresponding CVS repositories and sources, the most complicated part of this port is really managing a good build toolchain and configuration.

This Open Source project was made possible through the financial support of Eolas Technologies Inc.

This port builds heavily upon Jeff Hobbs' tcl8.4ce and tk8.4ce sources, as well as the TEA 3.2 build system. Without these, and without Jeff's patient help, none of this would have been possible.


Known problems in TKM3 - please add anything else you find to this list...

  • The boot.tcl startup script has been modified slightly, from:
        if {[info exists tcl_rcFileName]} {
  • to:
        if {$::tcl_platform(os) eq "Windows CE" || [info exists tcl_rcFileName]} {
  • There are issues with std{in,out,err}, which have been worked around by opening /kitout.txt three times very early on (see kitInit.c), and by redefining the "source" command to use open/read/close instead.
  • Occasionally aborts with a "called Tcl_Close on channel with refCount > 0" message box, might be related to the above std{in,out,err} issue.
  • Startup time is a few seconds, this may be due to zlib decompression (a PDA is not a fast machine, especially in battery mode) - this could probably be sped up by storing the runtime uncompressed, but that same refcount error pops up in the current build.
  • The tcl console font is too large on my VGA-res PDA, with the cursor location being confused - but tkcon's windows work fine.
  • In the console, all output goes to /kitout.txt, so you won't see a prompt or any command output.
  • Starkits should work, though I have only tried very few so far. Wikit.kit doesn't work, for some reason.
  • The TkCon window does not adjust its size when the keyboard is visible.
  • ...

RS Great! I'm on an older Windows/CE, so I may not be able to use this... but all, make sure to check PocketPC for all the ports that have been made to these little things :) Update: On the HTC Magician I have TKM now, but mostly I still use Keuchel's port.

PWE Works on my PDA (mitac mio 168). Wrapped my own application, which went very well. The application starts, and looks nice, but when I try to set the baudrate from the serial port (com2) with

  set f [open com2:]
  fconfigure $f  -mode 4800,n,8,1

it fails with: Error: bad option "-mode": should be one of -blocking, -buffering ......

I had the same problem with the 8.4.6 but the 8.4a2 of Rainer Keuchel, does not have this problem

emukang on 29,Mar,2005: The socket can not work, it always pop up an error window--"tcl: select: 10022". I had the same problem with the version 8.4d,8.4.4,8.4.6, both on windows mobile 2002 & 2003. So if you need tcl socket on PDA, please have a look of Install tcl on ipaq familiar linux PDA with Img package

MNO:- On the Known bugs in CE ports page, BL suggests a workaround for this issue ("open one socket and leave it open -> select error never occurs"). I haven't tried this yet, but it may help with your problem.

2005-05-29 SRIV I reflash my Linux iPaq 5555 with the original Windows Pocket PC 2002 and tkm3 seems to run well. So the tclkit isn limited to just Windows Mobile 2003.

schlenk on 2005-06-28. Is there a specific reason sockets do not work? If it is the use of the old winsock, how about porting the iocpsock extension to the platform, as it uses the more modern APIs?

JH on 2005-07-03: I have mentioned before that the old winsock stuff appears to be an issue, and the iocpsock may be a solution. Part of the problem is the Keuchel celib emulation library being used, which has some holes in it.

2005-08-04 SRIV I've been trying to get a combobox to work, but it appears that tkm3.exe doesn't allow an overrideredirect window to be place on top, so the dropdown list component of the typical tcl combox stays in the background.

2005-09-06 Bryan Oakley Has anyone gotten 8.5 and tile to work on a PDA yet? I'm starting to think about buying a PDA but want to be able to run some of my software that requires tile and 8.5. Is that still wishful thinking at this point? SRIV I run tclkit8.5a3 & tile on my Zaurus C860. Windows PocketPC seems to be a long way off in terms of being able to port software to it.

See also the Nokia 770 page, which is a PDA-like "Internet Table" and which can run Tclkit.