Re: Ponie development snapshot 4

[email protected] (Andy Dougherty) Mon, 27 Jun 2005 15:41:42 -0400 (EDT)
Newsgroups perl.ponie.dev
Message-ID <[email protected]>
On Mon, 27 Jun 2005, Nicholas Clark wrote:

> I've rolled up a development snapshot. It's available at
> 
>   http://opensource.fotango.com/~nclark/ponie-4.tar.bz2

On the perl side of things, I ran into the following problem:

"perl.c", line 3410: operand cannot have void type: op "&&"
"perl.c", line 3410: operands must have scalar type: op "&&"
"perl.c", line 3488: operand cannot have void type: op "&&"
"perl.c", line 3488: operands must have scalar type: op "&&"
"perl.c", line 4264: warning: statement not reached
"perl.c", line 4413: operand cannot have void type: op "&&"
"perl.c", line 4413: operands must have scalar type: op "&&"
"perl.c", line 4423: operand cannot have void type: op "&&"
"perl.c", line 4423: operands must have scalar type: op "&&"
"perl.c", line 4432: operand cannot have void type: op "&&"
"perl.c", line 4432: operands must have scalar type: op "&&"

Line 3140 is
    GvHV(gv) = (HV*)SvREFCNT_inc(PL_defstash)
which expands to something like 
     ( ( ( ( ( XPVGV * ) Parrot_PMC_get_pointer_intkey ( PL_Parrot , gv , Ponie_P_ANY ) ) -> xgv_gp ) ) -> gp_hv ) = (HV*) ( ( PL_Sv = ( SV * ) ( PL_defstash ) ) , ( PL_Sv && Parrot_PMC_set_intval_intkey ( PL_Parrot , PL_Sv , Ponie_I_SV_REFCNT_INC , + 1 ) ) , ( SV * ) PL_Sv );

This doesn't work because over in parrot/extend.c, Parrot_PMC_set_intval_intkey()
is a void function.  The problem is the non-gcc version of the the
SvREFCNT_inc macro in sv.h.  Sorry, no, I don't have a patch handy.

-- 
    Andy Dougherty		[email protected]