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