Preface

This summary provides technical information about the ERC32 Ada cross compiler. It is intended for anyone evaluating cross compilers for development environments using workstations running the UNIX operating system, and microprocessor targets. The reader is expected to be familiar with the Ada 95 programming language.

The information in this summary is organized according to the Ada-Europe Guidelines for Ada compiler specification and selection. These guidelines pose questions about an Ada implementation that are designed to assist vendors and users of Ada compilers. Although written for Ada 83, these guidelines continue to be relevant for Ada 95, and for this summary, we include answers to any Ada 95-specific questions.

Questions from the guidelines are not restated; topics are discussed in a manner that makes it unnecessary to refer to the original questions. Supplementary information is provided as appropriate. An appendix shows listing from two small compilations to help answer many of the questions related to compilation listings and error messages. The presentation is terse to provide as much information as possible in a compact form.

The Ada-Europe Guidelines for Ada compiler specification and selection were written in 1982 by J.C.D. Nissen, B.A. Wichmann, and other members of Ada-Europe, with partial support from the Commission of the European Communities. They are available from the National Physical Laboratory as NPL report DITC 10/82, ISSN 0262-5369. They were also reprinted in Ada Letters, Vol. III, No. 1 (July, August 1983), pp. 37-50. (Ada Letters is published every two months by SIGAda, the ACM Special Interest Group on Ada.)

Version 1.7. Version 1.7 adds exception handling but does not support exception propagation (down the dynamic stack). Handlers can only handle exceptions raised locally. Version 1.7 also adds a static subset of programming by extension. Dispatching is not supported and the attribute 'Class is prohibited. Version 1.7 also adds simulation of the EDAC and random single-bit errors.

Version 1.6. Version 1.6 offers broader functionality with a smaller run-time system. The default profile is extended with allocators, catenation operators and the Ada 83 rendezvous. Functions that return unconstrained types are also permitted. So-called "emulations" are added for systems that execute from EPROM, or copy code from EPROM to RAM and execute it there.

Version 1.5. Version 1.5 includes further support for real-time systems. Several Ada child packages that were previously absent are now available in the default profile. We have added the pragma Profile, which offers a choice of five mission-critical profiles. Note that ERC32 Ada still prohibits non-static tasks, the rendezvous, allocators and exception handlers, and other Ada features that depend on these.

Version 1.4. For version 1.4 the standard target is the Temic TSC695. This is a single chip implementation of the ERC32.

Version 1.3. Version 1.3 introduces user-mode tasks, and limits potentially dangerous operations to supervisor mode. Tasks use traps to communicate with the run-time system, which may be loaded as a separate memory image.

Version 1.2. The main change since Version 1.1 is the addition of a limited form of Ada tasking that supports the Ravenscar Profile. The profile includes tasks and protected objects declared in library packages, and a limited number of features from Annexes C and D.

Version 1.1. Version 1.1 offers all the features of the safety-critical HOLD III compiler developed for Lucas Aerospace but targeted to the ERC32 rather than the Motorola MC68020.