linghengqian commented on issue #21347: URL: https://github.com/apache/shardingsphere/issues/21347#issuecomment-1374469583
@zhfeng - I need to clarify something, not that Groovy does not support GraalVM NativeTest, but components like GroovyShell, Calcite, JRuby, Log4j2 2.x are not supported in GraalVM Native Image, because APIs such as Invokedynamic or Runtime bytecode generation are involved. - Once I resolve https://github.com/apache/shardingsphere/issues/22899 , we can bypass GroovyShell, such as generated `java.util.List` of ActualDataNodes through pure Java API. We could also consider using Truffle Javascript or Truffle Python's SPI implementation to generate ActualDataNodes . - We can even consider introducing the SPI implementation of Truffle Espresso to put the operation of GroovyShell into Truffle Espresso. Truffle Espresso **JITs** GroovyShell operations to the guest JVM process within GraalVM Native Image. Of course, there are limitations, such as calling methods on the Host JVM process will become troublesome. And the JIT mode of Truffle Espresso can only run under Linux, although in GraalVM Native Image, Truffle Espresso can run under Linux, Windows, and Macos. - Although ShardingSphere Proxy Native is currently unavailable, I can start testing around ShardingSphere Proxy Native once I solve a series of problems surrounding this issue and run through the `nativeTest` of `graalvm native build tools`. I wish I could fix related issues sooner, but the GraalVM ecosystem has always had issues that I need to focus on. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
