tweak for cffi-grovel::trim-whitespaces?
Mirko Vukovic
mirko.vukovic at gmail.com
Wed Nov 11 20:42:47 UTC 2015
A bit more progress ... see below:
On Wed, Nov 11, 2015 at 2:51 PM, Mirko Vukovic <mirko.vukovic at gmail.com>
wrote:
>
>
> On Wed, Nov 11, 2015 at 1:32 PM, Luís Oliveira <luismbo at gmail.com> wrote:
>
>> On Wed, Nov 11, 2015 at 6:14 PM, Mirko Vukovic <mirko.vukovic at 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/cffi-devel/attachments/20151111/6c75c7fa/attachment-0001.html>
More information about the cffi-devel
mailing list