<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, May 2, 2023 at 2:37 AM Mark Evenson <<a href="mailto:evenson@panix.com">evenson@panix.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
A patch for ABCL to add this would be appreciated, but the implementation should somehow be changed to the “standard” load for JNA by the ABCL-ASDF contrib, namely something like <br>
<br>
   (require :abcl-contrib)<br>
   (asdf:make :jna)<br>
<br>
<br>
As I understand it, Alan’s implementation only works if ABCL-ASDF:RESOLVE is present, meaning it cannot be put “as is” in the base ABCL system.  I believe this is possible because the OWL2 application uses the ABCL-AIO build of ABCL which merges abcl.jar which abcl-contrib.jar, but I could be wrong.  </blockquote><div><br></div><div>It's true that I use aio. TBH I've never understood the point of separating the contribs from the base. File size isn't an issue any more. What's the upside of splitting them apart? A bit of extra time indexing the classes in the jar?<br></div><div> <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Conceptually, we should somehow place the implementation of setting environment variables via the C syscall as a patch in the contrib system in a new contrib called (?) USE-POSIX-SYSCALLS (terrible name, please change).  Such a new contrib would a) depend on <br>
 JNA and b) have to be used via <br>
<br>
   (asdf:make :use-posix-syscalls)<br></blockquote><div><br></div><div>I don't know what asdf:make does. I tried it in a situation (autoloading the java parser when #1 was used the first time) where I expected it to load a system and it didn't seem to. <br></div><div><br></div><div>Would it be sufficient to do something like:</div><div><br></div><span style="font-family:monospace">(defun ensure-jna-loaded ()<br>  (or *jna-loaded*<br>      (progn<br>        (when (not (ignore-errors (find-java-class 'jna.nativelibrary)))<br>          (require 'abcl-asdf)<br>          (add-to-classpath (funcall (intern "RESOLVE" 'abcl-asdf "net.java.dev.jna/jna/LATEST")))<br>          (setq *jna-loaded* t)))))</span></div><div class="gmail_quote"><span style="font-family:monospace"><br></span></div><div class="gmail_quote"><span style="font-family:arial,sans-serif"><font size="2">This is assuming that abcl-contrib is available. Since I've never used contrib separately, I'm not sure what the standard pattern is for using something in contrib if it's not on the classpath.</font></span></div><div class="gmail_quote"><span style="font-family:arial,sans-serif"><font size="2">Mind you find-java-class is also part of jss, which is a contrib, which I always load...</font></span></div><div class="gmail_quote"><span style="font-family:arial,sans-serif"><font size="2"><br></font></span></div><div class="gmail_quote"><font size="2">Bottom line is that I don't know how to package this under whatever the assumptions are when not using abcl-aio</font></div><div class="gmail_quote"><font size="2"><br></font></div><div class="gmail_quote"><font size="2">Alan</font><br></div><div class="gmail_quote"><div><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
<br>
<br>
<br>
-- <br>
"A screaming comes across the sky.  It has happened before but there is nothing <br>
to compare to it now."<br>
<br>
<br>
<br>
<br>
<br>
</blockquote></div></div>