Re: CPAN Upload: A/AB/ABERGMAN/ponie-2.tar.gz - Ponie Development Release 2

[email protected] (Arthur Bergman) Mon, 15 Mar 2004 15:13:48 +0000
Newsgroups perl.ponie.dev
Message-ID <[email protected]>
On 15 Mar 2004, at 14:46, Andrew Dougherty wrote:

> After applying a few little build patches, ponie generally built fine,
> except for the following warnings:
>
>
> "mg.c", line 1821: warning: a cast does not yield an lvalue
> "mg.c", line 1866: warning: a cast does not yield an lvalue
> "mg.c", line 1875: warning: a cast does not yield an lvalue
> "hv.c", line 290: warning: a cast does not yield an lvalue
> "hv.c", line 291: warning: a cast does not yield an lvalue
> "hv.c", line 456: warning: a cast does not yield an lvalue
> "av.c", line 247: warning: a cast does not yield an lvalue
> "av.c", line 248: warning: a cast does not yield an lvalue
> "pp_hot.c", line 1694: warning: a cast does not yield an lvalue
> "pp_hot.c", line 1887: warning: a cast does not yield an lvalue
> "pp_hot.c", line 2842: warning: a cast does not yield an lvalue
> "sv.c", line 1745: warning: a cast does not yield an lvalue
> "pp.c", line 316: warning: a cast does not yield an lvalue
> "pp.c", line 3080: warning: a cast does not yield an lvalue
> "pp.c", line 3111: warning: a cast does not yield an lvalue
> "doop.c", line 1293: warning: a cast does not yield an lvalue
> "doop.c", line 1318: warning: a cast does not yield an lvalue
> "byterun.c", line 273: warning: a cast does not yield an lvalue
>
> I didn't check exhaustively, but I think they are mostly all 
> complaining
> about LvTARG being used as an lvalue.
>
> sv.h:#define LvTARG(sv)      ((SV*)*Perl_macro_LvTARG(aTHX_ (SV*)(sv)))
>
> Sun's old cc compiler doesn't like that.  Neither does HP or AIX, if I
> recall my Configure lore correctly.
>

Thanks for the catch, it was a forgetting definition, LvTARG should 
just lose the (SV*) type as Perl_macro_LvTARG returns SV**. I am happy 
this lvalue function hack we are using works in older compilers.

> ponie builds anyway.  I only get one test failure, during t/x2p/s2p:
>
> t/x2p/s2p....1..56
> ok 51 - psed w
> Illegal Instruction - core dumped
> ok 52 - s2p w
>
> Running dbx() on the core file gives:
>
> t@1 (l@1) terminated by signal ILL (illegal opcode)
> Current function is Parrot_PMC_get_pointer
>    74       return VTABLE_get_pointer(interp, pmc);
> (dbx) where
> current thread: t@1
>   [1] 0x4f3b1c(0x48b680, 0x4bb768, 0x13, 0x12, 0x11, 0x4bff88), at 
> 0x4f3b1b
> =>[2] Parrot_PMC_get_pointer(interp = 0x48b680, pmc = 0x4bb768), line 
> 74 in "extend.c"
>   [3] Perl_macro_AvARRAY(av = 0x4bb778), line 26 in "av.c"
>
> I'm not sure if that's related or not.  Or it might be related to the
> stack-walking stuff.  I don't know.
>
> Otherwise, it worked well.  Good job!
>

Could be, I thought it would be disabled but I am not sure until we 
sort out all those errors.

What does illegal opcode really mean, that the stack is screwed?

Thanks for testing :)
Arthur