Man Linux: Main Page and Category List

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(PARROT_INTERP)"
           Print out the user help info.

       "static PackFile* pbc_merge_loadpbc(PARROT_INTERP, const char
       *fullname)"
           This function loads a PBC file and unpacks it. We can’t use
           Parrot_pbc_read because that is specified to also fixup the
           segments, which we don’t want.

       "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,
       PackFile_ByteCode *bc)"
           This function merges the constants tables from the input PBC files.

       "static void pbc_merge_fixups(PARROT_INTERP, pbc_merge_input **inputs,
       int num_inputs, PackFile *pf)"
           This function merges the fixups tables from the input PBC files.

       "static void pbc_merge_debugs(PARROT_INTERP, pbc_merge_input **inputs,
       int num_inputs, PackFile *pf, PackFile_ByteCode *bc)"
           This function merges the debug segments from the input PBC files.

       "static void pbc_merge_ctpointers(PARROT_INTERP, pbc_merge_input
       **inputs, int num_inputs, PackFile_ByteCode *bc)"
           This function corrects the pointers into the constants table found
           in the 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.