<div dir="ltr">Yup, compile time error. Unintended - thanks for catching that! I've fixed that in my source. Now if it can't find the class at compile time it will defer class lookup to runtime and not warn. I'll look into the test failure issues.<div><div>Best,</div><div>Alan </div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Nov 17, 2016 at 6:13 AM, Alessio Stalla <span dir="ltr"><<a href="mailto:alessiostalla@gmail.com" target="_blank">alessiostalla@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi, by 1) won't compile you mean that compilation fails? The compiler macro could simply revert to the unoptimized behavior in that case instead.<br></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On 17 November 2016 at 12:00, Mark Evenson <span dir="ltr"><<a href="mailto:evenson@panix.com" target="_blank">evenson@panix.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
<br>
On 2016/11/4 05:39, Alan Ruttenberg wrote:<br>
> So I made a pass at doing this cleanly. Please check out the changes at<br>
><br>
> <a href="https://github.com/alanruttenberg/abcl/commit/4e824ddd8f054eee4d943d0fdbbfcd83c17b26d7" rel="noreferrer" target="_blank">https://github.com/alanruttenb<wbr>erg/abcl/commit/4e824ddd8f054e<wbr>ee4d943d0fdbbfcd83c17b26d7</a><br>
> (precompiler.lisp, optimize-java-call.lisp)<br>
> <a href="https://github.com/alanruttenberg/abcl/commit/b46c704b1460ccd75035c3f590cdc52fff29886e" rel="noreferrer" target="_blank">https://github.com/alanruttenb<wbr>erg/abcl/commit/b46c704b1460cc<wbr>d75035c3f590cdc52fff29886e</a><br>
> (test-optimize-java-call.lisp)<br>
><br>
> (second one has commit message with documentation)<br>
><br>
> It would be good to get one of the folks who have worked on the compiler to<br>
> see if I've done anything wrong. ABCL builds fine with this and I didn't<br>
> see any changes in the abcl.lisp tests.<br>
<br>
Look into a mirror: there's one of the folks "who have worked on the<br>
compiler". Seriously, we don't really have such experience at the<br>
moment. Alessio and Erik are probably the most knowledgeable.<br>
<br>
Unfortunately there are two problems with the current state Alan's work:<br>
<br>
1) With *INHIBIT-JSS-OPTIMIZATION* as nil, JSS won't compile any<br>
reference to a Java class that it not present in the classpath at<br>
compile time. Previously this wasn't the behavior.<br>
<br>
2) There are a slew of additional failures in the ANSI-TEST LAMBDA<br>
section, which indicates that we need to work through some wrinkles in<br>
the behavior of the patch.<br>
<br>
LAMBDA.1, LAMBDA.2, LAMBDA.3, LAMBDA.4, LAMBDA.5, LAMBDA.6, LAMBDA.7,<br>
LAMBDA.8, LAMBDA.9, LAMBDA.10, LAMBDA.21, LAMBDA.22, LAMBDA.54,<br>
LAMBDA.57, LAMBDA.63, LAMBDA.64<br>
<br>
Obviously we at least need to analyze/fix the problems with the LAMBDA<br>
form revealed by the ANSI-TEST suite, and I would really like to somehow<br>
have the previous behavior of JSS to somehow lazily reference Java<br>
callsites, but that is probably incompatible with optimization.<br>
<br>
I am tracking this issue as [420][]<br>
[420]: <a href="http://abcl.org/trac/ticket/420" rel="noreferrer" target="_blank">http://abcl.org/trac/ticket/42<wbr>0</a><br>
<br>
The [patch that I tested with][1] contains to small changes to Alan's work:<br>
<br>
1. Export JSS:*INHIBIT-JSS-OPTIMIZATION*<wbr>; have it default to T<br>
2. Revbump the JSS ASDF definition.<br>
<br>
[1]: <a href="http://abcl.org/trac/attachment/ticket/420/beta-reduce-20161117a.diff" rel="noreferrer" target="_blank">http://abcl.org/trac/attachmen<wbr>t/ticket/420/beta-reduce-<wbr>20161117a.diff</a><br>
<span class="m_-1171844213223633704HOEnZb"><font color="#888888"><br>
<br>
--<br>
"A screaming comes across the sky. It has happened before, but there<br>
is nothing to compare to it now."<br>
<br>
</font></span></blockquote></div><br></div>
</div></div></blockquote></div><br></div>