Another reimplementation of run-program. New:
* 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) * SLIGHT API CHANGE! 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
Showing
- backward-interface.lisp 6 additions, 9 deletionsbackward-interface.lisp
- test/test-program.script 6 additions, 3 deletionstest/test-program.script
- test/test-run-program.script 8 additions, 8 deletionstest/test-run-program.script
- uiop/README 4 additions, 1 deletionuiop/README
- uiop/common-lisp.lisp 6 additions, 2 deletionsuiop/common-lisp.lisp
- uiop/filesystem.lisp 2 additions, 2 deletionsuiop/filesystem.lisp
- uiop/image.lisp 2 additions, 1 deletionuiop/image.lisp
- uiop/run-program.lisp 573 additions, 212 deletionsuiop/run-program.lisp
- uiop/stream.lisp 53 additions, 8 deletionsuiop/stream.lisp
Loading
Please register or sign in to comment