Handling of relative paths in `ext:run-program`
- Such invocations work because the executable is given as an absolute path:
* (ext:run-program "/bin/ls" '("tmp") :wait t :output t)
ls_copy ls_link
#<EXTENSIONS::PROCESS 30087 :EXITED :EXIT-CODE 0 {58152ADD}>
- Such invocations work because the executable is a single word that can be found via lookup
* (ext:run-program "ls" '("tmp") :wait t :output t)
ls_copy ls_link
#<EXTENSIONS::PROCESS 30088 :EXITED :EXIT-CODE 0 {581566DD}>
- Such invocations however do not work because they contain a relative path to an executable and (...?)
* (ext:run-program "./tmp/ls_copy" '("tmp") :wait t :output t)
Error in function RUN-PROGRAM: No such program: "./tmp/ls_copy"
[Condition of type SIMPLE-ERROR]
Restarts:
0: [ABORT] Return to Top-Level.
Debug (type H for help)
(RUN-PROGRAM "./tmp/ls_copy" ("tmp/ls_copy" "tmp") :ENV NIL ...)
Source: Error finding source:
Error in function DEBUG::GET-FILE-TOP-LEVEL-FORM: Source file no longer exists:
target:code/run-program.lisp.
0] 0
*
This is rather odd in that cmucl appears to be the only implementation I tested to have trouble with this case.
@frideau and I had already talked about it here: https://bugs.launchpad.net/asdf/+bug/1713672