Model 3 classfile design document
andrey.breslav at jetbrains.com
Mon Feb 1 05:33:20 UTC 2016
A question about these examples:
- R(Foo<raw>) = Class["Foo"] or ParameterizedType['L', "Foo", "_"]
- R(Foo<String>) = Class["Foo"] orParameterizedType['L', "Foo", "_"]
- R(Foo<int>) =ParameterizedType['L', "Foo", ArrayType[1, "I"]]
Apparently, we want to preserve the information about int, while we don't
care about String. Why? Isn't int just a class, like String?
On Fri, Jan 22, 2016 at 7:53 PM Brian Goetz <brian.goetz at oracle.com> wrote:
> Please find a document here:
> that describes our current thinking for evolving the classfile format to
> clearly and efficiently represent parametric polymorphism. The early
> concepts of this approach were outlined in my talk at JVMLS last year;
> this represents a refinement of those ideas, and a reasonable "stake in
> the ground" description of what seems the most sensible way to balance
> preserving parametric information in the classfile without imposing
> excessive runtime costs for loading specializations.
> We're working on an updated compiler prototype which people will be able
> to play with soon (along with a formal model.)
> Please ask questions!
> Some things this document does not address yet:
> - How we deal with types implicit in the bytecodes (aload vs iload)
> and how they get specialized;
> - How we represent restricted methods in the classfile;
> - How we represent the wildcard type Foo<any>
Project Lead of Kotlin
The Drive to Develop
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the valhalla-spec-experts