New failure in cl-libuv I don't understand

Robert Goldman rpgoldman at sift.info
Fri Jun 9 14:45:21 UTC 2023


On 8 Jun 2023, at 21:34, Madhu wrote:

> *  "Stelian Ionescu"  
> <38aea509-0fe1-4894-b7f7-579275c70229 at app.fastmail.com>
> Wrote on Thu, 08 Jun 2023 21:59:16 -0400
> [RPG]
>>> This one was my fault.  I did the PR with this patch, because 
>>> cl-libuv
>>> wouldn't build on my Mac.  Since there's no testing, apparently, it
>>> slipped through.
>>>
>>> I don't know how to fix this, because I have never used CFFI-grovel, 
>>> so
>>> no idea how to put Madhu's advice into practice.
>
>
> My suggestion was to move the call which did
>
> ```
> #.(when (uiop:getenv "HOMEBREW_PREFIX")
>     (pushnew :homebrew *features*)
>     (values))
> ```
>
> out of grovel.lisp, and set up the features before the groveler is
> called.  Note this could be done *anywhere* except in grovel.lisp, as
> long as it is done before grovel.lisp is processed.  And there is no
> need it to be #. macro.
>
> I don't understand what problem you percieve.

It's simple: I don't understand cl-libuv well enough to understand what 
location to move this to.  What I did was my best guess.  I encourage 
you to submit a PR or an issue with a proposed move destination to 
cl-libuv.
>
>
>>> As an aside, doesn't this kind of break Faré's design principle 
>>> that
>>> the person who has the information is the one who should be 
>>> configuring
>>> the software?  It seems like we are expecting the programmer to 
>>> guess
>>> ahead of time what are all of the possible locations for the foreign
>>> library and includes. Wouldn't it make more sense for this to be
>>> configurable?
>>
>> Yes, but there's no way to currently configure this except as you
>> point out below.
>>
>>> Of course, this is partly my fault, since ASDF does not support
>>> configuring operations, except with gross dynamic variables.
>>
>> Adding a configuration stage for a DEFSYSTEM would be my most
>> desired feature at the moment.
>
> What?  There is no need to complicate defsystem anymore.  you just
> define a system called libuv-config which loads a designated
> configuration file and make your libuv system depend on libuv-config
> which gets loaded before it.

Probably the easiest thing is to read `LIBUV_LOCATION` and 
`LIBUV_HEADER_LOCATION` environment variables if they are present.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/cffi-devel/attachments/20230609/bb381aa0/attachment.html>


More information about the cffi-devel mailing list