Hi everyone,
For the first time in a while I have some good news to share about HanDBase- I have a build that is working in 64 bit mode of HanDBase for Mac!
Spent the entire weekend working at it and really thought I had made some progress yesterday with a workaround that didn't really make any sense to me, but did allow me to load a database (mostly) in the 64 bit version. I sent it to one of the best beta testers on the planet and he found several issues with it and these issues were related to the same issue, just in different instances. Spent all day and evening on it and finally have an understanding of what is going on. Skip ahead to the last paragraph if you're not interested in the why!
So basically the error is due to a compiler optimization on x86 processors only in regards to byte alignment. The symptom I was having was that one section of code would set a variable within a structure, but the rest of the code would see that set somewhere else within the structure. I played for a long time with various data aligning options to try to force them to line up similarly but in the end it was a feature called SSE that is built into the compiler that automatically moves data structures as I'm passing them around in the code. For devs who are interested, this article was the key to explaining it:
https://pzemtsov.github.io/2016/11/06/b ... n-x86.htmlOnce I disabled the SSE feature on the offending functions, things started working like a charm! The headache with this is that I can't disable SSE across the whole app since it also is needed for floating point math to work and so I have to only disable it where things are problematic. So the short version of this is that while it appears to be working now, there may be other features and functions within certain field types and aspects of the program we haven't tested yet that will show their face over the next few weeks while we put the beta through its paces. This means that yes, I do have a beta, and yes, I'd love people to contact me directly if they'd like to test it, but also that there is a possibility that your databases could become corrupt, or lose functionality when using it with this beta build. Hoping that's not the case, but don't want anyone with anything mission critical testing. So for now, i'll start with a small sample size of testers and as we gain confidence in things will distribute to more users. Anyway, good news overall! Have a great week.