Project Valhalla – Value Types slides from ScalaDays Amsterdam 2015
simon at ochsenreither.de
Fri Jun 12 21:07:19 UTC 2015
Hi Brian, hi Vitaly,
thanks for your comments!
> #11: object headers are typically 2 words; a klass pointer and a word for various identity support (GC mark bits, locking, etc.) Which makes the density story with small objects even worse.
Yes, absolutely! I changed the original from "4 byte" to ">= 4 byte"
only because I was concerned that it would provoke some non-useful
response saying "but obscure JVM vendor implementation X version 23.42
does X in only 4 bytes!!!".
So I decided that "at least 4 bytes" would be better ... but I would be
happy to revise it again if you could provide more information. (E. g.
"_everyone_ implements it this way...")
(Btw, doesn't the klass pointer participate in compressed oops?)
> In general, values give us both DENSITY (memory efficiency) and FLATNESS (cache efficiency.)
You are right, I should have mentioned that! (There are a few things I
mentioned that weren't on the slides, but I forgot a lot to mention, too!)
For instance, I papered over the whole topic of boxing! :-/
> #36: in addition to the __ByValue obviously being a syntax placeholder,
Yes, I made that clear in the talk. Although I should have added that to
the slides too.
> the restrictions outlined e.g. in #38 (must say final) will also go away —
> we’re just not focusing at all on syntax for the time being.
Great, thanks for the info!
> #39: equality on value types will work as it does on primitives (as you suggest on #88)
> #121: good summary
> 2) value types cannot hold a ref field that's null? I think I saw that
on one of the slides. If so, why?
Maybe that was worded misleadingly. What I meant was that the value type
itself is non-nullable. It can of course have ref fields that can be
null. (I thought the example made it clear ...)
Thanks to both of you for the review.
I think the didn't go too well, because I was working on my slides until
the last minute (projector/filming equipment required 16:9 which meant I
had 300 pixels less height than I assumed). Then I didn't get the
mirroring working on my notebook, so I only had the slides in my back,
the audience in front, and couldn't move to a better place because I
needed to click through the slides on my notebook. :-/
I guess my English grammar was falling apart, too, due to the lack of sleep.
More information about the valhalla-dev