Re: [polyml] Posix implementation raising Fail exception

2016-04-25 Thread David Matthews
On 25/04/2016 18:51, David Matthews wrote: I think it might be worth tightening up the code a little; currently "status" is not initialised but it ought to be valid if "wait" returns a non-zero value. Otherwise I can't really see what to do about this. Yes, it seems that the "status" value is

Re: [polyml] Posix implementation raising Fail exception

2016-04-25 Thread David Matthews
It's possible but according to the documentation "wait" is only supposed to return a WIFCONTINUED status if the WCONTINUED flag is included. I've run some checks and "wait" sees the stopped process but doesn't return a result when the process is continued. I think it might be worth tightening

Re: [polyml] Posix implementation raising Fail exception

2016-04-25 Thread James Clarke
Linux (since 2.6.10) does have a WIFCONTINUED(status), which checks if status == 0x; could this be the source of it? James > On 25 Apr 2016, at 14:07, David Matthews > wrote: > > I've found something to suggest that the 255 value can come from an invalid > value being passed to "exit".

Re: [polyml] Posix implementation raising Fail exception

2016-04-25 Thread David Matthews
I've found something to suggest that the 255 value can come from an invalid value being passed to "exit". I don't understand, though, what this value says about the status of the process. Has it exited or not? It really seems to be an incompatibility between the design of the ML basis librar

Re: [polyml] Posix implementation raising Fail exception

2016-04-25 Thread Michael Norrish
I agree that it does seem to only happen on Linux. There's code doing waiting at line 303 of https://github.com/HOL-Theorem-Prover/HOL/blob/master/tools/Holmake/poly/ProcessMultiplexor.sml In the Poly sources, the fromStatus function is also called in doWait (a few lines further down in basi

Re: [polyml] Posix implementation raising Fail exception

2016-04-25 Thread David Matthews
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

[polyml] Posix implementation raising Fail exception

2016-04-21 Thread Michael Norrish
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