[Pharo-users] [ANN] OSSubprocess first milestone

Damien Cassou damien.cassou at inria.fr
Fri Jan 15 02:00:50 EST 2016

On January 14, 2016 7:33:56 PM GMT+01:00, Mariano Martinez Peck <marianopeck at gmail.com> wrote:
>Dear all,
>I am happy to tell you I have a first prototype of the tool for
>OS processes:
> As I said many times, the main idea was to be as much as possible
>FFI-based, only for executing OS commands and, from my point of view, a
>better end-user API. Also, as for the first step, I had to focus on
>I would like to thank Pharo Consortium for the sponsor of this
>effort. Here is the first milestone!
>There are many things on my to-do but I think the code is ready for
>usage, testing, code review and feedback!
>All classes and all methods have comments and I have quite some unit
>All tests are green in my OSX and a CentOS box.
>*Important: you CANNOT have OSProcess installed in the same image as
>OSSubprocess. This is because I am reusing his SIGCHLD handler and for
>time being both cannot coexist.  *
>Keep in mind that the tool may be unstable and that MAY mean a VM
>crash. So
>use with care, mostly the first time. If all tests passes, then there
>much less chances of something going bad.
>Important disclaimer: my tool (OSSubproccess from now onward) is HIGHLY
>influenced by a subset of the OSProcess project. There are parts which
>even simply copied and adapted them (OSSPipe, OSSAttachableStream,
>OSSUnixProcessExitStatus). Other parts, I took them as inspiration (the
>idea of ThisOSProcess representing the VM process, the child watcher,
>many others). In addition, I AM STILL USING (maybe as a first step?)
>of the OSProcess PLUGIN (not OSProcess image side), such as the SIGCHLD
>handler or the creation of pipes.
>In github url you have all the documentation of the project, included
>to install it and use it.
>*Finally, if you test it in a OS different than OSX and CentOS please
>with me the results (about the tests).* Tomorrow the ConfigurationOf
>also appear in the Catalog of Pharo 5.0.
>Any feedback is appreciated.

Quick feedback:

- the API seems great
- thank you very much for the documentation
- I wonder why you pass strings for stdout and stderr instead of streams
- it would be nice to be able to subclass OSSUnixProcessExitStatus for some commands. E.g., GitProcessExitStatus could have a method isMergeConflict
- how can I implement something like tail --follow
Damien Cassou

"Success is the ability to go from one failure to another without
losing enthusiasm." --Winston Churchill

More information about the Pharo-users mailing list