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