[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Chicken-users] s11n + rpc
From: |
Zbigniew |
Subject: |
[Chicken-users] s11n + rpc |
Date: |
Fri, 11 Nov 2005 16:30:04 -0600 |
I was testing out the RPC egg and noticed it didn't work between a Mac
and a PC. This stems from endian issues in the s11n egg. Now, I
don't know if serialization was ever intended to work across
architectures, but I went ahead and made a simple patch [attached] to
the s11n egg. With this, the RPC egg works fine between OS X on PPC
and Linux on Intel.
There is a basic problem, though, which is 64-bit support. You can
get 64-bit machines to talk to each other, by writing some 64-bit
ntohl and htonl functions [there's no official standard for this, but
numerous examples out there]. But 32<->64 communication is
problematic because you can't tell the word length of serialized data,
and anyway I suspect converting a 64-bit C_word to a 32-bit C_word
might sometimes be lossy.
So that's why I was thinking, perhaps the data serialized by s11n was
only intended to be deserialized on the same system, and the patch I
made is not generally useful. I'm going to provide it anyway, since I
found it useful for testing the rpc egg on my network.
[Note: I did not provide correct 64-bit ntohl / ntohl operations, they
are just redefined as no-ops on a 64-bit platform to avoid lossage.]
s11n-endian.diff
Description: Binary data
- [Chicken-users] s11n + rpc,
Zbigniew <=