git clone 'https://github.com/sellout/external-program.git'

(ql:quickload :external-program)

EXTERNAL-PROGRAM enables running programs outside the Lisp process. It is an attempt to make the RUN-PROGRAM functionality in implementations like SBCL and CCL as portable as possible without sacrificing much in the way of power.

Note: This library is available via Quicklisp.

Here are some of the differences:

Read the API documention for details. It’s a bit spartan, but should explain a lot.

Not all functionality is available on all platforms. EXTERNAL-PROGRAM provides warnings and errors when these limitations are encountered. But I'll try my best to work around them.

There is currently at least some support for:

In addition to some implementations only providing blocking calls, some don’t use $PATH – the ones that don’t won’t find bareword commands, you’ll need to use a pathname.