Bent Dax:
# vtable_ops.c(37) : error C2296: '+' : illegal, left operand has type
# 'add_method_t'
...
# AUTO_OP add (p, p, p) {
# ((op_func_t)((INTVAL)$2->vtable->add_1 +
# (INTVAL)$3->vtable->num_type))($2,$3,$1);
# }
Okay, this is going to be a blow-by-blow of my little quest.
After thinking about this for a couple minutes, I came up with a
solution involving a macro (I can hear the groans from here):
#define VTABLE_CALL(vfunc, type)
((op_func_t)((INTVAL)vfunc+(INTVAL)type))
AUTO_OP add (p, p, p) {
VTABLE_CALL($2->vtable->add_1, $3->vtable->num_type)($2, $3, $1);
}
After adjusting all applicable ops in that file to use that macro, I got
an error on this line of intclass.c:
Parrot_base_vtables[enum_class_int] = (struct _vtable) {
Okay, can someone stop with the gcc-isms? Changing that to:
struct _vtable temp={
...
};
Parrot_base_vtables[enum_class_int] = temp;
fixed that, but then I got linker errors. Ugh.
LINK : fatal error LNK1104: cannot open file 'classes/intclass.obj'
NMAKE : fatal error U1077: 'cl' : return code '0x2'
Turns out that for some mysterious reason intclass.obj was in . instead
of classes. So I edited the Makefile to reflect that, which got me
this:
core_ops.obj : error LNK2019: unresolved external symbol _sleep
referenced in function _Parrot_sleep_i
test_prog.exe : fatal error LNK1120: 1 unresolved externals
At this point I have to leave. I'll work on this more later.
--Brent Dax
[EMAIL PROTECTED]
Configure pumpking for Perl 6
When I take action, I'm not going to fire a $2 million missile at a $10
empty tent and hit a camel in the butt.
--Dubya