Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
JSR 292 EG meeting at JavaOne (summary)
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  4 messages - Collapse all  -  Translate all to Translated (View all originals)
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
John Rose  
View profile  
 More options May 7 2008, 2:56 am
From: John Rose <John.R...@Sun.COM>
Date: Tue, 06 May 2008 23:56:31 -0700
Local: Wed, May 7 2008 2:56 am
Subject: JSR 292 EG meeting at JavaOne (summary)
Hello, JSR 292 observers and language implementors!

The JSR 292 Expert Group met today at JavaOne.

There were representatives from three major JVMs and two dynamic  
languages (Groovy, Jython).

Below are some of my notes from that meeting.  I hope you find them  
interesting.

-- John

The EDR for invokedynamic has been given to the JCP.  It is a milestone!

Grouping of JSR 292 features
* Current EDR is invokedynamic only (with method handles required for  
support)
* Adjustments during the 90-day EDR period will not add unrelated  
features
* Other features are likely (class modification of some sort) but  
will be independent
* When the final spec. is presented, it will include whichever  
features are ready.

Relation to Da Vinci Machine Project http://openjdk.java.net/projects/
mlvm/
* interesting experiments with anonymous classes, interface  
injection, continuations, etc.
* JSR 292 EG controls whether these become an EDR on the way to  
standardization
* community controls whether they get tried out
* the EG produces specification only, not code (JVM implementors  
insist on this!)

Adoption of JSR 292 features depends on...
* Demonstrated usefulness to language implementors (must integrate &  
demo. a POC)* *
* Optimizability by JVM implementors (must think it through to the  
instruction level)

We will do this work this summer and reconvene (with more people) at  
the JVM Language Summit.

Technical Discussion of Draft Design

JVM to language implementors: Do dynamic languages really need  
performance?
* As long as dynamic languages are the 5% scripting portion of an  
app., they do not.
* If they get parity with Java, they can grow from 5% to 50%.
* If they get enough performance to beat the original C implem., they  
can become platform of choice.
* For any given language (e.g., Python) if the pure (non-C) libraries  
get parity with C, lots of things get easier.

What do language implementors want?
* Short list: Invokedynamic, method handles, continuations.
* JVM implementors are nervous about continuations (Da Vinci M.  
experiments ongoing)

Method handles and invokedynamic
* Method handles look good to all parties; a nicely balanced design.
* They give direct (JVM-native, non-reflective) access from caller to  
a method.
* Multiple use cases, for multiple languages. (Discussed in detail  
for Jython and Groovy.)
* The JVM managed state for invokedynamic is one word only, a single  
method handle. Simple for JVMs.
* Caching & receiver guard logic is responsibility of language  
implementors.

We discussed a few JVM-centric questions about method handles and  
invokedynamic.

Best regards,
-- John Rose


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Patrick Wright  
View profile  
 More options May 7 2008, 3:57 pm
From: "Patrick Wright" <pdoubl...@gmail.com>
Date: Wed, 7 May 2008 21:57:23 +0200
Local: Wed, May 7 2008 3:57 pm
Subject: Re: [jvm-l] JSR 292 EG meeting at JavaOne (summary)
Hi John

Thanks for sharing the update.

>  * When the final spec. is presented, it will include whichever
>  features are ready.

Ready means "fully specified"? The EG has to produce an RI, correct?
If so, would that be MLVM patches to HotSpot?

>  What do language implementors want?
>  * Short list: Invokedynamic, method handles, continuations.

I was surprised to read this--I'd thought that tail recursion was
higher on people's list than continuations...was there any discussion
of TCO?

Also, I'd read from a couple of language implementors (Charles N among
them, in http://headius.blogspot.com/2008/05/power-of-jvm.html, as
well as the maintainer of Pnuts, in
http://www.jroller.com/tomatsu/entry/i_don_t_need_invokedynamic) that
invokedynamic wouldn't help them much--note I don't want to put words
in the mouths of the respective speakers, I've just read this POV a
handful of times. Does the EG still believe this is useful? Perhaps
"it seemed like a good idea at the time"...?

