Offload int[] to byte[].
[SquirrelJME.git] / assets / developer-notes / stephanie-gawroriski / 2019 / 10 / 01.mkd
blob0f948346e7ad11700494f6e6051ff86c0a343037
1 # 2019/10/01
3 ## 16:27
5 Okay so I have an idea down to how I will be getting
6 dynamically loaded classes. Effectively I am going to
7 need a cache class entry in the constant pool.
8 This entry will contain the class pointer. The code
9 generator will check if it is zero, if it is then it
10 will perform a class load. If that load is a success
11 then it will write the true class pointer over the
12 spot in the pool. It will call a JVM function or
13 system call to load the class. Probably a system call
14 to the supervisor. This code will never be hit for
15 the supervisor since all classes are alreafy loaded.
16 Load class will not be a true system call, it will
17 be purely handled in software. But I feel it is the
18 only way to get it actually working.
20 ## 16:40
22 The system call will take a byte array and also one
23 with a UTF pointer (with both the same data) and it
24 will copy and use the class name there wheb it does
25 the loading. There will also have to be invoking
26 of static initializers but that has to wait until
27 I can actually call into a task (it would be a
28 recursive operation pretty much). Ironically tasks
29 will be able to get the stack trace information from
30 the kernel so I should actually have a flag to
31 indicate the process something came from. So this
32 means I will need a "context switch" API call that
33 will basically set the context ID and then set a
34 bunch of restored state. Effectively a setjmp sort of.
35 But it would actually be a context enter as it will
36 make a new stack frame with the new info. I think
37 this will work out.
39 ## 18:43
41 Okay, so I am refactoring the system call documentation so that way it is more
42 well known how they work rather than just being basic fields.