Subject: Re: Tcl7.5 and NetBSD-current
To: None <current-users@NetBSD.ORG>
From: der Mouse <mouse@Collatz.McRCIM.McGill.EDU>
List: current-users
Date: 02/27/1996 14:43:07
> long long is *forbidden* by ANSI.
Granted.
> The list "char short int long" is an exhaustive one,
Where does the standard specify this? I haven't looked into it
recently, but I've never seen anything that forbids, say, an __int64
type, or indeed an extension such that __intN is an N-bit integer type
for any N.
> and the format "%qd" is not defined.
Which puts it into undefined or implementation-defined behavior, does
it not? Which does not render our _implementation_ nonconforming,
since conforming code must not use %qd, though it does render that of
our code which _uses_ %qd nonconforming.
> Any implementation on which you need to use an extension to get at
> basic functionality is nonconforming.
What "basic functionality" of C is accessible only via an extension? I
think that as far as C is concerned, we are conforming, in that we
accept conforming programs. The C standard does not specify lseek().
Indeed, the external name "lseek" is in the reserved-to-the-user
namespace as far as C is concerned.
POSIX may be another matter; I know a good deal less about it.
> A conforming C implementation is forbidden from offering larger
> types,
See above.
> and must diagnose "long long" as a syntax error.
True. Or at least it must emit at least one diagnostic. With the
correct flags, ours does. (With those flags it also warns about a
whole lot of stuff in some header files. But a conforming
implementation is permitted to warn about damn near anything it
pleases, provided the warnings are just warnings, not errors.)
der Mouse
mouse@collatz.mcrcim.mcgill.edu