Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/3/84; site wjh12.UUCP Path: utzoo!linus!philabs!cmcl2!seismo!harvard!wjh12!kendall From: kendall@wjh12.UUCP (Sam Kendall) Newsgroups: net.lang.c Subject: Re: Fuel for your flames: Things I would like in CPP Message-ID: <522@wjh12.UUCP> Date: Mon, 1-Oct-84 23:22:21 EDT Article-I.D.: wjh12.522 Posted: Mon Oct 1 23:22:21 1984 Date-Received: Thu, 4-Oct-84 04:48:48 EDT References: <9225@watmath.UUCP> Organization: Delft Consulting Corp., New York Lines: 27 Kevin Martin proposes extensions to the CPP, making it a fundamentally more powerful macro processor in several ways. I will not examine his proposals in detail, but any consideration of them should include a lot of thought about the really dangerous and impossible-to-read things that could be done with them. Martin conveniently provides an example: > The combination of the first three features allows generation of ragged > initialized arrays: Each row is given a name using #eval and token > concatanation, the row is given storage class 'static', and, by switching > to another diversion, the row pointer in the edge vector can be > initialized to point to the row. Heaven help us! One should think very carefully before extending the CPP, because macro semantics are extremely dangerous. And they are dangerous in a different way than pointers. Complex usage of a powerful macro processor such as MACRO-11 or m4 is not just hard to make readable; it is impossible to make readable. I consider the CPP's lack of power a feature. Ill-considered wish-lists can be fun; still, I would like to see proposed features considered guilty until proven innocent, meaning that people who propose them should make some attempt to justify them beyond saying "Wow, look what we could do with this!" Sam Kendall {allegra,ihnp4,ima,amd}!wjh12!kendall Delft Consulting Corp. decvax!genrad!wjh12!kendall