<div dir="ltr">So I made a pass at doing this cleanly. Please check out the changes at<div><br><div><a href="https://github.com/alanruttenberg/abcl/commit/4e824ddd8f054eee4d943d0fdbbfcd83c17b26d7">https://github.com/alanruttenberg/abcl/commit/4e824ddd8f054eee4d943d0fdbbfcd83c17b26d7</a>  (precompiler.lisp, optimize-java-call.lisp)<br></div></div><div><a href="https://github.com/alanruttenberg/abcl/commit/b46c704b1460ccd75035c3f590cdc52fff29886e">https://github.com/alanruttenberg/abcl/commit/b46c704b1460ccd75035c3f590cdc52fff29886e</a> (test-optimize-java-call.lisp)<br></div><div><br></div><div>(second one has commit message with documentation)</div><div><br></div><div>It would be good to get one of the folks who have worked on the compiler to see if I've done anything wrong. ABCL builds fine with this and I didn't see any changes in the abcl.lisp tests.</div><div><br></div><div><font face="arial, helvetica, sans-serif">For Mark, the test- file has this info but here it is again - 10000 calls of (#"compile" 'regex.Pattern ".*")</font></div><div><font face="arial, helvetica, sans-serif"><br></font></div><div><div class="gmail-commit-desc" style="box-sizing:border-box;line-height:21px"><pre style="box-sizing:border-box;margin-top:10px;margin-bottom:0px;font-stretch:normal;line-height:1.45;max-width:100%;white-space:pre-wrap;overflow:visible;word-wrap:break-word"><font color="#000000" face="arial, helvetica, sans-serif">With optimization: (INVOKE-RESTARGS-MACRO "compile" (QUOTE REGEX.PATTERN) (LIST ".*") NIL T)
Without optimization: ((LAMBDA (#:G85648 &REST #:G85649) (INVOKE-RESTARGS "compile" #:G85648 #:G85649 NIL)) (QUOTE REGEX.PATTERN) ".*")

JUST-LOOP
0.0 seconds real time
0 cons cells

OPTIMIZED-JSS
0.011 seconds real time
0 cons cells

UNOPTIMIZED-JSS
0.325 seconds real time
800156 cons cells</font></pre><div style="color:rgb(51,51,51);font-family:-apple-system,blinkmacsystemfont,'segoe ui',helvetica,arial,sans-serif,'apple color emoji','segoe ui emoji','segoe ui symbol';font-size:14px"><br></div></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Oct 27, 2016 at 12:46 PM, Alan Ruttenberg <span dir="ltr"><<a href="mailto:alanruttenberg@gmail.com" target="_blank">alanruttenberg@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"><div class="gmail_extra"><span class=""><br><div class="gmail_quote">On Thu, Oct 27, 2016 at 3:27 AM, 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"><div id="m_3431284910886449443:24f" class="m_3431284910886449443a3s m_3431284910886449443aXjCH m_3431284910886449443m158050aa10efc047">Cool work!  What sort of efficiency gains do you expect for JSS here?</div></blockquote></div><div class="gmail_extra"><br></div></span>Not sure yet. The thing that actually drove it was that I didn't like seeing the redundancy in the stack traces when I was debugging. At first I played around with trimming them out of the stack trace but that ran in an issue - I couldn't figure out exactly how the indexing of stack frames was coordinated between emacs and lisp. Then it occurred to me that they didn't need to be there in the first place. So it's more of an aesthetic thing for now.</div><span class="HOEnZb"><font color="#888888"><div class="gmail_extra"><br></div><div class="gmail_extra">Alan</div><div class="gmail_extra"><br></div><div class="gmail_extra"><br><br></div></font></span></div>
</blockquote></div><br></div>