Path: utzoo!utgpu!watmath!clyde!ima!haddock!karl From: karl@haddock.ima.isc.com (Karl Heuer) Newsgroups: comp.std.c Subject: Re: New section 3.9.6 Message-ID: <11126@haddock.ima.isc.com> Date: 8 Dec 88 21:41:01 GMT References: <1988Dec4.161125.20786@sq.uucp> <1988Dec5.220907.6239@utzoo.uucp> Reply-To: karl@haddock.ima.isc.com (Karl Heuer) Organization: Interactive Systems, Boston Lines: 29 In article <1988Dec5.220907.6239@utzoo.uucp> henry@utzoo.uucp (Henry Spencer) writes: >In article <1988Dec4.161125.20786@sq.uucp> msb@sq.com (Mark Brader) writes: >> If I am right, this change is, well, silly. To reject on the one hand >> the arguments put forward by me and others about eliminating the >> second syntax (this rejection on the grounds of "long-ingrained >> equivalence"), and then on the other hand to make obsolescent *one >> aspect* of the equivalence, merely gives us the worst of both worlds. > >Actually, both ideas have the problem of breaking old code. If the new interpretation were to apply only to prototypes, then no old code would be broken. As Mark and I have repeatedly pointed out, this would have been the perfect opportunity to get rid of one more of K&R's silent rewrite rules. (Note that X3J11 did get rid of the rewrite whereby `f(x) float x; \ {...}' actually declared x as a double; `f(x) int x[]; {...}' is now, I believe, the only such DWIM left in the language.) IMHO, The Committee should have made the entire construct `f(int x[])' obsolescent. This would still allow the Darnell notation$ to be added to a future Standard, if that turns out to be the Right Thing, but it would also allow for more ambitious undertakings%. Karl W. Z. Heuer (ima!haddock!karl or karl@haddock.isc.com), The Walking Lint ________ $ The Darnell syntax reserves array notation for pointers to non-overlapping areas, which is apparently what the Committee had in mind when they added this clause. % In particular, the Brader-Heuer syntax, which reserves array notation for (surprise!) arrays, as distinct from pointers.