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)