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,7fc767abbf17c947 X-Google-Attributes: gid103376,public From: dewar@merv.cs.nyu.edu (Robert Dewar) Subject: Re: Parsing a line into strings Date: 1998/07/09 Message-ID: #1/1 X-Deja-AN: 369760154 References: <35A3A199.D55C3153@oit.edu> <35A3AB67.9039CBA9@oit.edu> <35A40A94.6DB73E65@chat.ru> <6o14rm$3nv@drn.newsguy.com> X-Complaints-To: usenet@news.nyu.edu X-Trace: news.nyu.edu 899957103 31319 (None) 128.122.140.58 Organization: New York University Newsgroups: comp.lang.ada Date: 1998-07-09T00:00:00+00:00 List-Id: Nasser says <> The Ada language is not portable, rather the Ada language facilitates writing portable code. If portability is a requirement, then if you take appropriate care, Ada is a particularly good language to meet this requirement. However, it is most certainly possible to write non-portable code, and this is not necessarily a bad thing, it depends on whether or not portability is a requirement. For the GNAT library, the only requirement is that it be portable to any implementation of GNAT, it is simply not a requirement that it be able to be compiled on other compilers. This may be possible for some of the simpler packages, and if so fine, but the requirements for these routines are performance, functionality, and a convenient interface -- portability is simply not a requirement, so we feel absolutely free to use non-portable attributes and pragmas when implementing these packages. You can't expect all other vendors to implement Urestricted_Access. Remember that several vendors fought furiously any attempt to provide features of this kind, because they are not display-friendly. Since at least one Ada 95 compiler uses displays, you can anticipate that this implementation at least is unlikely to implement Urestricted_Access, and that situation is unlikely to change. At the same time, we definitely feel free to add useful pragmas and attributes to GNAT (see the GNAT programmers guide for a list). Of course if portability to other Ada compilers (as opposed to portability to other GNAT implementations) is a consideration, then you should not use these implementation dependent attributes and pragmas. One extra features that GNAT implements that I *do* think all vendors should implement is two extra Restriction identifiers: pragma Restrictions (No_Implementation_Pragmas); pragma Restrictions (No_Implementation_Attributes); which respectively prevent any use of implementation dependent pragmas or attributes.