Backup developer notes.
[SquirrelJME.git] / assets / developer-notes / stephanie-gawroriski / 2018 / 09 / 09.mkd
blob1959ecd21e8ff9e3fb45d7cd17928cbe0c1bc1c5
1 # 2018/09/09
3 ## 17:51
5 I have been working on SquirrelJME throughout the day, so that is not bad.
6 Right now my current hurdle is `invokespecial`, which is a bit complex.
8 ## 18:18
10 Using deduction to determine how to handle `invokespecial`. Okay so since
11 Java 1.1 (released 02/1997) the compiler always set `SUPER`, so the method
12 that is directly specified is never called it instead uses the alternative
13 lookup. So let me see when J2ME came out.
15 ## 18:21
17 JSR030 is 05/2000, drafted in 08/1999. This means the latest Java release at
18 the time was Java 1.2 which was released 12/1998. Also the _J2_ in _J2ME_
19 stands for Java 2, which is Java 1.2. So I think at this point, if the super
20 flag is not set then it sucks to be you.
22 ## 18:29
24 Looking through the ancient specification, `main` is handled and used so
25 that is something. At least now I have actual backing for it.
27 ## 18:33
29 Confirmed that CLDC 1.0 uses a Java 1.2 VM.
31 ## 18:41
33 Okay so from this point, I am going to declare that `SUPER` is always set no
34 matter what.
36 ## 21:40
38 I am definitely going to need a refactor of the thread worker because it is
39 getting quite ugly!
41 ## 21:47
43 Huh, for some reason `Object` cannot have final fields and they cannot be
44 assigned a value in the compiler at all.
46 ## 21:54
48 The compiler does not allow final fields to be set for `Object` in its
49 constructor. In fact if final fields are initialized at run-time the compiler
50 does not generate any code for the constructor. So I will need to remember
51 this interesting detail.
53 ## 22:57
55 For the Lex redesign and logos, I would like to credit the artist for their
56 work:
58  * Kat@CMYKat Designs & Illustrations
59  * Kat Adam-MacEwen
60  * <www.cmykat-designs.com>
62 The logo is awesome so far and Lex is coming along quite cutely, I am very
63 excited.