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>