[MLton-devel] Re: size increase

Matthew Fluet Matthew Fluet <fluet@CS.Cornell.EDU>
Tue, 9 Apr 2002 22:49:40 -0400 (EDT)


> > In general you want something like the `system' command to ignore SIGINT and
> > SIGQUIT so that if the command you run is interactive then interrupting it
> > will not cause the parent (ML) process to think something went wrong.
> > I'm not saying that it is the way to go here.
> 
> OK.  Since the basis library spec doesn't say anything.  I'm gonna
> take out the signal stuff, and leave it up to the user.

My info files say:

       system() executes a command specified in string by calling
       /bin/sh -c string, and returns after the command has  been
       completed.   During execution of the command, SIGCHLD will
       be blocked, and SIGINT and SIGQUIT will be ignored.

So, I suspect that's why SML/NJ masked the signals.

Since there's nothing in the Basis that lets you mask signals (correct?),
there isn't a way for a (strict SML+Basis) user to get the same behavior. 
So, I would expect the OS.Process.system function to work like the libc
version.

(On the other hand, there is a long rant in the BUGS section of info page
that says how unfortunate it is that it ignores signals.)

I don't really care either way; I just want to point out that it isn't a
solution the size increase problem to change the basis and add a signal
ignoring version of system to lib/mlton/basic/process.sml, because
touching signals there will still pull them into the executable.



Also,

> I've decided to go ahead and add a new copyright to all the MLton
> sml files.  How about the following?
> ...
> Comments?

Looks fine to me.


_______________________________________________
MLton-devel mailing list
MLton-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mlton-devel