Thinking about trans things (~)
I think I am a kind of intersex. My own experiences as a transwoman during and before HRT, are pretty different. It just feels like everyone else has this shared experience and here I am so different. Apart of wrong genitals I am pretty happy with my body, once my breasts are bigger that would be nice.
#SquirrelJME: The fun part of the library that will be implemented now will be encodings! Luckily only ISO-8859-1 and UTF-8 are required!
#SquirrelJME: So I noticed that Throwable is now fully implemented and this is what it looks like: https://github.com/XerTheSquirrel/SquirrelJME/blob/trunk/runt/apis/cldc-compact/java/lang/Throwable.java ! Pretty cool!
#SquirrelJME: So to handle this, the interpreter I am writing right now will need to keep track in a global table all of the objects which were created to represent these constant strings. It does not really matter how I initialize them, as long as they are the same objects.
#SquirrelJME: Any strings which are constant at compile time, if the characters are exactly the same then they refer to the same String object even if the constants are used in different classes. So if __v is "aaa" passed in from another class, then "aaa" == __v is true.
#SquirrelJME: I hit into the weirdest bug. Checking over my code in Throwable there were some logic errors but that was not the reason, although I did fix them. Turns out I was using the wrong length for IINC (should be 3, not 2). So I got extra ACONST_NULL which did bad things.
Oh wow, did not know this in #Java but you can do `javap -verbose java.lang.Throwable` and it just dumps the class that exists in the runtime for Throwable (which actually was not my intention).
#SquirrelJME: Throwable is initialized with a stack trace when it is created, however this might not be a fast operation at all. To make it as fast as I can, I will obtain very raw basic stack trace information. When it comes time to pretty print it, is when the slow stuff comes.
#SquirrelJME: Have my first infinite loop. I have an error `TODO` which I used to signal a fatal incomplete code (I like to fail fast). Since `TODO` is an error it initializes `Throwable` then `Error`. However `Throwable` is not implemented and throws a `TODO`.
#SquirrelJME: Time to implement monitors in this virtual machine (used by `synchronized`). Monitors are your basic re-entrant locks which also act as memory barriers. If a thread attempts to lock a monitor which is already taken it will wait until it is freed.
Moved to @XerShadowTail , please follow me there instead!