<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/xhtml; charset=utf-8">
</head>
<body><div style="font-family: sans-serif;"><div class="markdown" style="white-space: normal;">
<p dir="auto">On 8 Jun 2023, at 21:34, Madhu wrote:</p>
</div><div class="plaintext" style="white-space: normal;"><blockquote style="margin: 0 0 5px; padding-left: 5px; border-left: 2px solid #777777; color: #777777;"><p dir="auto">* "Stelian Ionescu" <38aea509-0fe1-4894-b7f7-579275c70229@app.fastmail.com>
<br>
Wrote on Thu, 08 Jun 2023 21:59:16 -0400
<br>
[RPG]</p>
<blockquote style="margin: 0 0 5px; padding-left: 5px; border-left: 2px solid #777777; border-left-color: #999999; color: #999999;"><blockquote style="margin: 0 0 5px; padding-left: 5px; border-left: 2px solid #777777; border-left-color: #BBBBBB; color: #BBBBBB;"><p dir="auto">This one was my fault. I did the PR with this patch, because cl-libuv
<br>
wouldn't build on my Mac. Since there's no testing, apparently, it
<br>
slipped through.</p>
<p dir="auto">I don't know how to fix this, because I have never used CFFI-grovel, so
<br>
no idea how to put Madhu's advice into practice.</p>
</blockquote></blockquote><p dir="auto">My suggestion was to move the call which did</p>
<p dir="auto">```
<br>
#.(when (uiop:getenv "HOMEBREW_PREFIX")
<br>
(pushnew :homebrew *features*)
<br>
(values))
<br>
```</p>
<p dir="auto">out of grovel.lisp, and set up the features before the groveler is
<br>
called. Note this could be done *anywhere* except in grovel.lisp, as
<br>
long as it is done before grovel.lisp is processed. And there is no
<br>
need it to be #. macro.</p>
<p dir="auto">I don't understand what problem you percieve.</p>
</blockquote></div>
<div class="markdown" style="white-space: normal;">
<p dir="auto">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.</p>
</div><div class="plaintext" style="white-space: normal;"><blockquote style="margin: 0 0 5px; padding-left: 5px; border-left: 2px solid #777777; color: #777777;"><blockquote style="margin: 0 0 5px; padding-left: 5px; border-left: 2px solid #777777; border-left-color: #999999; color: #999999;"><blockquote style="margin: 0 0 5px; padding-left: 5px; border-left: 2px solid #777777; border-left-color: #BBBBBB; color: #BBBBBB;"><p dir="auto">As an aside, doesn't this kind of break Faré's design principle that
<br>
the person who has the information is the one who should be configuring
<br>
the software? It seems like we are expecting the programmer to guess
<br>
ahead of time what are all of the possible locations for the foreign
<br>
library and includes. Wouldn't it make more sense for this to be
<br>
configurable?</p>
</blockquote><p dir="auto">Yes, but there's no way to currently configure this except as you
<br>
point out below.</p>
<blockquote style="margin: 0 0 5px; padding-left: 5px; border-left: 2px solid #777777; border-left-color: #BBBBBB; color: #BBBBBB;"><p dir="auto">Of course, this is partly my fault, since ASDF does not support
<br>
configuring operations, except with gross dynamic variables.</p>
</blockquote><p dir="auto">Adding a configuration stage for a DEFSYSTEM would be my most
<br>
desired feature at the moment.</p>
</blockquote><p dir="auto">What? There is no need to complicate defsystem anymore. you just
<br>
define a system called libuv-config which loads a designated
<br>
configuration file and make your libuv system depend on libuv-config
<br>
which gets loaded before it.</p>
</blockquote></div>
<div class="markdown" style="white-space: normal;">
<p dir="auto">Probably the easiest thing is to read <code style="margin: 0 0; padding: 0 0.25em; border-radius: 3px; background-color: #F7F7F7;">LIBUV_LOCATION</code> and <code style="margin: 0 0; padding: 0 0.25em; border-radius: 3px; background-color: #F7F7F7;">LIBUV_HEADER_LOCATION</code> environment variables if they are present.</p>
</div>
</div>
</body>
</html>