On 8 Jun 2023, at 21:34, Madhu wrote:
- "Stelian Ionescu"
38aea509-0fe1-4894-b7f7-579275c70229@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.