=head1 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 C<make> in I<this> directory. This will
generate the file C<tcl.pbc> which can then be used to run tcl programs.

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

=head2 Interactive tclsh

To run partcl interactively, type:

 make tclsh

in this directory.

=head2 Command line options

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

=over 4

=item -e

Analagous to perl's C<-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.

=item --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 C<-e>.).

To pretty print the PIR that is generated, you can use the I<experimental>
utility in C<../../tools/util/pirtidy.pl>.

=back

=head2 Examples

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

=head2 Test Suite

To run the test suite, type C<make test>. If any tests fail, try
C<TEST_PROG_ARGS=-G make test>. Send the results of both to the mailing list
C<parrot-porters@perl.org>.

=head2 Documentation

See C<docs/> and C<TODO>

=head2 Tcl Version

Note that we are targetting Tcl's cvs-latest, which is 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 (please use at least 8.5, revision a5). Partcl users
don't need to worry about this, and even most partcl developers can simply
code against the test suite.

=cut
