Correct spelling.
[SquirrelJME.git] / assets / developer-notes / stephanie-gawroriski / 2016 / 01 / 23.mkd
blob8e71964d42a2837f7ec05d1660f8a6f121c7cd16
1 # 2016/01/23
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._
9 ## 07:25
11 I wake up this morning and there is about 2 or more feet of snow. There is just
12 tons of it. When this all melts that will be tons and tons of water. I just
13 hope the roof does not collapse with all of this snow, that would be bad.
15 ## 11:03
17 Not sure about the URLClassLoader failing. I do know that it can fail if the
18 file is changed (hairball.ja_) but I do not believe it is. If I make it
19 read-only then it oddly triggers an out of date message. And even if it is
20 read-only it still cannot find DeletePathComparator. This class does exist in
21 the JAR so I do not see how it is failing. Going to see if this occurs with
22 my second laptop, which it should. And it does. Going to try it in Wine now.
24 ## 11:09
26 This happened after my switch from URLClassLoader to my own custom class loader
27 using PackageContents. However hairball is loaded from the third stage which
28 uses a URLClassLoader and then sets the thread context classloader to that
29 URLClassLoader. However, running in Windows, the URI scheme I use for building
30 things does not work because it believes there is a relative path used. I
31 believe for the file URI I should derive it from the path. So instead of having
32 a package name, I instead have a URI.
34 ## 14:27
36 Slight change to the URIs make them work in Wine.
38         package+path:/Z:/home/steven/k8/vmjar/kernel-drconf/#net/multiphasicapps/k8
39         /drconf/CPUBugFeature.java
41 which is good.
43 ## 14:44
45 Still not sure what is causing this classpath problem though.
47 ## 14:46
49 Using strace and it appears that stat is being called for every single file in
50 my source repository. This may be why start time takes quite awhile.
52 ## 14:49
54 I believe I know the cause and should have fixed it. I was checking the dates
55 of all the packages regardless if there were collisions or not. I only want to
56 check the dates if there are multiple of the same binary/source.
58 ## 15:08
60 Actually, I believe it may be caused by the walk of file contents for Path
61 based packages because it visits the entire tree. I can actually instead have
62 a semi-lazy on request going through everything which should hopefully help
63 some things, potentially.
65 ## 15:21
67 Completely frozen on this, and I have no idea why it does not work.
69 ## 18:44
71 Ok so, if I were to try loading the class is not working and load it earlier it
72 loads perfectly fine.
74 ## 18:47
76 Ok so it definitely stops working AFTER I set a new ContextClassLoader. I need
77 to do some more reading on the full thing of this. Does this class loader
78 become the "system" class loader? Based on some short reading, they provide
79 a "back-door" of sorts. So setting the class loader might not be needed at all.
81 ## 18:50
83 So I am going to see how this works when NOT setting it. And not setting it
84 still causes the same issues.
86 ## 18:57
88 I was actually using `ClassLoader.loadClass()` in my class loader and not
89 `Class.forName()`. This might fix it, I hope. I also `if false`d out the
90 setting of context class loaders too. And even then it still fails.