<html><body><div id="zimbraEditorContainer" style="font-family: arial, helvetica, sans-serif; font-size: 12pt; color: #000000" class="23"><div>Hi Daniel,<br data-mce-bogus="1"></div><div><br data-mce-bogus="1"></div><div>section 4.1: in the table 4.1-A,<br data-mce-bogus="1"></div><div>13/57/45..57 is missing given you talk about later in this section.</div><div><br data-mce-bogus="1"></div><div>section 4.3.2:<br></div><div> I don't think that using null as a diferentiator (Nullable/NonNullable) is a good idea.<br data-mce-bogus="1"></div><div> Yes, an inline type is not nullable, but it's also flattenable, loaded early, not circular, etc. This introduce a false dichotomy which we have already spent too much time. I don't remember the exact words that John is using, but it was making more sense too me.<br></div><div>  Perhaps only renaming NullFreeClassType to InlineClassType is enough ?<br data-mce-bogus="1"></div><div><br data-mce-bogus="1"></div><div>section 4.10.1.2:<br data-mce-bogus="1"></div><div>  the bottom right of the schema is wrong because a reference type can be a nullable type or an inline type which is not nullable<br data-mce-bogus="1"></div><div>  I propose<br data-mce-bogus="1"></div><div>    <br data-mce-bogus="1"></div><div> <span style="font-family: courier new, courier, monaco, monospace, sans-serif;" data-mce-style="font-family: courier new, courier, monaco, monospace, sans-serif;">           reference type</span><br data-mce-bogus="1"></div><div><span style="font-family: courier new, courier, monaco, monospace, sans-serif;" data-mce-style="font-family: courier new, courier, monaco, monospace, sans-serif;">              /        \</span><br data-mce-bogus="1"></div><div><span style="font-family: courier new, courier, monaco, monospace, sans-serif;" data-mce-style="font-family: courier new, courier, monaco, monospace, sans-serif;">            /           \</span><br data-mce-bogus="1"></div><div><span style="font-family: courier new, courier, monaco, monospace, sans-serif;" data-mce-style="font-family: courier new, courier, monaco, monospace, sans-serif;">   nullable type     inline class</span><br data-mce-bogus="1"></div><div><span style="font-family: courier new, courier, monaco, monospace, sans-serif;" data-mce-style="font-family: courier new, courier, monaco, monospace, sans-serif;">         |</span><br data-mce-bogus="1"></div><div><span style="font-family: courier new, courier, monaco, monospace, sans-serif;" data-mce-style="font-family: courier new, courier, monaco, monospace, sans-serif;">         |</span><br data-mce-bogus="1"></div><div><span style="font-family: courier new, courier, monaco, monospace, sans-serif;" data-mce-style="font-family: courier new, courier, monaco, monospace, sans-serif;">        null</span><br data-mce-bogus="1"></div><div><br data-mce-bogus="1"></div><div>Rémi<br data-mce-bogus="1"></div><div><br data-mce-bogus="1"></div><hr id="zwchr" data-marker="__DIVIDER__"><div data-marker="__HEADERS__"><blockquote style="border-left:2px solid #1010FF;margin-left:5px;padding-left:5px;color:#000;font-weight:normal;font-style:normal;text-decoration:none;font-family:Helvetica,Arial,sans-serif;font-size:12pt;"><b>De: </b>"daniel smith" <daniel.smith@oracle.com><br><b>À: </b>"valhalla-spec-experts" <valhalla-spec-experts@openjdk.java.net><br><b>Envoyé: </b>Jeudi 13 Juin 2019 22:57:31<br><b>Objet: </b>Draft LW2 spec<br></blockquote></div><div data-marker="__QUOTED_TEXT__"><blockquote style="border-left:2px solid #1010FF;margin-left:5px;padding-left:5px;color:#000;font-weight:normal;font-style:normal;text-decoration:none;font-family:Helvetica,Arial,sans-serif;font-size:12pt;">Here's a first look at a preview-feature-quality spec for values^H^H^H^H^H^Hinline classes.<div class=""><br class=""></div><div class=""><div class=""><a href="http://cr.openjdk.java.net/~dlsmith/inline-classes/specs/jvms-inline-classes.html" class="" target="_blank">http://cr.openjdk.java.net/~dlsmith/inline-classes/specs/jvms-inline-classes.html</a><br data-mce-bogus="1"></div></div><div class=""><br class=""></div><div class="">It reflects my understanding of what LW2 is supposed to look like. I'm sure I've gotten out of sync on some things, so please take some time to check on things I might be missing.</div><div class=""><br class=""></div><div class="">There are a few "design discussion" blocks that identify areas that may evolve further (in LW3, say) or where the design choices we've settled on aren't necessarily essential.</div><div class=""><br class=""></div><div class="">One area that required making some nontrivial choices, and could use some extra scrutiny, is the treatment of preparation and initialization. We know there are some invariants we want enforced, but there's a lot of wiggle room in deciding how they are enforced.</div><div class=""><br class=""></div><div class="">Note that I've included a suite of bug fixes/presentational improvements in a separate document, linked to in the introduction. If you notice differences between the official JVMS text and the text I'm quoting, that's probably why. I don't think most people will be interested in those details, but if you are, feel free to review the second document as well!</div><div class=""><br class=""></div><br></blockquote></div></div></body></html>