MAIN.C(1) User Contributed Perl Documentation MAIN.C(1)NAMEpbc_merge - Merge multiple Parrot bytecode (PBC) files into
a single PBC file.
SYNOPSISpbc_merge-o out.pbc input1.pbc input2.pbc ...
DESCRIPTION
This program takes two or more PBC files and produces a single merged
output PBC file with a single fix-up table and constants table.
Command-Line Options
"-o out.pbc"
The name of the PBC file to produce, containing the merged segments
from the input PBC files.
"-?" or "--help"
Functions
"static void help(void)"
Prints usage info.
"static void ensure_libdep(PARROT_INTERP, PackFile_ByteCode *bc, STRING
*lib)"
Ensures that the libdep "lib" is in the libdeps list for "bc".
"static PackFile_ByteCode* pbc_merge_bytecode(PARROT_INTERP,
pbc_merge_input **inputs, int num_inputs, PackFile *pf)"
This function merges the bytecode from the input packfiles, storing
the offsets that each bit of bytecode now exists at.
"static PackFile_ConstTable* pbc_merge_constants(PARROT_INTERP,
pbc_merge_input **inputs, int num_inputs, PackFile *pf)"
This function merges the constants tables from the input PBC files.
"static PackFile_Annotations* pbc_merge_annotations(PARROT_INTERP,
pbc_merge_input **inputs, int num_inputs, PackFile *pf,
PackFile_ByteCode *bc)"
Merge Annotations segments from "inputs" into a new
"PackFile_Annotations" segment. Returns the new merged segment
(which is also already appended to the directory in "pf").
"static void pbc_merge_debugs(PARROT_INTERP, pbc_merge_input **inputs,
int num_inputs, PackFile_ByteCode *bc)"
This function merges the debug segments from the input PBC files.
"static void pbc_fixup_bytecode(PARROT_INTERP, pbc_merge_input
**inputs, int num_inputs, PackFile_ByteCode *bc)"
Fixup bytecode. This includes correcting pointers into the constant
table and updating the ops mapping.
"static void pbc_fixup_constants(PARROT_INTERP, pbc_merge_input
**inputs, int num_inputs)"
Fixup constants. This includes correcting pointers into bytecode.
"static PackFile* pbc_merge_begin(PARROT_INTERP, pbc_merge_input
**inputs, int num_inputs)"
This is the function that drives PBC merging process.
"static void pbc_merge_write(PARROT_INTERP, PackFile *pf, const char
*filename)"
This functions writes out the merged packfile.
"int main(int argc, const char **argv)"
The main function checks arguments, reads in the packfiles provided
they exist, call the merge functions and writes out the produced
packfile.
perl v5.20.3 2015-10-19 MAIN.C(1)