APWTCL (Objective C)

APWTCL is an acronym Arnulf's Preferred Web TCL

This version of APWTCL is written in Objective C

apw 2012-05-23:

I wanted to have a light weight version of Tcl which has the same features as APWTCL written in Objective C to run native on iOS iPhones. 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 Objective C, which I did not use before :).

The implementation started mid of April 2012 and is now (2012-05-23) 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 a bit bigger than APWTCL because of the need for all the setter and getter methods and the header files. It is about 44.000 LOC which is about 30% more code.

One feature I have built in is to instantiate even all (Tcl) core commands and command ensembles on demand when needed (similar to autoloading/unknown handling). Dynamic loading of classes/modules is not (yet?) available for iOS. It is only available for MacOS using bundle mechanism.

This version is running under XCode in the iOS 5.1 simulator, test on a real iPhone still to be done. apw 2012-07-01 it is now also tested with a small example on the iPhone running native.

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

stevel - 2012-05-23 08:10:21

Arnulf, this is excellent progress!