On Sun, 4 Apr 2004, Fausto Saporito wrote:
following my previous posting about cln compiling under VMS (Alpha arch) I found an error (???) in object.h file. The cl_word_alignment for alpha machines is 8, but in this define there's no such value:
// Definition of the tags. #if !defined(CL_WIDE_POINTERS) #if (cl_word_alignment == 2) #define cl_FN_tag 1 #define cl_SF_tag 3 // must satisfy the cl_immediate_p predicate! #endif #if (cl_word_alignment == 4) #define cl_FN_tag 1 #define cl_SF_tag 2 #endif #else // CL_WIDE_POINTERS // Single Floats are immediate as well. #define cl_FN_tag 1 #define cl_SF_tag 2 #define cl_FF_tag 3 #endif
There's only 2 and 4. Now CL_WIDE_POINTERS is defined only if long_bitsize is 64,
Where did you get that from? In cln/objec.h:70 it's defined only if cl_pointer_size is 64. And these two are a priori unrelated.
I checked in my intparam.h (generated by intparam.c) and long_bitsize is 32. Is it correct for an Alpha machine?
This depends on the ABI definition. On UNICOS Max, for instance, even an int is 64 bit. OTOH, those cranks at MS want long to be 32 bits, even on 64 bit architectures. I'm surprised to hear that VMS does this, too.
Maybe it's correct that 8 is missing because in this case CL_WIDE_POINTERS should be defined and all is fine.
Yes, I guess this should be the case. Regards -richy. -- Richard B. Kreckel <http://www.ginac.de/~kreckel/>