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.
For regular information become a member in the Developer Partner Community please register here.