5 One thing I can have in the future is a kind of IDE which can compile this
6 while running on SquirrelJME. Another feature I thought of having would be
7 a retro-system or general system compiler which can take C and produce machine
8 code from it. The native compiler under C could use the pre-existing JIT
9 engine to generate binaries (since the JIT engine utilizes memory access and
10 such). Then with a standard library, it would be possible to write some
11 homebrew games for consoles on the console itself.
15 So now I must work on the JIT compiler for generating actual classes. I suppose
16 I should start with the initial class details and such.
20 One thing to consider is the JIT compilation order, I should have an
21 enumeration which is used so that the order can be more well known.
25 I have not checked if the build system compiles and works on Windows for the
26 past 4 months, I suppose I should check it real quick. Technically it would
31 Well, it appears that it works just fine.
35 At least with C and the prototypes being in the header I do not need to
36 worry about forward declarations and such.
40 Need to determine a good way for strings to exist without being too much of
45 I should work on the code that runs after the JIT has successfully completed
46 so that during initial development I can potentially have partial results
47 potentially working together. Potentially if a cache creator is used I need
48 to copy the output somewhere before it is worked on. Ideally at this point the
49 cached forms would have to potentially be linked (if applicable). However that
50 might not be needed at all, I just need a way to extract the actual created
51 namespaces into some potentially executable form.
55 The JIT only works with a single class at a time and depending on what is
56 creating the JIT is is rather undefined what happens after a class is
61 I suppose the final work would be done by the `JITNamespaceProcessor` which
62 does create the JIT since it potentially knows everything. Then `JITOutput`
63 can contain the needed classes which perform a final stage linking of all of
64 the code into a blob potentially from any created cache that exists. So
65 then the cache manager needs to have a way to iterate created caches then.
69 I am actually going to need some assets from the root such as the readme and
70 the license. I suppose to reduce duplication that I can just use symlinks and
71 create a special package for it. Personally I would like that the builder
72 creates a ZIP file which contains the distribution as required. This way there
73 is no need to worry about writing other scripts to package it manually for
74 example. If the executable format is special, say an ISO then it would be
75 very similar except the ZIP contains an ISO instead. Since now I can write
80 Appears my GPG expired, I must remember to not let it do so.
84 For the executable to be written, I will need to go through a ZIP as a stream
85 so this means that I must support reading of streamed ZIPs.
89 So I am getting a bit closer to a JIT, although it was a couple of months that
90 I could have had it earier. However, the older code was really bad and the
91 current code is very workable. If I need to rewrite an output JIT I can just
92 do that without worrying much about breaking other things.