.. _Obsolescent_Features:

********************
Obsolescent Features
********************

This chapter describes features that are provided by GNAT, but are
considered obsolescent since there are preferred ways of achieving
the same effect. These features are provided solely for historical
compatibility purposes.

.. _pragma_No_Run_Time:

pragma No_Run_Time
==================

The pragma ``No_Run_Time`` is used to achieve an affect similar
to the use of the "Zero Foot Print" configurable run time, but without
requiring a specially configured run time. The result of using this
pragma, which must be used for all units in a partition, is to restrict
the use of any language features requiring run-time support code. The
preferred usage is to use an appropriately configured run-time that
includes just those features that are to be made accessible.

.. _pragma_Ravenscar:

pragma Ravenscar
================

The pragma ``Ravenscar`` has exactly the same effect as pragma
``Profile (Ravenscar)``. The latter usage is preferred since it
is part of the new Ada 2005 standard.

.. _pragma_Restricted_Run_Time:

pragma Restricted_Run_Time
==========================

The pragma ``Restricted_Run_Time`` has exactly the same effect as
pragma ``Profile (Restricted)``. The latter usage is
preferred since the Ada 2005 pragma ``Profile`` is intended for
this kind of implementation dependent addition.

.. _pragma_Task_Info:

pragma Task_Info
================

The functionality provided by pragma ``Task_Info`` is now part of the
Ada language. The ``CPU`` aspect and the package
``System.Multiprocessors`` offer a less system-dependent way to specify
task affinity or to query the number of processors.

Syntax

.. code-block:: ada

  pragma Task_Info (EXPRESSION);

This pragma appears within a task definition (like pragma
``Priority``) and applies to the task in which it appears.  The
argument must be of type ``System.Task_Info.Task_Info_Type``.
The ``Task_Info`` pragma provides system dependent control over
aspects of tasking implementation, for example, the ability to map
tasks to specific processors.  For details on the facilities available
for the version of GNAT that you are using, see the documentation
in the spec of package System.Task_Info in the runtime
library.

.. _package_System_Task_Info:

package System.Task_Info (:file:`s-tasinf.ads`)
===============================================

This package provides target dependent functionality that is used
to support the ``Task_Info`` pragma. The predefined Ada package
``System.Multiprocessors`` and the ``CPU`` aspect now provide a
standard replacement for GNAT's ``Task_Info`` functionality.

.. raw:: latex

    \appendix
