This patch add docs/running.pod, which lists the various executables Parrot currently includes, examples of running them, and mentions of where they fail to work. It's more of a cry for help than a useful reference. :-) I've been having trouble recently when making changes in figuring out whether I broke anything, because any non-default way of running the system seems to be already broken. I can't tell what brokenness is expected and what isn't.
Index: MANIFEST =================================================================== RCS file: /home/perlcvs/parrot/MANIFEST,v retrieving revision 1.95 diff -a -u -r1.95 MANIFEST --- MANIFEST 14 Jan 2002 20:03:52 -0000 1.95 +++ MANIFEST 15 Jan 2002 17:20:35 -0000 @@ -57,6 +58,7 @@ docs/parrot.pod docs/parrot_assembly.pod docs/parrotbyte.pod +docs/running.pod docs/strings.pod docs/tests.pod docs/vtables.pod Index: docs/parrot.pod =================================================================== RCS file: /home/perlcvs/parrot/docs/parrot.pod,v retrieving revision 1.2 diff -a -u -r1.2 parrot.pod --- docs/parrot.pod 4 Jan 2002 16:53:22 -0000 1.2 +++ docs/parrot.pod 15 Jan 2002 17:20:35 -0000 @@ -22,6 +22,11 @@ An overview of the Parrot architecture and design. +=item F<running.pod> + +Brief descriptions of the different executables constructed and how to +run them. + =item F<core_ops.pod> A description of the core operations in the Parrot assembly language. --- /dev/null Tue May 5 13:32:27 1998 +++ docs/running.pod Tue Jan 15 09:14:53 2002 @@ -0,0 +1,75 @@ +=head1 Running Parrot code + +This file briefly describes the current set of executables and what +they're for. But mostly, it mentions all the restrictions and +incomplete bits of these commands, in the hopes that people will fix +them and modify this document accordingly. + +=over 3 + +=item C<assemble.pl> + +Converts a Parrot Assembly file to Parrot ByteCode. + + assemble.pl foo.pasm > foo.pbc + +Usage information: no usage message available. There is some amount of +malformed POD visible by running C<perldoc -F Parrot/Assembler.pm>. + +=item C<test_parrot> + +Interprets a Parrot ByteCode file. + + test_parrot <filename>.pbc + +C<test_parrot> has two alternate modes of operation: prederef mode +(C<test_parrot -P>) and jit mode (C<test_parrot -j>). + +Jit mode works for the mops.pasm test, but doesn't work for many other +things. The reason why is unknown. + +Prederef mode only works as a shared library. For example, on most +Unix platforms: + + make clean + make shared + LD_LIBRARY_PATH=blib/lib ./test_parrot -P <filename>.pbc + +You will not be able to use any of the automatic testing targets after +running C<make shared>. + +C<test_parrot> also has several debugging and tracing flags; see the +usage description (currently, a comment in test_main.c) for details. + +=item C<optimizer.pl> + +Does something. Use it by running + + something + +Usage information: none available. + +=item C<pdump> + +Does something. Use it by running + + something + +Usage information: none available. + +=item C<pbc2c.pl> + +Converts a bytecode file to a native .c file. + + perl pbc2c.pl foo.pbc > foo.c + +Usage information: C<perldoc -F pbc2c.pl> + +No documentation is available for compiling the .c file to a binary. +This works, but produces a binary that crashes: + + ./assemble.pl examples/assembly/life.pasm > life.pbc + perl pbc2c.pl life.pbc > life.c + ls **/*.o | egrep -v 'pdump|test_main' | xargs gcc -Iinclude -o life life.c -lm -ldl + +=back