[M3devel] INTEGER vs. LONGINT vs. Target.Int in m3cg?

Tony Hosking hosking at cs.purdue.edu
Fri Oct 1 15:59:22 CEST 2010


I don't think this should be a priority, especially if invasive...

Antony Hosking | Associate Professor | Computer Science | Purdue University
305 N. University Street | West Lafayette | IN 47907 | USA
Office +1 765 494 6001 | Mobile +1 765 427 5484




On 1 Oct 2010, at 06:46, Jay K wrote:

> 
> No, it isn't a big problem, but it is an obvious wart. I'd like to fix it. I know how. It is just "a bit" tedious.
> It is common these days to support arbitrary crosses.
> I think we should.
> 
> However, granted, gcc uses a mix of:
>   64bit long (for 64bit host targeting 64bit)
>   64bit long long (32bit host targeting 64bit) -- easy, esp. in C where long => long long conversion is automatic (given that it is lossless, no problem, imho, but I lost that argument here, meanwhile, most code in the world is written this way and nobody complains...) 
>   "double_int" a struct containing two longs (I don't know why they still use this, maybe support 32bit host targeting 64bit without a 64bit long long?)
>   gmp -- arbitrary precision (ditto) 
> 
> If we "just" use LONGINT more instead of INTEGER, we can get by with less change.
> The "more honest" approach is to use Target.Int though.
> 
> I'd like to take a stab at it, but I expect it might be invasive, want to make sure it is ok.
> 
>  - Jay
> 
> ----------------------------------------
>> Date: Fri, 1 Oct 2010 12:37:23 +0200
>> From: wagner at elegosoft.com
>> To: m3devel at elegosoft.com
>> Subject: Re: [M3devel] INTEGER vs. LONGINT vs. Target.Int in m3cg?
>> 
>> Quoting Jay K :
>> 
>>> 
>>> Really? What technique was employed?
>>> The current system doesn't work as I want. As most other compilers now do.
>>> You mean maybe the .mc files were saved, copied, and cm3cg run on Alpha?
>>> Right. In the past gcc didn't have such good cross building capabilities.
>>> So that might have helped.
>>> Now it does. Now cm3cg has no problem crossing arbitrarily.
>>> But the cm3 frontend does.
>>> A 32bit cm3 frontend can't handle sizes larger than 4GB.
>> 
>> Is this really still such an important problem?
>> We can easily support cross-builds from all 32 bit targets to all
>> 32 bit targets and from 64 bit targets to both 32 and 64 bit targets,
>> right?
>> 
>> And we do have several 64 bit build machines...
>> 
>> Olaf
>> --
>> Olaf Wagner -- elego Software Solutions GmbH
>> Gustav-Meyer-Allee 25 / Gebäude 12, 13355 Berlin, Germany
>> phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 95
>> http://www.elegosoft.com | Geschäftsführer: Olaf Wagner | Sitz: Berlin
>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194
>> 
> 		 	   		  

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20101001/e32b06fc/attachment-0002.html>


More information about the M3devel mailing list