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=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,2d2df3e9ad18fa63 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2003-06-21 05:49:45 PST Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!cyclone.bc.net!skynet.be!skynet.be!louie!tlk!not-for-mail Sender: lbrenta@lbrenta Newsgroups: comp.lang.ada Subject: Re: ISO/IEC 14519 - Ada POSIX binding References: <3EF2F6B8.3030706@noplace.com> <3EF44B79.2000407@noplace.com> From: Ludovic Brenta Date: 21 Jun 2003 14:44:21 +0200 Message-ID: User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Organization: -= Belgacom Usenet Service =- NNTP-Posting-Host: 80.201.75.23 X-Trace: 1056199784 reader0.news.skynet.be 313 80.201.75.23:48878 X-Complaints-To: abuse@skynet.be Xref: archiver1.google.com comp.lang.ada:39525 Date: 2003-06-21T14:44:21+02:00 List-Id: Marin David Condic writes: > Ludovic Brenta wrote: > > POSIX has been around for a long time now, and yes, people do rely > > on it. The revision process is long and thorough, much like the > > Ada standard's. > > I think you missed my point. If "Standard X" cites "Standard Y" and > there is any change to "Standard Y", then "Standard X" has a problem > of being potentially out of date. It doesn't matter how long > "Standard Y" has been around - it is a separate standard subject to > its own updates, enhancements, etc. It would be better for "Standard > X" to specify its needs in such a way that "Standard Y" might be one > method of solving them, but not necessarily the only method. No, I didn't miss your point. What I was trying to say is, why should we need Standard X (Ada sockets) in the first place, if Standard Y (POSIX.5) already exists? Especially if Standard Y is an official, vendor-neutral, portable ISO standard? But you've answered that question below. > > POSIX stands for Portable Operating System Interface for uniX. It > > defines only the API and its semantics, not how the API is > > implemented. If there is an underlying POSIX-compliant operating > > system, then the implementation is trivial. If there is an OS > > that is not POSIX-compliant, then the implementation is a thick > > binding to the OS. For bare boards, there is of course a higher > > implementation cost. But I submit that: > > > Yes, I know what POSIX is. I also know that not every operating > system on the planet is POSIX-compliant. I also know that there are > machines with no OS - presumably a sockets package would be an > optional thing for implementations that didn't require it. I am not > against POSIX - I just think that if Ada is going to have some kind > of sockets package, it ought to abstract itself one layer away at > least so that POSIX is not the only possible answer. > > > On the contrary, as I said, POSIX _is_ an abstract interface, and > > implementations have some freedom in how they implement it. > > > It is an "abstract interface" for a UNIX-like implementation. There > are OS's besides UNIX and possibly in the next ten years or so that > an Ada standard would have to live, there may be a bunch more > non-UNIX operating systems out there. I have no objection to POSIX > or UNIX - just suggesting that an Ada standard would do well to not > dictate either POSIX or UNIX as the only possible answer. Maybe you have a point here ("all problems can be solved with an additional level of indirection", I think was the quote). It probably depends on how difficult it would be to implement POSIX.5 sockets on non-POSIX platforms. Furthermore, I would think that anyone designing a new OS in the next ten years would want to make it POSIX-compliant, because it would be too difficult to try an impose an alternative API. In fact, you've probably noticed that even the MVS and z/OS mainframe operating systems became POSIX-compliant for just that reason. So, if anyone on this newsgroup wants to implement a sockets package in Ada, I'd suggest they make sure the external API is POSIX.5, whatever their underlying platform is. > > P.S. There is already an implementation of the POSIX standard > > available at no cost under the GPL. It is called FLORIST and is > > maintained by ACT. From what I understand, it is currently a thin > > binding to a POSIX-compliant underlying OS (including sockets), > > but providing alternative package bodies is probably feasible for > > all kinds of platforms. > > I am aware of FLORIST. You'd have a problem getting FLORIST adopted > as the Ada standard - primarily because it is vendor specific and > GPL licensed. Other vendors will want an answer that does not put > GNAT/ACT in the driver's seat. (Although this might be a moot > issue. One has to wonder how many of the other Ada vendors have a > vigorous interest in future Ada standards. Or are many of them > looking at it as a cash-cow to be milked for whatever they can get > and then move on to more profitable markets?) I agree with you entirely. I wasn't trying to suggest that FLORIST should becomme the Ada standard. In fact, FLORIST is an implementation; the Ada standard would only be an interface (API) and I still think that this API should be POSIX.5, unless it is *impossible* (not just difficult) to implement POSIX on some platform. Ease of implementation was the design goal of C, not Ada. Currently, I am aware of only one platform that remains non-POSIX, and that is Windows. Yet I don't think it would be impossible to write a POSIX.5 thick binding on top of it (I mean for sockets, not the entire OS). -- Ludovic Brenta.