From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on ip-172-31-74-118.ec2.internal X-Spam-Level: X-Spam-Status: No, score=-1.9 required=3.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!feeder.eternal-september.org!feeder1.feed.usenet.farm!feed.usenet.farm!feeder.usenetexpress.com!tr1.eu1.usenetexpress.com!newsfeed.xs4all.nl!newsfeed8.news.xs4all.nl!nzpost2.xs4all.net!news.kpn.nl!not-for-mail Subject: Re: Hardware independent programming Newsgroups: comp.lang.ada References: <5ef9712d$0$1221$e4fe514c@news.kpn.nl> From: ldries46 Date: Thu, 2 Jul 2020 08:15:20 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <5ef9712d$0$1221$e4fe514c@news.kpn.nl> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-GB Message-ID: <5efd7b78$0$1434$e4fe514c@news.kpn.nl> NNTP-Posting-Host: 2e01f686.news.kpn.nl X-Trace: G=SnO2t5PK,C=U2FsdGVkX19XUYGkLGg5Sm+MKeRF9Gmx9cjn9xtp+0qQVr3UFgtGtcGmyuzfF3jtpBLCdQV3jGyEvJEMbhI00yD/sgANR5j+gLJrb2+c92Q= X-Complaints-To: abuse@kpn.nl Xref: reader01.eternal-september.org comp.lang.ada:59308 List-Id: Op 29-6-2020 om 6:42 schreef ldries46: > Hardware can in some cases have limits you have to consider when > writing a program. >  At this moment I can mention three: > > 1. The printer. The format of the documents you want to print must fit >    on the printers available to the user. In general the problem is >    solved by the possibility of printer drivers to shrink you document >    f.i. from A4 to A4 or saving the document to a file that can be >    printed elsewhere. > 2. The monitor on the system your program is running. Creating a window >    that is to large for your screen resolution can be trouble some but >    you do not know the resolution of the the customer using your >    program. The solution for such a problem can only be hardware >    independent programming. Your program should know the resolution of >    your screen and adjust to  that or in the worst case decide that >    system is not suitable for the program. > 3. The available memory. Your program will in some cases need to know >    the limits to which the heap stretches within the memory (in cases >    where it is necessary  to use very large bulks of data). For >    operating systems that have the possibility to stretch the heap with >    a part on disc both boundaries (with and without disc data) are of >    interest. > > There should be a package in Ada that like GNAT.OS-lib does with > operating system differences, makes such hardware parameters available > for the programmer. > If we want to create hardware or operating system independent programs it is in some situations necessary to use environmental variable from which a package in Ada or in other languages can get values from. The names of these values should then in all these systems the same. I found that in Windows OS is such a variable for the name of the operating system (OS=Windows_NT) In Linux(Ubuntu) I could not find such a variable so it looks logical to use OS=Linux. For other parameters standard names should be found. So the ada packages I mentioned is not the only thing that must be done.