<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-15">
<META content="MSHTML 6.00.6000.16481" name=GENERATOR></HEAD>
<BODY style="MARGIN: 4px 4px 1px; FONT: 10pt Tahoma">
<DIV>Tony:</DIV>
<DIV> </DIV>
<DIV>I'd like to better understand the implications of your change as I do use LONGINT as an index in some applications.</DIV>
<DIV> </DIV>
<DIV>1. On a computer with a 32-bit word size, will LONGINT be 32 bits or 64 bits?</DIV>
<DIV>2. I assume on a computer with a 64-bit word size, LONGINT will be 64 bits. Is there an option to get a 32-bit integer on these machines?</DIV>
<DIV>3. Would it make sense to keep LONGINT at 32-bits and make a new type, say LONGINT64, at 64-bits?</DIV>
<DIV> </DIV>
<DIV>Regards,</DIV>
<DIV>Randy</DIV>
<DIV> </DIV>
<DIV>Randy C. Coleburn<BR>Senior Systems Engineer, Communications, Networks, & Electronics Division (CNE)<BR>Corporate & Atlanta Information Systems Security Manager (ISSM)<BR>Scientific Research Corporation<BR>2300 Windy Ridge Parkway, Suite 400 South, Atlanta, Georgia 30339<BR>voice: (770) 989-9464, email: RColeburn@SciRes.com, fax: (770) 989-9497<BR><BR>Quality Policy: "SRC CNE Division is committed to delivering continually improving research & engineering excellence that meets or exceeds customer requirements."<BR><BR>>>> Tony Hosking <hosking@cs.purdue.edu> 7/18/2007 11:53 PM >>><BR>I've successfully bootstrapped a CM3 compiler that supports LONGINT <BR>as a 64-bit integer type (equivalent to "long long" in C) in addition <BR>to INTEGER (same as "long" in C). This will be useful for <BR>simplifying interfaces to C library routines that expect to be able <BR>to treat 64-bit integers such as "off_t" for lseek, etc.<BR><BR>Currently, the compiler does not treat LONGINT as an ordinal type <BR>(I'm not sure this would ever be a good idea) so it cannot be used to <BR>index arrays, define enumerations etc., though the simple operations <BR>ABS, MAX, MIN, addition, comparisons, MOD, multiplication, <BR>subtraction, assignment, are all supported. This includes changes to <BR>m3core (with support for Long.T similar to Word.T, plus RTTipe and <BR>RTTypeMap, etc.) and libm3 for Pickle2, as well as to m3middle, <BR>m3front, and the gcc-based compiler backend. There is still work <BR>that needs to be done to support and test all the other M3 tools such <BR>as network objects, etc., with support and testing needed in m3tk for <BR>the new type, as well as in other tools like m3browser.<BR><BR>How best should I proceed to get this out to the community. I am <BR>tempted to push it into the CVS head just so that it gets some <BR>testing, but perhaps that is premature. I can confirm a complete <BR>bootstrap via "do-cm3-std.sh" that appears to produce perfectly <BR>functional executables, including mentor, etc.<BR><BR><BR></DIV></BODY></HTML>