home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.lang.modula3
- Path: sparky!uunet!utcsri!torn!watserv2.uwaterloo.ca!watserv1!mhcoffin
- From: mhcoffin@tolstoy.uwaterloo.ca (Michael Coffin)
- Subject: Re: Constructors in Modula-3
- In-Reply-To: pk@rwthi3.informatik.rwth-aachen.de's message of 15 Sep 92 12:22:37 GMT
- Message-ID: <MHCOFFIN.92Sep15145854@tolstoy.uwaterloo.ca>
- Sender: news@watserv1.uwaterloo.ca
- Organization: Dept. of Computer Science, University of Waterloo
- References: <MHCOFFIN.92Sep14133341@tolstoy.uwaterloo.ca>
- <1992Sep15.122237.271@Urmel.Informatik.RWTH-Aachen.DE>
- Date: Tue, 15 Sep 1992 19:58:54 GMT
- Lines: 29
-
- In article <1992Sep15.122237.271@Urmel.Informatik.RWTH-Aachen.DE> pk@rwthi3.informatik.rwth-aachen.de (Peter Klein) writes:
- > ...
- > No, *please* no more pragmas. If you want to have a feature in the
- > language standard, then introduce a new keyword. Everything else leads
- > to portability problems. I see a certain use for pragmas if they don't
- > change the semantics of a program, like <* OBSOLETE *> or <* INLINE *>.
- > (What about INLINE anyway? Will it ever be supported?) But what you suggest
- > definetely changes the semantics, and should therefore be a keyword (just
- > like <* EXTERNAL *>, which is actually no pragma either).
-
- I, too, like a new keyword, but that would involve changing the
- standard, which is pretty difficult. Adding a pragma can be done by
- merely changing a single implementation. Furthermore, if successfully
- implemented and tested, it would add ammunition for introducing a new
- keyword in the next version of the standard (if there is one).
-
- And, as pragmas go, <*NO NEW*> is fairly benign. It doesn't introduce
- any portability problems that I can see. If you write a program using
- a compiler that supports <*NO NEW*>, you can compile it on another
- compiler that ignores <*NO NEW*> and everything will work just fine.
- On the other hand, if you develop a program using a compiler that
- doesn't support <*NO NEW*>, it will certainly work on one that does.
-
- The point is that <*NO NEW*> restricts the language, which merely
- makes some otherwise-legal programs illegal. In contrast,
- <*EXTERNAL*>, makes some otherwise-illegal programs legal, which is
- far more serious and *does* cause portability problems.
-
- -mike
-