-
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Lokale Pragmas
124 lines (107 loc) · 5.09 KB
/
Lokale Pragmas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
pragma Warnings (Off, "*array aggregate*");
pragma License (GPL);
pragma Ada_2022;
pragma SPARK_Mode (Off);
pragma Elaboration_Checks (Static);
pragma Detect_Blocking;
pragma Task_Dispatching_Policy (FIFO_Within_Priorities);
pragma Locking_Policy (Ceiling_Locking);
pragma Check_Float_Overflow;
pragma Extensions_Allowed (Off);
pragma Restrictions (Simple_Barriers);
pragma Restrictions (No_Access_Parameter_Allocators);
pragma Restrictions (No_Coextensions);
pragma Restrictions (No_Dynamic_Accessibility_Checks);
pragma Restrictions (No_Dynamic_Attachment);
pragma Restrictions (No_Dynamic_Cpu_Assignment);
pragma Restrictions (No_Dynamic_Priorities);
pragma Restrictions (No_Entry_Calls_In_Elaboration_Code);
pragma Restrictions (No_Entry_Queue);
pragma Restrictions (No_Exception_Registration);
pragma Restrictions (No_Fixed_Io);
pragma Restrictions (No_Implicit_Heap_Allocations);
pragma Restrictions (No_Implicit_Task_Allocations);
pragma Restrictions (No_Implicit_Protected_Object_Allocations);
pragma Restrictions (No_Initialize_Scalars);
pragma Restrictions (No_Local_Timing_Events);
pragma Restrictions (No_Local_Protected_Objects);
pragma Restrictions (No_Protected_Type_Allocators);
pragma Restrictions (No_Protected_Types);
pragma Restrictions (No_Requeue_Statements);
pragma Restrictions (No_Select_Statements);
pragma Restrictions (No_Specific_Termination_Handlers);
pragma Restrictions (No_Stream_Optimizations);
pragma Restrictions (No_Tagged_Type_Registration);
pragma Restrictions (No_Task_Allocators);
pragma Restrictions (No_Task_Attributes_Package);
pragma Restrictions (No_Task_At_Interrupt_Priority);
pragma Restrictions (No_Task_Termination);
pragma Restrictions (No_Terminate_Alternatives);
pragma Restrictions (Static_Priorities);
pragma Restrictions (Static_Storage_Size);
pragma Restrictions (Immediate_Reclamation);
pragma Restrictions (No_Implementation_Identifiers);
pragma Restrictions (No_Unrecognized_Aspects);
pragma Restrictions (No_Unrecognized_Pragmas);
pragma Restrictions (Static_Dispatch_Tables);
pragma Restrictions (No_Implementation_Units);
pragma Restrictions (No_Obsolescent_Features);
pragma Restrictions (No_Implementation_Aspect_Specifications);
pragma Restrictions (No_Implementation_Attributes);
pragma Restrictions (Max_Protected_Entries => 0);
pragma Restrictions (Max_Select_Alternatives => 0);
pragma Restrictions (Max_Task_Entries => 0);
pragma Restrictions (Max_Asynchronous_Select_Nesting => 0);
pragma Restrictions (Max_Entry_Queue_Length => 0);
pragma Restrictions (No_Dependence => Ada.Asynchronous_Task_Control);
pragma Restrictions (No_Dependence => Ada.Execution_Time.Group_Budget);
pragma Restrictions (No_Dependence => Ada.Execution_Time.Timers);
pragma Restrictions (No_Dependence => Ada.Task_Attributes);
pragma Restrictions (No_Dependence => Ada.System.Multiprocessors.Dispatching_Domains);
-- Nicht benutzbar in meinem Spiel:
-- Die notwendige Verwendung von delay until verhinderte scheinbar den korrekten Abbruch von Tasks.
-- pragma Restrictions (No_Relative_Delay);
-- pragma Restrictions (No_Default_Stream_Attributes);
-- pragma Restrictions (No_Abort_Statements);
-- Verursacht Probleme, vermutlich weil pragma Restrictions (No_Abort_Statements); nicht aktiv ist.
-- pragma Restrictions (No_Finalization);
-- pragma Restrictions (No_Task_Hierarchy);
-- pragma Restrictions (No_Multiple_Elaboration);
-- Werde ich vermutlich nicht einbauen können, da Real_Time keine Datumsfunktion hat. Gibt es dazu eine alternative Lösung?
-- pragma Restrictions (No_Dependence => Ada.Calendar);
-- Ist das nicht identisch mit dem Oberen?
-- pragma Restrictions (No_Calendar);
-- Damit kann die ASFML nicht kompiliert werden.
-- pragma Normalize_Scalars;
-- Damit ist pragma Ordered nicht verwendbar.
-- pragma Restrictions (No_Implementation_Pragmas);
-- Veraltet:
-- Sollte durch pragma Restrictions (No_Dependence => Ada.Asynchronous_Task_Control) ersetzt worden sein.
-- pragma Restrictions (No_Asynchronous_Control);
-- pragma Restrictions (No_Unchecked_Conversion);
-- pragma Restrictions (No_Unchecked_Deallocation);
-- Sonstiges:
-- Scheint bei meinem Spiel nicht wirklich einen Unterschied zu bewirken.
-- Trotzdem verwenden?
-- pragma Discard_Names;
-- Sollte nicht mit -gnatVA verwendet werden.
-- Pragma Assume_No_Invalid_Values (Off);
-- pragma Implicit_Packing;
-- pragma Reviewable;
-- pragma Short_Circuit_And_Or;
-- pragma Short_Descriptors;
-- pragma Restrictions (No_Implicit_Loops);
-- Ist eine entspanntere Version von pragma Restrictions (Simple_Barriers), welches verwendet wird, sollte also nicht nötig sein.
-- pragma Restrictions (Pure_Barriers);
-- Prüfen was die folgenden drei Pragmas bewirken.
-- pragma Restrictions (No_Dependence => No_Specification_of_Aspect);
-- pragma Restrictions (No_Dependence => No_Use_Of_Attribute);
-- pragma Restrictions (No_Dependence => No_Use_Of_Pragma);
-- Vermutlich nachteilig, aber aus Vollständigkeitsgründen trotzdem hier:
-- pragma Aggregate_Individually_Assign;
-- pragma Allow_Integer_Address;
-- pragma Fast_Math;
-- pragma Overriding_Renamings;
-- pragma Suppress_All;
-- pragma Suppress_Exception_Locations;
-- pragma Assertion_Policy (Pre => Check);