HOL4's Holmake tool uses a fork/exec idiom to run scripts in parallel (and to 
monitor their output file descriptors).  Under 5.8 this code is causing signal 
11 failures (segmentation faults), as reported by a few users, and apparent 
also on runs on Travis such as 
https://travis-ci.org/HOL-Theorem-Prover/HOL/jobs/515996149 (It is apparent 
from the related Travis pages that the same sources are running to completion 
perfectly with 5.7.1.)

The code for doing the fork/exec stuff is visible at

https://github.com/HOL-Theorem-Prover/HOL/blob/8990db3c7743feb190d98f4bce666d3163022557/tools/Holmake/poly/ProcessMultiplexor.sml#L152-L190

This code also works under mlton (although eventually does cause "out of 
filedescriptor" syscall failures because mlton won't garbage collect my fds 
after they stop getting used), so I do feel as if the code should work.

The failures all happen when Holmake is first run in this mode.  When forced to 
run single-threaded with its -j1 option, which makes it use OS.Process.system 
underneath, Holmake can work.

Michael

_______________________________________________
polyml mailing list
polyml@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/polyml

Reply via email to