SimonM: > I can get it to fail another way too: > main = do > p <- mallocBytes 64 > newForeignPtr p (print x) > print x > where > x = sum [1..10000]
The problem is probably this shared mutable variable used behind the scenes in the implementation of the numeric show code (hugs98/src/printer.c) static Cell out; /* GC'd var used by printer code */ [It's also used if you use the -u flag to use Hugs' builtin printer instead of the Show function - but I don't think anyone does that anymore and we could probably kill that code without anyone noticing (???). (Unless, does Hood or some such use it?)] I think all the functions affected return void so it'd be easy to replace the global variable with a local which is threaded through that set of functions. -- Alastair _______________________________________________ FFI mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/ffi