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

* "Stelian Ionescu" <38aea509-0fe1-4894-b7f7-579275c70...@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.

Reply via email to