On Tue, Mar 4, 2008 at 10:30 PM, Will Coleda <[EMAIL PROTECTED]> wrote:
>
> On Tue, Mar 4, 2008 at 10:14 PM, chromatic <[EMAIL PROTECTED]> wrote:
>  >
>  > On Tuesday 04 March 2008 19:09:48 Will Coleda wrote:
>  >
>  >  > On Tue, Mar 4, 2008 at 9:39 PM, chromatic <[EMAIL PROTECTED]> wrote:
>  >
>  >  > >  Tcl: doesn't run
>  >  > >
>  >  > >  unable to assign self to this type
>  >  > >  # current instr.: '__list' pc 25773
>  >  > > (languages/tcl/runtime/conversions.pir:27) # called from Sub '&proc' 
> pc
>  >  > > 22110
>  >  > >  (languages/tcl/runtime/builtin/proc.pir:106)
>  >  > >  # called from Sub '_anon' pc 44 (EVAL_4:18)
>  >  > >  # called from Sub '__load_stdlib' pc 55943 (runtime/tcllib.pir:291)
>  >  > >  # called from Sub '_main' pc 3 (src/tclsh.pir:36)
>  >  >
>  >  > Offending code:
>  >  >
>  >  > morph value, .Undef
>  >  > assign value, $P0
>  >  >
>  >  >  25772 morph P0, 80                     P0=TclString=PMC(0x790080)
>  >  >  25775 assign P0, P1                    P0=Undef=PMC(0x790080)
>  >  > P1=TclList=PMC(0x78ebd4)
>  >  >
>  >  > This part of tcl still works in trunk.
>  >
>  >  r26217 fixes most of that, but I'm no fan of .Undef.  (Why does that work 
> in
>  >  trunk?)
>  >
>  >  -- c
>  >
>  >
>
>  As James noted, build is currently borked in the branch so I can't test the 
> fix.
>
>  And no fair asking why it works in trunk, it just does! =-)
>
>
>  Seriously, this is how we used to have to do "copy" - wipe an existing
>  PMC then assign it the new value. I'll see if I can eliminate this
>  idiom and just use copy instead.
>
>  --
>  Will "Coke" Coleda
>

FYI, this ends up *mostly* working, but I end up with a gazillion (I
counted!) warnings, ala:

parrot(27000) malloc: *** error for object 0x3f4b30: double free
parrot(27000) malloc: *** set a breakpoint in szone_error to debug

Which ... infect the output of the perl-based tests; anything that is
checking stdout/error gets these warnings too and fails. But all the
tcl-based tests seem to pass.

(I tried running this through gdb and setting a breakpoint as
instructed. didn't help.)

I'll see if I can narrow down the double free error to a small PIR
case and open a ticket.

-- 
Will "Coke" Coleda

Reply via email to