On Wed, May 26, 2010 at 11:44 PM, Luís Oliveira luismbo@gmail.com wrote:
On Thu, May 27, 2010 at 2:31 AM, Daniel Herring dherring@tentpost.com wrote:
So my question is, on SBCL/32-bit & CCL/32-bit, what is the expected
size
of :pointer on a 64-bit OS?
[...]
std::cout << sizeof(void *) <<"\n";
[...]
prints "8".
But that is coming from neither SBCL/CCL nor a 32-bit compiler. :-)
Yes, the size is 4 (see output below).
Again, this problem is only observable on 32-bit SBCL running on top of 64-bit Windows. This problem has never occurred on Linux or OS X or any other OS. The problem cannot be reproduced on 32-bit versions of Windows. The problem doesn't appear in Lispworks or CLISP. (CCL 32-bit doesn't run on 64-bit Windows.) I think I've managed to reproduce it in Allegro CL, but only with optimize speed turned on, and I didn't get backtrace so I can't really be sure. So unless you have a system that meets those parameters, you probably won't be able to reproduce this bug.
* (foreign-type-size :pointer)
4
* *features*
(CFFI-FEATURES:FLAT-NAMESPACE CFFI-FEATURES:X86 CFFI-FEATURES:WINDOWS :CFFI CFFI-SYS::FLAT-NAMESPACE :WINDOWS :LITTLE-ENDIAN :ASDF :ANSI-CL :COMMON-LISP :SBCL :SB-DOC :SB-TEST :SB-LDB :SB-PACKAGE-LOCKS :SB-UNICODE :SB-EVAL :SB-SOURCE-LOCATIONS :IEEE-FLOATING-POINT :X86 :WIN32 :GENCGC :STACK-GROWS-DOWNWARD-NOT-UPWARD :C-STACK-IS-CONTROL-STACK :COMPARE-AND-SWAP-VOPS :UNWIND-TO-FRAME-AND-CALL-VOP :RAW-INSTANCE-INIT-VOPS :STACK-ALLOCATABLE-CLOSURES :STACK-ALLOCATABLE-VECTORS :STACK-ALLOCATABLE-LISTS :STACK-ALLOCATABLE-FIXED-OBJECTS :ALIEN-CALLBACKS :CYCLE-COUNTER :INLINE-CONSTANTS :LINKAGE-TABLE :OS-PROVIDES-DLOPEN :OS-PROVIDES-PUTWC)