Recently Written · git

posix-pipes

portable pipes straight from CLOCC

git clone https://github.com/equwal/posix-pipes

Log | Files | Refs


commit 902e7a7af8ecdf38678c1f781a4d9edb2297ec63
Spenser Truex <truex@equwal.com>
2025-09-03 15:21:52 -0700

Add ECL support

 posix-pipes.lisp | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/posix-pipes.lisp b/posix-pipes.lisp
index 5661e75..f39a477 100644
--- a/posix-pipes.lisp
+++ b/posix-pipes.lisp
@@ -9,13 +9,15 @@
   #+clisp (ext:make-pipe-output-stream (format nil "~a~{ ~a~}" prog args))
   #+cmu (ext:process-input (ext:run-program prog args :input :stream
                                                       :output t :wait nil))
+  #+ecl (ext:run-program prog args :input :stream
+                                   :output t :wait nil)
   #+gcl (si::fp-input-stream (apply #'si:run-process prog args))
   #+lispworks (sys::open-pipe (format nil "~a~{ ~a~}" prog args)
                               :direction :output)
   #+lucid (lcl:run-program prog :arguments args :wait nil :output :stream)
   #+sbcl (sb-ext:process-input (sb-ext:run-program prog args :input :stream
                                                              :output t :wait nil))
-  #-(or allegro clisp cmu gcl lispworks lucid sbcl)
+  #-(or allegro clisp cmu gcl lispworks lucid sbcl ecl)
   (error 'not-implemented :proc (list 'pipe-output prog args)))
 
 (defun pipe-input (prog &rest args)
@@ -25,13 +27,15 @@
   #+clisp (ext:make-pipe-input-stream (format nil "~a~{ ~a~}" prog args))
   #+cmu (ext:process-output (ext:run-program prog args :output :stream
                                                        :error t :input t :wait nil))
+  #+ecl (two-way-stream-output-stream (ext:run-program prog args :output :stream
+                                                                :input t :wait nil))
   #+gcl (si::fp-output-stream (apply #'si:run-process prog args))
   #+lispworks (sys::open-pipe (format nil "~a~{ ~a~}" prog args)
                               :direction :input)
   #+lucid (lcl:run-program prog :arguments args :wait nil :input :stream)
   #+sbcl (sb-ext:process-output (sb-ext:run-program prog args :output :stream
                                                               :error t :input t :wait nil))
-  #-(or allegro clisp cmu gcl lispworks lucid sbcl)
+  #-(or allegro clisp cmu gcl lispworks lucid sbcl ecl)
   (error 'not-implemented :proc (list 'pipe-input prog args)))
 
 ;;; Allegro CL: a simple `close' does NOT get rid of the process.