[MLton] segfault/assertion with mark-compact gc

Matthew Fluet matthew.fluet at gmail.com
Wed May 12 08:02:15 PDT 2010


I was trying to bootstrap SVN HEAD on Ubuntu 10.04 (running in VMWare
Fusion), using 20091212~svn-r7383 from the Debian/Ubuntu packages as
the baseline compiler.  This resulted in a segmentation fault
somewhere early in the "toMachine" pass.  However, compiling
/mlton/mlton.mlb directly from the command-line (i.e., not through
make), did successfully compile.  But, bootstrapping with that
compiler again resulted in a segmentation fault (but, somewhere else
in the SSA optimization passes).  After a bit of tweaking with
gc-messages and using the debug runtime, it seems that a mark-compact
gc corrupts the heap, resulting in an "assert (1 == (header &
GC_VALID_HEADER_MASK))".

Has anyone else observed this?  I can't reproduce the error on
x86-darwin, even if I tweak the runtime to always use the mark-compact
gc.  However, I can regularly reproduce it in this x86-linux virtual
machine.



More information about the MLton mailing list