01:57
Appears the Arduino has had a troubling history associated with it. In other parts, today I have to perform my refactoring of the ZIP code so I can share it more between the 32-bit and 64-bit variants and have less code. Currently as it stands it is a bit ugly.
13:02
I should probably be more descriptive in my exceptions even though they would be english only for the most part.
14:54
My directory entries could just be map entries, that would simplify some things a bit. I can also have directory initialization based on the position of the table, so basically entries in the ZIP are a table of long values. Searching for specific entries would require linear traversal over the map however.
14:57
I could actually sub-class exceptions. Instead of a message saying whatever, I can instead just have a sub-class extension. So if a ZIP directory was not found then the exception is called with the reason. This means that I can go easier on strings a bit at the cost of adding classes.
16:40
Well my current recursive map ZIP format is a bit insane, so I need to fix that up a bit.
19:39
Ok, what I actually need next is a kind of class path element that is common to the interpreter. So essentially the interpreter engine knows about there being a class path, but internal details are a bit hidden away. Classes which extend it could use it and such. I also have to have it abstract enough so that a compiler system could be written using the pre-existing interpreter parsing of sorts.
19:50
This would also be helpful with the compiler so it can determine where packages are and such also.
19:58
I should add that this is the native compiler.
20:25
So far, I like the split off classpath stuff as it makes the code just nicer.
Then for LocalEngine
I can have the ZIP handling stuff actually separate and
not a part of a giant mess. This also solves the problem of handling
ServiceLoader
since that will have to manager JARs and such.
21:44
So that is what ReferenceQueue
is used for, removing all the useless junk. I
can use that in my interpreter and such to handle cleaning up when things are
clear. That will be a must since once the value is gone the key is not needed
at all.