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.9 required=5.0 tests=BAYES_00 autolearn=unavailable autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!mx02.eternal-september.org!feeder.eternal-september.org!aioe.org!.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: Operating System differences and Ada OS independent programming Date: Thu, 24 Mar 2016 09:00:57 +0100 Organization: Aioe.org NNTP Server Message-ID: References: <56eff4a4$0$4238$e4fe514c@news.kpn.nl> NNTP-Posting-Host: LMk7+sG0YqgPmReI4fVkAA.user.gioia.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-Complaints-To: abuse@aioe.org User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 X-Notice: Filtered by postfilter v. 0.8.2 Xref: news.eternal-september.org comp.lang.ada:29875 Date: 2016-03-24T09:00:57+01:00 List-Id: On 2016-03-23 16:08, G.B. wrote: > On 23.03.16 09:38, Dmitry A. Kazakov wrote: >> For anything impossible under the given OS Use_Error is propagated. > > In some cases a substitution mechanism might work: > If "E:\" is covered by some "multiple roots" type, > and the filesystem is Unix style, the Use_Error > could be staged, and conditional. The run-time > support that establishes the type's associated behavior > (or path mapping) would be configurable. The > programmer specifies a mapping mechanism from the > "multiple roots" object representing "E:\" to some > other "multiple roots" object that can play the > same role on his or her system. Provided, maybe, > that the original object did not specifically use > "root-ness", which could be reflected in some constant > property preventing the above mentioned mapping. > > So, then, Use_Error would be raised either > > - if the mapping could not be performed because the > target object would not represent "root-ness", > > - or if no mapping was provided by the programmer, > > - or if the mapping "tampers with file systems", > > - or if the run-time system does not support mapping. The mapping is normally predefined. E.g. when you run MinGW, Windows roots are already mapped: E:\ -> /e/ -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de