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]

Reply via email to