chicken-hackers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Chicken-hackers] [PATCH] resubmission of win64 patch


From: Felix
Subject: Re: [Chicken-hackers] [PATCH] resubmission of win64 patch
Date: Thu, 06 Dec 2012 21:17:24 +0100 (CET)

From: John Cowan <address@hidden>
Subject: Re: [Chicken-hackers] [PATCH] resubmission of win64 patch
Date: Thu, 6 Dec 2012 01:43:09 -0500

> Felix scripsit:
> 
>> Note that the foreign types "integer" and "unsigned-integer" map to
>> "long long" and "unsigned long long" (available as "C_long" and
>> "C_ulong" in C code that uses "chicken.h") on this platform.
> 
> That doesn't make sense to me.  The Win64 memory model is LLP64: that is,
> ints and longs are still 32 bits, and only pointers are 64 bits, unlike
> the LP64 memory model of all other systems where ints are 32 bits and
> longs and pointers are 64 bits.  So "integer" and "unsigned-integer"
> should be the C types "long" and "unsigned long" in order to DTRT when
> invoking Win64 C functions.

The foreign types "int" and "long" correspond to native "int" and
"long" types. "integer" is a special type, which should be the
smallest native integral number type that can hold a full
fixnum. Fixnums are 63 bits on 64-bit platforms, regardless of the
memory model.


cheers,
felix



reply via email to

[Prev in Thread] Current Thread [Next in Thread]