On Thu, 2004-04-15 at 00:58, Leopold Toetsch wrote:

> Did you turn on debugging? Most of these name mangling and string
> constant stuff should be covered, e.g.:
> 
> $ parrot -dffff /tmp/object-meths_15.pasm 2>&1 | grep meth

Aha, here's an interesting difference.  I've been using single quotes
for string constants.  Here's what happens when I change the double
quotes around the method name to single quotes in that test:

        emit newclass P3, "Foo"
        emit find_type I0, "Foo"
        emit new P2, I0
        emit set S0, 'meth
        emit fetchmethod P0, P2, S0
        emit print "main\n"
        emit invokecc 
        emit print "back\n"
        emit fetchmethod P0, P3, S0
        emit set P2, P3
        emit invokecc 
        emit print "back\n"
        emit end 
        emit  _Foo@@@meth:
        emit print "in meth\n"
        emit invoke P1

For what it's worth, if I switch back and forth, as in this PASM:

        .local pmc args
        new args, .PerlHash
        set args['height'], 100
        set args["width"],  100
        set args['bpp'],      0
        set args["flags"],    1

The debug output indicates:

        emit new P16, 33
        emit set P16['height], 100
        emit set P16["width"], 100
        emit set P16['bpp], 0
        emit set P16["flags"], 1

That may not be the root cause, but it's certainly suspicious.

-- c

Reply via email to