DISCLAIMER: These notes are from the defunct k8 project which precedes SquirrelJME. The notes for SquirrelJME start on 2016/02/26! The k8 project was effectively a Java SE 8 operating system and as such all of the notes are in the context of that scope. That project is no longer my goal as SquirrelJME is the spiritual successor to it.
Today is a very lucky day!
In the future when ArrayDeque is written I can have fast code by using two arrays, one that gets front sided elements and the other that gets backsided elements. That is one array is in reverse order, and it can be grown as needed by the code. Although a circular array can work just as good and can be grown when needed. A single circular array would minimize allocation requirements. However, the circular array would have issues when adding elements to the front because if it collides with the end it would then need to move all the elements down. So the front facing pivot must be able to go into another array as needed to increase speed.
Some people who use condition on byte code complained about StackMapTable, but from what I can see StackMapTable simplifies things and makes it more strict. More strict in the way that it has to match and that jump backs will require jump backs to match the stack state when the target was just executed. So the StackMapTable forces the compiled code to be simpler, because otherwise veryifying some code may never end if it changes the state all the time.
Found some issues on missing information that is needed in the JavaCodeBank to correctly decode Java byte code.