SquirrelJME/SquirrelJME

View on GitHub
assets/developer-notes/stephanie-gawroriski/2019/04/30.mkd

Summary

Maintainability
Test Coverage
# 2019/04/30

## 10:26

Okay so I am going to do idea simplification and combination. My idea now
consists of doing the simple pool-only with statics references for the
bootstrap pool initialization the same as it is done in SummerCoat's
initialization sequence. But it will have it be stored in the ROM instead
as an initial memory boot sequence. It will effectively be both but it
will instead just involve static memory and a sequence of instructions
used to initialize it, either based off the RAM offset or JAR offset. So it
will end up being much simpler but a combination of the two. There is no
need to have an insanely complex boot initialization process when I have
proven that just the constant pool being initialized with pointers is
enough. This initialization could be done by the bootstrap as well.

## 16:54

It is too complex to have to multiply by 4 to get the class pointer.

## 17:23

So I simplified VTables for special and instance invokes. The only thing for
me to do are interface invocations. These are a bit complex because I will
have to do some lookup to figure out what is what. So the lookup will be
done much and very often, so how is it made fast and rather constant? How
about if there were a known interface index. Basically what would happen is
that... well it might not work because the object might not be known at
compile time and it would be complicated otherwise. I think it would be best
to have a helper method instead of having this sit in the code compiler
somewhere. But it should have three arguments: the class of the object
being invoked, the interface to be invoked, and the method index of the
interface method being invoked. I think that is the simplest way.