<!DOCTYPE html><html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body>
    <font size="4" face="monospace">Let me fill in some history here.  <br>
      <br>
      Much of the design process for this library could be described as
      an iterated game of "find the primitive."  The first version of
      the API had a zillion ad-hoc methods, with little structural
      relation.  At some point we hit upon a model-driven analysis, and
      broke down instructions into families (loads, stores, etc), and at
      that point, we thought methods like loadInstruction were the
      primitives.  But we hadn't actually hit bottom yet; after many
      rounds of refactoring, it became clear that there was one
      primitive for the builder hierarchy, now called `with`, and all of
      the builder methods now bottom out at that.  <br>
      <br>
      At the same time, we added a number of "convenience" methods such
      as aload_0() and aload(int n) (which now just delegate to with()
      or loadInstruction()), and over time, we found that most
      generative use cases used these methods much more than the
      primitives (which is fine.)  <br>
      <br>
      At this point, I think many of the xxxInstruction (and its rigid
      naming convention) are vestiges of a previous attempt to organize
      the API.  Some still have uses, though should be renamed to
      reflect that they are mere conveniences (such as
      arrayLoadInstruction to arrayLoad).  <br>
      <br>
      (Does anyone use operator(opcode), or can we drop that one too?)<br>
      <br>
      So I support this simplification.  <br>
      <br>
      Having done the refactor, were there any surprises in the usages
      of various CodeBuilder methods?<br>
      <br>
    </font><br>
    <div class="moz-cite-prefix">On 1/5/2024 10:38 AM, Adam Sotona
      wrote:<br>
    </div>
    <blockquote type="cite" cite="mid:DS0PR10MB684775A5A5EF0A3D721A31C78C662@DS0PR10MB6847.namprd10.prod.outlook.com">
      
      <meta name="Generator" content="Microsoft Word 15 (filtered medium)">
      <style>@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}@font-face
        {font-family:"Roboto Mono";
        panose-1:0 0 0 9 0 0 0 0 0 0;}p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-ligatures:standardcontextual;
        mso-fareast-language:EN-US;}a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}div.WordSection1
        {page:WordSection1;}ol
        {margin-bottom:0cm;}ul
        {margin-bottom:0cm;}</style>
      <div class="WordSection1">
        <p class="MsoNormal"><span lang="EN-US">Hi,<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#172B4D;background:white">j.l.classfile.CodeBuilder
            API consist of
          </span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#172B4D;background:white" lang="EN-US">more than
          </span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#172B4D;background:white">230
            methods.</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#172B4D;background:white" lang="EN-US">
            <o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#172B4D;background:white">Existing
            ClassFile API use cases proved the concept
          </span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#172B4D;background:white" lang="EN-US">of
          </span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#172B4D;background:white">one
            big CodeBuilder is comfortable. However there are some
            redundancies, glitches in the naming, some frequently used
            methods are hard to find and some methods have low practical
            use.<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#172B4D;background:white"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#172B4D;background:white" lang="EN-US">Majority</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#172B4D;background:white">
            of the methods may be
          </span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#172B4D;background:white" lang="EN-US">divided</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#172B4D;background:white">
            into three main
          </span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#172B4D;background:white" lang="EN-US">levels</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#172B4D;background:white">:</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#172B4D"><br>
          </span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#172B4D;background:white" lang="EN-US">1.</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#172B4D;background:white">
            methods building low level bytecode instructions according
            to JVMS chapter 6.5 (aaload, aastore, aconst_null...)</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#172B4D"><br>
          </span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#172B4D;background:white" lang="EN-US">2.</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#172B4D;background:white">
            methods reconstructing individual subtypes of
            j.l.classfile.Instruction from given arguments
            (loadInstruction, storeInstruction, incrementInstruction,
            branchInstruction...)</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#172B4D"><br>
          </span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#172B4D;background:white" lang="EN-US">3.</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#172B4D;background:white">
            methods modeling high level code blocks (block, ifThen,
            ifThenElse, trying...)<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#172B4D;background:white"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#172B4D;background:white" lang="EN-US">Many methods from level 2 (with suffix
            `Instruction`) seem to be obsolete or misplaced. Some of
            them are duplicates of methods from level 1, some are
            obsolete and some are very useful, however a bit hidden. </span>
          <span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#172B4D" lang="EN-US">The API should be cleaned a bit while in
            preview.<span style="background:white"><o:p></o:p></span></span></p>
        <p style="mso-margin-top-alt:7.5pt;margin-right:0cm;margin-bottom:0cm;margin-left:0cm">
          <span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#172B4D;background:white" lang="EN-US">I would like to open a discussion on the
            following proposed
          </span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#172B4D">changes
            in </span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#172B4D" lang="EN-US">the
          </span><span style="font-size:10.0pt;font-family:"Roboto Mono";color:#172B4D">CodeBuilder</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#172B4D"> methods</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#172B4D" lang="EN-US">:<o:p></o:p></span></p>
        <ul type="disc">
          <li class="MsoNormal" style="color:#172B4D;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1">
            <span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">incrementInstruction</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB"> remove
              as duplicate of </span><span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">iinc</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB"><o:p></o:p></span></li>
          <li class="MsoNormal" style="color:#172B4D;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1">
            <span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">lookupSwitchInstruction</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB"> remove
              as duplicate of </span><span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">lookupswitch</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB"><o:p></o:p></span></li>
          <li class="MsoNormal" style="color:#172B4D;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1">
            <span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">tableSwitchInstruction</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB"> remove
              as duplicate of </span><span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">tableswitch</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB"><o:p></o:p></span></li>
          <li class="MsoNormal" style="color:#172B4D;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1">
            <span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">throwInstruction</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB"> remove
              as duplicate of </span><span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">athrow</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB"><o:p></o:p></span></li>
          <li class="MsoNormal" style="color:#172B4D;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1">
            <span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">invokeDynamicInstruction</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB"> remove
              as duplicate of </span><span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">invokedynamic</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB"><o:p></o:p></span></li>
          <li class="MsoNormal" style="color:#172B4D;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1">
            <span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">stackInstruction</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB"> remove
              as obsolete with suggested replacements:  </span><span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">with(StackInstruction.of(...))</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB"><o:p></o:p></span></li>
          <li class="MsoNormal" style="color:#172B4D;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1">
            <span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">monitorInstruction</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB"> remove
              as obsolete with suggested replacements: </span><span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">monitorenter</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB">, </span><span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">monitorexit</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB">,
              or </span><span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">with(MonitorInstruction.of(...))</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB"><o:p></o:p></span></li>
          <li class="MsoNormal" style="color:#172B4D;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1">
            <span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">nopInstruction</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB"> remove
              as duplicate of </span><span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">nop</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB"><o:p></o:p></span></li>
          <li class="MsoNormal" style="color:#172B4D;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1">
            <span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">typecheckInstruction</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB"> remove
              as obsolete with suggested replacements: </span><span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">checkcast</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB">, </span><span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">instanceOf</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB">,
              or </span><span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">with(TypeCheckInstruction.of(...))</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB"><o:p></o:p></span></li>
          <li class="MsoNormal" style="color:#172B4D;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1">
            <span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">loadInstruction</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB"> rename
              to </span><span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">loadLocal</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB"><o:p></o:p></span></li>
          <li class="MsoNormal" style="color:#172B4D;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1">
            <span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">storeInstruction</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB"> rename
              to </span><span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">storeLocal</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB"><o:p></o:p></span></li>
          <li class="MsoNormal" style="color:#172B4D;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1">
            <span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">branchInstruction</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB"> rename
              to </span><span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">branch</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB"><o:p></o:p></span></li>
          <li class="MsoNormal" style="color:#172B4D;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1">
            <span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">invokeInstruction</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB"> rename
              to </span><span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">invoke</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB"><o:p></o:p></span></li>
          <li class="MsoNormal" style="color:#172B4D;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1">
            <span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">newObjectInstruction</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB"> rename
              to </span><span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">newObject</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB"><o:p></o:p></span></li>
          <li class="MsoNormal" style="color:#172B4D;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1">
            <span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">newPrimitiveArrayInstruction</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB"> rename
              to </span><span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">newPrimitiveArray</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB"><o:p></o:p></span></li>
          <li class="MsoNormal" style="color:#172B4D;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1">
            <span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">newReferenceArrayInstruction</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB"> rename
              to </span><span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">newReferenceArray</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB"><o:p></o:p></span></li>
          <li class="MsoNormal" style="color:#172B4D;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1">
            <span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">newMultidimensionalArrayInstruction</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB"> rename
              to </span><span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">newMultidimensionalArray</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB"><o:p></o:p></span></li>
          <li class="MsoNormal" style="color:#172B4D;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1">
            <span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">arrayLoadInstruction</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB"> rename
              to </span><span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">arrayLoad</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB"><o:p></o:p></span></li>
          <li class="MsoNormal" style="color:#172B4D;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1">
            <span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">arrayStoreInstruction</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB"> rename
              to </span><span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">arrayStore</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB"><o:p></o:p></span></li>
          <li class="MsoNormal" style="color:#172B4D;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1">
            <span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">convertInstruction</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB"> rename
              to </span><span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">conversion</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB"><o:p></o:p></span></li>
          <li class="MsoNormal" style="color:#172B4D;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1">
            <span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">operatorInstruction</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB"> rename
              to </span><span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">operator</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB"><o:p></o:p></span></li>
          <li class="MsoNormal" style="color:#172B4D;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1">
            <span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">constantInstruction</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB"> rename
              to </span><span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">loadConstant</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB"><o:p></o:p></span></li>
          <li class="MsoNormal" style="color:#172B4D;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1">
            <span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">fieldInstruction</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB"> rename
              to </span><span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">fieldAccess</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB"><o:p></o:p></span></li>
          <li class="MsoNormal" style="color:#172B4D;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1">
            <span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">instanceof_</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB"> rename
              to </span><span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">instanceOf</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB"><o:p></o:p></span></li>
          <li class="MsoNormal" style="color:#172B4D;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1">
            <span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">returnInstruction</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB"> rename
              to </span><span style="font-size:10.0pt;font-family:"Roboto Mono";mso-ligatures:none;mso-fareast-language:EN-GB">return_</span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;mso-ligatures:none;mso-fareast-language:EN-GB"><o:p></o:p></span></li>
        </ul>
        <p class="MsoNormal"><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#172B4D;background:white" lang="EN-US">Here is the related RFE:
          </span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:black;background:white" lang="EN-US"><a href="https://bugs.openjdk.org/browse/JDK-8323058" moz-do-not-send="true" class="moz-txt-link-freetext">https://bugs.openjdk.org/browse/JDK-8323058</a></span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;background:white" lang="EN-US"><o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:black;background:white" lang="EN-US">Draft of the CSR (no spec yet):
            <a href="https://bugs.openjdk.org/browse/JDK-8323067" moz-do-not-send="true" class="moz-txt-link-freetext">https://bugs.openjdk.org/browse/JDK-8323067</a></span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;background:white" lang="EN-US"><o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#172B4D;background:white" lang="EN-US">And draft of the Pull Request:
            <a href="https://github.com/openjdk/jdk/pull/17282" moz-do-not-send="true" class="moz-txt-link-freetext">https://github.com/openjdk/jdk/pull/17282</a></span><span style="font-size:10.5pt;font-family:"Arial",sans-serif;background:white" lang="EN-US"><o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-size:10.5pt;font-family:"Arial",sans-serif;background:white" lang="EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#172B4D;background:white" lang="EN-US">Any comments are welcome.<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#172B4D;background:white" lang="EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#172B4D;background:white" lang="EN-US">Thank you,<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#172B4D;background:white" lang="EN-US">Adam<o:p></o:p></span></p>
      </div>
    </blockquote>
    <br>
  </body>
</html>