Hello, I have some questions about which part of the actual headers are internal, which ones are for embedders and which ones are for extenders.
AFAIR nothing but Parrot sources should #include parrot/parrot.h. The public interface is available through parrot/embed.h and parrot/extend.h. Correct? * types parrot/embed.h uses Parrot_Interp, Parrot_String, ... parrot/extend.h uses Parrot_INTERP, Parrot_STRING. I like the former more (metched Parrot_Int, Parrot_Float), but the two interfaces must at least agree on type names, whatever they are. * ParrotIO It is currently not available. I think that API functions (PIO_open, PIO_read, ...) should be available for embedders (maybe not all af them, but at least some ought to), while the layer stuff should be available to extenders. Correct? Should they be available as PIO_* or as Parrot_io_*/Parrot_IO_*? * custom PMC and vtables I assume custom PMC are for extenders. If this is correct, the vtable structure needs to be available to extenders, together with APIs for accessing PMCs flags, data pointer, etc (shoud that use macros as in Parrot-provided PMCs (PMC_data), or function calls?) * Various functions: accessing globals, Parrot_runops_fromc*, mem_sys_*, Parrot_load_bytecode and registering IMCC compilers are some examples of functions that (I think) ought to be available in one form or the other, but aren't. Should they be? Thanks! Mattia