NAME

Parrot - running

VERSION

0.0.1 initial
0.0.9.10 changed run options
0.0.9.12 changed debug options
0.0.10.0 imcc is parrot
0.0.10.1 add -E switch

OVERVIEW

This document describes parrot's command line options.

SYNOPSIS

parrot [-options] <file> [arguments ...]

OPTIONS

IMCC options

-a, --pasm

Assume PASM input on stdin.

-c, --pbc

Assume PBC file on stdin, run it.

-d, --debug [hexbits]

The -d switch takes an optional argument which is considered to hold a hex value of debug bits. Without a value, debug is set to 1.

The individual bits are:

DEBUG_PARROT 0x0001
DEBUG_LEXER  0x0002
DEBUG_PARSER 0x0004
DEBUG_IMC    0x0008
DEBUG_CFG    0x0010
DEBUG_OPT1   0x0020
DEBUG_OPT2   0x0040
DEBUG_PBC    0x1000
DEBUG_PBC_CONST    0x2000
DEBUG_PBC_FIXUP    0x4000

To produce really huge output on stderr run "imcc -d 0ffff ...". Note: if the argument is separated by whitespace from the -d switch, it has to start with a number.

-h, --help
-o outputfile, --output=outputfile

Act like assembler. Don't run code, unless -r is given too. If the outputfile ends with .pbc, a PBC file is written. If it ends with .pasm, a PASM output is generated, even from PASM input. This can be handy to check various optimizations, including -Op.

--output-pbc

Act like assembler, but always output a bytecode even though the outputfile does not end in .pbc

-r, --run-pbc
-v, --verbose

One -v shows which files are worked on and prints a summary over register usage and optimization stats per compilation unit. With two -v switches, IMCC prints a line per individual processing step too.

-y, --yydebug

Turn on yydebug in yacc/bison.

-V, --version
-Ox

Optimize

-O0 no optimization (default)
-O1 optimizations w/o life info (e.g. branches)
-O  same
-O2 optimizations with life info
-Op rewrite I and N PASM registers most used first

This will probably change.

-E, --pre-process-only

Preprocess sorce file (i.e. expand macros) and print result to stdout. E.g.

$ parrot -E t/op/macro_10.pasm
$ parrot -E t/op/macro_10.pasm | parrot -- -

Parrot Options

See parrot -h for description. Used when running a program inside imcc.

<file>

If the file ends in .pbc it will be interpreted immediately.

If the file ends in .pasm, then it is parsed as PASM code. Otherwise, it is parsed as PIR code. In both cases, it will then be run, unless the -o flag was given. If the file is a single dash, input from stdin is read.

Generated files

If debugging is enabled these files are generated:

file.stabs.s ... stabsfile for the program
file.o ... object file with debug information
EVAL_n ... source of B<compile> op nr. I<N>
EVAL_n.stabs.s ... stabsfile for this block
EVAL_n.o ... object file with debug information

[arguments ...]

Optional arguments passed to the running program as ARGV, only useful for running the program.

Operation table

Command line		Action		Output
---------------------------------------------
parrot x.imc		run
parrot x.pasm		run
parrot x.pbc		run
-o x.pasm x.imc	ass		x.pasm
-o x.pasm y.pasm	ass		x.pasm
-o x.pbc  x.imc	ass		x.pbc
-o x.pbc  x.pasm	ass		x.pbc
-o x.pbc -r x.pasm	ass/run		x.pbc

BUGS

None currently known.

FILES

main.c

AUTHOR

Leopold Toetsch <lt@toetsch.at>