comp.lang.ada
 help / color / mirror / Atom feed
From: "Warren W. Gay VE3WWG" <ve3wwg@cogeco.ca>
Subject: Re: ISO/IEC 14519 - Ada POSIX binding
Date: Mon, 23 Jun 2003 12:13:46 -0400
Date: 2003-06-23T12:13:46-04:00	[thread overview]
Message-ID: <3EF7273A.8060704@cogeco.ca> (raw)
In-Reply-To: un4Ja.7658$ZE.5855@lakeread05

David Emery wrote:
> Florian Weimer wrote:
>> David Emery <demery@cox.net> writes:
>>> If you read the rationale (one of the best parts of the document,
>>> IMHO), you'll see that the primary consideration for this decision
>>> is the fact that the set of errors for any given POSIX system call
>>> is NOT fixed.  POSIX defines a minimum set of error conditions,
>>> implementations may add additional errors (and most have, particularly
>>> as network-based computing has expanded.) Any error handling technique
>>> must accomodate extension.
>>
>> And the POSIX.5 mechanism gives us this extensibility?  I don't think
>> so.
>>
>> If a POSIX.5 implementation raises an exception not expected by the
>> application, it won't be able to attribute it to the POSIX subsystem
>> at all (unless the application jumps through hoops and uses the Ada 95
>> feature that yields the full expanded name of the exception).
> 
> An implementation of POSIX.5 that raises any exception other than
> POSIX.POSIX_Error (or the predefined exceptions), is NON-CONFORMING
> (i.e. "wrong").
> 
> The error reporting model is for the POSIX call to raise
> POSIX.POSIX_Error.  (Unlike in C...) The application program must
> handle this exception somehow, or be terminated.  (In the latter
> case, the value of the POSIX process's return code is 42, "Unhandled
> Exception."  If this number sounds familiar, you're right.  See the
> Rationale for an explanation :-).
> 
> Anyway, it's up to the application program to do The Right Thing.
> Good practice would be
>     CALL_POSIX: begin
>         posix_system_call (...);
>     exception
>         when POSIX.POSIX_Error =>
>             case POSIX.Error_Code is
>                 -- don't quote me on the exact
>                 -- error code values below
>                 when POSIX.No_Such_File => ...
>                 when POSIX.Bad_File_Descriptor => ...
>                 when others => ...
>                     -- represents an error the
>                     -- application cannot handle
>         when others => ...
>     end CALL_POSIX;

Does the standard address error codes in any way?

For example, some operations on some platforms return EAGAIN,
while others return EWOULDBLOCK (IIRC, non-blocking I/O does
this for example). Does FLORIST and/or the POSIX standard
take a position on this?

I have always found these issues particularly annoying for
portable code.
-- 
Warren W. Gay VE3WWG
http://home.cogeco.ca/~ve3wwg




  parent reply	other threads:[~2003-06-23 16:13 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-06-19 21:43 ISO/IEC 14519 - Ada POSIX binding Mark Lorenzen
2003-06-19 21:29 ` tmoran
2003-06-28 23:48   ` Richard Riehle
2003-06-20 11:57 ` Marin David Condic
2003-06-20 14:08   ` Ludovic Brenta
2003-06-20 16:39     ` Warren W. Gay VE3WWG
2003-06-20 18:33       ` tmoran
2003-06-20 19:09         ` Warren W. Gay VE3WWG
2003-06-21 19:14         ` Florian Weimer
2003-06-21 19:42           ` tmoran
2003-06-21 21:04             ` Robert I. Eachus
2003-06-29 15:05             ` Florian Weimer
2003-06-20 19:24       ` Georg Bauhaus
2003-06-20 20:49         ` Warren W. Gay VE3WWG
2003-06-20 20:49       ` Wesley Groleau
2003-06-20 23:05         ` Mark Lorenzen
2003-06-21  1:49         ` David Emery
2003-06-21 19:19           ` Florian Weimer
2003-06-21 21:47             ` David Emery
2003-06-21 22:22               ` Larry Kilgallen
2003-06-23 16:13               ` Warren W. Gay VE3WWG [this message]
2003-06-23 22:41                 ` Berend de Boer
2003-06-24  9:52                   ` Lutz Donnerhacke
2003-06-24 20:43                     ` Berend de Boer
2003-06-25  9:02                       ` Pascal Obry
2003-06-25  9:46                       ` Lutz Donnerhacke
2003-06-25 21:19                         ` Berend de Boer
2003-06-21 13:01       ` Pascal Obry
2003-06-21 12:11     ` Marin David Condic
2003-06-21 12:44       ` Ludovic Brenta
2003-06-21 13:03         ` Larry Kilgallen
2003-06-21 22:28           ` Ludovic Brenta
2003-06-22  3:45             ` Larry Kilgallen
2003-06-22  8:47               ` Mark Lorenzen
2003-06-23 16:36         ` Warren W. Gay VE3WWG
2003-06-24 11:46           ` Marin David Condic
2003-06-21 19:09 ` Florian Weimer
2003-06-21 22:38   ` Mark Lorenzen
2003-06-21 22:51     ` Ludovic Brenta
2003-06-23 16:54       ` Warren W. Gay VE3WWG
2003-06-24 11:49         ` Marin David Condic
2003-06-24 13:31           ` Warren W. Gay VE3WWG
2003-06-23 16:46     ` Warren W. Gay VE3WWG
2003-06-23 22:43       ` Berend de Boer
2003-06-29 15:10     ` Florian Weimer
2003-06-29 20:58       ` David Emery
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox