Grovel spaces in include directives broken

Bug #1710983 reported by Mike Thomas
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
CFFI
New
Undecided
Unassigned

Bug Description

I had a problem loading cl-libuv from Quicklisp on Windows because the default installation location for the development package sits in C:/Program Files/libuv, which broke the grovel compilation.

The include path list is split by the code below, fixed by removing the space from the separator list per the patch.

It wasn't clear to me what parse-command-flags was meant to do, given the definitions in grovel.lisp of cl-libuv which control the header search paths.

A workaround in grovel.lisp is as follows:

===============================================================
@@ -33,7 +33,7 @@

;;; Utils

 (defun parse-command-flags (flags)

- (let ((separators '(#\Space #\Tab #\Newline #\Return)))

+ (let ((separators '(#\Tab #\Newline #\Return)))

     (remove-if 'emptyp (split-string flags :separator separators))))

 (defun parse-command-flags-list (strings)

===============================================================

In an email to me Luis Oliviera commented on the above:

"I think this change will break the case where multiple flags are
provided, since those are separated by spaces. I don't remember why we
need to do this parsing at all. Do you feel like investigating that?"

I said:

"Thanks Luis. I will investigate, but it will be a while before I get time again."

I am looking first into how many ways these strings are provided in various libraries to get an idea of the scope of the problem.

Cheers

Mike Thomas

Revision history for this message
Mike Thomas (mjt464) wrote :

Edit: That definition is in toolchain/c-toolchain.lisp, not in grovel.lisp.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.