Version 4 of Jacl modernization

Updated 2009-04-22 20:00:52 by rszulgo

Jacl Modernization

Jacl Modernization Project
Google Summer of Code 2009


Draft 2009/03/31

Description

This project intends to modernize the Jacl interpreter's support of core Tcl commands. We set a goal of implementing Tcl 8.4 level commands. 8.4 is targeted as the last Tcl version before major changes to the Tcl parser, which supports the "list expansion" syntax in version 8.5 (.e.g., "{*}"). The TJC compiler also does not currently support list expansion syntax.

Should time permit, selective features of Tcl 8.5 may be implemented as well. Tcl 8.5 commands to be considered include "apply", "chan", "dict", "lassign", "lrepeat", "lreverse", as well as number of new subcommands affecting many existing commands. See: [L1 ].

Jacl will remain Java JDK version 1.4 API compliant.

Definitions

 * "Tcl" - refers to the C-based Tcl interpreter, version 8.4.19
 * "Jacl" - refers to Jacl 1.4.1, or the latest from revision control.
 * "JVM" - refers to the Java Virtual Machine, JDK API version 1.4

Analysis

We examine each Tcl command using man pages and source code, and compare the existing Jacl source code implementation of that command. Only Tcl core commands are compared; standard library procs (e.g., "auto_execok", "auto_import", etc.) are not considered. Some of these standard library procs are implementation dependent, others may be used directly from Tcl 8.4


For each command, each option invocation is listed. Jacl support will either be noted as "Supported" or "**Unsupported**". Also, for commands that have switches, options, format specifiers, etc., we examine those for conformity. Where these match Tcl, we note those as "Supported", otherwise if not implemented or differing in funcionality, we note as "**Unsupported**".

Testing

The Tcl test suite should be considered the standard by which Jacl should comply. Notable exception include those commands that expect to interact with operating system API's, such as "exec". JVM limitations may prevent full Tcl compliance for some commands.

Implementation Priority

Tasks to modernize Jacl range from easy to difficult. Firstly, easy tasks, such as adding options to existing commands to help familiarize with the Jacl code base before tackling more difficult tasks.


File event processing is likely to require substantial changes to Jacl file handling and event structures.

Analysis Results

after

        after ms
                Supported

        after ms ?script script script ...?
                Supported

        after cancel id
                Supported

        after cancel script script ...
                Supported

        after idle script ?script script ...?
                Supported

        after info ?id?
                Supported

enter categories here