On 23 November 2015 at 12:17, Brantley Coile <brantleyco...@me.com> wrote:

> I've lived with the old definition so long that I didn't notice Plan 9's
> definition, which is not a problem on today's architectures because there
> are two equally efficient instructions to choose from.


There are a few things in C's definition where things aren't specified as
portably as they might now be,
because they just turned out to be different on different platforms,
especially once there were several compiler implementations.
An early example of the former is "bit fields", which are such a mess that
Plan 9 code never uses them. An example of the latter was the
long argument between "value preserving" and "unsigned preserving" for
choosing the type when unsigned values met signed ones.
"Unsigned preserving" is trivial, and at least easy to understand. ANSI
went for "value preserving" (even though it doesn't really
preserve values, except in the sense of formaldehyde) and the rules are
surprisingly elaborate.

Reply via email to