On Fri, Sep 05, 2008 at 05:20:45PM -0700, Christoph Otto via RT wrote:
> > On Tue, May 13, 2008 at 9:48 AM, via RT Patrick R. Michaud
> > >  The infix and n_infix opcodes cause segfaults when invoked with
> > >  string arguments.  (Kubuntu 8.04, x86, r27472)
> > >  $ cat z.pir
> > >  .sub main :main
> > >     $P0 = new 'Float'
> > >     $P0 = 3
> > >     n_mul $P1, $P0, "4"
> > >     say $P1                    # 12
> > >  .end
> > >  $ ./parrot z.pir
> > >  Segmentation fault
> > >  $
> 
> Is this bug going to continue to be relevant, since the pdd27mmd branch
> has removed the n_* opcodes (and presumably trunk will too after the
> branch is merged back)?

Just for clarification:  IIUC, the n_* opcodes and their semantics
aren't really "going away" -- they're simply being renamed to not 
have the leading "n_" prefix.  It's the existing "add", "sub", 
"mul", "div", etc.  opcodes that are being eliminated.

So, trying the above code in the pdd27mmd branch (and changing
the 'n_mul' to 'mul'), I now get:

    $ cat x.pir
    .sub main :main
        $P0 = new 'Float'
        $P0 = 3
        mul $P1, $P0, '4'
        say $P1                    # 12
    .end
    
    $ ./parrot x.pir
    error:imcc:The opcode 'mul_p_p_sc' (mul<3>) was not found. Check the type 
and number of the arguments
            in file 'x.pir' line 5
    $

This would seem to indicate that the string variants of the
various math opcodes are also going away (and that's okay with me).

So, if we can just get an official ruling that the add_p_p_s,
sub_p_p_s, etc. opcodes are going away, then we can close this
ticket as moot.  If they're not going away, then this ticket is
still relevant.  It would also be relevant because Parrot trunk
fails on the non-n_ versions of the opcodes in the same way:

    $ cat x.pir
    .sub main :main
        $P0 = new 'Float'
        $P0 = 3
        $P1 = new 'Float'
        mul $P1, $P0, '4'
        say $P1                    # 12
    .end
    
    $ ./parrot x.pir
    Segmentation fault

Pm

Reply via email to