Re: INTEGER's destiny

Guillaume Lemaître <[email protected]> Fri, 08 Dec 2006 19:59:25 +0100
Newsgroups gmane.comp.lang.eiffel.smalleiffel
Message-ID <[email protected]>
left a écrit :
> Guillaume Lemaître wrote:
> 
>> Paolo Redaelli a écrit :
>>
>>> The message of revision 7102 (Fri Mar 31 08:31:43 2006 UTC by colnet),
>>> expecially regarding file smarteiffel/trunk/sys/runtime/c/base.h says:
>>>
>>> "No more `xxx.to_integer' or `xxx.is_integer' calls.
>>> Only size-numbered calls as for example `xxx.to_integer_32'
>>> or `xxx.is_integer_16'."
>>>
>>> Does it means that INTEGER is going to fade away and that we shall use
>>> only  INTEGER_[8|16|32|64] in newly written code? Or is your plan more
>>> elaborate?
>>>
>>> As usual thanks in advance for your attention
>>>     Paolo Redaelli
>>>
>>>
>>
>> I put my comments here to all the thread, for convenience, in order 
>> not to answer to a specific point of view.
>>
>> I'm also concerned with INTEGER bit representation. Now that I have an 
>> x86_64 based CPU, I want to use preferably 64bit-long integers, as it 
>> is supposed to be the fastest integer representation on this 
>> architecture (the same way C coders intensively use 32bit-long 
>> integers on x86 architecture). And this, I simply cannot : it would 
>> require both to patch all my code, but also all the SE libraries I use.
>> I tried to lurk along SE code to find where correspondence between 
>> INTEGER and int is made during compilation; I have to say that it is 
>> not as isolated as I supposed, maybe because noone was paying interest 
>> on this very specific topic, and I can understand that.
>>
>> I'm ready to try to isolate this part, if some of the SE team are 
>> ready to help me and explain a bit of the compiler architecture.
>>
>> I think Raphael proposal is good : INTEGER configuration through an 
>> ACE file. Or at least at compiler installation time.
>> Daniel's proposal is also very good for interfacing with legacy C code 
>> or C libraries.
>>
>> Guillaume
>>
> I thought  on 64 bits plateform, the C 'int' type was still 32 bits 
> sized, while 'long int' was 64 bits. Am i wrong ? So C coders who wants 
> to use the largest native representation always should use the 'long 
> int' type instead of the 'int' type.
> 

you are right, on x86_64, int is still 32 bits long. But I was speaking 
of the widespread behavior, considering only 32 bits architecture.

Even this C code should be patched in order to switch to long int 
wherever appropriate.