On Thu May 26 15:32:11 2011, dukeleto wrote: > Howdy, > > After talking with pmichaud++ today about the use of PMC_IS_NULL in > Rakudo and > where Rakudo got access to this macro, it was mentioned that Rakudo > includes > parrot/parrot.h. It is mentioned at the top of this header file that > "Only > parrot core files should include this file". > > Parrot developers understand that Rakudo was probably forced to do > this in the > past to get at something that was not properly exported via a public, > supported > and documented API. > > We would like to fix this situation, and provide everything that > Rakudo and > other HLL's/libraries need via our public header files, so any help in > identifying what Rakudo is using from parrot/parrot.h would be greatly > appreciated. > > I expect that this will take a concerted effort by at least one dev on > the > Parrot side and at least one more on the Rakudo side. I gladly > volunteer for > fixing stuff on the Parrot side, since it directly relates to my > current TPF > grant about documenting and testing our embed/extend interface. > > Duke >
Removing this include wherever it occurs in the rakudo source causes the following build errors before erroring out. ./storage_spec.h:12:5: error: unknown type name 'INTVAL' INTVAL inlineable; ^ ./storage_spec.h:17:5: error: unknown type name 'INTVAL' INTVAL bits; ^ ./storage_spec.h:18:5: error: unknown type name 'INTVAL' INTVAL align; ^ ./storage_spec.h:23:5: error: unknown type name 'INTVAL' INTVAL boxed_primitive; ^ ./storage_spec.h:26:5: error: unknown type name 'INTVAL' INTVAL can_box; ^ In file included from types.c:6: In file included from ./sixmodelobject.h:8: ./serialization.h:7:5: error: unknown type name 'Parrot_Int4' Parrot_Int4 version; ^ ./serialization.h:11:5: error: unknown type name 'Parrot_Int4' Parrot_Int4 num_dependencies; ^ ./serialization.h:15:5: error: unknown type name 'PMC' PMC *sc; ^ ./serialization.h:18:5: error: unknown type name 'PMC' PMC *dependent_scs; ^ ./serialization.h:22:5: error: unknown type name 'Parrot_Int4' Parrot_Int4 num_stables; ^ ./serialization.h:28:5: error: unknown type name 'Parrot_Int4' Parrot_Int4 num_objects; ^ ./serialization.h:34:5: error: unknown type name 'Parrot_Int4' Parrot_Int4 num_closures; ^ ./serialization.h:39:5: error: unknown type name 'Parrot_Int4' Parrot_Int4 num_contexts; ^ ./serialization.h:44:5: error: unknown type name 'PMC' PMC *string_heap; ^ ./serialization.h:56:5: error: unknown type name 'PMC' PMC *stables_list; ^ ./serialization.h:57:5: error: unknown type name 'PMC' PMC *objects_list; ^ ./serialization.h:58:5: error: unknown type name 'PMC' PMC *codes_list; ^ ./serialization.h:59:5: error: unknown type name 'PMC' PMC *contexts_list; ^ ./serialization.h:63:5: error: unknown type name 'Parrot_Int4' Parrot_Int4 stables_data_offset; ^ fatal error: too many errors emitted, stopping now [-ferror-limit=] 20 errors generated. -- Will "Coke" Coleda