Something went wrong while setting issue due date.
ext:run-program's :environ keyword difficult to use and with inconsistent behaviour.
These are really two issues but I'll discuss them both here.
- The snippet
(ext:run-program "/usr/bin/env" nil :output t :environ (list "A=b"))
fails to run because "A=b" is not of type base-string. One needs to use something like this:
(ext:run-program "/usr/bin/env" nil :output t :environ (list (coerce "A=b" 'base-string)))
- The behaviour of
(ext:run-program "/usr/bin/env" nil :output t :environ nil)
compared to
(ext:run-program "/usr/bin/env" nil :output t :environ (list (coerce "A=b" 'base-string)))
is inconsistent: In one case, the default case is kept as-is. In the other, rather than having "A=b"
appended to it (discarding any previous assignment to A
), the environment is completely replaced with the singleton ("A=b")
; in particular, PATH
is gone.