.
Last update: 1997-05-20
                                                                14519-92 #6
Class: No change
 _____________________________________________________________________________
	Topic:			Can implementation errors raise POSIX_ERROR?
	Relevant Sections:	ISO/IEC 14519:1994:  section 2.4.4
Defect Report:
-----------------------
The standard is not clear on whether an implementation may raise
POSIX_ERROR for implementation-defined and detected error conditions.
WG15 response for 9945-1:1990 (9945-1:1990):
--------------------------------------------------
Implementations may raise POSIX_Error for implementation-defined error
conditions.  
Implementations may return implementation-defined values of type
Error_Code.  However, an implementation-defined value must not
conflict with a POSIX-defined value.  The implementation-defined
values of type Error_Code may not defined in package POSIX; they must
be defined in an implementation-specific package.  The function
POSIX.Image on Error_Code should return the constant named defined in
the implementation-defined package.
Rationale for Interpretation:
-----------------------------
This is the intent, and is the reason why the type Error_Code is
defined to permit implementation extensions, as documented in the
rationale.   For instance, if the implementation wishes to add a new
error condition "Kernel_Is_Trashed", it should define
a package akin to the following:
     with POSIX;
     package Implementation_Errors is
         Kernel_Is_Trashed : constant POSIX.Error_Code
     	   	 	       	            := 42; 
     	   -- value must not conflict with values in package POSIX
     end Implementation_Errors;
The function POSIX.Image (Implementation_Errors.Kernel_Is_Trashed)
should return the string "Kernel_Is_Trashed" (and not 
"Implementation_Errors.Kernel_Is_Trashed").
Note that a nice feature of Ada9X will be that the
implementation-defined error codes can be defined in a child package
of package POSIX.  However, this is not supported by Ada83, and this
is an Ada83 binding.
 _____________________________________________________________________________