From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,8dea6f46dfb95f66 X-Google-Attributes: gid103376,public From: dewar@merv.cs.nyu.edu (Robert Dewar) Subject: Re: Environment variables Date: 1996/11/03 Message-ID: #1/1 X-Deja-AN: 194273718 references: <55819q$mql@newslink.runet.edu> <327A0B58.65C4@gsfc.nasa.gov> organization: New York University newsgroups: comp.lang.ada Date: 1996-11-03T00:00:00+00:00 List-Id: Bob said "Robert, you have a strange definition of "extension". I would say: This *is* an extension to the language. Any Ada compiler can provide extensions of this nature (additional useful packages). Other extensions that are explicitly allowed by the RM are additional pragmas and attributes. Most extensions are of course DISallowed by the RM. To the Ada programmer, this thing is an extension, in the sense that it provides functionality available on GNAT, which may or may not be available on some other compiler. In practical terms, if you use a different compiler, your program will stop working." This is just a matter of terminology of course, but by your definition ANY package provided with a compiler is an extension (there is nothing special about calling a package Ada.xxxx.yyy from this point of view). I do not find it useful to use the word extension in conjunction with packages (is it an extension of C if you allow C programs to call sockets stuff?) I would call additional pragmas and attributes cases of allowed extensions. So, that's my definition. Additional packages that the compiler knows nothing about but which are simply provided for use by users who want the facilities in these packages I do not call extensions, additional pragmas or attributes (or, getting into "non-permitted" areas) other language additions, I would call extensions. Sure, if you use packages that don't port, you are not portable, but the distincition I make is a useful one. A package can be ported much more easily than a pragma or attribute. It is true that a grandchild of Ada is a little less portable, but it is easy to change its name.