Developer Partner Community

Compiling Native Projects via the GraalVM LLVM Toolchain by Josef Eisl

Juergen Kress
PaaS Partner Adoption


GraalVM is a high-performance polyglot runtime supporting a variety of different languages, including JavaScript, Ruby, R, Python, and JVM languages such as Java, Scala or Kotlin.

There is one member of the GraalVM language family that is a bit special. While all the aforementioned languages are managed, so the language runtime manages all memory requirements, the LLVM runtime executes LLVM bitcode, which is unmanaged. That means there is no garbage collector that frees the memory automatically. Instead, users get their hands on raw pointers and need to maintain them manually. Also, arrays are not bounds-checked. The programmer is responsible for checking sizes.

Supporting LLVM bitcode brings languages such as C or C++ to the polyglot world of GraalVM. This allows us, for example, to pass a JavaScript object to C code and access it as if it was a C struct, or the other way round, without converting the underlying data to a different representation. (See the LLVM runtime reference for more information.) Read the complete article here.


Developer Partner Community

For regular information become a member in the Developer Partner Community please register here.

clip_image003 Blog clip_image005 Twitter clip_image004 LinkedIn image[7][2][2][2] Facebook image Meetups

Technorati Tags: PaaS,Cloud,Middleware Update,WebLogic, WebLogic

Be the first to comment

Comments ( 0 )
Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.