<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br>
<br><div><div>On 19 Apr 2010, at 13:23, Mika Nystrom wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div><br>Well *my* problem is that I still use PM3 for a lot of things.  Trying to<br>switch to CM3, yes, but I can't "certify" CM3 for critical stuff yet.<br><br>So I'm maintaining a significant amount of code that needs to compile <br>under both PM3 and CM3.  Two problems crop up.  <br><br>1. If there are bugs in m3tk/stubgen, the fixes only apply to one or<br>the other version of m3tk/stubgen.<br><br>2. Some of the code I'm maintaining processes Modula-3 code as input.<br>It needs to be in two versions.<br><br>In this kind of environment, programming languages don't really<br>evolve, since the system depends on their being both forward- and<br>backward-compatible.  They "change" is more correct.  The way Java<br>changes.  <br></div></blockquote><div><br></div><div>Indeed: <a href="http://video.google.com/videoplay?docid=-8860158196198824415">Growing a Language, by Guy Steele</a></div><br><blockquote type="cite"><div><br>More in general, though, Modula-3's designers were clearly well acquainted<br>with C, Fortran, and other languages that provide different-range<br>integers.  They chose not to indulge.  I even have a version of Modula-3<br>for a 16-bit machine that doesn't do it, even though on this machine the<br>need for a 32-bit integer is arguably greater than the need for 64-bit<br>integers on 32-bit machines.  Now we indulge in this language complication<br>to solve what is clearly a temporary problem, since anyone who cares<br>about large problems is going to have 64-bit systems yesterday... and<br>meanwhile no one seems to have availed himself of the solution!<br></div></blockquote><div><br></div><div>If we were to revert, I have no idea what the implications would be.  Jay?</div><div><br></div><blockquote type="cite"><div>My worst fear is that once the process gets started, the reason for<br>staying with the original Green-Book specification has now been defeated<br>and we will see more and more "evolution".  Trying to actually build<br>systems that process Modula-3 like data becomes, at that point, like<br>trying to stand in quicksand.<br></div></blockquote><div><br></div><div>Indeed!</div><br><blockquote type="cite"><div><br>I'm not incredibly picky here... I just hope it doesn't go further.<br>I would personally support either sticking with the current status quo<br>or going back to the Green Book w.r.t. integers and characters.<br></div></blockquote><div><br></div><div>Indeed, I would not want to see this go any further.  I am still not sure I am comfortable with the LONGINT extension (even though I put a lot of time into it).  There just seemed to be a lot of pressure for it to so CM3 could handle large file indexes.  I've never been convinced that WIDECHAR was a winner either -- it was a reflexive action in the face of Java's Unicode.   The CM3 people were building a Java VM above CM3 at the time.</div><br><blockquote type="cite"><div><br>Saying that EWD wasn't renowned for his practicality is something he<br>would have taken as a great compliment, I'm sure.<br></div></blockquote><div><br></div><div>;-)</div><br><blockquote type="cite"><div><br>     Mika<br><br>Tony Hosking writes:<br><blockquote type="cite">Mika,<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">First off, I'd be very interested to know what the issues are with =<br></blockquote><blockquote type="cite">LONGINT and stubgen.  We are building that every day in regression =<br></blockquote><blockquote type="cite">testing.  It would be really good to get some precise feedback.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">True, LONGINT is integrated with all of the language tools (same as =<br></blockquote><blockquote type="cite">WIDECHAR).<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">I suppose that is the price we pay for the language having evolved.  =<br></blockquote><blockquote type="cite">Nevertheless, CM3 should be totally backward compatible with the green =<br></blockquote><blockquote type="cite">book.  There is no reason it should not build packages from PM3 or SRC.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Now, this is not to say that perhaps we haven't overreached with LONGINT =<br></blockquote><blockquote type="cite">given that 64-bit is more prevalent.  But then it is also useful to be =<br></blockquote><blockquote type="cite">able to interoperate with C libraries.  The previous interfacing was =<br></blockquote><blockquote type="cite">pretty much a kludge, using ARRAY[0..1] OF INTEGER for "long long" but =<br></blockquote><blockquote type="cite">then not propagating the double INTEGER value properly throughout the =<br></blockquote><blockquote type="cite">Modula-3 libraries.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">I'm sorry to say that EWD was not particularly renowned for his =<br></blockquote><blockquote type="cite">practicality; pedant more like.  Nice to be high and mighty but we also =<br></blockquote><blockquote type="cite">need to interact with the real world.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">We should be able to make this work.  Is there a better alternative?  =<br></blockquote><blockquote type="cite">Revoke LONGINT, and WIDECHAR?<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">On 18 Apr 2010, at 15:59, Mika Nystrom wrote:<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><blockquote type="cite">=20<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">My problem is really just that it's ugly.  LONGx is showing up as an =<br></blockquote></blockquote><blockquote type="cite">issue<br></blockquote><blockquote type="cite"><blockquote type="cite">in all sorts of low-level code, which is not surprising since Modula-3<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">with LONGx is not the same language as Modula-3 (maybe we should call<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">it Modula-3+?)=20<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">=20<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">The compiler bootstrapping process has gotten more complicated due to =<br></blockquote></blockquote><blockquote type="cite">it,<br></blockquote><blockquote type="cite"><blockquote type="cite">and when I cvs updated m3tk yesterday stubgen wouldn't compile because =<br></blockquote></blockquote><blockquote type="cite">there<br></blockquote><blockquote type="cite"><blockquote type="cite">was something "long" in it that wasn't there before.  I have no idea =<br></blockquote></blockquote><blockquote type="cite">what<br></blockquote><blockquote type="cite"><blockquote type="cite">library or components I needed to update and recompile and didn't have =<br></blockquote></blockquote><blockquote type="cite">the<br></blockquote><blockquote type="cite"><blockquote type="cite">time to deal with the issue at the time.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">=20<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">And the new m3tk, stubgen, and compiler(?) won't compile using PM3 or<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">SRC M3 since we're no longer using the language of the Green Book.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">(Same comment goes for WIDECHAR, by the way.)<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">=20<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">One of the wonderful things about Modula-3 *used to be* that I could<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">grab some old package from DECSRC and just use it without changes =<br></blockquote></blockquote><blockquote type="cite">since<br></blockquote><blockquote type="cite"><blockquote type="cite">no one had messed with the language definition.  This is still true as<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">far as programs that just use the tools go, but it's no longer true =<br></blockquote></blockquote><blockquote type="cite">for<br></blockquote><blockquote type="cite"><blockquote type="cite">programs that process Modula-3 code as input data.  Of which there are<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">more than a few: many aspects of Modula-3 were specifically designed =<br></blockquote></blockquote><blockquote type="cite">to<br></blockquote><blockquote type="cite"><blockquote type="cite">make the language easy to process by program, as an intermediate =<br></blockquote></blockquote><blockquote type="cite">format<br></blockquote><blockquote type="cite"><blockquote type="cite">and whatnot.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">=20<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">To quote E.W.D.:<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">=20<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">'Unfathomed misunderstanding is further revealed by the term "software<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">maintenance", as a result of which many people continue to believe =<br></blockquote></blockquote><blockquote type="cite">that<br></blockquote><blockquote type="cite"><blockquote type="cite">programs and even programming languages themselves are subject to wear<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">and tear. Your car needs maintenance too, doesn't it? Famous is the =<br></blockquote></blockquote><blockquote type="cite">story<br></blockquote><blockquote type="cite"><blockquote type="cite">of the oil company that believed that its PASCAL programs did not last<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">as long as its FORTRAN programs "because PASCAL was not maintained".'<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">=20<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">LONGx is causing me to have to do "software maintenance" on Modula-3<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">programs... for a feature that no one appears to be using and is =<br></blockquote></blockquote><blockquote type="cite">quickly<br></blockquote><blockquote type="cite"><blockquote type="cite">becoming irrelevant.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">=20<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">   Mika<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">=20<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">=20<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Tony Hosking writes:<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">In the language spec NUMBER(a) and LAST(a) - FIRST(a) + 1 are *not* =3D=<br></blockquote></blockquote></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">defined to mean the same thing for all types.<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">NUMBER does have an INTEGER value, as expected for subranges of =<br></blockquote></blockquote></blockquote><blockquote type="cite">LONGINT =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">that are not too large.<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">This is as it has always been for subranges of INTEGER that are not =<br></blockquote></blockquote></blockquote><blockquote type="cite">too =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">large.<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=20<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Mika, I'm not sure I see any of the problems you are worrying about =<br></blockquote></blockquote></blockquote><blockquote type="cite">in =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">the current definition of LONGINT/LONGCARD.<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=20<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">On 18 Apr 2010, at 03:49, Mika Nystrom wrote:<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=20<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Jay I know most of this, and it doesn't really answer the question<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">"what is it for?"<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">I think we've already established that LONGINT isn't useful for =3D<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">counting<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">anything that might actually reside in the computer's memory: it =<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">makes<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">no sense as an array index, for instance.  INTEGER suffices for =<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">that.<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">I thought that the only real reason for LONGINT was to match C's<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">declaration of various seek-related routines on 32-bit machines.<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">That's not a very good reason.<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">C++ succeeds because it does very well in the area(s) it is good at.<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">People who want to program in C++ will clearly program in C++, not<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Modula-3.  Modula-3 is never, ever going to be the language of =<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">choice =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">for<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">people who want lots of snazzy infix operators.  Modula-3 is =<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">supposed =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">to<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">be a language with about as powerful semantics as C++ and an =<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">extremely<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">simple syntax and definition---snazzy infix is one of the things you<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">give up for that.  I don't see how LONGINT fits into this picture.<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Now we have LONGCARD too?  And it's infected the definitions<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">of FIRST and LAST?  But not NUMBER... argh!<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">so,<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">NUMBER(a) and LAST(a) - FIRST(a) + 1<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">no longer mean the same thing?  Are we going to see lots of comments<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">in generics in the future where it says T may not be an open array<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">type nor an array type indexed on LONGINT or a subrange thereof?<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Your comments about different parameter-passing techniques was what =<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">I =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">was<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">trying to address with my suggestion to have a pragma for =<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">this---just =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">to<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">match C (and Fortran?), of course.  Name me a single Modula-3 =3D<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">programmer<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">who cares in what order the bits in his parameters are pushed on the<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">stack in a Modula-3-to-Modula-3 call.<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">And I am definitely in that school of thought that says that =3D<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">programming<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">languages should not "evolve".  Better to leave well enough alone.<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">How much Modula-3 code has been written that uses LONGINT?  Other =<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">than<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">to talk to C?  I've certainly never used it.<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">  Mika<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Jay K writes:<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">--_264cb69b-0215-44c3-807c-8b4d8ea0ea59_<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Content-Type: text/plain; charset=3D3D"iso-8859-1"<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Content-Transfer-Encoding: quoted-printable<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">TYPE LONGINT =3D3D3D ARRAY [0..1] OF INTEGER on a 32bit system is =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">very =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">close to=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">LONGINT.<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Plus treating it opaquely and providing a bunch of functions to =3D<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">operate on=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">it.<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Just as well therefore could be RECORD hi=3D3D2Clo:LONGINT END (see =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">=3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">LARGE_INTE=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">GER and ULARGE_INTEGER in winnt.h)<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Differences that come to mind:<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">infix operators  <=3D3D3D=3D3D3D=3D3D3D=3D3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">possibly passed differently as a parameter<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">or returned differently as a result<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">ie. probably "directly compatible with" "long long"=3D3D2C passed =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">by =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">value (o=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">f course you could always pass by pointer and achieve =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">compatibilitity =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">trivi=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">ally)<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">I have to say though=3D3D2C the biggest reason is in-fix operators. =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">=3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Convenient =3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">syntax.<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">C++ is the best and some way worst of example of the general right =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">=3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">way to d=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">o this -- you let programmers define types and their infix =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">operators. =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Other=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">languages just come with a passle of special cases of types that =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">have =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">in-f=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">ix operators.<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">A good example is that Java infix operator + on string=3D3D2C =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">besides =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">the vario=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">us integers=3D3D2C and nothing else.<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">I think C# lets you define operators=3D3D2C yet people don't =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">complain =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">that it i=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">s "a mess" as they do of C++.<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">I think Python does now too.<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">So it is feature growing in popularity among "mainstream" =3D<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">languages=3D3D2C not =3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">just C++.<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">C++ of course is extremely mainstream=3D3D2C but also a favorite =3D<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">target. (ht=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><a href="tp://www.relisoft.com/tools/CppCritic.html">tp://www.relisoft.com/tools/CppCritic.html</a>)<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">We also have subranges of LONGINT.<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">I'm not sure what the generalization of subranges are=3D3D2C =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">granted.<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Maybe some sort of C++ template that takes constants in the =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">template =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">and d=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">oes range checks at runtime. Yeah=3D3D2C maybe.<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">And as you point out=3D3D2C convenient literal syntax.<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">People reasonably argue for library extension in place of language =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">=3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">extensio=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">n=3D3D2C but that requires a language which is flexible enough to =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">write =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">librari=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">es with the desired interface=3D3D2C and so many languages don't =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">let =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">infix oper=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">ators be in a user-written library.<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">(There is a subtle but useless distinction here -- infix operators =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">=3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">being in=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">libraries vs. "user-written" libraries. The infix set operations =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">for =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">examp=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">le are in a library=3D3D2C but not user-written=3D3D2C special=3D3D2C=<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">the =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">compiler know=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">s about it.)<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">that would perhaps not match how C handles "long long" on the same<br></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">platform (which is how=3D3D2C come to think of it?)=3D3D2C and =<br></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">that =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">would require<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">On NT/x86=3D3D2C __int64/long long is returned in the register pair =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">=3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">edx:eax.<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">edx is high=3D3D2C eax is low.<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">When passed as a parameter to __stdcall or __cdecl is just passed =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">as =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">two 32=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">bit values adjacent on the stack=3D3D2C "hi=3D3D2C lo=3D3D2C =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">hi=3D3D2C lo=3D3D2C =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">it's off to pu=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">sh we go" is the Snow White-influenced mantra to remember how to =<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">pass =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">them=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D3D2C at least on little endian stack-growing-down machines =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">(which =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">includes x=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">86). For __fastcall I'm not sure they are passed in registers or on =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">=3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">the sta=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">ck.<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Passing and/or returning small structs also has special efficient =3D=<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">handling =3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">in the ABI=3D3D2C so __int64 really might be equivalent to a small =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">=3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">record. Not =3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">that cm3 necessarily implements that "correctly"  -- for interop =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">with =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">C=3D3D3B =3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">for Modula-3 calling Modula-3 we can make up our own ABI so there =3D=<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">isn't rea=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">lly an "incorrect" way. Notice the mingw problem I had passing a =3D<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Win32 poin=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">t struct by value=3D3D2C I cheated and passed it by VAR to a C =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">wrapper =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">to worka=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">round the gcc backend bug (which was mentioned a few times and =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">which =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">I look=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">ed into the code for=3D3D2C but took the easy route)<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">I don't know how long long works on other platforms but probably =3D<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">similar.<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Probably a certain register pair for return values.<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">- Jay<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">To: <a href="mailto:hosking@cs.purdue.edu">hosking@cs.purdue.edu</a><br></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Date: Sat=3D3D2C 17 Apr 2010 19:47:03 -0700<br></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">From: <a href="mailto:mika@async.async.caltech.edu">mika@async.async.caltech.edu</a><br></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">CC: <a href="mailto:m3devel@elegosoft.com">m3devel@elegosoft.com</a><br></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Subject: Re: [M3devel] INTEGER<br></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Tony Hosking writes:<br></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">...<br></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">We need it to match 64-bit integers on 32-bit machines? That =<br></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">seems =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">like<br></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">a very weak rationale indeed=3D3D2C if the same functionality =<br></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">could =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">be =3D3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">provided<br></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">through some other mechanism (e.g.=3D3D2C ARRAY [0..1] OF =3D<br></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">INTEGER---even =3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D3D3D<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">with<br></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">a pragma e.g. <*CLONGLONG*>.. if it is necessary to tell the =3D<br></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">compiler =3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D3D3D<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">that<br></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">a special linkage convention is needed).<br></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">There's no special linkage convention. Not sure what you mean =<br></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">here.<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">I just mean if we had<br></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">TYPE LONGINT =3D3D3D ARRAY [0..1] OF INTEGER<br></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">that would perhaps not match how C handles "long long" on the same<br></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">platform (which is how=3D3D2C come to think of it?)=3D3D2C and =<br></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">that =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">would require<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">special linkage tricks.<br></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">But what would be lost? The ability to type literals.=3D3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">You could get the same code interface on 32- and 64-bit machine by<br></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">defining<br></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">TYPE FileOffset =3D3D3D ARRAY[0..1] OF [-16_80000000 .. =<br></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">+16_7fffffff ]<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">and using that.<br></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Mika<br></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><span class="Apple-tab-span" style="white-space:pre">   </span><span class="Apple-tab-span" style="white-space:pre">    </span> <span class="Apple-tab-span" style="white-space:pre">   </span>   <span class="Apple-tab-span" style="white-space:pre">       </span><span class="Apple-tab-span" style="white-space:pre">    </span>  =3D3D<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">--_264cb69b-0215-44c3-807c-8b4d8ea0ea59_<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Content-Type: text/html; charset=3D3D"iso-8859-1"<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Content-Transfer-Encoding: quoted-printable<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><html><br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><head><br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><style><!--<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">.hmmessage P<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">{<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">margin:0px=3D3D3B<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">padding:0px<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">}<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">body.hmmessage<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">{<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">font-size: 10pt=3D3D3B<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">font-family:Verdana<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">}<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">--></style><br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"></head><br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><body class=3D3D3D'hmmessage'><br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">TYPE LONGINT =3D3D3D ARRAY [0..1] OF INTEGER on a&nbsp=3D3D3B32bit =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">system =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">is very c=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">lose to LONGINT.<BR><br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">&nbsp=3D3D3BPlus treating it opaquely and providing a bunch of =3D<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">functions to ope=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">rate on it.<BR><br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">&nbsp=3D3D3BJust as well therefore could be RECORD =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">hi=3D3D2Clo:LONGINT =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">END (see LAR=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">GE_INTEGER and ULARGE_INTEGER in winnt.h)<BR><br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">&nbsp=3D3D3B<BR><br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Differences that come to mind:<BR><br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">&nbsp=3D3D3B&nbsp=3D3D3Binfix operators&nbsp=3D3D3B =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">&lt=3D3D3B=3D3D3D=3D3D3D=3D3D3D =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><BR><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">&nbsp=3D3D3B possibly passed differently&nbsp=3D3D3Bas a =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">parameter<BR><br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">&nbsp=3D3D3B or returned differently as a result<BR><br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">&nbsp=3D3D3B ie. probably "directly compatible with" "long =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">long"=3D3D2C =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">passed by v=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">alue (of course you could always pass by pointer and achieve =3D<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">compatibilitit=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">y trivially)<BR><br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">&nbsp=3D3D3B<BR><br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">&nbsp=3D3D3B<BR><br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">I have to say though=3D3D2C the biggest reason is in-fix operators. =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">=3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Convenient =3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">syntax.<BR><br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">C++ is the best and some way worst of example of the general right =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">=3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">way to d=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">o this -- you let programmers define types and their infix =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">operators. =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Other=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">languages just come with a passle of special cases of types that =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">have =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">in-f=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">ix operators.<BR><br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">A good example is that Java infix operator + on string=3D3D2C =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">besides =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">the vario=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">us integers=3D3D2C and nothing else.<BR><br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">&nbsp=3D3D3B<BR><br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">&nbsp=3D3D3B<BR><br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">I think C# lets you define operators=3D3D2C yet people don't =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">complain =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">that it i=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">s "a mess" as they do of C++.<BR><br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">I think Python does now too.<BR><br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">So it is feature growing in popularity among "mainstream" =3D<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">languages=3D3D2C not =3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">just C++.<BR><br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">&nbsp=3D3D3B&nbsp=3D3D3B C++ of course is extremely mainstream=3D3D2C=<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">but =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">also a favori=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">te target. (<A =3D<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">href=3D3D3D"<a href="http://www.relisoft.com/tools/CppCritic.html">http://www.relisoft.com/tools/CppCritic.html</a>">http:/=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">/www.relisoft.com/tools/CppCritic.html</A>)<BR><br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">&nbsp=3D3D3B<BR><br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">&nbsp=3D3D3B<BR><br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">We also have subranges of LONGINT.<BR><br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">I'm not sure what the generalization of subranges are=3D3D2C =3D<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">granted.<BR><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">&nbsp=3D3D3BMaybe some sort of C++ template that takes constants in =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">the =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">templat=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">e and does range checks at runtime. Yeah=3D3D2C maybe.<BR><br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">&nbsp=3D3D3B<BR><br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">&nbsp=3D3D3B<BR><br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">And as you point out=3D3D2C convenient literal syntax.<BR><br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">&nbsp=3D3D3B<BR><br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">&nbsp=3D3D3B<BR><br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">People reasonably argue for library extension in place of language =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">=3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">extensio=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">n=3D3D2C but that requires a language which is flexible enough to =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">write =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">librari=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">es with the desired interface=3D3D2C and so many languages don't =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">let =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">infix oper=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">ators be in a user-written library.<BR><br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">(There is a subtle but useless distinction here -- infix operators =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">=3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">being in=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">libraries vs. "user-written" libraries. The infix set operations =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">for =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">examp=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">le are in a library=3D3D2C but not user-written=3D3D2C special=3D3D2C=<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">the =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">compiler know=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">s about it.)<BR><br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">&nbsp=3D3D3B<BR><br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">&gt=3D3D3B that would perhaps not match how C handles "long long" =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">on =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">the same<B=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">R>&gt=3D3D3B platform (which is how=3D3D2C come to think of =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">it?)=3D3D2C and =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">that would =3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">require<BR><BR><br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">&nbsp=3D3D3B<BR><br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">On NT/x86=3D3D2C __int64/long long is returned in the register pair =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">=3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">edx:eax.<BR=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">edx is high=3D3D2C eax is low.<BR><br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">When passed as a parameter to __stdcall or __cdecl is just passed =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">as =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">two 32=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">bit values adjacent on the stack=3D3D2C "hi=3D3D2C lo=3D3D2C =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">hi=3D3D2C lo=3D3D2C =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">it's off to pu=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">sh we go" is the Snow White-influenced mantra to remember how to =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">pass =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">them=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D3D2C at least on little endian stack-growing-down machines =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">(which =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">includes x=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">86). For __fastcall I'm not sure they are passed in registers or on =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">=3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">the sta=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">ck.<BR><br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Passing and/or returning small structs also has special efficient =3D=<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">handling =3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">in the ABI=3D3D2C so __int64 really might be equivalent to a small =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">=3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">record. Not =3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">that cm3 necessarily implements that "correctly"&nbsp=3D3D3B -- for =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">=3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">interop wit=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">h C=3D3D3B for Modula-3 calling Modula-3 we can make up our own ABI =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">so =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">there is=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">n't&nbsp=3D3D3Breally an "incorrect" way.&nbsp=3D3D3BNotice the =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">mingw =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">problem I had=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">passing a Win32 point struct by value=3D3D2C I cheated and passed =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">it by =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">VAR to=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">a&nbsp=3D3D3BC wrapper to workaround the gcc backend bug (which was =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">=3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">mentioned =3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">a few times and which I looked into the code for=3D3D2C but took =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">the =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">easy route=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">)<BR><br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">&nbsp=3D3D3B<BR><br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">&nbsp=3D3D3B<BR><br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">I don't know how long long works on other platforms but probably =3D<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">similar.<B=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">R><br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Probably a certain register pair for return values.<BR><br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">&nbsp=3D3D3B<BR><br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">&nbsp=3D3D3B- Jay<BR><BR>&nbsp=3D3D3B<BR>&gt=3D3D3B To: =3D<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">hosking@cs.purdue.edu<BR>&gt=3D3D3B=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Date: Sat=3D3D2C 17 Apr 2010 19:47:03 -0700<BR>&gt=3D3D3B From: =3D<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">mika@async.async.c=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">altech.edu<BR>&gt=3D3D3B CC: m3devel@elegosoft.com<BR>&gt=3D3D3B =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">Subject: =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Re: [M3de=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">vel] INTEGER<BR>&gt=3D3D3B <BR>&gt=3D3D3B Tony Hosking =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">writes:<BR>&gt=3D3D3B =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">&gt=3D3D3B<BR>=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">&gt=3D3D3B ...<BR>&gt=3D3D3B &gt=3D3D3B<BR>&gt=3D3D3B =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">&gt=3D3D3B&gt=3D3D3B We =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">need it to match 64-b=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">it integers on 32-bit machines? That seems =3D3D3D<BR>&gt=3D3D3B =3D<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">&gt=3D3D3Blike<BR>&gt=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D3D3B &gt=3D3D3B&gt=3D3D3B a very weak rationale indeed=3D3D2C if =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">the same =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">functionality =3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">could be =3D3D3D<BR>&gt=3D3D3B &gt=3D3D3Bprovided<BR>&gt=3D3D3B =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">&gt=3D3D3B&gt=3D3D3=3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">B through some o=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">ther mechanism (e.g.=3D3D2C ARRAY [0..1] OF INTEGER---even =3D<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D3D3D<BR>&gt=3D3D3B &gt=3D3D3B=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">with<BR>&gt=3D3D3B &gt=3D3D3B&gt=3D3D3B a pragma e.g. =3D<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">&lt=3D3D3B*CLONGLONG*&gt=3D3D3B.. if it i=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">s necessary to tell the compiler =3D3D3D<BR>&gt=3D3D3B =3D<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">&gt=3D3D3Bthat<BR>&gt=3D3D3B &gt=3D3D3B&=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">gt=3D3D3B a special linkage convention is needed).<BR>&gt=3D3D3B =3D<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">&gt=3D3D3B<BR>&gt=3D3D3B &=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">gt=3D3D3BThere's no special linkage convention. Not sure what you =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">mean =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">here.<BR=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">&gt=3D3D3B &gt=3D3D3B<BR>&gt=3D3D3B <BR>&gt=3D3D3B I just mean if =<br></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">we =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">had<BR>&gt=3D3D3B <BR>&gt=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D3D3B TYPE LONGINT =3D3D3D ARRAY [0..1] OF INTEGER<BR>&gt=3D3D3B =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">=3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><BR>&gt=3D3D3B that woul=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">d perhaps not match how C handles "long long" on the =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">same<BR>&gt=3D3D3B =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">platfor=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">m (which is how=3D3D2C come to think of it?)=3D3D2C and that would =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">=3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">require<BR>&gt=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D3D3B special linkage tricks.<BR>&gt=3D3D3B <BR>&gt=3D3D3B But =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">what would =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">be lost? Th=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">e ability to type literals. <BR>&gt=3D3D3B <BR>&gt=3D3D3B You could =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">get =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">the same co=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">de interface on 32- and 64-bit machine by<BR>&gt=3D3D3B =3D<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">defining<BR>&gt=3D3D3B <BR>=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">&gt=3D3D3B TYPE FileOffset =3D3D3D ARRAY[0..1] OF [-16_80000000 .. =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite">=3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">+16_7fffffff ]<B=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">R>&gt=3D3D3B <BR>&gt=3D3D3B and using that.<BR>&gt=3D3D3B =<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><BR>&gt=3D3D3B =3D<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><BR>&gt=3D3D3B Mika<BR=3D3D<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><span class="Apple-tab-span" style="white-space:pre">        </span><span class="Apple-tab-span" style="white-space:pre">    </span> <span class="Apple-tab-span" style="white-space:pre">   </span>   <span class="Apple-tab-span" style="white-space:pre">       </span><span class="Apple-tab-span" style="white-space:pre">    </span>  </body><br></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"></html>=3D3D<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">=3D20<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">--_264cb69b-0215-44c3-807c-8b4d8ea0ea59_--<br></blockquote></blockquote></blockquote></blockquote></blockquote></div></blockquote></div><br></body></html>