<HTML><BODY style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space; ">Per,<DIV><BR class="khtml-block-placeholder"></DIV><DIV>I don't doubt that you might be able to do better by going straight to bytecodes.</DIV><DIV>The issue was always that it was thought to be quicker and safer to create a </DIV><DIV>compiler that went via Java trees.   The optimizations could come in phase 2,</DIV><DIV>once we have a working compiler.  Until then, it is more important to create</DIV><DIV>a compiler that works that to polish the bits.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>-- Jon</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><DIV><DIV>On Aug 10, 2007, at 5:48 AM, Per Bothner wrote:</DIV><BR class="Apple-interchange-newline"><BLOCKQUOTE type="cite"><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">This appears to be relevant to the issue of whether to compile</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">"Java trees" or make use of javafx-specific code generation.</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">The code is about generating Java vs bytecodes, but it also</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">applies to whether we should re-write to Java ASTs or generate</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">code directly from ExpressionBlock.</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">I'll ask for more information, but the message seems to</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">suggest that pushing values of the JVM stack is more efficient</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">than using temporary variables (as you would have to when</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">generating Java ASTs or Java source).</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">--<SPAN class="Apple-converted-space"> </SPAN></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><SPAN class="Apple-tab-span" style="white-space:pre">        </SPAN>--Per Bothner</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><A href="mailto:per.bothner@sun.com">per.bothner@sun.com</A> <SPAN class="Apple-converted-space">  </SPAN><A href="mailto:per@bothner.com">per@bothner.com</A> <SPAN class="Apple-converted-space">  </SPAN><A href="http://per.bothner.com">http://per.bothner.com</A>/</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 37px; text-indent: -37px; font: normal normal normal 12px/normal Helvetica; color: rgb(0, 0, 0); min-height: 14px; "><B></B><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 37px; text-indent: -37px; "><FONT face="Helvetica" size="3" color="#000000" style="font: 12.0px Helvetica; color: #000000"><B>From: </B></FONT><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">David Pollak &lt;<A href="mailto:feeder.of.the.bears@gmail.com">feeder.of.the.bears@gmail.com</A>&gt;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; text-indent: -34px; "><FONT face="Helvetica" size="3" color="#000000" style="font: 12.0px Helvetica; color: #000000"><B>Date: </B></FONT><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">August 9, 2007 8:08:04 AM PDT</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 21px; text-indent: -21px; "><FONT face="Helvetica" size="3" color="#000000" style="font: 12.0px Helvetica; color: #000000"><B>To: </B></FONT><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica"><A href="mailto:jvm-languages@googlegroups.com">jvm-languages@googlegroups.com</A></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 50px; text-indent: -50px; "><FONT face="Helvetica" size="3" color="#000000" style="font: 12.0px Helvetica; color: #000000"><B>Subject: </B></FONT><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica"><B>Re: Language Role Call, and a Call to Action</B></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 58px; text-indent: -58px; "><FONT face="Helvetica" size="3" color="#000000" style="font: 12.0px Helvetica; color: #000000"><B>Reply-To: </B></FONT><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica"><A href="mailto:jvm-languages@googlegroups.com">jvm-languages@googlegroups.com</A></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV> <BR><BR><DIV><SPAN class="gmail_quote">On 8/9/07, <B class="gmail_sendername">Charles Oliver Nutter</B> &lt;<A href="mailto:charles.nutter@sun.com">charles.nutter@sun.com</A>&gt; wrote:</SPAN><BLOCKQUOTE class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"> <BR>parren wrote:<BR>&gt; On Aug 5, 10:59 pm, Charles Oliver Nutter &lt;<A href="mailto:charles.nut...@sun.com">charles.nut...@sun.com</A>&gt;<BR>&gt; wrote:<BR>&gt;&gt; Please reply to this email with just a couple words describing what <BR>&gt;&gt; group you represent (language implementation, library implementation,<BR>&gt;&gt; JVM implementation, employer, whatever) so we can get some sort of tally<BR>&gt;&gt; of who's on the line.<BR>&gt;<BR>&gt; I represent the Abacus Formula Compiler - a spreadsheet to JVM <BR>&gt; bytecode compiler used to let users customize computations inside of,<BR>&gt; for example, financial applications. Still closed source, but soon to<BR>&gt; be GPLed, at least. Uses a mini functional language internally that <BR>&gt; gets compiled (fold et al.). But: it currently aims at being fully<BR>&gt; decompilable by JODE to Java source so people can understand what it<BR>&gt; generated. Might preclude using new features the JVM is going to <BR>&gt; introduce.<BR><BR>Interesting. You say you compile straight to bytecode though? What about<BR>just generating Java code as an intermediate step? I believe this is how<BR>Quercus works, and I know of a few others that do this rather than <BR>bytecode generation.</BLOCKQUOTE><DIV><BR>When I did the byte-code generator for the Integer spreadsheet, I found there were efficiencies gained by keeping intermediate results on the stack which one does not get with spreadsheet -&gt; Java -&gt; byte-code.  In some cases, I got 20%+ performance improvement. <BR></DIV><BR><BLOCKQUOTE class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">- Charlie<BR><BR><BR><BR></BLOCKQUOTE></DIV><BR><BR clear="all"><BR>-- <BR>lift, the fast, powerful, easy web framework<BR><A href="http://liftweb.net">http://liftweb.net</A><BR> --~--~---------~--~----~------------~-------~--~----~<BR> You received this message because you are subscribed to the Google Groups "JVM Languages" group. <BR> To post to this group, send email to <A href="mailto:jvm-languages@googlegroups.com">jvm-languages@googlegroups.com</A> <BR> To unsubscribe from this group, send email to <A href="mailto:jvm-languages-unsubscribe@googlegroups.com">jvm-languages-unsubscribe@googlegroups.com</A> <BR> For more options, visit this group at <A href="http://groups.google.com/group/jvm-languages?hl=en">http://groups.google.com/group/jvm-languages?hl=en</A> <BR> -~----------~----~----~----~------~----~------~--~---<BR> <BR></BLOCKQUOTE></DIV><BR></DIV></BODY></HTML>