<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="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/<wbr>alanruttenberg/abcl/commit/<wbr>4e824ddd8f054eee4d943d0fdbbfcd<wbr>83c17b26d7</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/<wbr>alanruttenberg/abcl/commit/<wbr>b46c704b1460ccd75035c3f590cdc5<wbr>2fff29886e</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/<wbr>420</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/<wbr>attachment/ticket/420/beta-<wbr>reduce-20161117a.diff</a><br>
<span class="HOEnZb"><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>