James Bielman wrote:
It looks like the problem is with FFI:UNSIGNED-FOREIGN-ADDRESS and FFI:FOREIGN-ADDRESS-UNSIGNED expecting and returning 32-bit integers:
And it's me who wrote this bogus code :-( :-(
If you can recompile CLISP yourself, go to the 2 functions in src/foreign.d and change UL_to_I to UQ_to_I and I_to_UL to I_to_UQ
And I'm going to push a patch to CVS.
Regards, Jorg Hohle.
"Hoehle, Joerg-Cyril" Joerg-Cyril.Hoehle@t-systems.com writes:
If you can recompile CLISP yourself, go to the 2 functions in src/foreign.d and change UL_to_I to UQ_to_I and I_to_UL to I_to_UQ
And I'm going to push a patch to CVS.
Cool, that fixed it, thanks.
By the way, I was looking into writing a regression test for this and had problems since we also use FOREIGN-ADDRESS-UNSIGNED to implement POINTER-EQ. Could we be using EQUALP instead for comparing pointers (or is the fact that seems to work just a coincidence?)
James