Hello, On Thu, Aug 9, 2012 at 6:34 PM, Robert Szalai <robicjedi@gmail.com> wrote:
I've been trying to build CLN from windows 64, The problem is that WIN64 is LLP64, and not ILP64 as Linux.
s/Linux/every operating system on this planet/
CLN uses long to store pointer data, but size_t or ssize_t should be used as it is guaranteed to be the size of the pointer everywhere.
I think this statement is incorrect. The integer type which is guaranteed to have the same size as void* is intptr_t (and its unsigned variant is uintptr_t).
Pointers are also encoding some metadata in the bits that are set to zero by alingnment, what is this data?
It's a type tag. Its purpose is to distinguish between the immediate values (small integers, short floats) and the actual pointers. See include/cln/object.h for more details. Best regards, Alexei