.
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. _____________________________________________________________________________