Searching for Fail in the Posix code shows one situation where it could be raised. Posix.Process.fromStatus converts a value of type OS.Process.status into a value of type exit_status. exit_status is defined as
datatype exit_status =
   W_EXITED
|  W_EXITSTATUS of Word8.word
|  W_SIGNALED of signal
|  W_STOPPED of signal

The breaking out of the OS.Process.status is done in the run-time system using the WIFEXITED, WIFSIGNALED and WIFSTOPPED macros. If none of these applies then the Fail exception will be raised.

I've run some tests on Debian Linux and it looks as though the value of 255 fails to match any of these. That doesn't seem to happen on Mac OS. That raises the question of where this value is coming from and how it should be treated. Does this seem to fit with your code? Are you using Posix.Process.fromStatus and where is the value coming from?

David

On 21/04/2016 12:34, Michael Norrish wrote:
As can be seen in

   https://travis-ci.org/HOL-Theorem-Prover/HOL/jobs/124717527

our use of Posix waiting is occasionally causing a Fail exception to be raised 
from inside the Posix implementation (there's no Fail exception with that 
message in our source code, and our code *is* doing a wait at that point).

I'm afraid this doesn't seem easy to reproduce.

Michael


________________________________

The information in this e-mail may be confidential and subject to legal 
professional privilege and/or copyright. National ICT Australia Limited accepts 
no liability for any damage caused by this email or its attachments.
_______________________________________________
polyml mailing list
[email protected]
http://lists.inf.ed.ac.uk/mailman/listinfo/polyml

_______________________________________________
polyml mailing list
[email protected]
http://lists.inf.ed.ac.uk/mailman/listinfo/polyml

Reply via email to