SquirrelJME/SquirrelJME

View on GitHub
assets/developer-notes/stephanie-gawroriski/2014/09/24.mkd

Summary

Maintainability
Test Coverage
# 2014/09/24

***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._

## 22:22

Writing my own compiler is nice, however that is going to much work. In order
for this all to work I need to be making native code now. A runtime that can
load classes and create generators for native code for using on a build system
and the actual k8 system itself. So I will need a compiler wrapper system
which can execute existing compilers on the disk and look for any nice looking
compilers, and if there are none then my compiler could be used instead when
it gets to that point. There is already a compiler API in the Java 7 and 8
class library, however on older versions that is not feasible to use. The
compiler wrapper could also be used to invoke compilers that exist on the disk
and possibly bootstrap my own compiler if possible. As for the runtime system
they will all be k8-runtime prefixed then specific architectures would then
become k8-runtime-powerpc. The runtime should be capable of compilation and
interpretation (when compilation is not available). The runtime system should
require Java 8 at least because that is the cleanest.

## 23:01

So my package building setup and the hairboot boot script also changes. It
will have to compile the package manager as usual, along with the compiler
wrapper. Then once the wrapper is built, it can be used to check if there is
in fact a Java 8 compiler available. If there is not, then the script can
build my compiler to act as a Java 8 compiler. That would be the simplest
solution as it will permit me to skip the writing a compiler step.