* "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.
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.
If this incident teaches it is that the mechanisms to do it are already there, you just need to make correct use of it. Not use an incorrect usage of existing mechanisms as an excuse to add new backdoor APIs