APWTCL (Java)

APWTCL is an acronym Arnulf's Preferred Web TCL

This version of APWTCL is written in Java

apw 2012-04-20: To avoid questions:

Yes I know of Jtcl and Jacl and yes I have had a look into both of them, but my goal is a little bit different, that is why I have started with a new implementation.

I wanted to have a light weight version of Tcl which has the same features as APWTCL written in Java to run native on Android smart phones. One reason was, that running APWTCL under rhino a Javascript interpreter available there had very big performance problems (have not yet figured out why). So I wanted to have an easy comparable version to be able to figure out the difference between APWTCL in a browser and running APWTCL native on the same smart phone. And the positive side effect: I am now familiar with Java, which I did not use before :).

The implementation started mid of March 2012 and is now (2012-04-20) running all my small about 100 tests successful (and additionally the test suite for wtk, which I have also running for APWTCL). The size is also comparable to APWTCL. It is about 32.000 LOC which is about the same amount of code.

One feature I have built in is to load even all (Tcl) core commands and command ensembles on demand when needed (similar to autoloading/unknown handling).

The base for that implementation is Tcl 8.6 and Itcl 4.0 including a lot of the snit functionality implemented in Itcl 4.0. When running the wtk test suite one can see, that the implemented subset of snit is running unmodified using the following lines at the beginning of the script:

package require itcl

interp alias {} ::snit::macro {} ::itcl macro
interp alias {} snit::macro {} ::itcl macro
interp alias {} ::snit::type {} ::itcl type
interp alias {} snit::type {} ::itcl type