Maybe native like LLVM would be best because runtimes make assumptions that can be a limit but I thought of a runtime target like CLR or JVM so that I can access the whole ecosystem of libraries provided.
Regarding GraalVM I read in this document (https://www.oracle.com/a/ocom/docs/tools/graalvm-ee-white-paper.pdf):
"Computer virtualization has been a consistent trend for the past 20 years. While “virtualization” and “virtual machines” (VMs) mean different things in different contexts, they have a couple of goals in common: the isolation of code from other code running in the same machine and the ability to write once, run anywhere. To date, this virtualization vision has been incomplete. That’s because traditional virtualization approaches don’t address the issue of multiple programming languages. Meanwhile, the number of programming languages in use continues to increase. So, virtualization’s multilingual problem is growing. Attempts to build multilingual runtimes to fill this void have fallen short with poor performance and an inability to support all the semantics, features, and native extensions libraries of the new languages. But all that is changing with GraalVM language-level virtualization."