Thanks again
Patrick


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
John Rose  
View profile  
 More options May 7 2008, 5:23 pm
From: John Rose <John.R...@Sun.COM>
Date: Wed, 07 May 2008 14:23:22 -0700
Local: Wed, May 7 2008 5:23 pm
Subject: Re: [jvm-l] Re: JSR 292 EG meeting at JavaOne (summary)
On May 7, 2008, at 12:57 PM, Patrick Wright wrote:

>>  * When the final spec. is presented, it will include whichever
>>  features are ready.

> Ready means "fully specified"? The EG has to produce an RI, correct?

JCP requires a spec. and an RI, yes.  And they are distinct; see this  
point:

>> * the EG produces specification only, not code (JVM implementors  
>> insist on this!)

But "ready" also means the points referred to in:

>> * Adoption of JSR 292 features depends on
> If so, would that be MLVM patches to HotSpot?

Yes, that is where the RI will be, until it integrates up into JDK7.

>>  What do language implementors want?
>>  * Short list: Invokedynamic, method handles, continuations.

> I was surprised to read this--I'd thought that tail recursion was
> higher on people's list than continuations...was there any discussion
> of TCO?

I believe we discussed that briefly during the hour.  That question  
was sort of a straw poll:  It gives what was uppermost in peoples'  
mind during the meeting.  For a fuller list, see the mlvm subprojects  
page on our OpenJDK site.  TCO is on that longer list.  Will the EG  
standardize on it?  It depends on what the community says about the  
relative priority of the various features we are looking at, who is  
making proof of concepts, and how the JVM vendors (plural!) feel the  
customer demand, balanced against their difficulty of implementation.

> Also, I'd read from a couple of language implementors (Charles N among
> them, in http://headius.blogspot.com/2008/05/power-of-jvm.html

Charlie can respond to that without me, but I'll say (a) I advised  
him on the optimizations in that blog, and (b) he and I both believe  
that invokedynamic will take those optimizations to the next level.

Just because JRuby (and soon other dynamic languages) is now faster  
does not mean their aspirations for speed have ended.  Please refer  
back to the minutes again:

>> Do dynamic languages really need performance
> , as
> well as the maintainer of Pnuts, in
> http://www.jroller.com/tomatsu/entry/i_don_t_need_invokedynamic) that
> invokedynamic wouldn't help them much--note I don't want to put words

That's a 2006 blog and several things have changed.  Two years ago,  
dynlang people were compiling lots of goo between their language and  
the JVM.  Over time they have reduced the overheads they can control,  
and some of them are hitting walls which the JVM should properly  
address.  Perhaps other blog entries of Charlie's discuss this...

> in the mouths of the respective speakers, I've just read this POV a
> handful of times.

The language implementor's choice is always roll your own vs. reuse a  
platform.  In a number of ways, the JVM platform is getting upleveled  
for dynamic languages, providing more options for reuse.  The JVM  
extensions we are aiming at will improve the quality of things like  
MOPs.

> Does the EG still believe this is useful? Perhaps
> "it seemed like a good idea at the time"...?

That's always a risk, isn't it?  But the point of the meeting  
yesterday is, yes, the EG still believes it is useful.

The JVM vendors worry rightly about adding features nobody will  
really use.  We think this one will get used.

-- John


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Patrick Wright  
View profile  
 More options May 7 2008, 5:26 pm
From: "Patrick Wright" <pdoubl...@gmail.com>
Date: Wed, 7 May 2008 23:26:58 +0200
Local: Wed, May 7 2008 5:26 pm
Subject: Re: [jvm-l] Re: JSR 292 EG meeting at JavaOne (summary)
John

Thanks for the thorough response.

Best regards
Patrick


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages
« Back to Discussions « Newer topic     Older topic »