Indentations break the feed.
[SquirrelJME.git] / assets / developer-notes / stephanie-gawroriski / 2019 / 05 / 24.mkd
blobbfc4ff44f03773a96ec47a8cf91fcb6045b2c90d
1 # 2019/05/24
3 ## 09:01
5 I have been thinking and I think the `BasicSequence` stuff in `String` is a
6 bit to complicated. It makes strings less sharable across VMs and such, and
7 when I initialize strings it gets complicated.
9 ## 10:01
11 Actually this is going to end up being much faster because there will be less
12 overhead with strings!
14 ## 14:36
16 I think I want to make it so math operations on long, float, and double are
17 done purely in software. It will have some overhead but it should simplify the
18 number of instructions that need to be handled. Additionally everything can be
19 tuned purely to 32-bit registers. This way I do not need conversion for long
20 and double types. I also would not need comparisons as well.
22 ## 16:21
24 So not exactly sure what to do for the vtable. There is ClassDataV2 but that
25 makes instance invocations so complicated. Like I have to load that, then load
26 off that just to get the pointer I want to execute. So I wonder if there is a
27 faster way? Maybe every object can instead just have a reference to its own
28 vtable? That will just waste tons of space though. So just need to figure out
29 the best way to store and then access these vtables because they are not
30 constant for a class. Maybe just maybe the class ID and pointer into the class
31 table is wrong? Like what if class names should just point to the actual
32 class data for that class? That would simplify things a bit and I would not
33 need a gigantic table to manage classes in. Although there would be no real
34 way to have shared types which are compatible. But I guess that is just going
35 to be how it is. Well, there could actually just be pre-initialized and fixed
36 stuff for the bootstrap. Like anything will try to use any bootstrap defined
37 classes first no matter what. I think in the long run this will be the
38 simplest solution. It will complicate the initial bootstrap stage however but
39 if everything were `ClassDataV2` then suddenly I have access to instance
40 objects because I can just static boot vtables and such. So at this point I
41 may as well just go all the way and initialize everything at once. Things
42 would be far easier if I had access to `String` instead of doing all of this
43 magical raw UTF stuff. Initializing the first startup task would also be
44 easier as well with instances. So then this is pretty much settled.
46 ## 18:48
48 In the exception handler code, if an exception is not an instance of the
49 exception then it jumps to the handler so I think this might have been why it
50 has been messing up in the code. It should be not zero, not zero.
52 ## 20:37
54 Problem with `jvmIsInstance` is that the instance lookup will never end when
55 casting to a ClassDataV2 using `pointerToObject`, so I need an unchecked one.