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.
I should probably be more descriptive in my exceptions even though they would be english only for the most part.
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.
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.
Well my current recursive map ZIP format is a bit insane, so I need to fix that up a bit.
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.
This would also be helpful with the compiler so it can determine where packages are and such also.
I should add that this is the native compiler.
So far, I like the split off classpath stuff as it makes the code just nicer.
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.
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