[comp.lang.ada] Validation questions

french@skvax1.csc.ti.COM (05/06/88)

Folks,

I have been reading the AJPO Validation Procedures and Guidelines
(issued on 1-Jan-1987) that I downloaded from the AdaIC bboard.
I have some questions that I would like to get opinions on.

1. Derived Compilers.  Once an Ada compiler has a current validation
   certificate, then variations or modifications to that Ada compiler
   and/or its configuration (which includes the target run-time
   system) result in a "Derived Compiler".
   The AJPO guidelines and policies document describes a "Target
   Run-Time System" as "The set of sub-programs, which may be invoked by
   linking, loading, and executing object code generated by an Ada
   compiler.  If these sub-programs use or depend upon the services of
   an operating system, then the target run-time system includes those
   portions of that operating system."
   A vendor may request to register a derived compiler.  The procedures
   are well-defined and extensive.

   There are a number of issues relating to this current policy that
   I am unclear on:
   o If we use "extension fields" that are available in various Ada
     runtime systems (such as user-defined extensions to the Task
     Control Blocks, or hooks into special program startup and
     shutdown procedures) does the compiler in this new configuration
     now require "derived compiler" status?
     If so, is it the _vendor's_ responsibility to register
     the derived status?  The guidelines document states that it is the
     vendor's responsibility.  However, if I made the change, I cannot
     reasonably expect the vendor to do this for me,  can I?
   o The definition (above) of "Target Run-Time System" could include
     such user-defined items as math functions, device interfaces, and,
     in fact, any other user programmed library of commonly used
     subprograms and packages.  By carefully interpreting the wording we
     can limit it to only those subprograms that the compiler causes to
     be used directly (and not those subprograms that the user program
     causes to be used).  What is the true meaning of this definition?

2. Ada compilers for restricted targets. A "restricted target" is
   defined as "a real system target on which not all ACVC test can be
   executed but which can execute object code generated by a validated
   compiler for an associated generic target in combination with
   application-specific run-time libraries and/or runtime support."
   The validated compiler for the generic target cannot generate
   different code for the restricted target.
   There are three conditions that allow an ada compiler to be called
   a "project validated" compiler for a restricted target:
   1. the project-validated compiler for the generic target is a
      validated (or derived) Ada compiler.
   2. All mandatory features of Ada that can be supported by the
      hardware, or are emulated on the restricted target, are
      supported by the compiler for the restricted target. (the
      compiler should not be arbitrarily constrained to a subset of
      the Ada language).
   3. All application-specific run-time libraries for the restricted
      target are contained within that application and do not affect
      the Ada compiler for the generic target or the restricted
      target when used to generate code for other applications.
   Items 1. and 3. are acceptable, however, I am unclear on item 2.
   Does this mean that if a target hardware configuration can support
   Ada language features then they _must_ be supported?  For example,
   if an application is not going to use tasking in its application
   (for any reason), but is planning to develop or modify a runtime
   system that supports custom features of the application (such custom
   features as multi-processor support, peculiar memory configurations,
   unusual interrupt structures, security, etc.) then the runtime
   modifications must be developed to support full Ada including 
   tasking, even though, in this application, it will not be used
   with tasking?  This could be costly and entail a significant amount
   of unncessary extra work.

Thanks for the help in interpreting this.

-Stewart French
Texas Instruments
french@skacsl.ti.com  (ignore the header information)