<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
--></style>
</head>
<body class='hmmessage'>
Ok with changing LONGINT to be __int128, *but*<BR>
you really should not change it with a compiler flag.<BR>
For any given platform, "basics" like this should not change meaning.<BR>
It makes it such that you can't link code safely.<BR>
 <BR>
 <BR>
Basically, "platform" or "target" should map to one "ABI".<BR>
 <BR>
 <BR>
I really kind of like what I proposed earlier.<BR>
  Let the user define things.<BR>
  TYPE INT64 = BITS 64 FOR INTEGER;<BR>
  TYPE INT128 = BITS 128 FOR INTEGER;<BR>
 <BR>
TYPE INT256 = BITS 256 FOR INTEGER;<BR>
  (* either an error, or the compiler generates calls to multi-precision library *)<BR>
 <BR>
 <BR>
This is btw why the user thread stuff should be either 1) a runtime alterable decision<BR>
or 2) separate platforms (I386_LINUX_USERTHREADS or somesuch).<BR>
So that there aren't multiple ABIs and you can link together any code for<BR>
a given platform.<BR>
With an *occasional* alteration/fix, such as when NT386 LONGINT grows to 64bits.<BR>
That forces recompilation of everything affected.<BR>
 <BR>
 <BR>
 - Jay<BR><BR> <BR>
<HR id=stopSpelling>
Subject: Re: [M3devel] __int128 coming to gcc<BR>From: darko@darko.org<BR>Date: Wed, 20 Jan 2010 14:23:32 +1100<BR>CC: jay.krell@cornell.edu; m3devel@elegosoft.com<BR>To: hosking@cs.purdue.edu<BR><BR>
<DIV>I'm with Tony on this one. LONGINT should just mean "larger than the natural integer the machine" and its range should be implementation dependent. You could then change it's actual size with a compiler flag or the like.</DIV>
<DIV><BR></DIV><BR>
<DIV>
<DIV>On 19/01/2010, at 1:03 AM, Tony Hosking wrote:</DIV><BR class=ecxApple-interchange-newline>
<DIV style="WORD-WRAP: break-word">
<DIV><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; WORD-SPACING: 0px" class=ecxApple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; WORD-SPACING: 0px" class=ecxApple-style-span>
<DIV style="WORD-WRAP: break-word"><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; WORD-SPACING: 0px" class=ecxApple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; WORD-SPACING: 0px" class=ecxApple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; WORD-SPACING: 0px" class=ecxApple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; WORD-SPACING: 0px" class=ecxApple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; WORD-SPACING: 0px" class=ecxApple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; WORD-SPACING: 0px" class=ecxApple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; WORD-SPACING: 0px" class=ecxApple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; WORD-SPACING: 0px" class=ecxApple-style-span>
<DIV><SPAN style="FONT-SIZE: medium" class=ecxApple-style-span>On 18 Jan 2010, at 08:05, Jay K wrote:</SPAN></DIV></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></DIV></SPAN></SPAN></DIV>
<DIV><BR class=ecxApple-interchange-newline>
<BLOCKQUOTE><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; WORD-SPACING: 0px" class=ecxApple-style-span>
<DIV style="FONT-FAMILY: Verdana; FONT-SIZE: 10pt" class=ecxhmmessage>gcc 4.6 apparently will have __int128.<BR>How long until we have LONGLONGINT or INT128?<BR>Presumably we should have LONGLONGINT or INT128 to expose it?<BR>:)<BR></DIV></SPAN></BLOCKQUOTE>
<DIV><BR></DIV>
<DIV>Why would we not simply expand LONGINT?  It doesn't matter even if it is slow.  Then 64-bit can be expressed as</DIV>
<DIV><BR></DIV>
<DIV>BITS 64 FOR [0L..16_7FFFFFFFFFFFFFFFL]</DIV>
<DIV><BR></DIV>
<BLOCKQUOTE><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; WORD-SPACING: 0px" class=ecxApple-style-span>
<DIV style="FONT-FAMILY: Verdana; FONT-SIZE: 10pt" class=ecxhmmessage> Or, again, I should look at the arithemetic library...<BR> <BR> <BR> - Jay<BR> <BR> <BR>Date: Mon, 18 Jan 2010 13:01:13 +0000<BR>From: gcc-patches-digest-help@<BR>To: gcc-patches@<BR>Subject: gcc-patches Digest 18 Jan 2010 13:01:13 -0000 Issue 14091<BR><BR><BR>gcc-patches Digest 18 Jan 2010 13:01:13 -0000 Issue 14091<BR><BR>...<SPAN class=ecxApple-converted-space> </SPAN><BR>[patch]: New feature __int128 type C/C++ for upcoming 4.6 for  review<BR>255919 by: Kai Tietz <ktietz70@><BR><BR>...<BR><BR>--Forwarded Message Attachment--<BR>Date: Mon, 18 Jan 2010 14:01:00 +0100<BR>Subject: Re: [patch]: New feature __int128 type C/C++ for upcoming 4.6 for review<BR>From: ktietz70@<BR>To: joseph@<BR>CC: gcc-patches@<BR><BR><BR><PRE>Hello,<BR> <BR>this is the recent version of the __int128 type support as gcc<BR>extension. Comments in parser for C and C++ are updated and complex<BR>type and tests are added.<BR> <BR>ChangeLog gcc/<BR>....</PRE></DIV></SPAN></BLOCKQUOTE></DIV><BR></DIV></DIV><BR>                                      </body>
</html>