Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84 (Fortune 01.1b1); site graffiti.UUCP Path: utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!think!harvard!seismo!ut-sally!ut-ngp!shell!graffiti!peter From: peter@graffiti.UUCP (Peter da Silva) Newsgroups: net.lang.c Subject: "C" wish list. Message-ID: <335@graffiti.UUCP> Date: Sun, 20-Oct-85 23:43:47 EDT Article-I.D.: graffiti.335 Posted: Sun Oct 20 23:43:47 1985 Date-Received: Wed, 23-Oct-85 04:45:13 EDT Organization: The Power Elite, Houston, TX Lines: 36 Since the current arguments seem to have broken down, how about something new: what features would you add to 'C' if you were god or some other moral equivalent of Dennis Ritchie? Here are some wishes that the recent discussions have woken in me: 1. Extend the syntax of bit-feilds to ordinary numbers: int x:16; /* x is of type int and at least 16 bits long */ typedef int int16:16; /* :-> */ 2. Allow auto aggregate initialisations: Why not? If you can pass structures this can hardly be considered horridly inefficient. 3. Allow constant aggregates: Currently only strings can be used this way, but wouldn't it be nice to be able to say ioctl(2, TIOCSETC, {...});? Or to combine execv and execl as exec(name, {args})? BCPL allowed this, and I miss it. 4. Allow true block structuring: outs(s) char*s; { outc(c) char c; {...} tputs(s, outc); } 5. Add some real programmability to cpp. I still haven't been able to write an assert() that satisfies me... If you allowed '#foo' at other places than the beginning of lines, and made it evaluate constant expressions. Maybe a #{ and #} instead of using backslash escapes for long lines...