Documentation
1
2
3
4
5
6
7
8
9
10
11
(defmacro popen (cmd &body handler)
  (let ((proc (gensym)))
    `(let ((,proc (sys::proc-start cmd)))
       (sys::dup-stdout (sys::proc-stdin ,proc))
       ,@handler
       (sys::proc-wait ,proc)
       (sys::reset-stdout))))

(let ((out (popen '(mktemp))))
  (popen `(dot -T svg -o ,out)
     (print-ast-dot)))