Re: constant-dynamic specification, updated

2017-06-25 Thread Per Bothner
On 06/25/2017 02:34 PM, John Rose wrote: My overall goal is to keep the classfile alive as an efficient medium for more and more advanced language runtimes. That will be difficult as long as constant pool indexes and various other fields are limited to 16 bits. -- --Per Bothner p

Re: Use of JDK interanl ASM vs external

2015-02-18 Thread Per Bothner
On 02/18/2015 02:45 PM, Per Bothner wrote: Kawa is optimized for static compilation and static optimization, and does not use invokedynamic so far. To clarify: Kawa does have a REPL and eval. It's just that the REPL and eval first compile the expression to bytecode before running it

Re: Use of JDK interanl ASM vs external

2015-02-18 Thread Per Bothner
on. See gnu/xquery in the Kawa source code for an implementation of a very different language than Kawa's primary language Scheme. -- --Per Bothner p...@bothner.com http://per.bothner.com/ ___ mlvm-dev mailing list mlvm-

Re: The Great Startup Problem

2014-08-24 Thread Per Bothner
On 08/24/2014 11:25 AM, Charles Oliver Nutter wrote: On Sun, Aug 24, 2014 at 12:02 PM, Per Bothner wrote: (1) Kawa shows you can have dynamic languages on the JVM that both run fast and have fast start-up. Like Clojure, I'd only consider Kawa to be *somewhat* dynamic. Most function

Re: The Great Startup Problem

2014-08-24 Thread Per Bothner
could be a big help. I just don't think Oracle or the community should spend too much time on "fixing" invokedynamic. (7) Of course I'm the wrong person to talk about resource prioritization, have spent way too much time doing micro-optimizations or adding improvements that

Re: The Great Startup Problem

2014-08-23 Thread Per Bothner
On 08/23/2014 12:25 PM, Per Bothner wrote: On 08/22/2014 01:08 PM, Charles Oliver Nutter wrote: What are the rest of you doing to deal with these issues? Start-up does not appear to a problem for Kawa: I should mention I'm not using invokedynamic, and have no concrete plans to

Re: The Great Startup Problem

2014-08-23 Thread Per Bothner
e meteor), or is the problem with significantly larger programs? -- --Per Bothner p...@bothner.com http://per.bothner.com/ ___ mlvm-dev mailing list mlvm-dev@openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev

Re: idea: MethodHandle#invokeTailCall

2013-05-12 Thread Per Bothner
On 05/11/2013 02:00 AM, Charles Oliver Nutter wrote: > On Fri, May 10, 2013 at 7:16 PM, Per Bothner <mailto:p...@bothner.com>> wrote: > > Fail hard is probably the wrong thing to do - except when debugging. > I think what you want is the default to not fail if it can&

Re: idea: MethodHandle#invokeTailCall

2013-05-10 Thread Per Bothner
On 05/10/2013 01:32 PM, Charles Oliver Nutter wrote: > Interesting idea...comments below. > > On Fri, May 10, 2013 at 12:44 PM, Per Bothner <mailto:p...@bothner.com>> wrote: > > So this idea come to me: Could we just have add a method > that tail-calls a Method

idea: MethodHandle#invokeTailCall

2013-05-10 Thread Per Bothner
erhaps a better approach would be to use invokedynamic in some special conventional way, like with a magic CallSite. However, that makes calling from Java more difficult. Anything , just some thoughts. I'm certainly not qualified to do the needed HotSpot hacking. -- --

Re: using MethodHandle in place of virtual methods?

2012-05-18 Thread Per Bothner
On 05/16/2012 05:52 PM, Charles Oliver Nutter wrote: Thanks for a detailed and helpful response! > On Wed, May 16, 2012 at 12:55 PM, Per Bothner wrote: >> The attachment ProcUsingMH.java is a sketch of an alternative implementation >> where each apply[01N] method has a matchi

using MethodHandle in place of virtual methods?

2012-05-16 Thread Per Bothner
e to support a '--target 6' flag, though supporting both styles in the same runtime may reduce the advantages of either. Finally, it seems that if Kawa in the future makes use of invokedynamic, having the MethodHandles in the Procedure would be an advantage. Comments? Advice

Re: Fast long overflow detection?

2012-02-07 Thread Per Bothner
n you do: what really matters are cache misses. -- --Per Bothner p...@bothner.com http://per.bothner.com/ ___ mlvm-dev mailing list mlvm-dev@openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev

Re: Hotspot loves PHP.reboot

2011-09-07 Thread Per Bothner
On 09/07/2011 03:02 PM, Rémi Forax wrote: > On 09/07/2011 09:32 PM, Per Bothner wrote: >> On 09/07/2011 02:15 AM, Rémi Forax wrote: >>> What about having 10 to 12 benchs, one by language, provided by each >>> language runtime developer >>> as a good bench for th

