JCP meeting(s) at JavaOne this year
Charles Oliver Nutter
charles.nutter at sun.com
Mon Jun 1 00:15:17 PDT 2009
Hey, I'm game to use the room/time as a refuge from the day-to-day grind
of JavaOne. And we can sit and trade 292 patches back and forth if
there's no discussion to be had.
John Rose wrote:
> On May 31, 2009, at 5:09 PM, Charles Oliver Nutter wrote:
>
>> Did any meeting times get settled? Especially ones that non-EG members
>> could be at to discuss things?
>
> Yes. The message below represents my current reservations, plus the
> list of current issues.
>
> Unfortunately, the IBM J9 guys are busy in all three time slots, so we
> may add a fourth.
>
> But I intend to use at least two of the three slots below to meet with
> JSR 292 stakeholders, even if it is just me and one other person in the
> room.
>
> More details later...
>
> -- John
>
> Begin forwarded message:
>
> *From: *John Rose <john.rose at sun.com <mailto:john.rose at sun.com>>
> *Date: *May 26, 2009 11:23:03 PM PDT
> *To: *Java Community Process JSR #292 Expert List <JSR-292-EG at JCP.ORG
> <mailto:JSR-292-EG at JCP.ORG>>
> *Subject: **JSR 292 issue list & JavaOne meet-up*
>
> Hello EG members. Here is an issue list I have been keeping. Please
> send additional issues to me.
>
> The issues marked resolved are the major changes from last year's EDR.
>
> If you have additional insight into any issue, especially if it would
> tend to change the resolution from the default resolution, please let us
> know.
>
> I would like to discuss these issues face to face at JavaOne. I have
> reserved the JCP room for the following three time slots:
>
> June 3, 2009 from 9:00 AM to 11:00 AM
> June 4, 2009 from 12:00 PM to 2:00 PM
> June 5, 2009 from 1:00 PM to 3:00 PM
>
> The room is the Nob Hill room on the 4th floor of the Intercontinental
> Hotel in San Francisco.
> The Intercontinental is located at 888 Howard Street, one block away
> form the Moscone center.
> http://www.intercontinentalsanfrancisco.com/welcome.php
>
> -- John
>
>
> JSR 292 Issue List
>
> --- structure of reified call sites
>
> ISSUE CALL-SITE-IDENTITY: Shall CallSite have (a) a stable reference
> identity for the lifetime of the invokedynamic instructions, or (b) an
> implementation-dependent reference identity? (Default answer: (a).)
>
> ISSUE CALL-SITE-EQUALS: Shall CallSite.equals be (a) reference
> identity, (b) target identity, and/or (c) a structural equality
> comparison on a known set of public attributes (such as name)? (Default
> answer: (b) and, given CALL-SITE-IDENTITY/a, (a).)
>
> ISSUE CALL-SITE-LOCATION-ID: Shall CallSite have attributes to identify
> the method and BCI in which the call occurs?
>
> ISSUE CALL-SITE-INSTANCE-ID: If CALL-SITE-CLONING/yes, shall CallSite
> have an instance number to distinguish clones? (Default answer: no.)
>
> ISSUE CALL-SITE-CONSTRUCTOR-ARGUMENTS: Shall the CallSite constructor
> (and the signature of the factory method which creates call site)
> include information about the identity of the method and BCI at which
> the call site occurs? (Default answer: no.)
> jrose: The cost of doing this is probably small, and benefit may be
> significant for some apps.
>
> ISSUE CALL-SITE-SPLITTING: Shall the JVM be allowed to split an
> invokedynamic instructions into two or more targets and CallSite
> objects? (E.g., it could opt to split out an inlined copy of a call
> site.) (Default answer: yes; synergizes with JVM-specific inlining
> tactics.)
>
> RESOLVED-ISSUE CALL-SITE-SUBCLASS: Shall invokedynamic call sites be
> reified by a user-defined subclass of CallSite? Answer: Yes, via the
> BSM which serves as a factory for them. The choice of subclassing is
> the responsibility of the BSM.
>
> --- method handle construction
>
> RESOLVED-ISSUE ACCESS-CHECK-FACTORED: Shall factory methods which
> perform access checks (a) always inspect the stack to determine the
> caller, or (b) run within a capability object whose constructor can
> inspect the stack? Answer: (b).
>
> RESOLVED-ISSUE SELF-BOUND-MH: Shall we supply an abstract super-class
> for deriving user-defined method handle types? Answer: yes, it's easy
> given bound method handles, and they have proven extremely useful in
> practice.
>
> ISSUE METHOD-HANDLE-FIND-EXCEPTIONS: Shall we have the find* methods
> throw checked exceptions for failed lookups and/or failed accesses, and
> what are the details? (Default answer: yes; this is the Java Way.)
>
> ISSUE METHOD-HANDLE-CONVERSIONS: Shall we allow an implicit
> convertArguments step at a MH.invoke site, if the caller and callee
> disagree about the call type, but do agree on number of arguments?
> (Default answer: no, implementation complexity and performance potholes.)
> ohrstrom: See
> http://blogs.oracle.com/ohrstrom/2009/05/the_jsr292_endgame.html .
>
> --- other
>
> RESOLVED-ISSUE INSTRUCTION-FORMAT: Shall the invokedynamic instruction
> be (a) an overloading of invokeinterface or (b) a new code point (186)
> containing a CONSTANT_NameAndType reference? Answer: (b).
>
> ISSUE INSTRUCTION-PADDING: The invokedynamic instruction needs to be 5
> bytes long (for some JVM implementations, to allow embedded coding of
> call site identity). GIven that, shall the final two bytes be (a)
> required to be zero and reserved for future use, or (b) used for some
> present use? (Default answer: (a). No credible use is known at present.)
>
> RESOLVED-ISSUE BOOTSTRAP-CALL-COMPLETION: Should the bootstrap method
> of an invokedynamic site (a) be passed caller arguments and required to
> complete the call, or (b) be required only to return the target, which
> would then be used even for the first, linking, invocation? Answer:
> (b), changed from (a).
> jrose: This greatly simplifies the support for an invokedynamic site,
> without loss of generality.
>
> ISSUE LANGUAGE-SUPPORT-CHECKED-EXCEPTIONS: In the Java language support,
> shall we have the implicit methods of MH.invoke and InDy.* throw
> Exceptions, to force checked exception processing at all call sites to
> method handles?
> Comment: The language people know there are loopholes, e.g., in
> Class.newInstance, but they don't want any more.
>
> ISSUE PUSH-INVALIDATION-NEEDED: Do we need a way of resetting call
> sites that is serialized with their execution? (Default answer: yes.)
>
> ISSUE METHOD-HANDLE-CONSTANTS: Shall we extend ldc to provide direct
> access (via constant pools) to direct method handles via the previously
> unused CONSTANT_Xref constant pool types, as an alternative to the
> Lookup.find* methods (when the operands are compile-time literals)?
>
> ISSUE METHOD-TYPE-CONSTANTS: Shall we extend ldc to provide direct
> access (via constant pools) to method types via the previously unused
> CONSTANT_Utf8 constant pool type, as an alternative to MethodType.make
> (when the operands are compile-time literals)?
>
> --- open-ended (or vaguely formulated) issues:
>
> ISSUE METHOD-HANDLE-CONSTRUCTORS: Is the set of method handle
> constructors in java.dyn.MethodHandles sufficient, useful, and simple
> enough to implement? (Default answer: Yes.)
> See also METHOD-HANDLE-CONVERSIONS.
>
More information about the mlvm-dev
mailing list