<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Maurizio,<div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">> <i>Hi Gavin, as soon as the PR [1] is integrated, we will make a jextract build available with it.</i></blockquote><div><br></div><div>Awesome, really looking forward to this!</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">> <i>But, we're also exploring interim ways for developers to more easily build jextract, by "bootstrapping" the jextract 20 build with the 19 binary.</i><br>> <i>After all, the big issue when building jextract is getting the correct libclang dependency - but that doesn't change across jextract version.</i></blockquote><div><br></div><div>Building the JDK is definitely the most time-consuming/laborious part.</div><div>(Note: if anyone else reading this winds up wanting to do it, I put together a Dockerfile which installs all deps + will build the JDK automatically for you)</div><div><a href="https://gist.github.com/GavinRay97/778dd5c511030820020897568b63ee7f">https://gist.github.com/GavinRay97/778dd5c511030820020897568b63ee7f</a></div><div><br></div><div>At least for the LLVM toolchain, it's nice that you can use the shell script they provide and give it a version number, or copy the test from the jextract Github Action workflow here:<br></div><div><a href="https://github.com/openjdk/jextract/blob/73e408ec3f15fe1e615eeca434c2ce54627adeab/.github/workflows/test.yml#L72-L78">https://github.com/openjdk/jextract/blob/73e408ec3f15fe1e615eeca434c2ce54627adeab/.github/workflows/test.yml#L72-L78</a><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">> <i>So, stay tuned, we might have more news soon!</i></blockquote><div><br></div><div>My ears will be peeled =) </div></div></div></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Oct 28, 2022 at 2:11 PM Maurizio Cimadamore <<a href="mailto:maurizio.cimadamore@oracle.com">maurizio.cimadamore@oracle.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">

  
  <div>
    <p>Hey Duncan,<br>
      Note that we do have jextract binaries available:</p>
    <p><a href="https://jdk.java.net/jextract/" target="_blank">https://jdk.java.net/jextract/</a></p>
    <p>This works against a vanilla JDK 19.</p>
    <p>When the first JDK 20 EA build with the new FFM API will come
      out, the above page will be updated, and a link to jextract 20
      will be added.</p>
    <p>The Panama binary download page you indicated is effectively
      obsolete, and it should probably be removed, to avoid confusion.<br>
    </p>
    <p>Maurizio<br>
    </p>
    <div>On 28/10/2022 17:37, Duncan Gittins
      wrote:<br>
    </div>
    <blockquote type="cite">
      
      <div dir="ltr">
        <div dir="ltr">
          <div dir="ltr">
            <div dir="ltr">
              <div dir="ltr">
                <div dir="ltr">
                  <div dir="ltr">Continuing the theme of Gavin's
                    request, I think you might get more people to try
                    out jextract and Panama if there were easy to find
                    download links in <a href="https://urldefense.com/v3/__https://jdk.java.net/panama/__;!!ACWV5N9M2RV99hQ!NwW3xcoQINXDkZUYrgkilaKazXBg7Lbny12740ULMd93Kt9K294BZxGybUuFG_wLac9iDuQ8pzIdwG8Os7Vqo-fi_I3YxzoF$" target="_blank">https://jdk.java.net/panama/</a>
                    for versions aligned the shipped JDK 17/18/19. </div>
                  <div dir="ltr"><br>
                  </div>
                  <div>This means a developer could try samples for the
                    JDK version they already have installed without
                    needing to build either JDK or jextract themselves.
                    Hopefully it only needs posting every 6 months.</div>
                  <div dir="ltr"><br>
                  </div>
                  <div dir="ltr">Kind regards<br>
                  </div>
                  <div><br>
                  </div>
                  <div>Duncan</div>
                  <div dir="ltr"><br>
                  </div>
                  <div dir="ltr"><br>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
      <br>
      <div class="gmail_quote">
        <div dir="ltr" class="gmail_attr">On Fri, 28 Oct 2022 at 00:56,
          Gavin Ray <<a href="mailto:ray.gavin97@gmail.com" target="_blank">ray.gavin97@gmail.com</a>>
          wrote:<br>
        </div>
        <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
          <div dir="ltr">Hooray!
            <div><br>
            </div>
            <div>By any chance, will there be a new release of the
              Panama 20ea JDK and jextract binaries as well?</div>
            <div>I've had quite some difficulties getting jextract on 20
              built and it'd be swell to rebase some of the work I've
              done on the more recent API changes.</div>
          </div>
          <br>
          <div class="gmail_quote">
            <div dir="ltr" class="gmail_attr">On Thu, Oct 27, 2022 at
              2:30 PM Mark Reinhold <<a href="mailto:mark.reinhold@oracle.com" target="_blank">mark.reinhold@oracle.com</a>>
              wrote:<br>
            </div>
            <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><a href="https://openjdk.org/jeps/434" rel="noreferrer" target="_blank">https://openjdk.org/jeps/434</a><br>
              <br>
                Summary: Introduce an API by which Java programs can
              interoperate with<br>
                code and data outside of the Java runtime. By
              efficiently invoking<br>
                foreign functions (i.e., code outside the JVM), and by
              safely accessing<br>
                foreign memory (i.e., memory not managed by the JVM),
              the API enables<br>
                Java programs to call native libraries and process
              native data without<br>
                the brittleness and danger of JNI. This is a preview
              API.<br>
              <br>
              - Mark</blockquote>
          </div>
        </blockquote>
      </div>
    </blockquote>
  </div>

</blockquote></div>