11.4 Parrot Command-Line Options

     

Since Parrot is both an assembler and a bytecode interpreter, it has options to control both behaviors. Some options may have changed by the time you read this, especially options related to debugging and optimization. The document imcc/docs/running.pod should have the latest details. Or just run parrot ”help .

11.4.1 General Usage

 parrot [   options   ]   file   [   arguments   ] 

The file is either an .imc ( .pir ) or .pasm source file or a Parrot bytecode file. Parrot creates an Array object to hold the command-line arguments and stores it in P5 on program start.

11.4.2 Assembler Options


-a , --pasm

Assume PASM input on stdin . When Parrot runs a source file with a .pasm extension, it parses the file as pure PASM code. This switch turns on PASM parsing (instead of the default PIR parsing) when a source file is read from stdin .


-c ,--pbc

Assume PBC file on stdin . When Parrot runs a bytecode file with a .pbc extension, it immediately executes the file. This option tells Parrot to immediately execute a bytecode file piped in on stdin .


-d ,--debug [ hexbits ]

Turn on debugging output. The -d switch takes an optional argument, which is a hex value of debug bits. (The individual bits are shown in Table 11-3.) When hexbits isn't specified, the default debugging level is 0001. If hexbits is separated from the -d switch by whitespace, it has to start with a number.

Table 11-3. Debug bits

Description

Debug bit

DEBUG_PARROT

0001

DEBUG_LEXER

0002

DEBUG_PARSER

0004

DEBUG_IMC

0008

DEBUG_CFG

0010

DEBUG_OPT1

0020

DEBUG_OPT2

0040

DEBUG_PBC

1000

DEBUG_PBC_CONST

2000

DEBUG_PBC_FIXUP

4000


To produce a huge output on stderr , turn on all the debugging bits:

 $ parrot -d 0ffff  . . . 


--help-debug

Show debug option bits.


-h ,--help

Print a short summary of options to stdout and exit.


-o outputfile

Act like an assembler. With this switch, Parrot won't run code unless it's combined with the -r switch. If the name of outputfile ends with a .pbc extension, Parrot writes a Parrot bytecode file. If outputfile ends with a .pasm extension, Parrot writes a PASM source file, even if the input file was also PASM. This can be handy to check various optimizations when you run Parrot with the -Op switch.

If the extension is .o or equivalent, Parrot generates an object file from the JITed program code, which can be used to create a standalone executable program. This isn't available on all platforms yet; see PLATFORMS for which platforms support this.


-r ,--run-pbc

Immediately execute bytecode. This is the default unless -o is present. The combination of -r -o output.pbc writes a bytecode file and executes the generated PBC.


-v ,--verbose

One -v switch ( imcc -v ) shows which files are worked on and prints a summary of register usage and optimization statistics. Two -v switches ( imcc -v -v ) also prints a line for each individual processing step.


-y ,--yydebug

Turn on yydebug for yacc / bison .


-E ,--pre-process-only

Show output of macro expansions and quit.


-V ,--version

Print the program version to stdout and exit.


-Ox

Turn on optimizations. The flags currently implemented are shown in Table 11-4.

Table 11-4. Optimizations

Flag

Meaning

-O0

No optimization (default).

-O1

Optimizations without life info (e.g., branches and constants).

-O2

Optimizations with life info.

-Oc

Optimize function call sequence.

-Op

Rearrange PASM registers with the most-used first.


11.4.3 Bytecode Interpreter Options

The interpreter options are mainly for selecting which run-time core to use for interpreting bytecode. The current default is the computed goto core if it's available. Otherwise, the fast core is used.


-b ,--bounds-checks

Activate bounds checking. This also runs with the slow core as a side effect.


-f ,--fast-core

Run with the fast core .


-g ,--computed-goto-core

Run the computed goto core (CGoto).


-j ,--jit-core

Run with the JIT core if available.


-p ,--profile

Activate profiling. This prints a summary of opcode usage and execution times after the program stops. It also runs within the slow core .


-C ,--CGP-core

Run with the CGoto-Prederefed core.


-P ,--predereferenced-core

Run with the Prederefed core .


-S ,--switched-core

Run with the Switched core .


-t ,--trace

Trace execution. This also turns on the slow core .


-w ,--warnings

Turn on warnings.


-G ,--no-gc

Turn off DOD/GC. This is for debugging only.


- .,--wait

Wait for a keypress before running.


--leak-test,--destroy-at-end

Clean up allocated memory when the final interpreter is destroyed . Parrot destroys created interpreters (e.g., threads) on exit but doesn't normally free all memory for the last terminating interpreter, since the operating system will do this anyway. This can create false positives when Parrot is run with a memory leak detector. To prevent this, use this option.



Perl 6 and Parrot Essentials
Perl 6 and Parrot Essentials, Second Edition
ISBN: 059600737X
EAN: 2147483647
Year: 2003
Pages: 116

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net