Valhalla EG minutes 6/21/17

John Rose john.r.rose at oracle.com
Thu Jul 6 22:58:08 UTC 2017


On Jul 6, 2017, at 1:02 PM, Paul Sandoz <paul.sandoz at oracle.com> wrote:
> 
> In terms of what we have today we could easily do:
> 
>  // lookup must have private access to the lookup class, which becomes the “host” class
>  Class<?> defineAnonymousClass(byte[] data)
> 
> is that ending gaining too much?

Sure, that's OK, or else an 'isAnonymous' optional argument.
The difficult part here is specifying exactly what is a "host class".

> That still leaves the possibility of another method in the future say:
> 
>  Class<?> defineClass(boolean isAnon, byte[] data, Object constant)
> 
> That’s a little fuzzy since it’s not clear to me how the generated class locates the constant (synthetic static final field of known name? substitute the last entry in the CP if appropriately defined in the class bytes as substitutable?).

On Jul 6, 2017, at 1:12 PM, Remi Forax <forax at univ-mlv.fr> wrote:
> 
> Lookup.getConstant() with a private Lookup ?

Exactly, an ad hoc API point like that.  Would fit nicely with a BSM and
CONSTANT_ConstantDynamic and ldc.  Or a private static final and
code in <clinit>.

If you need several of them, a Map<String,Object> would be your
friend.  This doesn't need to be baked into the Lookup API, just a
design pattern, supported nicely by a slightly different BSM.

— John


More information about the valhalla-spec-observers mailing list