1MAIN.C(1)             User Contributed Perl Documentation            MAIN.C(1)
2
3
4

NAME

6       pbc_merge - Merge multiple Parrot bytecode (PBC) files into
7                         a single PBC file.
8

SYNOPSIS

10        pbc_merge -o out.pbc input1.pbc input2.pbc ...
11

DESCRIPTION

13       This program takes two or more PBC files and produces a single merged
14       output PBC file with a single fix-up table and constants table.
15
16   Command-Line Options
17       "-o out.pbc"
18           The name of the PBC file to produce, containing the merged segments
19           from the input PBC files.
20
21       "-?" or "--help"
22
23   Functions
24       "static void help(void)"
25           Prints usage info.
26
27       "static void ensure_libdep(PARROT_INTERP, PackFile_ByteCode *bc, STRING
28       *lib)"
29           Ensures that the libdep "lib" is in the libdeps list for "bc".
30
31       "static PackFile_ByteCode* pbc_merge_bytecode(PARROT_INTERP,
32       pbc_merge_input **inputs, int num_inputs, PackFile *pf)"
33           This function merges the bytecode from the input packfiles, storing
34           the offsets that each bit of bytecode now exists at.
35
36       "static PackFile_ConstTable* pbc_merge_constants(PARROT_INTERP,
37       pbc_merge_input **inputs, int num_inputs, PackFile *pf)"
38           This function merges the constants tables from the input PBC files.
39
40       "static PackFile_Annotations* pbc_merge_annotations(PARROT_INTERP,
41       pbc_merge_input **inputs, int num_inputs, PackFile *pf,
42       PackFile_ByteCode *bc)"
43           Merge Annotations segments from "inputs" into a new
44           "PackFile_Annotations" segment. Returns the new merged segment
45           (which is also already appended to the directory in "pf").
46
47       "static void pbc_merge_debugs(PARROT_INTERP, pbc_merge_input **inputs,
48       int num_inputs, PackFile_ByteCode *bc)"
49           This function merges the debug segments from the input PBC files.
50
51       "static void pbc_fixup_bytecode(PARROT_INTERP, pbc_merge_input
52       **inputs, int num_inputs, PackFile_ByteCode *bc)"
53           Fixup bytecode. This includes correcting pointers into the constant
54           table and updating the ops mapping.
55
56       "static void pbc_fixup_constants(PARROT_INTERP, pbc_merge_input
57       **inputs, int num_inputs)"
58           Fixup constants. This includes correcting pointers into bytecode.
59
60       "static PackFile* pbc_merge_begin(PARROT_INTERP, pbc_merge_input
61       **inputs, int num_inputs)"
62           This is the function that drives PBC merging process.
63
64       "static void pbc_merge_write(PARROT_INTERP, PackFile *pf, const char
65       *filename)"
66           This functions writes out the merged packfile.
67
68       "int main(int argc, const char **argv)"
69           The main function checks arguments, reads in the packfiles provided
70           they exist, call the merge functions and writes out the produced
71           packfile.
72
73
74
75perl v5.30.1                      2020-01-29                         MAIN.C(1)
Impressum