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: geert@fozzie.sun3.iaf.nl (Geert Bosch) Subject: Standard libraries (Was: Environment variables) Date: 1996/11/14 Message-ID: <56do9g$1v5@fozzie.sun3.iaf.nl>#1/1 X-Deja-AN: 196381953 references: <55819q$mql@newslink.runet.edu> <327A32A3.2DD0@itg-sepg.logicon.com> <1996Nov2.173625.1@eisner> <55kmb1$3m6@top.mitre.org> organization: La Calandre Infortunee newsgroups: comp.lang.ada Date: 1996-11-14T00:00:00+00:00 List-Id: Robert Dewar (dewar@merv.cs.nyu.edu) wrote: "Very few remote target (embedded) runtime systems have environment variables and many operating systems do not. If they were standard they would be in the standard libraries. " You could say the same of package Ada.Command_Line. The important point is, IMHO, that a reasonable number of different platforms (Dos, Unix, Windows, OS/2, Mac) which represent a significant share (90%?) of the potential Ada users have this same problem. That is a good enough reason to have some form of standard interface. I do not say that this functionality (including Ada.Command_Line) should be part of the standardized Ada language. Issues like these are very well suited to less formal standardizing, like including extra functionality in the GNAT standard libraries. These might perhaps be separated from the Ada.* hierarchy in an Extra.* hierarchy. Given the significant use of GNAT in proportion to other Ada-95 compilers, an initiative (supported) by the developers of GNAT in this direction might be followed by others and become a de facto standard. Important areas to be covered by such an extension would be: * Terminal IO including cursor positioning commands and attribute changes. Of course these should be stored with each Terminal_IO file opened, so multiple tasks can maintain there own position/attributes without interfering with other tasks using the same terminal. * File-system support for changing current directory, querying information about files in the current directory and deleting/renaming files. * Network IO which would at least support (a subset of) populair TCP/IP networking, so there is a common way of communicating between computers connected to the Internet. These are points that have very much in common on the major platforms like Dos, Unix, OS/2, Macintosh and Windows, although not all platforms will have standard support for all areas. This is no reason however to *not* make *any* attempt to standardize on these very common external interfaces. Many programs only need the very simple common features described above which can have good portability between platforms. Is it really necessary that every Ada user invents his own ANSI-emulator? Should everybody make his own platform-specific procedure for deleting an external file? Is that what code reuse is all about? I suggest that we, as Ada users and c.l.a. readers/writers, make an effort to standardize on specifications for these interfaces. Implementing them is easy enough. Regards, Geert -- E-Mail: geert@sun3.iaf.nl