I write too much bullshit. Anyway, had a funny bug, somehow, somewhere, sometime, some integer comparison gave the wrong result. For some reason, I thought the ints in the Hi language were 64 bits, but they are not - all types follow the same convention as C, so char is a system char size, int is a system in size, float is a .... (I don't want surprises there, it's supposed to be a glue language.) It's just that internally the compiler uses ints of pointer size, it needs to, for the simple memory model I have. So, changed some routines to 64 bits integer, thought "Whoa, ho there!", changed it back. Bug gone.
Which leaves getting some of the dynamic libraries I link against right, for that I'll just follow the Posix C standard.