[CLN-list] MinGW64 build

Alexei Sheplyakov alexei.sheplyakov at gmail.com
Fri Aug 10 16:19:05 CEST 2012


Hello,

On Thu, Aug 9, 2012 at 6:34 PM, Robert Szalai <robicjedi at 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


More information about the CLN-list mailing list