| 19 | = Sub Pragmas = |
| 20 | |
| 21 | - ~~:immediate and :postcomp are behaviors of the compiler only, not behaviors of libparrot. Never act on these from inside libparrot~~ |
| 22 | - :immediate and :postcomp are the same thing and should not be differentiated. Remove one of the redundant entries from pbc_action_enum_t. Keep the behavior of PBC_IMMEDIATE. |
| 23 | - remove PBC_PBC, it does not appear to do anything, or doesn't do anything different from PBC_MAIN. |
| 24 | - :main should not be a sub pragma anymore, and should not be executed through PackFile_fixup_subs. There should be a function/method to query the packfile to obtain a reference to the :main sub, and that sub should be returned and invoked normally. Remove PBC_MAIN from pbc_action_enum_t |
| 25 | - pbc_action_enum_t should be private to the src/packfile/ subsystem. PackFile_fixup_subs should be replaced with three functions to perform specific duties: Parrot_pf_get_main, Parrot_pf_execute_load_funcs, and Parrot_pf_execute_init_funcs. |
| 26 | - Actually, consider functions Parrot_pf_get_main, Parrot_pf_get_load_funcs and Parrot_pf_get_init_funcs to return a Sub or list of Subs depending on the circumstance. This way we can chose when/where/how to execute these subs. The PackFile should probably not be in charge of executing these. |