This is the command pbc_merge that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator
PROGRAM:
NAME
pbc_merge - Merge multiple Parrot bytecode (PBC) files into
a single PBC file.
SYNOPSIS
pbc_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.
Functions
"static void help(void)"
Print out the user help 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 that grabs console input, reads in the packfiles provided they
exist, hands them to another function that runs the merge process and finally writes
out the produced packfile.
*/
/*
* Local variables:
* c-file-style: "parrot"
* End:
* vim: expandtab shiftwidth=4 cinoptions='\:2=2' :
*/
Use pbc_merge online using onworks.net services