5 I believe I know what is wrong with my merge sort. I am swapping the output
6 with the lowest sorted value then I skip over it. I must not do that.
10 The merge sort with the stack that I have is a bit complex, it can really just
11 be done with a single pivot that splits the left and right sides.
15 Pivots would be even more complex.
19 Actually my merge may have not worked due to `&&` and not `||`. The merge
20 was only performed if both sides had values. This would work if values were
25 So right now I have a working double memory merge sort, I can later turn it
26 into a single memory merge sort at the cost of speed. Potentially if allocating
27 the second array fails, I can fall back to using insertion to sort it.
31 I believe for the built-in sorting algorithm that `Arrays` and `Collections`
32 will use will just be a value based in place merge sort or similar. I can
33 still have minimal duplicated code by using a special interface.
37 Technically, the `IndexedSort` could use this `ValueSort` since an interface
38 method takes care of the comparison. The value sorter will just have a set and
39 get of a specific index so that it can sort it properly along with a standard
40 comparison by extending `IndexedComparator`.
44 Now that I have a sorting algorithm, I can sort the JAR entries.
48 So with binary searching, I now have the following times:
56 So basically no real difference to being up to a second slower. However, the
57 slight loss in speed will benefit later runs.
61 Along with process setup, I will need to implement a launcher that uses the
62 LUI initially. Then develop the means of communication the LUI uses to the
67 I do wonder if I should remove the class path so to speak and just stick with
72 Appears the entry name reader is incorrect.
76 The file name was being read from the wrong structure.
80 Byte code instructions that have to be replaced with static methods would be
81 anything relating to arrays. Another consideration is that changing
82 instructions will need jump target and exception handler rewriting for
83 adjusted instructions (such as replacing `arraylength` with `invokestatic`.
91 I can either have verification done myself (recommended) then I do not have to
92 worry about illegal accesses being performed. When it comes to translated
93 classes, I can really just place them in a single package in a kind of
94 modified UTF-8 form of sorts. It would essentially be UTF-8 on top of UTF-8.
95 That would be a bit complex however, I just need something that can replace the
96 special characters which change the meaning of a class. Identifiers cannot have
97 `.`, `;`, `[`, `/`. I really just need to escape these with a special sequence.
101 As an example, the given array `[[[[[[J` mangles to
102 `L__squirreljme#0/?(?(?(?(?(?(J;`. This should make it to easy to determine
103 that it is an array which was requested. Also when I suppose it comes to stuff
104 such as `anewarray`, I can create a virtual class just for creating an array