Will Coleda writes: > Should I expect: > > parrot -o foo.pasm foo.imc > parrot foo.pasm <args> > > to work like: > > parrot foo.imc <args>
No. imcc doesn't emit local labels properly (as you seem to have discovered). > ? (it doesn't appear to be de-mangling two different "outer:" labels, > each of which is in it's own enclosing .sub) > > I'm trying to track down a bug where a .local var that's a PerlArray is > getting replaced with a PerlInt at some point, and I'm trying to figure > out why. Presuming I'm somehow stepping on that PMC register in a > subroutine I'm calling, and thought looking at the pasm might help me > track down where it was occurring. Sounds to me like you're confusing imcc's control flow analysis. Make sure you're conforming to the calling conventions and using savetop, etc. when you should (or using .pcc_*, which does this for you). > Better suggestions on how to debug .imc in general appreciated. =-) print? parrot -t? Those have usually been sufficient for me. I've never been able to use pdb very well... The 'trace' opcode is pretty nice, too. Luke > -- > Will "Coke" Coleda will at coleda > dot com >