2015-02-20 Arnaud Charlet <charlet@adacore.com>
[official-gcc.git] / gcc / ada / doc / gnat_rm / obsolescent_features.rst
blobf5ea188a34dfa3b9fa3113b8b3f0d96d78a03aae
1 .. _Obsolescent_Features:
3 ********************
4 Obsolescent Features
5 ********************
7 This chapter describes features that are provided by GNAT, but are
8 considered obsolescent since there are preferred ways of achieving
9 the same effect. These features are provided solely for historical
10 compatibility purposes.
12 .. _pragma_No_Run_Time:
14 pragma No_Run_Time
15 ==================
17 The pragma `No_Run_Time` is used to achieve an affect similar
18 to the use of the "Zero Foot Print" configurable run time, but without
19 requiring a specially configured run time. The result of using this
20 pragma, which must be used for all units in a partition, is to restrict
21 the use of any language features requiring run-time support code. The
22 preferred usage is to use an appropriately configured run-time that
23 includes just those features that are to be made accessible.
25 .. _pragma_Ravenscar:
27 pragma Ravenscar
28 ================
30 The pragma `Ravenscar` has exactly the same effect as pragma
31 `Profile (Ravenscar)`. The latter usage is preferred since it
32 is part of the new Ada 2005 standard.
34 .. _pragma_Restricted_Run_Time:
36 pragma Restricted_Run_Time
37 ==========================
39 The pragma `Restricted_Run_Time` has exactly the same effect as
40 pragma `Profile (Restricted)`. The latter usage is
41 preferred since the Ada 2005 pragma `Profile` is intended for
42 this kind of implementation dependent addition.
44 .. _pragma_Task_Info:
46 pragma Task_Info
47 ================
49 The functionality provided by pragma `Task_Info` is now part of the
50 Ada language. The `CPU` aspect and the package
51 `System.Multiprocessors` offer a less system-dependent way to specify
52 task affinity or to query the number of processsors.
54 Syntax
56 .. code-block:: ada
58   pragma Task_Info (EXPRESSION);
59   
60 This pragma appears within a task definition (like pragma
61 `Priority`) and applies to the task in which it appears.  The
62 argument must be of type `System.Task_Info.Task_Info_Type`.
63 The `Task_Info` pragma provides system dependent control over
64 aspects of tasking implementation, for example, the ability to map
65 tasks to specific processors.  For details on the facilities available
66 for the version of GNAT that you are using, see the documentation
67 in the spec of package System.Task_Info in the runtime
68 library.
70 .. _package_System_Task_Info:
72 package System.Task_Info (:file:`s-tasinf.ads`)
73 ===============================================
75 This package provides target dependent functionality that is used
76 to support the `Task_Info` pragma. The predefined Ada package
77 `System.Multiprocessors` and the `CPU` aspect now provide a
78 standard replacement for GNAT's `Task_Info` functionality.
80 .. raw:: latex
82     \appendix