| 1 | This page is going to talk about steps involved in fixing the Parrot API. |
| 2 | |
| 3 | = Function Renaming = |
| 4 | |
| 5 | All API functions should be renamed Parrot_<subsys>_<funcname>. Where <subsys> will be one of these two- or three-letter codes: |
| 6 | |
| 7 | - gc: Garbage collector (in src/gc/*) |
| 8 | - ex: Exceptions |
| 9 | - pmc: PMC system |
| 10 | - oo: Object system |
| 11 | - io: IO system (in src/io/*) |
| 12 | - str: String system (in src/string/*) |
| 13 | - pcc: calling conventions (in src/call/*) |
| 14 | - pi: Parrot interpreter (in src/interp/*) |
| 15 | - pf: Packfiles (in src/packfile/*) |
| 16 | - rc: Runcores (in src/runcore/*) |
| 17 | - jit: Just In Time compiler (in src/jit/*) |
| 18 | - ee: Extending and Embedding |
| 19 | - hll: High Level Languages |
| 20 | - mmd: multiple dispatch |
| 21 | - nci: native call interface |
| 22 | - cx: concurrency scheduler |
| 23 | - pt: Parrot threads |
| 24 | |
| 25 | = File Moving = |
| 26 | |
| 27 | Some files from src/* need to be moved into subdirectories and broken up into separate systems. For example, System "Foo" needs to be moved to /src/foo/*, where src/foo/api.c is the main public interface to the subsystem, src/foo/foo_private.h is the private header file for the subsystem, and other files are named src/foo/foo_*.c. Big files in src/* have priority for moving and breaking up into multiple files. Here are a list of some of the biggest (> 50kb) source files in src/: |
| 28 | |
| 29 | - debug.c |
| 30 | - jit.c |
| 31 | - list.c |
| 32 | - packfile.c (could be moved together with packdump.c and packout.c) |
| 33 | - pmc_freeze.c |
| 34 | - thread.c |