I was going to suggest memory allocation issues, but you
never know...
Could it be that the data structures are not properly packed?
They could, but if so, the whole thing behaves extremely weird (plus I didn't modify anything on the structure alignment side). For example:
> for k, v in pairs(_G) do print(k, v) end
string *hangs here*
If structure alignment was really the problem, I'd expect the previous fragment of code not to run at all, but it starts printing, and then hangs (probably also in "print"). This is just a feeling though, I know I can't prove it. On the other hand, if I do something completely stupid like this:
> for k, v in pairs(_G) do k=v end
it works just fine.
Back to printf-based debugging ... :) (yes, "printf" seems to work without problems).
Best,
Bogdan