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