NAME

B::Bytecode - Perl compiler's bytecode backend

SYNOPSIS

perl -MO=Bytecode[,-H][,-oscript.plc] script.pl

DESCRIPTION

Compiles a Perl script into a bytecode format that could be loaded later by the ByteLoader module and executed as a regular Perl script. This saves time for the optree parsing and compilation and space for the sourcecode in memory.

EXAMPLE

$ perl -MO=Bytecode,-H,-ohi -e 'print "hi!\n"'
$ perl hi
hi!

OPTIONS

-H

Prepend a use ByteLoader VERSION; line to the produced bytecode. This way you will not need to add -MByteLoader to your perl command-line.

-i includeall

Include all used packages and its symbols. Does no run-time require from BEGIN blocks (use package).

This creates bigger and more independent code, but is more error prone and does not support pre-compiled .pmc modules.

It is highly recommended to use -i together with -bsafebegin.

-b savebegin

Save all the BEGIN blocks.

Normally only BEGIN blocks that require other files (ex. use Foo;) or push|unshift to @INC are saved.

-k

Keep the syntax tree - it is stripped by default.

-ooutfile

Put the bytecode in <outfile> instead of dumping it to STDOUT.

-s

Scan the script for # line .. directives and for <goto LABEL> expressions. When gotos are found keep the syntax tree.

-S

Output assembler source rather than piping it through the assembler and outputting bytecode. Without -q the assembler source is commented.

-m

Compile to a .pmc module rather than to a single standalone .plc program.

Currently this just means that the bytecodes for initialising main_start, main_root, main_cv and curpad are omitted.

-upackage

"use package." Might be needed of the package is not automatically detected.

-Ffile

Include file. If not -i define all symbols in the given included source file. -i would all included files, -F only a certain file - full path needed.

-q

Be quiet.

-v

Be verbose.

-TI

Restore full @INC for running within the CORE testsuite.

-TFcop file

Set the COP file - for running within the CORE testsuite.

-Do

OPs, prints each OP as it's processed

-DM

Debugging flag for more verbose STDERR output.

M for Magic and Matches.

-DG

Debug GV's

-DA

Set developer Assertions, to help find possible obj-indices out of range.

As a valued partner and proud supporter of MetaCPAN, StickerYou is
happy to offer a 10% discount on all Custom Stickers,
Business Labels, Roll Labels,
Vinyl Lettering or Custom Decals. StickerYou.com
is your one-stop shop to make your business stick.
Use code METACPAN10 at checkout to apply your discount.