• Francois-Rene Rideau's avatar
    Another reimplementation of run-program. New: · 4caf0cc7
    Francois-Rene Rideau authored
    * it handles INPUT and ERROR-OUTPUT, not just OUTPUT.
    * it accepts PATHNAMEs as I/O designators
    * it works on ECL under SLIME (fixes lp#1232225)
      At the suggestion of stassats, we're always returning an exit code,
      and in a predictable return value position.
      However, both for backward compatibility and usability,
      the OUTPUT slurping results remain the primary return value,
      followed by the ERROR-OUTPUT slurping results, followed by the exit code.
      So far, no one was using multiple values in SLURP-INPUT-STREAM methods,
      so no one will regret that, except people who might have somehow expected
      the old weird behavior of a return code when OUTPUT is NIL or :INTERACTIVE.
    * As another API tweak and improvement, keyword options are now specified
      separately for each of your I/O designators, by putting them your designator
      in a list. A list also distinguishes a string as input from a namestring
      to designate a pathname, i.e. :input '("bar") is the string literal,
      whereas :input "bar" is the file named bar.
    Several fixes and extensions to stream support.
    Only tested so far on Linux x64 with
    ccl clisp sbcl ecl ecl_bytecodes cmucl abcl allegro allegromodern xcl