CVS difference for ais/ai-00204.txt

Differences between 1.7 and version 1.8
Log of other versions for file ais/ai-00204.txt

--- ais/ai-00204.txt	1999/10/07 00:25:06	1.7
+++ ais/ai-00204.txt	2003/01/16 01:28:06	1.8
@@ -1,18 +1,27 @@
-!standard B.5      (00)                               99-09-24  AI95-00204/02
+!standard B.2      (12)                               03-01-15  AI95-00204/03
+!standard B.2      (13)
+!standard B.3      (61/1)
+!standard B.4      (92)
+!standard B.5      (20)
 !class binding interpretation 99-09-24
 !status work item 99-02-02
 !status received 98-03-27
 !priority High
 !difficulty Medium
-!subject Interfaces.Fortran must be absent, right?
+!subject Language interfacing support is optional
 
 !summary
 
-Interface packages such as Interfaces.Fortran may be provided independently of
-whether the implementation supports the interfacing pragma for that
-language. This applies also to other foreign languages including C and
-COBOL.
+Interfacing support for languages such as C, Fortran and COBOL is optional. It
+may be provided for any language independently of the others.
 
+Furthermore, support for the interfacing packages (such as Interfaces.Fortran)
+and the convention pragma for a language my be provided independently of each
+other.
+
+If a particular package or convention is supported then it must be supported as
+described in Annex B.
+
 !question
 
 Is it permitted to provide a package Interfaces.Fortran even if pragma
@@ -23,18 +32,60 @@
 (See summary.)
 
 !wording
-
-Replace the first sentence of B.2(12) which states
 
-"For each implementation-defined convention identifier, there should be
-a child package of package Interfaces with the corresponding name."
+Replace paragraphs B.2(12) and B.2(13) which state
 
-by
+For each implementation-defined convention identifier, there should be a child
+package of package Interfaces with the corresponding name. This package should
+contain any declarations that would be useful for interfacing to the language
+(implementation) represented by the convention. Any declarations useful for
+interfacing to any language on the given hardware architecture should be
+provided directly in Interfaces.
+
+An implementation supporting an interface to C, COBOL, or Fortran should
+provided the corresponding package or packages described in the following
+clauses.
+
+by the following
+
+Support for interfacing to any foreign language is optional.
+
+A child package of package Interfaces with the name of a convention may be
+provided independently of whether the convention is supported by the pragma
+Convention and vice versa. Such a child package should contain any declarations
+that would be useful for interfacing to the language (implementation)
+represented by the convention. Any declarations useful for interfacing to any
+language on the given hardware architecture should be provided directly in
+Interfaces.
+
+If support is provided for convention C, C_Pass_By_Copy, Fortran or COBOL as an
+argument of pragma Convention then it shall be implemented as described in the
+following clauses. If support is provided for a package Interfaces.C,
+Interfaces.Fortran or Interfaces.COBOL then it shall be implemented together
+with its child packages as described in the following clauses.
+
+Replace paragraph B.3(61/1) by
+
+If an implementation supports the package Interfaces.C and it supports pragma
+Convention with a C convention_identifier for any one C eligible type or with a
+C_Pass_By_Copy convention_identifier for any one C_Pass_By_Copy eligible type,
+then it shall support pragma Convention with a C convention_identifier for all
+C eligible types and it shall support pragma Convention with a C_Pass_By_Copy
+convention_identifier for all C_Pass_By_Copy eligible types (see B.1).
+
+Replace paragraph B.4(92) by
+
+If an implementation supports the package Interfaces.COBOL and it supports
+pragma Convention with a COBOL convention_identifier for any one COBOL eligible
+type then it shall support it for all COBOL eligible types (see B.1).
+
+Replace paragraph B.5(20) by
+
+If an implementation supports the package Interfaces.Fortran and it supports
+pragma Convention with a Fortran convention_identifier for any one Fortran
+eligible type then it shall support it for all Fortran eligible types (see
+B.1).
 
-"A child package of package Interfaces with the name of a convention may
-be provided irrespective of whether the convention is supported by the
-pragma Convention."
-
 !discussion
 
 There are two primary reasons for interfacing to another language such as
@@ -58,13 +109,73 @@
 
 !corrigendum B.02(12)
 
-@dprepl
-For each implementation-defined convention identifier, there should be
-a child package of package Interfaces with the corresponding name.
+@drepl
+For each implementation-defined convention identifier, there should be a child
+package of package Interfaces with the corresponding name. This package should
+contain any declarations that would be useful for interfacing to the language
+(implementation) represented by the convention. Any declarations useful for
+interfacing to any language on the given hardware architecture should be
+provided directly in Interfaces.
+@dby
+Support for interfacing to any foreign language is optional.
+
+A child package of package Interfaces with the name of a convention may be
+provided independently of whether the convention is supported by the pragma
+Convention and vice versa. Such a child package should contain any declarations
+that would be useful for interfacing to the language (implementation)
+represented by the convention. Any declarations useful for interfacing to any
+language on the given hardware architecture should be provided directly in
+Interfaces.
+
+!corrigendum B.02(13)
+
+@drepl
+An implementation supporting an interface to C, COBOL, or Fortran should
+provided the corresponding package or packages described in the following
+clauses.
+@dby
+If support is provided for convention C, C_Pass_By_Copy, Fortran or COBOL as an
+argument of pragma Convention then it shall be implemented as described in the
+following clauses. If support is provided for a package Interfaces.C,
+Interfaces.Fortran or Interfaces.COBOL then it shall be implemented together
+with its child packages as described in the following clauses.
+
+!corrigendum B.03(61/1)
+
+@drepl
+An implementation shall support pragma Convention with a C
+@fa<@i<convention>_identifier> for a C-eligible type (see B.1). An
+implementation shall support pragma Convention with a C_Pass_By_Copy
+@fa<@i<convention>_identifier> for a C_Pass_By_Copy-eligible type.
+@dby
+If an implementation supports the package Interfaces.C and it supports pragma
+Convention with a C @fa<@i<convention>_identifier> for any one C eligible type
+or with a C_Pass_By_Copy @fa<@i<convention>_identifier> for any one
+C_Pass_By_Copy eligible type, then it shall support pragma Convention with a C
+@fa<@i<convention>_identifier> for all C eligible types and it shall support
+pragma Convention with a C_Pass_By_Copy @fa<@i<convention>_identifier> for all
+C_Pass_By_Copy eligible types (see B.1).
+
+!corrigendum B.04(92)
+
+@drepl
+An implementation shall support pragma Convention with a COBOL
+@fa<@i<convention>_identifier> for a COBOL-eligible type (see B.1).
+@dby
+If an implementation supports the package Interfaces.COBOL and it supports
+pragma Convention with a COBOL @fa<@i<convention>_identifier> for any one COBOL
+eligible type then it shall support it for all COBOL eligible types (see B.1).
+
+!corrigendum B.05(20)
+
+@drepl
+An implementation shall support pragma Convention with a Fortran
+@fa<@i<convention>_identifier> for a Fortran-eligible type (see B.1).
 @dby
-A child package of package Interfaces with the name of a convention may
-be provided irrespective of whether the convention is supported by the
-pragma Convention.
+If an implementation supports the package Interfaces.Fortran and it supports
+pragma Convention with a Fortran @fa<@i<convention>_identifier> for any one
+Fortran eligible type then it shall support it for all Fortran eligible types
+(see B.1).
 
 !ACATS test
 

Questions? Ask the ACAA Technical Agent