Contents   Index   Previous   Next


C.4 Preelaboration Requirements

1
   [This clause specifies additional implementation and documentation requirements for the Preelaborate pragma (see 10.2.1).]

Implementation Requirements

2
   The implementation shall not incur any run-time overhead for the elaboration checks of subprograms and protected_bodies declared in preelaborated library units.
3
   The implementation shall not execute any memory write operations after load time for the elaboration of constant objects declared immediately within the declarative region of a preelaborated library package, so long as the subtype and initial expression (or default initial expressions if initialized by default) of the object_declaration satisfy the following restrictions. {load time} The meaning of load time is implementation defined.
3.a
Discussion: On systems where the image of the partition is initially copied from disk to RAM, or from ROM to RAM, prior to starting execution of the partition, the intention is that ``load time'' consist of this initial copying step. On other systems, load time and run time might actually be interspersed.
4
5
6
7
8
8.a
Ramification: This cuts out attribute_references that are not static, except for Access and Address.
9
9.a
Ramification: This cuts out function_calls and type_conversions that are not static, including calls on attribute functions like 'Image and 'Value.
10
11
11.a
Reason: The intent is that aggregates all of whose scalar subcomponents are static, and all of whose access subcomponents are null, allocators for access-to-constant types, or X'Access, will be supported with no run-time code generated.

Documentation Requirements

12
    The implementation shall document any circumstances under which the elaboration of a preelaborated package causes code to be executed at run time.
13
    The implementation shall document whether the method used for initialization of preelaborated variables allows a partition to be restarted without reloading.
13.a
Implementation defined: Implementation-defined aspects of preelaboration.
13.b
Discussion: This covers the issue of the RTS itself being restartable, so that need not be a separate Documentation Requirement.

Implementation Advice

14
    It is recommended that preelaborated packages be implemented in such a way that there should be little or no code executed at run time for the elaboration of entities not already covered by the Implementation Requirements.

Contents   Index   Previous   Next   Legal