petdance/scratch — Issue #415: Including extend.h without first including parrot.h blows up in Rakudo
Author: petdance
Created: 2011-11-01 05:42:17+00:00
State: open
Labels: bug, embed_extend, Pri-normal, Sev-medium

{{{
15:15:49 @pmichaud | NotFound: http://gist.github.com/994223 # results of including extend.h without first including parrot.h
}}}

Sample:
{{{
cd src/binder && cc -c -o bind.o -I../../src/pmc -I/home/pmichaud/rakudo/parrot_install/include/3.4.0-devel -I/home/pmichaud/rakudo/parrot_install/include/3.4.0-devel/pmc -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DHASATTRIBUTE_CONST -DHASATTRIBUTE_DEPRECATED -DHASATTRIBUTE_MALLOC -DHASATTRIBUTE_NONNULL -DHASATTRIBUTE_NORETURN -DHASATTRIBUTE_PURE -DHASATTRIBUTE_UNUSED -DHASATTRIBUTE_WARN_UNUSED_RESULT -DHASATTRIBUTE_HOT -DHASATTRIBUTE_COLD -DDISABLE_GC_DEBUG=1 -DNDEBUG -DHAS_GETTEXT -fPIC -falign-functions=16 -funit-at-a-time -fexcess-precision=standard -maccumulate-outgoing-args -W -Wall -Waggregate-return -Wcast-align -Wcast-qual -Wchar-subscripts -Wcomment -Wdisabled-optimization -Wdiv-by-zero -Wenum-compare -Wendif-labels -Wextra -Wformat -Wformat-extra-args -Wformat-nonliteral -Wformat-security -Wformat-y2k -Wimplicit -Wimport -Winit-self -Winline -Winvalid-pch -Wjump-misses-init -Wlogical-op -Wmissing-braces -Wmissing-field-initializers -Wno-missing-format-attribute -Wmissing-include-dirs -Wmultichar -Wpacked -Wparentheses -Wpointer-arith -Wpointer-sign -Wreturn-type -Wsequence-point -Wsign-compare -Wstrict-aliasing -Wstrict-aliasing=2 -Wswitch -Wswitch-default -Wtrigraphs -Wundef -Wno-unused -Wunknown-pragmas -Wvariadic-macros -Wwrite-strings -Wc++-compat -Wdeclaration-after-statement -Werror=declaration-after-statement -Wimplicit-function-declaration -Wimplicit-int -Wmain -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wnonnull -Wold-style-definition -Wstrict-prototypes -fvisibility=hidden bind.c
In file included from /home/pmichaud/rakudo/parrot_install/include/3.4.0-devel/parrot/extend.h:19:0,
from bind.c:8:
/home/pmichaud/rakudo/parrot_install/include/3.4.0-devel/parrot/interpreter.h:557:34: error: expected ‘)’ before ‘(’ token
In file included from /home/pmichaud/rakudo/parrot_install/include/3.4.0-devel/parrot/extend.h:55:0,
from bind.c:8:
/home/pmichaud/rakudo/parrot_install/include/3.4.0-devel/parrot/extend_vtable.h:17:47: error: expected ‘)’ before ‘(’ token
/home/pmichaud/rakudo/parrot_install/include/3.4.0-devel/parrot/extend_vtable.h:18:42: error: expected ‘)’ before ‘(’ token
/home/pmichaud/rakudo/parrot_install/include/3.4.0-devel/parrot/extend_vtable.h:19:46: error: expected ‘)’ before ‘(’ token
/home/pmichaud/rakudo/parrot_install/include/3.4.0-devel/parrot/extend_vtable.h:20:48: error: expected ‘)’ before ‘(’ token
/home/pmichaud/rakudo/parrot_install/include/3.4.0-devel/parrot/extend_vtable.h:21:46: error: expected ‘)’ before ‘(’ token
/home/pmichaud/rakudo/parrot_install/include/3.4.0-devel/parrot/extend_vtable.h:22:43: error: expected ‘)’ before ‘(’ token
/home/pmichaud/rakudo/parrot_install/include/3.4.0-devel/parrot/extend_vtable.h:23:43: error: expected ‘)’ before ‘(’ token
/home/pmichaud/rakudo/parrot_install/include/3.4.0-devel/parrot/extend_vtable.h:24:41: error: expected ‘)’ before ‘(’ token
/home/pmichaud/rakudo/parrot_install/include/3.4.0-devel/parrot/extend_vtable.h:25:52: error: expected ‘)’ before ‘(’ token
}}}

Originally http://trac.parrot.org/parrot/ticket/2124