Skip to content
Snippets Groups Projects
Commit 6b3880da authored by Francois-Rene Rideau's avatar Francois-Rene Rideau
Browse files

Rearrange documentation of limitations.

ERROR-BEHAVIOUR was renamed to ERROR-BEHAVIOR.
parent 86ae926d
No related branches found
No related tags found
No related merge requests found
...@@ -39,22 +39,25 @@ By default, inferior-shell uses xcvb-driver:run-program/ ...@@ -39,22 +39,25 @@ By default, inferior-shell uses xcvb-driver:run-program/
as its universal execution backend, and has its limitations, as its universal execution backend, and has its limitations,
which are as follows. which are as follows.
Platforms supported inferior-shell at this time include: First, inferior-shell at this point only supports
ABCL, Allegro, CLISP, ClozureCL, CMUCL, ECL, LispWorks, RMCL, SBCL, SCL, XCL. synchronous execution of sub-processes.
Platforms NOT supported (yet) include: For asynchronous execution, please use IOlib or executor.
CormanLisp (untested), GCL (untested), Genera (unimplemented), MKCL (untested). IOlib requires C compilation and linking, and may or may not support Windows.
On supported platforms, inferior-shell works on both Unix and Windows. executor only supports select implementations.
A future extension to inferior-shell may use IOlib as a backend.
One current limitation is lack of support for arbitrary input redirection. Second, there is currently limited support for input redirection.
The only possible input redirection is from /dev/null The only possible input redirection is from /dev/null
or by inheriting the parent's standard input or by inheriting the parent's standard input
when running in :interactive mode. when running in :interactive mode.
However, using shell redirection, you can also redirect input from a file,
or from a numbered file descriptor (except 0, 1, 2).
Last but not least, inferior-shell only supports Finally, supported platforms at this time include:
synchronous execution of sub-processes. ABCL, Allegro, CLISP, ClozureCL, CMUCL, ECL, LispWorks, RMCL, SBCL, SCL, XCL.
For asynchronous execution, please use IOlib or executor. Platforms NOT (yet) supported include:
IOlib requires C compilation and linking, and may or may not support Windows. CormanLisp (untested), GCL (untested), Genera (unimplemented), MKCL (untested).
executor only supports select implementations. On supported platforms, inferior-shell works on both Unix and Windows.
==== Exported Functionality ==== ==== Exported Functionality ====
...@@ -92,7 +95,7 @@ RUN CMD &KEY ON-ERROR TIME SHOW HOST OUTPUT ...@@ -92,7 +95,7 @@ RUN CMD &KEY ON-ERROR TIME SHOW HOST OUTPUT
a PROCESS-SPEC object already parsed, a PROCESS-SPEC object already parsed,
or a string to be passed to a Unix shell. or a string to be passed to a Unix shell.
ON-ERROR specifies behavior in case the command doesn't successfully exit ON-ERROR specifies behavior in case the command doesn't successfully exit
with exit code 0, as per FARE-UTILS's ERROR-BEHAVIOUR provided with with exit code 0, as per FARE-UTILS's ERROR-BEHAVIOR provided with
(if a function, invoke it, if a string, issue an error with it, (if a function, invoke it, if a string, issue an error with it,
otherwise return it as is). otherwise return it as is).
TIME is a boolean which if true causes the execution to be timed as per TIME. TIME is a boolean which if true causes the execution to be timed as per TIME.
...@@ -106,7 +109,8 @@ RUN CMD &KEY ON-ERROR TIME SHOW HOST OUTPUT ...@@ -106,7 +109,8 @@ RUN CMD &KEY ON-ERROR TIME SHOW HOST OUTPUT
NIL (default) for inheriting the parent process's stdout, NIL (default) for inheriting the parent process's stdout,
:LINES for returning one result per line, :LINES for returning one result per line,
:STRING for returning the output as one big string, :STRING for returning the output as one big string,
:STRING/STRIPPED is like :STRING but strips any line-ending at the end of the results, :STRING/STRIPPED is like :STRING
but strips any line-ending at the end of the results,
just like a shell's `cmd` or $(cmd) would do, just like a shell's `cmd` or $(cmd) would do,
more options are accepted and you can define your own, as per more options are accepted and you can define your own, as per
xcvb-driver's slurp-input-stream protocol. xcvb-driver's slurp-input-stream protocol.
......
...@@ -67,7 +67,7 @@ ...@@ -67,7 +67,7 @@
(run-process-spec (run-process-spec
cmd cmd
:ignore-error-status nil :output output :host host) :ignore-error-status nil :output output :host host)
(subprocess-error () (error-behaviour on-error))))) (subprocess-error () (error-behavior on-error)))))
(when show (when show
(format *trace-output* "; ~A~%" (print-process-spec cmd))) (format *trace-output* "; ~A~%" (print-process-spec cmd)))
(process-time))) (process-time)))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment