2 Jun 2007 09:27
Re: `run-program' path search broken
Gary Byers <gb <at> clozure.com>
2007-06-02 07:27:03 GMT
2007-06-02 07:27:03 GMT
I (somehow) managed to miss this message twice, both with and without a subject ... sorry. My first reaction was to suggest that RUN-PROGRAM's first argument be changed from "a string or pathname ..." to "a string ... used in combination with the value of PATH to identify an executable file". That might be a little too restrictive, and it might be better to just say that 'any translation of the program argument into something that the OS can use takes place as if *DEFAULT-PATHNAME-DEFAULTS* was bound to #p""'. This would mean that if anyone's (intentionally) doing something like: (let* ((*default-pathname-defaults* #p"/usr/local/bin/")) ... (run-program "ls" ...)) they'd have to instead do (let* ((*default-pathname-defaults* #p"/usr/local/bin/")) ... (run-program (merge-pathnames "ls") ...)) That doesn't seem too onerous. The MERGE-PATHNAMES that currently happens during "translation to something that the OS can use" isn't entirely intentional, but it leads to a situation where two referentially opaque things (PATH and *DEFAULT-PATHNAME-DEFAULTS*) exert influence over what(Continue reading)
RSS Feed