[comp.arch] vaxocentrism -- please help me define it for the Jargon File

eric@snark.thyrsus.com (Eric S. Raymond) (12/06/90)

For the next edition of the Jargon File, I have composed the following
entry:

VAXOCENTRISM (vak`soh-sen'trizm) n. A notional disease said to
   afflict C programmers who persist in coding according to certain
   assumptions valid on VAXEN but false elsewhere (this can create
   substantial portability problems). Among these are:

	a) the assumption that dereferencing a null pointer is safe
	   because location 0 is wired to zero (it may instead cause
	   an illegal-address trap on non-VAXEN).

	b) the assumption that pointer and integer types are the same
	   size, and that pointers can be stuffed into integer
	   variables and drawn back out without being truncated or
	   mangled;

	c) the assumption that a data type of any size may begin at
	   any address in memory (for example, that you can freely
	   construct and dereference a word-sized pointer to an odd
	   address; on many newer (esp. RISC) architectures better
	   optimized for HLL execution speed this is invalid and can
	   cause an illegal instruction fault);

	d) the (related) assumption that there is no `padding' at the
	   end of types and that in an array you can thus step right
	   from the last byte of a previous component to the next one;

	e) the assumption that memory address space is globally flat
	   and that the array reference foo[-1] is necessarily valid
	   (not true on segment-addressed machines like Intel chips).

   Note that a programmer can be validly be accused of VAXOCENTRISM
   even if he/she has never seen a VAX. The terms ``vaxocentricity''
   and ``all-the-world's-a-VAX syndrome'' have been used synonymously.

If any of you comp.arch types feel this is either incorrect or incomplete,
please email me about it.
-- 
      Eric S. Raymond = eric@snark.thyrsus.com  (mad mastermind of TMN-Netnews)