Valhalla EG minutes 6/21/17
forax at univ-mlv.fr
Thu Jul 6 20:12:30 UTC 2017
----- Mail original -----
> De: "Paul Sandoz" <paul.sandoz at oracle.com>
> À: "John Rose" <john.r.rose at oracle.com>
> Cc: valhalla-spec-experts at openjdk.java.net
> Envoyé: Jeudi 6 Juillet 2017 22:02:39
> Objet: Re: Valhalla EG minutes 6/21/17
> 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<?> defineAnonymousClass(byte data)
> is that ending gaining too much?
> 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?).
Lookup.getConstant() with a private Lookup ?
>> On 5 Jul 2017, at 11:43, John Rose <john.r.rose at oracle.com> wrote:
>> On Jul 5, 2017, at 11:39 AM, Paul Sandoz <paul.sandoz at oracle.com> wrote:
>>> I was unsure if we require a new method L.defineAnonClass or could leverage the
>>> existing L.defineClass. IIUC for expediency the current hooks in the VM lean
>>> towards anon classes, since there is already code to defer to the host class,
>>> whereas the general defineClass case will likely require more work, although i
>>> can potentially see some short cuts if we focus on VCC/DVT.
>> Good point. Yes, that part isn't designed yet. It may manifest as an extra
>> argument or two to the L.dC.
>> At least two degrees of freedom apply there: 1. suppressing the name (no system
>> dictionary update),
>> 2. providing some sort of "user data" to bind to the class (can be a single
>> ref., replaces CP patching).
>> For MVT we can just generate a throwaway name, like DVT.getName()+":29348".
> > — John
More information about the valhalla-spec-experts