I think the C code replacing the ML code for Unix.execute does not quite do
what the ML code used to. Specifically the execve call here
https://github.com/polyml/polyml/blob/master/libpolyml/unix_specific.cpp#L2…
does not pass the cmd as the first argument, whereas the ML version did.
This is a user-visible change in the API that was probably unintended.