CVS difference for ai12s/ai12-0135-1.txt

Differences between 1.2 and version 1.3
Log of other versions for file ai12s/ai12-0135-1.txt

--- ai12s/ai12-0135-1.txt	2014/10/14 03:53:10	1.2
+++ ai12s/ai12-0135-1.txt	2015/01/27 01:01:16	1.3
@@ -1,8 +1,8 @@
-!standard A.8.1(10)                          14-10-09   AI12-0135-1/01
-!standard A.8.2(28/3)
-!standard A.8.4(10)
+!standard B.1(14/3)                             15-01-26   AI12-0135-1/02
+!standard B.1(41/3)
 !class Amendment 14-10-09
 !status work item 14-10-09
+!status work item 15-01-26
 !status received 14-08-18
 !priority Low
 !difficulty Easy
@@ -10,7 +10,8 @@
 
 !summary
 
-** TBD.
+Enumeration types are eligible for all languages that interface with
+Ada, subject to a limitation on their range of internal codes.
 
 !problem
 
@@ -22,32 +23,35 @@
 
 !proposal
 
-Allow enumeration types as eligible for convention C (at least).
+Require support for interfacing with Ada enumeration types, so long as
+the number of internal codes is within some implementation defined range.
 
 !wording
 
-** TBD.
+Add after B.1(14/3):
 
+  * T is an enumeration type such that all internal codes (whether assigned
+    by default or explicitly) are within an implementation-defined range
+    that includes at least the range of values 0 .. 2**16-1;
+
+Modify the last sentence of B.1(41/3):
+
+  Specifying the Convention aspect need not be supported for scalar
+  types{, other than enumeration types whose internal codes fall within
+  the range 0 .. 2**16-1}.
+
 !discussion
 
 For some reason, B.1(12-21/3) do not require any scalar types to be
 eligible for convention L. Perhaps that is because using the scalar
 types in the various interface packages is preferred.
-
-That's not sensible in the case of enumeration types, however. Many languages
-have some type similar to Ada's enumerations, and direct mapping should be
-supported if possible.
-
-[I don't know whether we should (1) only require such support for C;
-(2) require such support for all languages where it makes sense; or
-(3) only require it in some limited case (such as when a size is
-given for the enumeration type).
-
-Portability says that we ought to support something, but it's unclear if the
-Ada compiler has enough information to make the correct mapping.
 
-OTOH, most existing Ada compilers (all of the ones I know of for sure)
-support this capability. It's sad that it's not required.]
+That's not sensible in the case of enumeration types, however. Many
+languages have some type similar to Ada's enumerations, and direct
+mapping should be supported if possible. Therefore we have chosen to
+require support for enumeration types in all languages that interface
+with Ada, subject to an implementation-defined limitation on the range
+of internal codes.
 
 !ASIS
 

Questions? Ask the ACAA Technical Agent