partcl ^

A from scratch implementation of Tcl on Parrot.

To build the tcl compiler, first build parrot and the parrot utilities. From the top level parrot directory:

 perl Configure.pl && make

Then, type make in this directory. This will generate the file tcl.pbc which can then be used to run tcl programs.

 ../../parrot tcl.pbc foo.tcl

Interactive tclsh ^

To run partcl interactively, type:

 make tclsh

in this directory.

Command line options ^

partcl supports two command line options (that are not standard Tcl):

-e

Analagous to perl's -e switch, this option will let you specify tcl code in the command line, which will then be executed. e.g:

 $ ../../parrot tcl.pbc -e='puts {Hello World}'
 Hello World
You will need to properly quote the tcl to protect it from your shell, and you must specify the =. (Because parrot's getopt implementation requires it.)

--pir

Given this option, partcl will compile the tcl code to PIR, and output the PIR on STDOUT. This PIR can then be compiled to parrot bytecode, or run directly through parrot. (Works with -e.).

Examples ^

To run an example, change to the examples, and type make for instructions.

Test Suite ^

To run the test suite, type make test. Note - if any tests fail, try setting the environment variable TEST_PROG_ARGS to -G and retry.

If any tests fail (with -G or not), please email the perl6-internals list.

Documentation ^

See docs/ and TODO

Tcl Version ^

Note that we are targetting Tcl's cvs-latest, which is going to be 8.5. This allows us to test against what will likely be state of the art by the time we approach completion. As we get closer to that day, we'll probably settle down and code against the most recent version (which hopefully won't be 9.x by then).

This has the disadvantage that for side by side testing, you'll need to build your own tcl. Partcl users don't need to worry about this, and even most partcl developers can simply code against the test suite.


parrot