<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On 30 Sep 2019, at 13:41, Chris Seaton &lt;<a href="mailto:chris.seaton@shopify.com" class="">chris.seaton@shopify.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html; charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><br class=""><div class=""><br class=""><div class=""><br class=""><blockquote type="cite" class=""><div class="">On 30 Sep 2019, at 12:34, Doug Simon &lt;<a href="mailto:doug.simon@oracle.com" class="">doug.simon@oracle.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html; charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Hi Chris,<div class=""><br class=""></div><div class="">The source truth for the required JVMCI version is in&nbsp;<a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_oracle_graal_blob_03217a31ee2f8e3fb2b75e9d7b14220d645e5955_compiler_src_org.graalvm.compiler.hotspot_src_org_graalvm_compiler_hotspot_JVMCIVersionCheck.java&amp;d=DwMFaQ&amp;c=RoP1YumCXCgaWHvlZYR8PZh8Bv7qIrMUB65eapI_JnE&amp;r=BmNY5KuefACTr_P43s8fXOXgNDkDiqlviyafeiVaP18&amp;m=V9XGD9ImMM__PcFglow66ZxckB3qs-u61Be_7TLx-p8&amp;s=QIwQq5Q_hlUyWJImY8ZhmQ7agiRSeznDCIE_NOqComE&amp;e=" class="">JVMCIVersionCheck.java</a>.</div></div></div></blockquote><div class=""><br class=""></div><div class="">Ok I’ll use that as my single source of truth, thanks.<div class=""><br class=""></div><div class="">How come it doesn’t match what’s used in CI, though? The third digit is the build, right? This shows b2 and b3 being used in the same commit.</div></div></div></div></div></div></blockquote><div><br class=""></div>Because JVMCIVersionCheck specifies the *minimum* JVMCI version from an API perspective. Later JVMCI release can contain performance or bug fixes. As such, we bump JVMCI import more often in CI than we update JVMCIVersionCheck.</div><div><br class=""><blockquote type="cite" class=""><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div class=""><div class=""><div class=""><div class=""><br class=""></div><div class=""><a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_oracle_graal_blob_1d9d33960b860a97fa3c488789f007f1229cc390_compiler_src_org.graalvm.compiler.hotspot_src_org_graalvm_compiler_hotspot_JVMCIVersionCheck.java&amp;d=DwMFaQ&amp;c=RoP1YumCXCgaWHvlZYR8PZh8Bv7qIrMUB65eapI_JnE&amp;r=BmNY5KuefACTr_P43s8fXOXgNDkDiqlviyafeiVaP18&amp;m=V9XGD9ImMM__PcFglow66ZxckB3qs-u61Be_7TLx-p8&amp;s=hl2nDah7mmMMB5NRwLxu_986d4B2Bjy-DFFUG1xiqCw&amp;e=" class="">https://github.com/oracle/graal/blob/1d9d33960b860a97fa3c488789f007f1229cc390/compiler/src/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/JVMCIVersionCheck.java</a></div><div class=""><a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_oracle_graal_blob_1d9d33960b860a97fa3c488789f007f1229cc390_common.hocon-23L10&amp;d=DwMFaQ&amp;c=RoP1YumCXCgaWHvlZYR8PZh8Bv7qIrMUB65eapI_JnE&amp;r=BmNY5KuefACTr_P43s8fXOXgNDkDiqlviyafeiVaP18&amp;m=V9XGD9ImMM__PcFglow66ZxckB3qs-u61Be_7TLx-p8&amp;s=KMg-a_6NwOUf-V3GUlito4gy35TOL6tpeGNpt9K3XBs&amp;e=" class="">https://github.com/oracle/graal/blob/1d9d33960b860a97fa3c488789f007f1229cc390/common.hocon#L10</a></div></div><br class=""><blockquote type="cite" class=""><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div class=""><div class="">Where else and in what format would you like that to be declared? Note that with JDK 11 about to be supported, a single JVMCI version number will denote 2 different base JDKs.</div></div></div></div></blockquote><div class=""><br class=""></div><div class="">All other version dependency information is in the chain of suite.py files. JVMC is I think the only exception, so seems like it should be in there instead, and perhaps&nbsp;JVMCIVersionCheck.java built from it during compilation?</div></div></div></div></div></blockquote><div><br class=""></div>Suite.py is used for declaring *exact* versioned dependencies. As stated above, JVMCIVersionCheck is not an exact version dependency.</div><div><br class=""><blockquote type="cite" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div class=""><div class=""><div class="">Ultimately, the fact that the JVMCI version is repeated tens of times all over the code base (lots of CI files, that Java file, etc), and that it’s being scraped with regular expressions from these files, gives me the idea that something about how it is being declared is not right.</div></div></div></div></blockquote><div><br class=""></div><div>I agree that it’s not optimal. We have an internal issue for making JVMCI JDK dependency be like all other dependencies so I think we’ll have it in suite.py before long.</div><div><br class=""></div><div>-Doug</div><br class=""><blockquote type="cite" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div class=""><div class=""><br class=""><blockquote type="cite" class=""><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div class=""><div class="">-Doug</div><div class=""><div class=""><br class=""><blockquote type="cite" class=""><div class="">On 30 Sep 2019, at 12:48, Chris Seaton &lt;<a href="mailto:chris.seaton@shopify.com" class="">chris.seaton@shopify.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html; charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Could we get some kind of declarative dependency on a JVMCI version from GraalVM and languages? As I understand it, Graal depends on a particular JVMCI version. But which version? I have to go scraping around to figure it out from clues like the CI configuration when I do my own builds.<div class=""><br class=""></div><div class="">Would it make sense to declare a clear dependency on a JVMCI version in our mx suites like we do on other components?<div class=""><div class=""><br class=""></div><div class="">Examples of issues this causes includes the number of places it’s repeated and the various formats it’s in.</div><div class=""><br class=""></div><div class=""><a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_oracle_graal_commit_d8f623a1957ee378c4d20cefabc0950878037620&amp;d=DwMFaQ&amp;c=RoP1YumCXCgaWHvlZYR8PZh8Bv7qIrMUB65eapI_JnE&amp;r=P1aEbpQqX18a0ssutGCeizsWEVvvJcWvSeSxdI9X3-o&amp;m=5Fpxezl2ceVCO_hT1GeSBkUl-njbxmg2gJsRbxLRrWM&amp;s=T6fWXJ_7oIW8j_KkbxC15oEaErQ4X6Yr5WUYSQKr1YU&amp;e=" class="">https://github.com/oracle/graal/commit/d8f623a1957ee378c4d20cefabc0950878037620</a></div><div class=""><a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_oracle_truffleruby_commit_0808ffc9e65a98c38a252c87f917e34cff584b28&amp;d=DwMFaQ&amp;c=RoP1YumCXCgaWHvlZYR8PZh8Bv7qIrMUB65eapI_JnE&amp;r=P1aEbpQqX18a0ssutGCeizsWEVvvJcWvSeSxdI9X3-o&amp;m=5Fpxezl2ceVCO_hT1GeSBkUl-njbxmg2gJsRbxLRrWM&amp;s=G6Pm_bwKdM6pZmGIE65bZS7t_9-Geuwr9mCflnmfgww&amp;e=" class="">https://github.com/oracle/truffleruby/commit/0808ffc9e65a98c38a252c87f917e34cff584b28</a></div><div class=""><a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_oracle_truffleruby_commit_e79e9d57d665bd15d77d80c0b53b547bd0eeff73&amp;d=DwMFaQ&amp;c=RoP1YumCXCgaWHvlZYR8PZh8Bv7qIrMUB65eapI_JnE&amp;r=P1aEbpQqX18a0ssutGCeizsWEVvvJcWvSeSxdI9X3-o&amp;m=5Fpxezl2ceVCO_hT1GeSBkUl-njbxmg2gJsRbxLRrWM&amp;s=ijCPXws2Igq6u0uayVUxHLoKXHNzG0soxwFdX_D6ziA&amp;e=" class="">https://github.com/oracle/truffleruby/commit/e79e9d57d665bd15d77d80c0b53b547bd0eeff73</a></div><div class=""><br class=""></div></div></div><div class="">Regards,</div><div class=""><br class=""></div><div class="">Chris</div></div>_______________________________________________<br class="">GraalVM-Dev mailing list<br class=""><a href="mailto:GraalVM-Dev@oss.oracle.com" class="">GraalVM-Dev@oss.oracle.com</a><br class=""><a href="https://oss.oracle.com/mailman/listinfo/graalvm-dev" class="">https://oss.oracle.com/mailman/listinfo/graalvm-dev</a></div></blockquote></div><br class=""></div></div></div></div></blockquote></div><br class=""></div></div></blockquote></div><br class=""></body></html>