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