On Friday 01 June 2007 16:51:18 Steve Peters wrote:

> The attached patch gets Parrot partially compiles with C++ (g++ actually).
> This work gets the compile going through the start of the imcc compiler.

Danger!

The patch to src/stm/waitlist.c causes segfaults in t/stm/runtime.t, test 3:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1230156912 (LWP 30260)]
0xb7e02645 in alloc_entry (interp=0x8231358) at src/stm/waitlist.c:57
57          assert(thr->entries[i]->head == NULL);
(gdb) x thr
0x8237700:      0x00000000
(gdb) p thr
$1 = (struct waitlist_thread_data *) 0x8237700

The patch to Parrot::Ops2c::Utils causes errors about multiple definitions of 
`core_numops' in interpreter.o and core_ops.o.

This patch to the CGP core:

--- lib/Parrot/OpTrans/CGP.pm.  (revision 3741)
+++ lib/Parrot/OpTrans/CGP.pm.  (local)
@@ -68,7 +68,7 @@
     return $pred_def . <<END;
 /* defines - $0 -> $type */
 #  define opcode_to_prederef(i, op)   \\
-     (void**) (op   - CONTEXT(i->ctx)->pred_offset)
+     (opcode_t*) (op   - (opcode_t*)CONTEXT(i->ctx)->pred_offset)

... causes segfaults for me in the shootout tests (probably because they run 
with -jC).  If I remove the second cast from the line, the segfault goes 
away.

I applied the rest as r18744.  Thanks!

-- c

Reply via email to