It's not the stack. Addresses are being reused. (I'm watching the stack on entry to stack_push. Pop is probably working okay, too. I don't know why the old contents aren't being clobbered, though. Since I know when it happens, I'll try to narrow it down there.)
`parrot`stacks.c`stack_push`stack = { used = 44 next = 0x332000 prev = 0x332000 entry = ({ entry = { # stack[0] num_val = 1.0956763994969e-307 int_val = 3388008 pmc_val = 0x33b268 string_val = 0x33b268 generic_pointer = 0x33b268 } entry_type = 3 flags = 0 cleanup = (nil) } { entry = { num_val = 1.0955949148585e-307 int_val = 3387912 pmc_val = 0x33b208 string_val = 0x33b208 generic_pointer = 0x33b208 } entry_type = 3 flags = 0 cleanup = (nil) } { entry = { num_val = 1.0955134302202e-307 int_val = 3387816 pmc_val = 0x33b1a8 string_val = 0x33b1a8 generic_pointer = 0x33b1a8 } entry_type = 3 flags = 0 cleanup = (nil) } { entry = { num_val = 1.0954319455818e-307 int_val = 3387720 pmc_val = 0x33b148 string_val = 0x33b148 generic_pointer = 0x33b148 } entry_type = 3 flags = 0 cleanup = (nil) } { entry = { num_val = 1.0953504609434e-307 int_val = 3387624 pmc_val = 0x33b0e8 string_val = 0x33b0e8 generic_pointer = 0x33b0e8 } entry_type = 3 flags = 0 cleanup = (nil) } { entry = { num_val = 1.095268976305e-307 int_val = 3387528 pmc_val = 0x33b088 string_val = 0x33b088 generic_pointer = 0x33b088 } entry_type = 3 flags = 0 cleanup = (nil) } { .. .. .. entry = { # stack[41] num_val = 1.0957578841353e-307 int_val = 3388104 pmc_val = 0x33b2c8 string_val = 0x33b2c8 generic_pointer = 0x33b2c8 } entry_type = 3 flags = 0 cleanup = (nil) } { entry = { # stack[42] num_val = 1.0956763994969e-307 int_val = 3388008 pmc_val = 0x33b268 string_val = 0x33b268 generic_pointer = 0x33b268 } entry_type = 3 flags = 0 cleanup = (nil) } { entry = { # stack[43] num_val = 1.0955949148585e-307 int_val = 3387912 pmc_val = 0x33b208 string_val = 0x33b208 generic_pointer = 0x33b208 } .. .. .. -- Bryan C. Warnock [EMAIL PROTECTED]