The attached test case segfaults in r8247, apparently in the iseq instruction. The necessary condition seems to be that the *second* argument be a ParrotObject instance; if you reverse the order of arguments in line 41, you merely get a fatal error:
MMD function __is_equal not foundfor types (74, 34) current instr.: 'ParrotCL::Common_Lisp :: _main' pc 118 (test.pir:41) I can't seem to get gdb to tell me anything useful -- not even a backtrace -- so I'll leave this for more capable hands. TIA, -- Bob Rogers http://rgrjr.dyndns.org/
.namespace ["ParrotCL::Common_Lisp::Symbol"] .sub build_Symbol method .param pmc name classoffset $I33, self, "ParrotCL::Common_Lisp::Symbol" inc $I33 setattribute self, $I33, name .pcc_begin_return .return self .pcc_end_return .end .namespace ["ParrotCL::Common_Lisp"] .sub _Symbol_onload find_type $I0, "ParrotCL::Common_Lisp::Symbol" if $I0 > 1 goto class_done newclass $P0, "ParrotCL::Common_Lisp::Symbol" addattribute $P0, "PACKAGE" addattribute $P0, "NAME" addattribute $P0, "VALUE" addattribute $P0, "PLIST" addattribute $P0, "FUNCTION" $P1 = new String $P1 = 'build_Symbol' setprop $P0, 'BUILD', $P1 class_done: .end .sub _main @MAIN _Symbol_onload() find_type $I0, "ParrotCL::Common_Lisp::Symbol" if $I0 goto found printerr "oops\n" die found: $P1 = new String $P1 = 'foo' $P2 = new $I0, $P1 print "made\n" $I33 = iseq $P1, $P2 print "iseq: " print $I33 print "\n" .end