A bit more progress ... see below: On Wed, Nov 11, 2015 at 2:51 PM, Mirko Vukovic <mirko.vuko...@gmail.com> wrote:
> > > On Wed, Nov 11, 2015 at 1:32 PM, Luís Oliveira <luis...@gmail.com> wrote: > >> On Wed, Nov 11, 2015 at 6:14 PM, Mirko Vukovic <mirko.vuko...@gmail.com> >> wrote: >> > I traced INVOKE, and UIOP/RUN-PROGRAM:RUN-PROGRAM. >> > >> > The problem originates in reading the output of >> > uiop/run-program:run-program. Here are the trace outputs for >> > (CFFI-TOOLCHAIN:INVOKE "pkg-config.exe" "--version"): >> > >> > <1 UIOP/RUN-PROGRAM:RUN-PROGRAM returned 3 values : >> > <1 NIL >> > <1 NIL >> > <1 0 >> > <0 CFFI-TOOLCHAIN:INVOKE returned 3 values : >> > <0 NIL >> > <0 NIL >> > <0 0 >> > >> > For some reason, the output of pkg-config is not being read. >> > >> > I will play with CCL:run-program to get output out of it, and then trace >> > this back to uiop and invoke. >> >> Good job. Thanks for debugging this. Perhaps Faré can chime in since >> he touched this code last. (I've cced him.) >> >> Cheers, >> >> -- >> Luís Oliveira >> http://kerno.org/~luis/ >> > > To augment: this is not just a Windows+CCL issue. On Windows+SBCL I get > the same behavior: > > CL-USER> (trace cffi-toolchain:invoke uiop/run-program:run-program) > (CFFI-TOOLCHAIN:INVOKE UIOP/RUN-PROGRAM:RUN-PROGRAM) > CL-USER> (CFFI-TOOLCHAIN:INVOKE "pkg-config.exe" "--version") > 0: (CFFI-TOOLCHAIN:INVOKE "pkg-config.exe" "--version") > ; pkg-config.exe --version > 1: (UIOP/RUN-PROGRAM:RUN-PROGRAM ("pkg-config.exe" "--version") :OUTPUT > :INTERACTIVE :ERROR-OUTPUT > :INTERACTIVE) > 1: UIOP/RUN-PROGRAM:RUN-PROGRAM returned NIL NIL 0 > 0: CFFI-TOOLCHAIN:INVOKE returned NIL NIL 0 > NIL > NIL > 0 > > Mirko > If I modify INVOKE so that argument of RUN-PROGRAM'S :OUTPUT keyword is :STRING (instead of :INTERACTIVE) I can capture the command output: CL-USER> (CFFI-TOOLCHAIN:INVOKE "pkg-config.exe" "libffi" "--cflags") 0: (CFFI-TOOLCHAIN:INVOKE "pkg-config.exe" "libffi" "--cflags") ; pkg-config.exe libffi --cflags 1: (UIOP/RUN-PROGRAM:RUN-PROGRAM ("pkg-config.exe" "libffi" "--cflags") :OUTPUT :STRING :ERROR-OUTPUT :STRING) 1: UIOP/RUN-PROGRAM:RUN-PROGRAM returned "-IE:/msys64/mingw64/lib/libffi-3.2.1/include " "" 0 0: CFFI-TOOLCHAIN:INVOKE returned "-IE:/msys64/mingw64/lib/libffi-3.2.1/include^M " "" 0 "-IE:/msys64/mingw64/lib/libffi-3.2.1/include^M " "" 0 My eyes glazed over while reading RUN-PROGRAM's description of the :INTERACTIVE keyword. Hopefully this can lead to a fix in UIOP or CFFI. Mirko