Correct spelling.
[SquirrelJME.git] / assets / developer-notes / stephanie-gawroriski / 2014 / 09 / 09.mkd
blob6129aea840cc6a3eddcb4db71141770a29680d8d
1 # 2014/09/09
3 ***DISCLAIMER***: _These notes are from the defunct k8 project which_
4 _precedes SquirrelJME. The notes for SquirrelJME start on 2016/02/26!_
5 _The k8 project was effectively a Java SE 8 operating system and as such_
6 _all of the notes are in the context of that scope. That project is no_
7 _longer my goal as SquirrelJME is the spiritual successor to it._
9 ## 00:47
11 Ok, for the simplified compiler I need to keep things simple. Before I had
12 very nice and powerful, but rather cumbersome beacon and unit locators. For
13 compilation, the only thing that matters it the classpath. Any input source
14 file along with other class files and source files in other directories are
15 included. This could also include ZIP files and such. However lookup of
16 objects is the same for all of them regardless. So all I need is handling of
17 whatever a class path could be, either a real directory, a JAR, or maybe
18 temporary stuff in memory possibly. If I keep that simple then lookup of
19 objects remains simple. Then compilation of languages could be directly
20 referenced. Java would be treated as normal while C would require pragmas to
21 set class and package information, possibly even annotations and such. There
22 is decoration so that C functions can call Java code and vice versa.
24 ## 01:02
26 For loading actual objects I can do the BinaryClass and BinaryKBF stuff,
27 implement those so they can be used by the compiler to get symbols and to make
28 new binaries, and so it can be used by the kernel JIT. If I keep the JIT stuff
29 in one place, I could at least write it once as it would all use a common
30 intermediate interface anyway. Not sure of the intermediate language yet but
31 maybe something CISC or VLIW like, but not overly complex. The byte code would
32 need forward and backward referencing so that it could be recompiled better
33 since the more information the better. Previously with my previous compiler I
34 would have to had written everything twice, a fat one for userspace stuff and
35 a newer lean for usage in the kernel. I could just write the lean one and use
36 that for both, it would save considerable time.