I have been working on SquirrelJME throughout the day, so that is not bad.
Right now my current hurdle is
invokespecial, which is a bit complex.
Using deduction to determine how to handle
invokespecial. Okay so since
Java 1.1 (released 02/1997) the compiler always set
SUPER, so the method
that is directly specified is never called it instead uses the alternative
lookup. So let me see when J2ME came out.
JSR030 is 05/2000, drafted in 08/1999. This means the latest Java release at the time was Java 1.2 which was released 12/1998. Also the J2 in J2ME stands for Java 2, which is Java 1.2. So I think at this point, if the super flag is not set then it sucks to be you.
Looking through the ancient specification,
main is handled and used so
that is something. At least now I have actual backing for it.
Confirmed that CLDC 1.0 uses a Java 1.2 VM.
Okay so from this point, I am going to declare that
SUPER is always set no
I am definitely going to need a refactor of the thread worker because it is getting quite ugly!
Huh, for some reason
Object cannot have final fields and they cannot be
assigned a value in the compiler at all.
The compiler does not allow final fields to be set for
Object in its
constructor. In fact if final fields are initialized at run-time the compiler
does not generate any code for the constructor. So I will need to remember
this interesting detail.
For the Lex redesign and logos, I would like to credit the artist for their work:
- Kat@CMYKat Designs & Illustrations
- Kat Adam-MacEwen
The logo is awesome so far and Lex is coming along quite cutely, I am very excited.