<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>