Access Modifier Issues

Brian Goetz brian.goetz at oracle.com
Fri Jan 9 16:30:18 UTC 2015


Just to be 100% clear, the "load a class with a funny Foo${T=I} name" is 
exclusively a temporary prototyping hack.  (I wish I didn't have to say 
this, but I do; a few months ago, some "journalist" saw the first SotS 
draft and then reported "Java developers will trigger primitive 
specialization by adding ${T=I} to their class names".  No joke.)

>> Hm, currently there seem to be two ways of triggering specialization.
>> First way is by referencing classes with specialy-crafted names
>> (SomeClass${0=?}) and ClassLoader then contains a hook to dispatch to
>> the specialization logic. The second is used for invoking specialized
>> generic methods, which works with invokedynamic and bootstrap methods.
>> Would theoretically be possible to replace the 1st way (special class
>> names) with the invokedynamic too? Would it be practical? Would it
>> solve access problems?
> The current plan is to use a new mechanism called classdynamic for that
> purpose (this has come up before in this mailing list). I think,
> regardless on which plumbing you use to emit the generated class (either
> funky name + Loader changes, or classdyn), if the specialized class is a
> brand new class which is completely detached from the class it comes
> from, then access (w/o extra accessors) will always be problematic.


More information about the valhalla-dev mailing list