Ravenscar

All XGC compilers are designed for hard real-time applications and offer a small run-time footprint and fast response to real-time events. The default profile offers a wide range of real-time features that will be suitable for most applications. For more critical applications, XGC Ada compilers support the Ravenscar profile. This places further restrictions on Ada language features acceptable to the compiler.

The Ravenscar profile prohibits the following:

  • Task types and object declarations other than at the library level. Thus, there is no hierarchy of tasks
  • Dynamic allocation and unchecked deallocation of protected and task objects
  • Requeue
  • ATC (asynchronous transfer of control via the asynchronous select statement)
  • Abort statements including Abort_Task in package Ada.Task_Identification
  • Task entries
  • Dynamic priorities
  • Calendar package
  • Relative delays
  • Protected types and object declarations other than at the library level
  • Protected types with more than one entry
  • Protected entries with barriers other than a single boolean variable declared within the same protected type
  • An entry call to a protected entry with a call already queued
  • Asynchronous task control
  • All forms of select statement
  • User-defined task attributes
  • Dynamic interrupt handler attachments

Without the hierarchy of tasks performance is much improved and the tasking system is much smaller.