The interpreter could use up to 8GiB of memory although the command line switch limits that to 2GiB, that should be changed.
The stucture manager would also need to be given some kind of native allocation scheme, which uses some kind of native information to allocate from the given pool for example.
I have been playing in a video game tournament against humans and AI. The AI is very difficult and so far my only win was by sheer luck. However, playing against the AI makes me want to clone the game and write my own AI that can work in both environments.
I do wonder if I should have an array of objects that match the cache line size for synchronization. That would be faster but it would result in having lots of objects being used. I suppose when it comes to atomic it will lock the entire memory region in the interpreter.
So what I need now is an allocator for memory regions. It could either be pool based or explicit pointers. I would suppose for memory purposes, being a pool would be best. One thing to consider for native systems is that the kernel and all of its starting classes will need to be initialized. Perhaps in this case I would have a bootstrap initializer.
The bootstrap initializer could then set the structure manager used by the kernel to the bootstrap structure manager so to speak.