"Model 2" prototype implementation
Vlad Ureche
vlad.ureche at gmail.com
Sat Aug 8 17:15:03 UTC 2015
Brian, thanks the explanation!
I’m very excited that the translation maps 1-to-1 to the Scala requirements
<https://speakerdeck.com/vladureche/valhalla-the-good-the-bad-and-the-ugly-scaladays-2015-san-francisco?slide=170>
(in the slide, the function R: Type -> Class is the right side, I called it
Reference).
There’s one thing I’d still like to have, if it doesn’t interact badly with
other features.
It’s in the same vein as T.default, only working inside classes/methods
with anyfied type parameters:
Object T#box(T t)
T T#unbox(Object t)v throws InvalidArgumentException
The boxing and unboxing operations could be patched in during the load-time
class specialization (they could be wired to identity in the erased class).
Would you be able to fit this in?
Thanks a lot and looking forward to the full write-up!
Vlad
PS: Normally I’d pick up the prototype and play around instead of asking
questions, but I’m writing my thesis, interviewing and preparing for
welcoming a baby, so I’ve got quite a few balls in the air right now.
On Fri, Aug 7, 2015 at 11:12 PM, Brian Goetz <brian.goetz at oracle.com> wrote:
Yep, that's because we haven't told the whole translation story in its full
> gory detail yet. Stay tuned for the writeup. (Spoiler: it has to do with
> types with multiple avars where some are wildcarded and others are not,
> like Map<int, any>.)
>
>
> On 8/7/2015 5:03 PM, Guillaume Martres wrote:
>
>> On Friday 07 August 2015 16:09:14 Brian Goetz wrote:
>>
>>> Most dispatch on Foo<any> receivers can proceed without indy; the
>>> prototype happens to use it for dispatching all calls on Foo<any>
>>> receivers, but this is neither necessary nor optimal.
>>>
>>
>> Can you provide an example where it is necessary? I played a bit with the
>> prototype but couldn't think of an example where it would.
>>
>>
More information about the valhalla-dev
mailing list