Re: Error handling without exceptions (was: Throwable)

2009-08-19 Thread John Rose
On Aug 19, 2009, at 1:27 PM, Helmut Eller wrote: > Is it possible to efficiently check the argument count and in case > of a > mismatch to call an error handler without unwinding the stack? You can build this sort of thing on top of the primitives supplied by JSR 292, but it doesn't need to b

Re: Throwable

2009-08-19 Thread John Rose
On Aug 19, 2009, at 3:54 AM, Raffaello Giulietti wrote: > Fortunately, the JVM doesn't know about checked exceptions. Let's hope > this will remain so even in the future. The Java language checks exceptions statically. The JVM doesn't. Neither of these facts will change in the foreseeable fut

Error handling without exceptions (was: Throwable)

2009-08-19 Thread Helmut Eller
Hello, I've been wondering if the java.dyn stuff will enable error handling which is not based on exceptions. For instance if a MethodHandle is called with the wrong number of arguments the current design seems to assume that throwing an exception is a sensible action to take. Throwing an except

Re: Inlining

2009-08-19 Thread Raffaello Giulietti
> > Ugh. I never saw that assert. Maybe John Rose knows more about that one. > > -- Christian > ___ > mlvm-dev mailing list > mlvm-dev@openjdk.java.net > http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev I extensively cleaned up and refactored m

Re: Inlining

2009-08-19 Thread Christian Thalinger
Raffaello Giulietti wrote: > Christian, your worries were well founded. > > In fact, the target handler of the invokedynamic was not a direct MH but > a bound MH, instead. I forgot about my own implementation :-( > > I have know refactored the code to make use of DMHs by storing the bound > argum

Re: Inlining

2009-08-19 Thread Raffaello Giulietti
Raffaello Giulietti wrote: > Christian Thalinger wrote: >> Raffaello Giulietti wrote: >>> * Is there a special -XX: flag to turn on inlining of methods invoked >>> via method handles? >>> * Or must something be enabled during the build of mlvm? >> No, inlining is enabled by default. Currently only

Re: Inlining

2009-08-19 Thread Christian Thalinger
Raffaello Giulietti wrote: > Christian Thalinger wrote: >> Raffaello Giulietti wrote: >>> * Is there a special -XX: flag to turn on inlining of methods invoked >>> via method handles? >>> * Or must something be enabled during the build of mlvm? >> No, inlining is enabled by default. Currently only

Re: Throwable

2009-08-19 Thread Raffaello Giulietti
Patrick Wright wrote: > The issue of InvokeDynamic calls from Java as regards checked > exceptions was discussed on the Project Coin mailing list: > http://mail.openjdk.java.net/pipermail/coin-dev/2009-May/thread.html#1650 > > see the mails related to "JSR 292" and others with "292" in the title.

Re: Throwable

2009-08-19 Thread Patrick Wright
The issue of InvokeDynamic calls from Java as regards checked exceptions was discussed on the Project Coin mailing list: http://mail.openjdk.java.net/pipermail/coin-dev/2009-May/thread.html#1650 see the mails related to "JSR 292" and others with "292" in the title. See for example this partial thr

Re: Throwable

2009-08-19 Thread Raffaello Giulietti
Charles Oliver Nutter wrote: > On Tue, Aug 18, 2009 at 6:29 AM, Raffaello > Giulietti wrote: >> The language compiler complains about an >> unreported exception Throwable; must be caught or declared to be thrown >> in using both InvokeDynamic and the (invisible) MethodHandle.invoke() >> >> Why is t

Re: Inlining

2009-08-19 Thread Raffaello Giulietti
Christian Thalinger wrote: > Raffaello Giulietti wrote: >> * Is there a special -XX: flag to turn on inlining of methods invoked >> via method handles? >> * Or must something be enabled during the build of mlvm? > > No, inlining is enabled by default. Currently only DMH invokes are > inlined, but

Re: findVirtual problem

2009-08-19 Thread Christian Thalinger
John Rose wrote: > On Aug 18, 2009, at 6:07 AM, Raffaello Giulietti wrote: > >> Hi Christian, >> >> do an upcast >> >> String result = mh.invoke((Object) "foo"); > > Yes. The difference between the two call sites is: >(Ljava/lang/String;)Ljava/lang/String; > vs. >(Ljava/lang/Object;)Ljav