Re: Hotspot loves PHP.reboot

2011-09-07 Thread Per Bothner
On 09/07/2011 02:25 PM, Charles Oliver Nutter wrote: > On Wed, Sep 7, 2011 at 2:00 AM, Per Bothner wrote: >> Kawa's gnu.math.IntNum already does this. It has only two fields: > > Yeah, I think I remember you mentioning this in one of the > arbitrary-precision math threads

Re: Hotspot loves PHP.reboot

2011-09-07 Thread Per Bothner
re fast Kawa versions of all the current benchmarks: http://per.bothner.com/blog/2010/Kawa-in-shootout/ ) -- --Per Bothner p...@bothner.com http://per.bothner.com/ ___ mlvm-dev mailing list mlvm-dev@openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev

Re: Hotspot loves PHP.reboot

2011-09-07 Thread Per Bothner
of words make the value * of this IntNum, stored in little-endian order, 2's-complement form. */ public int ival; public int[] words; I assume this is one reason why Kawa's IntNum is (mostly) faster than BigInteger. -- --Per Bothner p...@bothner.com http://per.bothner

Re: funny characters in identifiers?

2010-12-31 Thread Per Bothner
On 12/28/2010 01:58 PM, Charles Oliver Nutter wrote: > On Tue, Dec 28, 2010 at 12:21 PM, Per Bothner wrote: >> Is there a plan/consensus for how to handle "illegal" characters >> in identifiers? I'm primarily interested in the bytecode level, >> not

funny characters in identifiers?

2010-12-28 Thread Per Bothner
tandardize on an annotation type. It would also be nice to generalize to support XML (and CommonLisp) two-part names. Perhaps: public @interface SourceName { String value(); String prefix() default ""; String namespaceURI() d

Re: blog entry - Computer Languages "shootout"

2010-10-18 Thread Per Bothner
On 10/18/2010 04:37 AM, Ismael Juma wrote: > On Mon, Oct 18, 2010 at 7:23 AM, Per Bothner wrote: >> FYI - I've posted in my blog benchmark results comparing >> runtime numbers for Java, Scala, Clojure, JRuby, and Kawa versions > > "Scala was version 2.9.0.final.&quo

blog entry - Computer Languages "shootout"

2010-10-17 Thread Per Bothner
FYI - I've posted in my blog benchmark results comparing runtime numbers for Java, Scala, Clojure, JRuby, and Kawa versions of 11 of the "The Computer Language Benchmarks Game" programs: http://per.bothner.com/blog/2010/Kawa-in-shootout/ -- --Per Bothner p...@bot

Re: MethodHandles for Kawa and other functional languages?

2010-10-10 Thread Per Bothner
hile to concentrate on calling known procedures with unknown argument types, like + when the operands don't have type specifiers. -- --Per Bothner p...@bothner.com http://per.bothner.com/ ___ mlvm-dev mailing list mlvm-dev@openjdk.java.net h

Re: MethodHandles for Kawa and other functional languages?

2010-10-10 Thread Per Bothner
On 10/10/2010 02:20 PM, Rémi Forax wrote: > Le 10/10/2010 20:08, Per Bothner a écrit : >> So we've determined that to make use of 292 Kawa should keep its >> abstract gnu.mapping.Procedure class, but add a new method: >> MethodHandle asMethodHandle() >> >

Re: MethodHandles for Kawa and other functional languages?

2010-10-10 Thread Per Bothner
not my friend this morning. Any cook-books out there for how to do this? After that I need to figure out how to do argument conversions. The Kawa compiler emits in each generic "apply" method necessary type conversions before it calls the actual specific method, and the CallSite han

MethodHandles for Kawa and other functional languages?

2010-09-29 Thread Per Bothner
on (like map), what is the type of the object passed: A MethodHandle? A Procedure? Something else? There seem to be different kind of MethodHandles, so perhaps something is appropriate. Is there some blog article or cookbook discussing this? --

Re: Performance Update

2009-07-13 Thread Per Bothner
basic idea: * Infix operators: 'x + y' is sugar for 'x.add(y)'. * Non-escaping stack-allocated arrays, especially useful for varargs. * "inlining" structs in other classes. I.e. something like @NonEscape for fields. Such a field could only be passed to method as a @NonEsc

Re: Fixnums: last mile for JRuby math perf

2008-06-16 Thread Per Bothner
Charles Oliver Nutter wrote: > Per Bothner wrote: >> Charles Oliver Nutter wrote: >>> On a side note: any recommendations for optimizing fixnums on current >>> JVMs? >> "Optimizing fixnums" is of course a number of different problems. >> One is

Re: Fixnums: last mile for JRuby math perf

2008-06-15 Thread Per Bothner
- that might be useful to get some numbers on. -- --Per Bothner [EMAIL PROTECTED] http://per.bothner.com/ ___ mlvm-dev mailing list mlvm-dev@openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev