Compiling Native Projects via the GraalVM LLVM Toolchain by Josef Eisl


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


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.