Remix.run Logo
riku_iki 3 days ago

My understanding is that that arena allows you to allocate memory segments, but you can't do much with it, you can't allocate var or object on it like in C++ for example, so its almost useless.

pjmlp 2 days ago | parent | next [-]

You certainly can, as they were designed as JNI replacement, with the goal to fully support the C ABI of the host platform.

You can either do the whole boilerplate manually with Panama set of APIs, or write a C header file and let jextract do the work of boilerplate generation.

riku_iki 2 days ago | parent [-]

> You certainly can

I am wondering if there is working code example, or this is just speculation?

kernal 2 days ago | parent | prev [-]

https://docs.oracle.com/en/java/javase/21/core/memory-segmen...

riku_iki 2 days ago | parent [-]

That Arena is not integrated into language. You can't do something like:

var myObj = new(my_arena) MyClass();