Project Valhalla – Value Types slides from ScalaDays Amsterdam 2015

Simon Ochsenreither simon at
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 mailing list