3 ***DISCLAIMER***: _These notes are from the defunct k8 project which_
4 _precedes SquirrelJME. The notes for SquirrelJME start on 2016/02/26!_
5 _The k8 project was effectively a Java SE 8 operating system and as such_
6 _all of the notes are in the context of that scope. That project is no_
7 _longer my goal as SquirrelJME is the spiritual successor to it._
11 Looks like the time has passed. So later today after sleep will be both of
12 KBF writing and de-enumerating `ArchitectureData`.
16 And I am awake, too bad I missed my alarm.
20 For the new ArchitectureData, there will most likely only be a handful of
21 architectures in memory at one time. So for memory efficiency I will write up
22 an ArrayMap which is a map backed by an array.
26 My recent changes to hairball have broken dependency resolution sort of. If a
27 binary package exists and the source package changes the contents of the
28 project then old package information is used. To fix this I can just make it so
29 that sources are first. However, on the alternative I can just have an
30 alternative source (or rather multiple) sources for project information. Using
31 source directories as higher priority would be the simpler solution at a slight
32 dodge of the issue. The code previously operating in this fashion anyway. I
33 suppose a better solution when multiple package definitions exist instead of
34 just keeping the first used one, I can check the dates and use the latest
35 version instead. That at least would prevent ambiguity because say if
36 directories take higher priority and on a running system there are older
37 sources (with the same version number), although increasing the version
38 number would also solve this, it would require versions to be updated many
39 times. I would suppose that using the project information that is the most
40 up to date would be better.
44 Thinking about the timing code, the same code could be used regardless. If
45 one were to walk on a single file then only that file would be visited, if it
46 were on a directory then all files inside would be visited. So I can split off
47 the code and instead just have both source and binary times using that.
51 Also if there are multiple binaries and sources, I can use the latest one.
55 Issue not fixed yet, however if multiple binaries and sources are detected
56 then only the latest will be used.
60 Now to move on to the issue. I need to use the information which is the
61 most up to date. Since package information is bound to the contents, the
62 dependencies if I have not done so already will have to be late bound on the
67 And the actual solution to PackageInfo's issue was to just clear the cache when
68 bound. However these other changes to hairball will be very useful and safer
69 especially when it comes to an actual running system.
73 Time for a short-lived fork so that I can dump the Java instruction information
74 to a manifest based format without performing the work myself.
78 The main issue is the best way to handle variable length fields.