Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!rutgers!ames!oliveb!sun!gorodish!guy From: guy@gorodish.UUCP Newsgroups: comp.arch Subject: Re: catering to bad code Message-ID: <13797@sun.uucp> Date: Sat, 21-Feb-87 16:43:44 EST Article-I.D.: sun.13797 Posted: Sat Feb 21 16:43:44 1987 Date-Received: Sun, 22-Feb-87 05:44:32 EST References: <14833@amdcad.UUCP> <2443@sequent.UUCP> Sender: news@sun.uucp Reply-To: guy@sun.UUCP (Guy Harris) Organization: Sun Microsystems, Mountain View Lines: 28 >In my experience, having a zero of at least 4 bytes at zero is extremely >useful. But is not necessarily possible, convenient, or desirable on all machines. >I have talked to customers who were very concerned about this. >Apparently, they have fought battles trying to port to machines that >did not have this feature. Who's to say they won't fight battles trying to port to machines that don't have the same byte order, or the same floating-point format, or the same address space layout, or the same... as the VAX? >Using number 2 allows you to create more portable code or fix bugs >in existing code Bugs is bugs. If the code has a bug, the fact that it *may* happen to work on a machine with 0 at location 0 - which is *not* guaranteed; consider, e.g., that somebody might be treating a null pointer or a *non*-zero value pointed to by that pointer as a termination condition. >NOTE: Having 1 be the default does save lots of headaches. And creates lots more. Mapping in page zero is the default on the 3B2's linker; this means *we* get to fix a bunch of bugs that are *not* our fault, but the fault of programmers at AT&T-IS.