1.. role:: switch(samp)
2
3.. _The_GNAT_Library:
4
5****************
6The GNAT Library
7****************
8
9The GNAT library contains a number of general and special purpose packages.
10It represents functionality that the GNAT developers have found useful, and
11which is made available to GNAT users.  The packages described here are fully
12supported, and upwards compatibility will be maintained in future releases,
13so you can use these facilities with the confidence that the same functionality
14will be available in future releases.
15
16The chapter here simply gives a brief summary of the facilities available.
17The full documentation is found in the spec file for the package.  The full
18sources of these library packages, including both spec and body, are provided
19with all GNAT releases.  For example, to find out the full specifications of
20the SPITBOL pattern matching capability, including a full tutorial and
21extensive examples, look in the :file:`g-spipat.ads` file in the library.
22
23For each entry here, the package name (as it would appear in a ``with``
24clause) is given, followed by the name of the corresponding spec file in
25parentheses.  The packages are children in four hierarchies, ``Ada``,
26``Interfaces``, ``System``, and ``GNAT``, the latter being a
27GNAT-specific hierarchy.
28
29Note that an application program should only use packages in one of these
30four hierarchies if the package is defined in the Ada Reference Manual,
31or is listed in this section of the GNAT Programmers Reference Manual.
32All other units should be considered internal implementation units and
33should not be directly ``with``\ ed by application code.  The use of
34a ``with`` clause that references one of these internal implementation
35units makes an application potentially dependent on changes in versions
36of GNAT, and will generate a warning message.
37
38.. _`Ada.Characters.Latin_9_(a-chlat9.ads)`:
39
40``Ada.Characters.Latin_9`` (:file:`a-chlat9.ads`)
41=================================================
42
43.. index:: Ada.Characters.Latin_9 (a-chlat9.ads)
44
45.. index:: Latin_9 constants for Character
46
47This child of ``Ada.Characters``
48provides a set of definitions corresponding to those in the
49RM-defined package ``Ada.Characters.Latin_1`` but with the
50few modifications required for ``Latin-9``
51The provision of such a package
52is specifically authorized by the Ada Reference Manual
53(RM A.3.3(27)).
54
55.. _`Ada.Characters.Wide_Latin_1_(a-cwila1.ads)`:
56
57``Ada.Characters.Wide_Latin_1`` (:file:`a-cwila1.ads`)
58======================================================
59
60.. index:: Ada.Characters.Wide_Latin_1 (a-cwila1.ads)
61
62.. index:: Latin_1 constants for Wide_Character
63
64This child of ``Ada.Characters``
65provides a set of definitions corresponding to those in the
66RM-defined package ``Ada.Characters.Latin_1`` but with the
67types of the constants being ``Wide_Character``
68instead of ``Character``.  The provision of such a package
69is specifically authorized by the Ada Reference Manual
70(RM A.3.3(27)).
71
72.. _`Ada.Characters.Wide_Latin_9_(a-cwila1.ads)`:
73
74``Ada.Characters.Wide_Latin_9`` (:file:`a-cwila1.ads`)
75======================================================
76
77.. index:: Ada.Characters.Wide_Latin_9 (a-cwila1.ads)
78
79.. index:: Latin_9 constants for Wide_Character
80
81This child of ``Ada.Characters``
82provides a set of definitions corresponding to those in the
83GNAT defined package ``Ada.Characters.Latin_9`` but with the
84types of the constants being ``Wide_Character``
85instead of ``Character``.  The provision of such a package
86is specifically authorized by the Ada Reference Manual
87(RM A.3.3(27)).
88
89.. _`Ada.Characters.Wide_Wide_Latin_1_(a-chzla1.ads)`:
90
91``Ada.Characters.Wide_Wide_Latin_1`` (:file:`a-chzla1.ads`)
92===========================================================
93
94.. index:: Ada.Characters.Wide_Wide_Latin_1 (a-chzla1.ads)
95
96.. index:: Latin_1 constants for Wide_Wide_Character
97
98This child of ``Ada.Characters``
99provides a set of definitions corresponding to those in the
100RM-defined package ``Ada.Characters.Latin_1`` but with the
101types of the constants being ``Wide_Wide_Character``
102instead of ``Character``.  The provision of such a package
103is specifically authorized by the Ada Reference Manual
104(RM A.3.3(27)).
105
106.. _`Ada.Characters.Wide_Wide_Latin_9_(a-chzla9.ads)`:
107
108``Ada.Characters.Wide_Wide_Latin_9`` (:file:`a-chzla9.ads`)
109===========================================================
110
111.. index:: Ada.Characters.Wide_Wide_Latin_9 (a-chzla9.ads)
112
113.. index:: Latin_9 constants for Wide_Wide_Character
114
115This child of ``Ada.Characters``
116provides a set of definitions corresponding to those in the
117GNAT defined package ``Ada.Characters.Latin_9`` but with the
118types of the constants being ``Wide_Wide_Character``
119instead of ``Character``.  The provision of such a package
120is specifically authorized by the Ada Reference Manual
121(RM A.3.3(27)).
122
123.. _`Ada.Containers.Formal_Doubly_Linked_Lists_(a-cfdlli.ads)`:
124
125``Ada.Containers.Formal_Doubly_Linked_Lists`` (:file:`a-cfdlli.ads`)
126====================================================================
127
128.. index:: Ada.Containers.Formal_Doubly_Linked_Lists (a-cfdlli.ads)
129
130.. index:: Formal container for doubly linked lists
131
132This child of ``Ada.Containers`` defines a modified version of the
133Ada 2005 container for doubly linked lists, meant to facilitate formal
134verification of code using such containers. The specification of this
135unit is compatible with SPARK 2014.
136
137Note that although this container was designed with formal verification
138in mind, it may well be generally useful in that it is a simplified more
139efficient version than the one defined in the standard. In particular it
140does not have the complex overhead required to detect cursor tampering.
141
142.. _`Ada.Containers.Formal_Hashed_Maps_(a-cfhama.ads)`:
143
144``Ada.Containers.Formal_Hashed_Maps`` (:file:`a-cfhama.ads`)
145============================================================
146
147.. index:: Ada.Containers.Formal_Hashed_Maps (a-cfhama.ads)
148
149.. index:: Formal container for hashed maps
150
151This child of ``Ada.Containers`` defines a modified version of the
152Ada 2005 container for hashed maps, meant to facilitate formal
153verification of code using such containers. The specification of this
154unit is compatible with SPARK 2014.
155
156Note that although this container was designed with formal verification
157in mind, it may well be generally useful in that it is a simplified more
158efficient version than the one defined in the standard. In particular it
159does not have the complex overhead required to detect cursor tampering.
160
161.. _`Ada.Containers.Formal_Hashed_Sets_(a-cfhase.ads)`:
162
163``Ada.Containers.Formal_Hashed_Sets`` (:file:`a-cfhase.ads`)
164============================================================
165
166.. index:: Ada.Containers.Formal_Hashed_Sets (a-cfhase.ads)
167
168.. index:: Formal container for hashed sets
169
170This child of ``Ada.Containers`` defines a modified version of the
171Ada 2005 container for hashed sets, meant to facilitate formal
172verification of code using such containers. The specification of this
173unit is compatible with SPARK 2014.
174
175Note that although this container was designed with formal verification
176in mind, it may well be generally useful in that it is a simplified more
177efficient version than the one defined in the standard. In particular it
178does not have the complex overhead required to detect cursor tampering.
179
180.. _`Ada.Containers.Formal_Ordered_Maps_(a-cforma.ads)`:
181
182``Ada.Containers.Formal_Ordered_Maps`` (:file:`a-cforma.ads`)
183=============================================================
184
185.. index:: Ada.Containers.Formal_Ordered_Maps (a-cforma.ads)
186
187.. index:: Formal container for ordered maps
188
189This child of ``Ada.Containers`` defines a modified version of the
190Ada 2005 container for ordered maps, meant to facilitate formal
191verification of code using such containers. The specification of this
192unit is compatible with SPARK 2014.
193
194Note that although this container was designed with formal verification
195in mind, it may well be generally useful in that it is a simplified more
196efficient version than the one defined in the standard. In particular it
197does not have the complex overhead required to detect cursor tampering.
198
199.. _`Ada.Containers.Formal_Ordered_Sets_(a-cforse.ads)`:
200
201``Ada.Containers.Formal_Ordered_Sets`` (:file:`a-cforse.ads`)
202=============================================================
203
204.. index:: Ada.Containers.Formal_Ordered_Sets (a-cforse.ads)
205
206.. index:: Formal container for ordered sets
207
208This child of ``Ada.Containers`` defines a modified version of the
209Ada 2005 container for ordered sets, meant to facilitate formal
210verification of code using such containers. The specification of this
211unit is compatible with SPARK 2014.
212
213Note that although this container was designed with formal verification
214in mind, it may well be generally useful in that it is a simplified more
215efficient version than the one defined in the standard. In particular it
216does not have the complex overhead required to detect cursor tampering.
217
218.. _`Ada.Containers.Formal_Vectors_(a-cofove.ads)`:
219
220``Ada.Containers.Formal_Vectors`` (:file:`a-cofove.ads`)
221========================================================
222
223.. index:: Ada.Containers.Formal_Vectors (a-cofove.ads)
224
225.. index:: Formal container for vectors
226
227This child of ``Ada.Containers`` defines a modified version of the
228Ada 2005 container for vectors, meant to facilitate formal
229verification of code using such containers. The specification of this
230unit is compatible with SPARK 2014.
231
232Note that although this container was designed with formal verification
233in mind, it may well be generally useful in that it is a simplified more
234efficient version than the one defined in the standard. In particular it
235does not have the complex overhead required to detect cursor tampering.
236
237.. _`Ada.Containers.Formal_Indefinite_Vectors_(a-cfinve.ads)`:
238
239``Ada.Containers.Formal_Indefinite_Vectors`` (:file:`a-cfinve.ads`)
240===================================================================
241
242.. index:: Ada.Containers.Formal_Indefinite_Vectors (a-cfinve.ads)
243
244.. index:: Formal container for vectors
245
246This child of ``Ada.Containers`` defines a modified version of the
247Ada 2005 container for vectors of indefinite elements, meant to
248facilitate formal verification of code using such containers. The
249specification of this unit is compatible with SPARK 2014.
250
251Note that although this container was designed with formal verification
252in mind, it may well be generally useful in that it is a simplified more
253efficient version than the one defined in the standard. In particular it
254does not have the complex overhead required to detect cursor tampering.
255
256.. _`Ada.Containers.Functional_Vectors_(a-cofuve.ads)`:
257
258``Ada.Containers.Functional_Vectors`` (:file:`a-cofuve.ads`)
259=================================================================
260
261.. index:: Ada.Containers.Functional_Vectors (a-cofuve.ads)
262
263.. index:: Functional vectors
264
265This child of ``Ada.Containers`` defines immutable vectors. These
266containers are unbounded and may contain indefinite elements. Furthermore, to
267be usable in every context, they are neither controlled nor limited. As they
268are functional, that is, no primitives are provided which would allow modifying
269an existing container, these containers can still be used safely.
270
271Their API features functions creating new containers from existing ones.
272As a consequence, these containers are highly inefficient. They are also
273memory consuming, as the allocated memory is not reclaimed when the container
274is no longer referenced. Thus, they should in general be used in ghost code
275and annotations, so that they can be removed from the final executable. The
276specification of this unit is compatible with SPARK 2014.
277
278.. _`Ada.Containers.Functional_Sets_(a-cofuse.ads)`:
279
280``Ada.Containers.Functional_Sets`` (:file:`a-cofuse.ads`)
281=================================================================
282
283.. index:: Ada.Containers.Functional_Sets (a-cofuse.ads)
284
285.. index:: Functional sets
286
287This child of ``Ada.Containers`` defines immutable sets. These containers are
288unbounded and may contain indefinite elements. Furthermore, to be usable in
289every context, they are neither controlled nor limited. As they are functional,
290that is, no primitives are provided which would allow modifying an existing
291container, these containers can still be used safely.
292
293Their API features functions creating new containers from existing ones.
294As a consequence, these containers are highly inefficient. They are also
295memory consuming, as the allocated memory is not reclaimed when the container
296is no longer referenced. Thus, they should in general be used in ghost code
297and annotations, so that they can be removed from the final executable. The
298specification of this unit is compatible with SPARK 2014.
299
300.. _`Ada.Containers.Functional_Maps_(a-cofuma.ads)`:
301
302``Ada.Containers.Functional_Maps`` (:file:`a-cofuma.ads`)
303=================================================================
304
305.. index:: Ada.Containers.Functional_Maps (a-cofuma.ads)
306
307.. index:: Functional maps
308
309This child of ``Ada.Containers`` defines immutable maps. These containers are
310unbounded and may contain indefinite elements. Furthermore, to be usable in
311every context, they are neither controlled nor limited. As they are functional,
312that is, no primitives are provided which would allow modifying an existing
313container, these containers can still be used safely.
314
315Their API features functions creating new containers from existing ones.
316As a consequence, these containers are highly inefficient. They are also
317memory consuming, as the allocated memory is not reclaimed when the container
318is no longer referenced. Thus, they should in general be used in ghost code
319and annotations, so that they can be removed from the final executable. The
320specification of this unit is compatible with SPARK 2014.
321
322.. _`Ada.Containers.Bounded_Holders_(a-coboho.ads)`:
323
324``Ada.Containers.Bounded_Holders`` (:file:`a-coboho.ads`)
325=========================================================
326
327.. index:: Ada.Containers.Bounded_Holders (a-coboho.ads)
328
329.. index:: Formal container for vectors
330
331This child of ``Ada.Containers`` defines a modified version of
332Indefinite_Holders that avoids heap allocation.
333
334.. _`Ada.Command_Line.Environment_(a-colien.ads)`:
335
336``Ada.Command_Line.Environment`` (:file:`a-colien.ads`)
337=======================================================
338
339.. index:: Ada.Command_Line.Environment (a-colien.ads)
340
341.. index:: Environment entries
342
343This child of ``Ada.Command_Line``
344provides a mechanism for obtaining environment values on systems
345where this concept makes sense.
346
347.. _`Ada.Command_Line.Remove_(a-colire.ads)`:
348
349``Ada.Command_Line.Remove`` (:file:`a-colire.ads`)
350==================================================
351
352.. index:: Ada.Command_Line.Remove (a-colire.ads)
353
354.. index:: Removing command line arguments
355
356.. index:: Command line, argument removal
357
358This child of ``Ada.Command_Line``
359provides a mechanism for logically removing
360arguments from the argument list.  Once removed, an argument is not visible
361to further calls on the subprograms in ``Ada.Command_Line`` will not
362see the removed argument.
363
364.. _`Ada.Command_Line.Response_File_(a-clrefi.ads)`:
365
366``Ada.Command_Line.Response_File`` (:file:`a-clrefi.ads`)
367=========================================================
368
369.. index:: Ada.Command_Line.Response_File (a-clrefi.ads)
370
371.. index:: Response file for command line
372
373.. index:: Command line, response file
374
375.. index:: Command line, handling long command lines
376
377This child of ``Ada.Command_Line`` provides a mechanism facilities for
378getting command line arguments from a text file, called a "response file".
379Using a response file allow passing a set of arguments to an executable longer
380than the maximum allowed by the system on the command line.
381
382.. _`Ada.Direct_IO.C_Streams_(a-diocst.ads)`:
383
384``Ada.Direct_IO.C_Streams`` (:file:`a-diocst.ads`)
385==================================================
386
387.. index:: Ada.Direct_IO.C_Streams (a-diocst.ads)
388
389.. index:: C Streams, Interfacing with Direct_IO
390
391This package provides subprograms that allow interfacing between
392C streams and ``Direct_IO``.  The stream identifier can be
393extracted from a file opened on the Ada side, and an Ada file
394can be constructed from a stream opened on the C side.
395
396.. _`Ada.Exceptions.Is_Null_Occurrence_(a-einuoc.ads)`:
397
398``Ada.Exceptions.Is_Null_Occurrence`` (:file:`a-einuoc.ads`)
399============================================================
400
401.. index:: Ada.Exceptions.Is_Null_Occurrence (a-einuoc.ads)
402
403.. index:: Null_Occurrence, testing for
404
405This child subprogram provides a way of testing for the null
406exception occurrence (``Null_Occurrence``) without raising
407an exception.
408
409.. _`Ada.Exceptions.Last_Chance_Handler_(a-elchha.ads)`:
410
411``Ada.Exceptions.Last_Chance_Handler`` (:file:`a-elchha.ads`)
412=============================================================
413
414.. index:: Ada.Exceptions.Last_Chance_Handler (a-elchha.ads)
415
416.. index:: Null_Occurrence, testing for
417
418This child subprogram is used for handling otherwise unhandled
419exceptions (hence the name last chance), and perform clean ups before
420terminating the program. Note that this subprogram never returns.
421
422.. _`Ada.Exceptions.Traceback_(a-exctra.ads)`:
423
424``Ada.Exceptions.Traceback`` (:file:`a-exctra.ads`)
425===================================================
426
427.. index:: Ada.Exceptions.Traceback (a-exctra.ads)
428
429.. index:: Traceback for Exception Occurrence
430
431This child package provides the subprogram (``Tracebacks``) to
432give a traceback array of addresses based on an exception
433occurrence.
434
435.. _`Ada.Sequential_IO.C_Streams_(a-siocst.ads)`:
436
437``Ada.Sequential_IO.C_Streams`` (:file:`a-siocst.ads`)
438======================================================
439
440.. index:: Ada.Sequential_IO.C_Streams (a-siocst.ads)
441
442.. index:: C Streams, Interfacing with Sequential_IO
443
444This package provides subprograms that allow interfacing between
445C streams and ``Sequential_IO``.  The stream identifier can be
446extracted from a file opened on the Ada side, and an Ada file
447can be constructed from a stream opened on the C side.
448
449.. _`Ada.Streams.Stream_IO.C_Streams_(a-ssicst.ads)`:
450
451``Ada.Streams.Stream_IO.C_Streams`` (:file:`a-ssicst.ads`)
452==========================================================
453
454.. index:: Ada.Streams.Stream_IO.C_Streams (a-ssicst.ads)
455
456.. index:: C Streams, Interfacing with Stream_IO
457
458This package provides subprograms that allow interfacing between
459C streams and ``Stream_IO``.  The stream identifier can be
460extracted from a file opened on the Ada side, and an Ada file
461can be constructed from a stream opened on the C side.
462
463.. _`Ada.Strings.Unbounded.Text_IO_(a-suteio.ads)`:
464
465``Ada.Strings.Unbounded.Text_IO`` (:file:`a-suteio.ads`)
466========================================================
467
468.. index:: Ada.Strings.Unbounded.Text_IO (a-suteio.ads)
469
470.. index:: Unbounded_String, IO support
471
472.. index:: Text_IO, extensions for unbounded strings
473
474This package provides subprograms for Text_IO for unbounded
475strings, avoiding the necessity for an intermediate operation
476with ordinary strings.
477
478.. _`Ada.Strings.Wide_Unbounded.Wide_Text_IO_(a-swuwti.ads)`:
479
480``Ada.Strings.Wide_Unbounded.Wide_Text_IO`` (:file:`a-swuwti.ads`)
481==================================================================
482
483.. index:: Ada.Strings.Wide_Unbounded.Wide_Text_IO (a-swuwti.ads)
484
485.. index:: Unbounded_Wide_String, IO support
486
487.. index:: Text_IO, extensions for unbounded wide strings
488
489This package provides subprograms for Text_IO for unbounded
490wide strings, avoiding the necessity for an intermediate operation
491with ordinary wide strings.
492
493.. _`Ada.Strings.Wide_Wide_Unbounded.Wide_Wide_Text_IO_(a-szuzti.ads)`:
494
495``Ada.Strings.Wide_Wide_Unbounded.Wide_Wide_Text_IO`` (:file:`a-szuzti.ads`)
496============================================================================
497
498.. index:: Ada.Strings.Wide_Wide_Unbounded.Wide_Wide_Text_IO (a-szuzti.ads)
499
500.. index:: Unbounded_Wide_Wide_String, IO support
501
502.. index:: Text_IO, extensions for unbounded wide wide strings
503
504This package provides subprograms for Text_IO for unbounded
505wide wide strings, avoiding the necessity for an intermediate operation
506with ordinary wide wide strings.
507
508.. _`Ada.Text_IO.C_Streams_(a-tiocst.ads)`:
509
510``Ada.Text_IO.C_Streams`` (:file:`a-tiocst.ads`)
511================================================
512
513.. index:: Ada.Text_IO.C_Streams (a-tiocst.ads)
514
515.. index:: C Streams, Interfacing with ``Text_IO``
516
517This package provides subprograms that allow interfacing between
518C streams and ``Text_IO``.  The stream identifier can be
519extracted from a file opened on the Ada side, and an Ada file
520can be constructed from a stream opened on the C side.
521
522.. _`Ada.Text_IO.Reset_Standard_Files_(a-tirsfi.ads)`:
523
524``Ada.Text_IO.Reset_Standard_Files`` (:file:`a-tirsfi.ads`)
525===========================================================
526
527.. index:: Ada.Text_IO.Reset_Standard_Files (a-tirsfi.ads)
528
529.. index:: Text_IO resetting standard files
530
531This procedure is used to reset the status of the standard files used
532by Ada.Text_IO.  This is useful in a situation (such as a restart in an
533embedded application) where the status of the files may change during
534execution (for example a standard input file may be redefined to be
535interactive).
536
537.. _`Ada.Wide_Characters.Unicode_(a-wichun.ads)`:
538
539``Ada.Wide_Characters.Unicode`` (:file:`a-wichun.ads`)
540======================================================
541
542.. index:: Ada.Wide_Characters.Unicode (a-wichun.ads)
543
544.. index:: Unicode categorization, Wide_Character
545
546This package provides subprograms that allow categorization of
547Wide_Character values according to Unicode categories.
548
549.. _`Ada.Wide_Text_IO.C_Streams_(a-wtcstr.ads)`:
550
551``Ada.Wide_Text_IO.C_Streams`` (:file:`a-wtcstr.ads`)
552=====================================================
553
554.. index:: Ada.Wide_Text_IO.C_Streams (a-wtcstr.ads)
555
556.. index:: C Streams, Interfacing with ``Wide_Text_IO``
557
558This package provides subprograms that allow interfacing between
559C streams and ``Wide_Text_IO``.  The stream identifier can be
560extracted from a file opened on the Ada side, and an Ada file
561can be constructed from a stream opened on the C side.
562
563.. _`Ada.Wide_Text_IO.Reset_Standard_Files_(a-wrstfi.ads)`:
564
565``Ada.Wide_Text_IO.Reset_Standard_Files`` (:file:`a-wrstfi.ads`)
566================================================================
567
568.. index:: Ada.Wide_Text_IO.Reset_Standard_Files (a-wrstfi.ads)
569
570.. index:: Wide_Text_IO resetting standard files
571
572This procedure is used to reset the status of the standard files used
573by Ada.Wide_Text_IO.  This is useful in a situation (such as a restart in an
574embedded application) where the status of the files may change during
575execution (for example a standard input file may be redefined to be
576interactive).
577
578.. _`Ada.Wide_Wide_Characters.Unicode_(a-zchuni.ads)`:
579
580``Ada.Wide_Wide_Characters.Unicode`` (:file:`a-zchuni.ads`)
581===========================================================
582
583.. index:: Ada.Wide_Wide_Characters.Unicode (a-zchuni.ads)
584
585.. index:: Unicode categorization, Wide_Wide_Character
586
587This package provides subprograms that allow categorization of
588Wide_Wide_Character values according to Unicode categories.
589
590.. _`Ada.Wide_Wide_Text_IO.C_Streams_(a-ztcstr.ads)`:
591
592``Ada.Wide_Wide_Text_IO.C_Streams`` (:file:`a-ztcstr.ads`)
593==========================================================
594
595.. index:: Ada.Wide_Wide_Text_IO.C_Streams (a-ztcstr.ads)
596
597.. index:: C Streams, Interfacing with ``Wide_Wide_Text_IO``
598
599This package provides subprograms that allow interfacing between
600C streams and ``Wide_Wide_Text_IO``.  The stream identifier can be
601extracted from a file opened on the Ada side, and an Ada file
602can be constructed from a stream opened on the C side.
603
604.. _`Ada.Wide_Wide_Text_IO.Reset_Standard_Files_(a-zrstfi.ads)`:
605
606``Ada.Wide_Wide_Text_IO.Reset_Standard_Files`` (:file:`a-zrstfi.ads`)
607=====================================================================
608
609.. index:: Ada.Wide_Wide_Text_IO.Reset_Standard_Files (a-zrstfi.ads)
610
611.. index:: Wide_Wide_Text_IO resetting standard files
612
613This procedure is used to reset the status of the standard files used
614by Ada.Wide_Wide_Text_IO. This is useful in a situation (such as a
615restart in an embedded application) where the status of the files may
616change during execution (for example a standard input file may be
617redefined to be interactive).
618
619.. _`GNAT.Altivec_(g-altive.ads)`:
620
621``GNAT.Altivec`` (:file:`g-altive.ads`)
622=======================================
623
624.. index:: GNAT.Altivec (g-altive.ads)
625
626.. index:: AltiVec
627
628This is the root package of the GNAT AltiVec binding. It provides
629definitions of constants and types common to all the versions of the
630binding.
631
632.. _`GNAT.Altivec.Conversions_(g-altcon.ads)`:
633
634``GNAT.Altivec.Conversions`` (:file:`g-altcon.ads`)
635===================================================
636
637.. index:: GNAT.Altivec.Conversions (g-altcon.ads)
638
639.. index:: AltiVec
640
641This package provides the Vector/View conversion routines.
642
643.. _`GNAT.Altivec.Vector_Operations_(g-alveop.ads)`:
644
645``GNAT.Altivec.Vector_Operations`` (:file:`g-alveop.ads`)
646=========================================================
647
648.. index:: GNAT.Altivec.Vector_Operations (g-alveop.ads)
649
650.. index:: AltiVec
651
652This package exposes the Ada interface to the AltiVec operations on
653vector objects. A soft emulation is included by default in the GNAT
654library. The hard binding is provided as a separate package. This unit
655is common to both bindings.
656
657.. _`GNAT.Altivec.Vector_Types_(g-alvety.ads)`:
658
659``GNAT.Altivec.Vector_Types`` (:file:`g-alvety.ads`)
660====================================================
661
662.. index:: GNAT.Altivec.Vector_Types (g-alvety.ads)
663
664.. index:: AltiVec
665
666This package exposes the various vector types part of the Ada binding
667to AltiVec facilities.
668
669.. _`GNAT.Altivec.Vector_Views_(g-alvevi.ads)`:
670
671``GNAT.Altivec.Vector_Views`` (:file:`g-alvevi.ads`)
672====================================================
673
674.. index:: GNAT.Altivec.Vector_Views (g-alvevi.ads)
675
676.. index:: AltiVec
677
678This package provides public 'View' data types from/to which private
679vector representations can be converted via
680GNAT.Altivec.Conversions. This allows convenient access to individual
681vector elements and provides a simple way to initialize vector
682objects.
683
684.. _`GNAT.Array_Split_(g-arrspl.ads)`:
685
686``GNAT.Array_Split`` (:file:`g-arrspl.ads`)
687===========================================
688
689.. index:: GNAT.Array_Split (g-arrspl.ads)
690
691.. index:: Array splitter
692
693Useful array-manipulation routines: given a set of separators, split
694an array wherever the separators appear, and provide direct access
695to the resulting slices.
696
697.. _`GNAT.AWK_(g-awk.ads)`:
698
699``GNAT.AWK`` (:file:`g-awk.ads`)
700================================
701
702.. index:: GNAT.AWK (g-awk.ads)
703
704.. index:: Parsing
705
706.. index:: AWK
707
708Provides AWK-like parsing functions, with an easy interface for parsing one
709or more files containing formatted data.  The file is viewed as a database
710where each record is a line and a field is a data element in this line.
711
712.. _`GNAT.Bind_Environment_(g-binenv.ads)`:
713
714``GNAT.Bind_Environment`` (:file:`g-binenv.ads`)
715================================================
716
717.. index:: GNAT.Bind_Environment (g-binenv.ads)
718
719.. index:: Bind environment
720
721Provides access to key=value associations captured at bind time.
722These associations can be specified using the :switch:`-V` binder command
723line switch.
724
725.. _`GNAT.Bounded_Buffers_(g-boubuf.ads)`:
726
727``GNAT.Bounded_Buffers`` (:file:`g-boubuf.ads`)
728===============================================
729
730.. index:: GNAT.Bounded_Buffers (g-boubuf.ads)
731
732.. index:: Parsing
733
734.. index:: Bounded Buffers
735
736Provides a concurrent generic bounded buffer abstraction.  Instances are
737useful directly or as parts of the implementations of other abstractions,
738such as mailboxes.
739
740.. _`GNAT.Bounded_Mailboxes_(g-boumai.ads)`:
741
742``GNAT.Bounded_Mailboxes`` (:file:`g-boumai.ads`)
743=================================================
744
745.. index:: GNAT.Bounded_Mailboxes (g-boumai.ads)
746
747.. index:: Parsing
748
749.. index:: Mailboxes
750
751Provides a thread-safe asynchronous intertask mailbox communication facility.
752
753.. _`GNAT.Bubble_Sort_(g-bubsor.ads)`:
754
755``GNAT.Bubble_Sort`` (:file:`g-bubsor.ads`)
756===========================================
757
758.. index:: GNAT.Bubble_Sort (g-bubsor.ads)
759
760.. index:: Sorting
761
762.. index:: Bubble sort
763
764Provides a general implementation of bubble sort usable for sorting arbitrary
765data items.  Exchange and comparison procedures are provided by passing
766access-to-procedure values.
767
768.. _`GNAT.Bubble_Sort_A_(g-busora.ads)`:
769
770``GNAT.Bubble_Sort_A`` (:file:`g-busora.ads`)
771=============================================
772
773.. index:: GNAT.Bubble_Sort_A (g-busora.ads)
774
775.. index:: Sorting
776
777.. index:: Bubble sort
778
779Provides a general implementation of bubble sort usable for sorting arbitrary
780data items.  Move and comparison procedures are provided by passing
781access-to-procedure values. This is an older version, retained for
782compatibility. Usually ``GNAT.Bubble_Sort`` will be preferable.
783
784.. _`GNAT.Bubble_Sort_G_(g-busorg.ads)`:
785
786``GNAT.Bubble_Sort_G`` (:file:`g-busorg.ads`)
787=============================================
788
789.. index:: GNAT.Bubble_Sort_G (g-busorg.ads)
790
791.. index:: Sorting
792
793.. index:: Bubble sort
794
795Similar to ``Bubble_Sort_A`` except that the move and sorting procedures
796are provided as generic parameters, this improves efficiency, especially
797if the procedures can be inlined, at the expense of duplicating code for
798multiple instantiations.
799
800.. _`GNAT.Byte_Order_Mark_(g-byorma.ads)`:
801
802``GNAT.Byte_Order_Mark`` (:file:`g-byorma.ads`)
803===============================================
804
805.. index:: GNAT.Byte_Order_Mark (g-byorma.ads)
806
807.. index:: UTF-8 representation
808
809.. index:: Wide characte representations
810
811Provides a routine which given a string, reads the start of the string to
812see whether it is one of the standard byte order marks (BOM's) which signal
813the encoding of the string. The routine includes detection of special XML
814sequences for various UCS input formats.
815
816.. _`GNAT.Byte_Swapping_(g-bytswa.ads)`:
817
818``GNAT.Byte_Swapping`` (:file:`g-bytswa.ads`)
819=============================================
820
821.. index:: GNAT.Byte_Swapping (g-bytswa.ads)
822
823.. index:: Byte swapping
824
825.. index:: Endianness
826
827General routines for swapping the bytes in 2-, 4-, and 8-byte quantities.
828Machine-specific implementations are available in some cases.
829
830.. _`GNAT.Calendar_(g-calend.ads)`:
831
832``GNAT.Calendar`` (:file:`g-calend.ads`)
833========================================
834
835.. index:: GNAT.Calendar (g-calend.ads)
836
837.. index:: Calendar
838
839Extends the facilities provided by ``Ada.Calendar`` to include handling
840of days of the week, an extended ``Split`` and ``Time_Of`` capability.
841Also provides conversion of ``Ada.Calendar.Time`` values to and from the
842C ``timeval`` format.
843
844.. _`GNAT.Calendar.Time_IO_(g-catiio.ads)`:
845
846``GNAT.Calendar.Time_IO`` (:file:`g-catiio.ads`)
847================================================
848
849.. index:: Calendar
850
851.. index:: Time
852
853.. index:: GNAT.Calendar.Time_IO (g-catiio.ads)
854
855.. _`GNAT.CRC32_(g-crc32.ads)`:
856
857``GNAT.CRC32`` (:file:`g-crc32.ads`)
858====================================
859
860.. index:: GNAT.CRC32 (g-crc32.ads)
861
862.. index:: CRC32
863
864.. index:: Cyclic Redundancy Check
865
866This package implements the CRC-32 algorithm.  For a full description
867of this algorithm see
868*Computation of Cyclic Redundancy Checks via Table Look-Up*,
869:title:`Communications of the ACM`, Vol. 31 No. 8, pp. 1008-1013,
870Aug. 1988.  Sarwate, D.V.
871
872.. _`GNAT.Case_Util_(g-casuti.ads)`:
873
874``GNAT.Case_Util`` (:file:`g-casuti.ads`)
875=========================================
876
877.. index:: GNAT.Case_Util (g-casuti.ads)
878
879.. index:: Casing utilities
880
881.. index:: Character handling (``GNAT.Case_Util``)
882
883A set of simple routines for handling upper and lower casing of strings
884without the overhead of the full casing tables
885in ``Ada.Characters.Handling``.
886
887.. _`GNAT.CGI_(g-cgi.ads)`:
888
889``GNAT.CGI`` (:file:`g-cgi.ads`)
890================================
891
892.. index:: GNAT.CGI (g-cgi.ads)
893
894.. index:: CGI (Common Gateway Interface)
895
896This is a package for interfacing a GNAT program with a Web server via the
897Common Gateway Interface (CGI).  Basically this package parses the CGI
898parameters, which are a set of key/value pairs sent by the Web server.  It
899builds a table whose index is the key and provides some services to deal
900with this table.
901
902.. _`GNAT.CGI.Cookie_(g-cgicoo.ads)`:
903
904``GNAT.CGI.Cookie`` (:file:`g-cgicoo.ads`)
905==========================================
906
907.. index:: GNAT.CGI.Cookie (g-cgicoo.ads)
908
909.. index:: CGI (Common Gateway Interface) cookie support
910
911.. index:: Cookie support in CGI
912
913This is a package to interface a GNAT program with a Web server via the
914Common Gateway Interface (CGI).  It exports services to deal with Web
915cookies (piece of information kept in the Web client software).
916
917.. _`GNAT.CGI.Debug_(g-cgideb.ads)`:
918
919``GNAT.CGI.Debug`` (:file:`g-cgideb.ads`)
920=========================================
921
922.. index:: GNAT.CGI.Debug (g-cgideb.ads)
923
924.. index:: CGI (Common Gateway Interface) debugging
925
926This is a package to help debugging CGI (Common Gateway Interface)
927programs written in Ada.
928
929.. _`GNAT.Command_Line_(g-comlin.ads)`:
930
931``GNAT.Command_Line`` (:file:`g-comlin.ads`)
932============================================
933
934.. index:: GNAT.Command_Line (g-comlin.ads)
935
936.. index:: Command line
937
938Provides a high level interface to ``Ada.Command_Line`` facilities,
939including the ability to scan for named switches with optional parameters
940and expand file names using wild card notations.
941
942.. _`GNAT.Compiler_Version_(g-comver.ads)`:
943
944``GNAT.Compiler_Version`` (:file:`g-comver.ads`)
945================================================
946
947.. index:: GNAT.Compiler_Version (g-comver.ads)
948
949.. index:: Compiler Version
950
951.. index:: Version, of compiler
952
953Provides a routine for obtaining the version of the compiler used to
954compile the program. More accurately this is the version of the binder
955used to bind the program (this will normally be the same as the version
956of the compiler if a consistent tool set is used to compile all units
957of a partition).
958
959.. _`GNAT.Ctrl_C_(g-ctrl_c.ads)`:
960
961``GNAT.Ctrl_C`` (:file:`g-ctrl_c.ads`)
962======================================
963
964.. index:: GNAT.Ctrl_C (g-ctrl_c.ads)
965
966.. index:: Interrupt
967
968Provides a simple interface to handle Ctrl-C keyboard events.
969
970.. _`GNAT.Current_Exception_(g-curexc.ads)`:
971
972``GNAT.Current_Exception`` (:file:`g-curexc.ads`)
973=================================================
974
975.. index:: GNAT.Current_Exception (g-curexc.ads)
976
977.. index:: Current exception
978
979.. index:: Exception retrieval
980
981Provides access to information on the current exception that has been raised
982without the need for using the Ada 95 / Ada 2005 exception choice parameter
983specification syntax.
984This is particularly useful in simulating typical facilities for
985obtaining information about exceptions provided by Ada 83 compilers.
986
987.. _`GNAT.Debug_Pools_(g-debpoo.ads)`:
988
989``GNAT.Debug_Pools`` (:file:`g-debpoo.ads`)
990===========================================
991
992.. index:: GNAT.Debug_Pools (g-debpoo.ads)
993
994.. index:: Debugging
995
996.. index:: Debug pools
997
998.. index:: Memory corruption debugging
999
1000Provide a debugging storage pools that helps tracking memory corruption
1001problems.
1002See ``The GNAT Debug_Pool Facility`` section in the :title:`GNAT User's Guide`.
1003
1004.. _`GNAT.Debug_Utilities_(g-debuti.ads)`:
1005
1006``GNAT.Debug_Utilities`` (:file:`g-debuti.ads`)
1007===============================================
1008
1009.. index:: GNAT.Debug_Utilities (g-debuti.ads)
1010
1011.. index:: Debugging
1012
1013Provides a few useful utilities for debugging purposes, including conversion
1014to and from string images of address values. Supports both C and Ada formats
1015for hexadecimal literals.
1016
1017.. _`GNAT.Decode_String_(g-decstr.ads)`:
1018
1019``GNAT.Decode_String`` (:file:`g-decstr.ads`)
1020=============================================
1021
1022.. index:: GNAT.Decode_String (g-decstr.ads)
1023
1024.. index:: Decoding strings
1025
1026.. index:: String decoding
1027
1028.. index:: Wide character encoding
1029
1030.. index:: UTF-8
1031
1032.. index:: Unicode
1033
1034A generic package providing routines for decoding wide character and wide wide
1035character strings encoded as sequences of 8-bit characters using a specified
1036encoding method. Includes validation routines, and also routines for stepping
1037to next or previous encoded character in an encoded string.
1038Useful in conjunction with Unicode character coding. Note there is a
1039preinstantiation for UTF-8. See next entry.
1040
1041.. _`GNAT.Decode_UTF8_String_(g-deutst.ads)`:
1042
1043``GNAT.Decode_UTF8_String`` (:file:`g-deutst.ads`)
1044==================================================
1045
1046.. index:: GNAT.Decode_UTF8_String (g-deutst.ads)
1047
1048.. index:: Decoding strings
1049
1050.. index:: Decoding UTF-8 strings
1051
1052.. index:: UTF-8 string decoding
1053
1054.. index:: Wide character decoding
1055
1056.. index:: UTF-8
1057
1058.. index:: Unicode
1059
1060A preinstantiation of GNAT.Decode_Strings for UTF-8 encoding.
1061
1062.. _`GNAT.Directory_Operations_(g-dirope.ads)`:
1063
1064``GNAT.Directory_Operations`` (:file:`g-dirope.ads`)
1065====================================================
1066
1067.. index:: GNAT.Directory_Operations (g-dirope.ads)
1068
1069.. index:: Directory operations
1070
1071Provides a set of routines for manipulating directories, including changing
1072the current directory, making new directories, and scanning the files in a
1073directory.
1074
1075.. _`GNAT.Directory_Operations.Iteration_(g-diopit.ads)`:
1076
1077``GNAT.Directory_Operations.Iteration`` (:file:`g-diopit.ads`)
1078==============================================================
1079
1080.. index:: GNAT.Directory_Operations.Iteration (g-diopit.ads)
1081
1082.. index:: Directory operations iteration
1083
1084A child unit of GNAT.Directory_Operations providing additional operations
1085for iterating through directories.
1086
1087.. _`GNAT.Dynamic_HTables_(g-dynhta.ads)`:
1088
1089``GNAT.Dynamic_HTables`` (:file:`g-dynhta.ads`)
1090===============================================
1091
1092.. index:: GNAT.Dynamic_HTables (g-dynhta.ads)
1093
1094.. index:: Hash tables
1095
1096A generic implementation of hash tables that can be used to hash arbitrary
1097data.  Provided in two forms, a simple form with built in hash functions,
1098and a more complex form in which the hash function is supplied.
1099
1100This package provides a facility similar to that of ``GNAT.HTable``,
1101except that this package declares a type that can be used to define
1102dynamic instances of the hash table, while an instantiation of
1103``GNAT.HTable`` creates a single instance of the hash table.
1104
1105.. _`GNAT.Dynamic_Tables_(g-dyntab.ads)`:
1106
1107``GNAT.Dynamic_Tables`` (:file:`g-dyntab.ads`)
1108==============================================
1109
1110.. index:: GNAT.Dynamic_Tables (g-dyntab.ads)
1111
1112.. index:: Table implementation
1113
1114.. index:: Arrays, extendable
1115
1116A generic package providing a single dimension array abstraction where the
1117length of the array can be dynamically modified.
1118
1119This package provides a facility similar to that of ``GNAT.Table``,
1120except that this package declares a type that can be used to define
1121dynamic instances of the table, while an instantiation of
1122``GNAT.Table`` creates a single instance of the table type.
1123
1124.. _`GNAT.Encode_String_(g-encstr.ads)`:
1125
1126``GNAT.Encode_String`` (:file:`g-encstr.ads`)
1127=============================================
1128
1129.. index:: GNAT.Encode_String (g-encstr.ads)
1130
1131.. index:: Encoding strings
1132
1133.. index:: String encoding
1134
1135.. index:: Wide character encoding
1136
1137.. index:: UTF-8
1138
1139.. index:: Unicode
1140
1141A generic package providing routines for encoding wide character and wide
1142wide character strings as sequences of 8-bit characters using a specified
1143encoding method. Useful in conjunction with Unicode character coding.
1144Note there is a preinstantiation for UTF-8. See next entry.
1145
1146.. _`GNAT.Encode_UTF8_String_(g-enutst.ads)`:
1147
1148``GNAT.Encode_UTF8_String`` (:file:`g-enutst.ads`)
1149==================================================
1150
1151.. index:: GNAT.Encode_UTF8_String (g-enutst.ads)
1152
1153.. index:: Encoding strings
1154
1155.. index:: Encoding UTF-8 strings
1156
1157.. index:: UTF-8 string encoding
1158
1159.. index:: Wide character encoding
1160
1161.. index:: UTF-8
1162
1163.. index:: Unicode
1164
1165A preinstantiation of GNAT.Encode_Strings for UTF-8 encoding.
1166
1167.. _`GNAT.Exception_Actions_(g-excact.ads)`:
1168
1169``GNAT.Exception_Actions`` (:file:`g-excact.ads`)
1170=================================================
1171
1172.. index:: GNAT.Exception_Actions (g-excact.ads)
1173
1174.. index:: Exception actions
1175
1176Provides callbacks when an exception is raised. Callbacks can be registered
1177for specific exceptions, or when any exception is raised. This
1178can be used for instance to force a core dump to ease debugging.
1179
1180.. _`GNAT.Exception_Traces_(g-exctra.ads)`:
1181
1182``GNAT.Exception_Traces`` (:file:`g-exctra.ads`)
1183================================================
1184
1185.. index:: GNAT.Exception_Traces (g-exctra.ads)
1186
1187.. index:: Exception traces
1188
1189.. index:: Debugging
1190
1191Provides an interface allowing to control automatic output upon exception
1192occurrences.
1193
1194.. _`GNAT.Exceptions_(g-except.ads)`:
1195
1196``GNAT.Exceptions`` (:file:`g-except.ads`)
1197==========================================
1198
1199.. index:: GNAT.Exceptions (g-except.ads)
1200
1201.. index:: Exceptions, Pure
1202
1203.. index:: Pure packages, exceptions
1204
1205Normally it is not possible to raise an exception with
1206a message from a subprogram in a pure package, since the
1207necessary types and subprograms are in ``Ada.Exceptions``
1208which is not a pure unit. ``GNAT.Exceptions`` provides a
1209facility for getting around this limitation for a few
1210predefined exceptions, and for example allow raising
1211``Constraint_Error`` with a message from a pure subprogram.
1212
1213.. _`GNAT.Expect_(g-expect.ads)`:
1214
1215``GNAT.Expect`` (:file:`g-expect.ads`)
1216======================================
1217
1218.. index:: GNAT.Expect (g-expect.ads)
1219
1220Provides a set of subprograms similar to what is available
1221with the standard Tcl Expect tool.
1222It allows you to easily spawn and communicate with an external process.
1223You can send commands or inputs to the process, and compare the output
1224with some expected regular expression. Currently ``GNAT.Expect``
1225is implemented on all native GNAT ports.
1226It is not implemented for cross ports, and in particular is not
1227implemented for VxWorks or LynxOS.
1228
1229.. _`GNAT.Expect.TTY_(g-exptty.ads)`:
1230
1231``GNAT.Expect.TTY`` (:file:`g-exptty.ads`)
1232==========================================
1233
1234.. index:: GNAT.Expect.TTY (g-exptty.ads)
1235
1236As GNAT.Expect but using pseudo-terminal.
1237Currently ``GNAT.Expect.TTY`` is implemented on all native GNAT
1238ports. It is not implemented for cross ports, and
1239in particular is not implemented for VxWorks or LynxOS.
1240
1241.. _`GNAT.Float_Control_(g-flocon.ads)`:
1242
1243``GNAT.Float_Control`` (:file:`g-flocon.ads`)
1244=============================================
1245
1246.. index:: GNAT.Float_Control (g-flocon.ads)
1247
1248.. index:: Floating-Point Processor
1249
1250Provides an interface for resetting the floating-point processor into the
1251mode required for correct semantic operation in Ada.  Some third party
1252library calls may cause this mode to be modified, and the Reset procedure
1253in this package can be used to reestablish the required mode.
1254
1255.. _`GNAT.Formatted_String_(g-forstr.ads)`:
1256
1257``GNAT.Formatted_String`` (:file:`g-forstr.ads`)
1258================================================
1259
1260.. index:: GNAT.Formatted_String (g-forstr.ads)
1261
1262.. index:: Formatted String
1263
1264Provides support for C/C++ printf() formatted strings. The format is
1265copied from the printf() routine and should therefore gives identical
1266output. Some generic routines are provided to be able to use types
1267derived from Integer, Float or enumerations as values for the
1268formatted string.
1269
1270.. _`GNAT.Heap_Sort_(g-heasor.ads)`:
1271
1272``GNAT.Heap_Sort`` (:file:`g-heasor.ads`)
1273=========================================
1274
1275.. index:: GNAT.Heap_Sort (g-heasor.ads)
1276
1277.. index:: Sorting
1278
1279Provides a general implementation of heap sort usable for sorting arbitrary
1280data items. Exchange and comparison procedures are provided by passing
1281access-to-procedure values.  The algorithm used is a modified heap sort
1282that performs approximately N*log(N) comparisons in the worst case.
1283
1284.. _`GNAT.Heap_Sort_A_(g-hesora.ads)`:
1285
1286``GNAT.Heap_Sort_A`` (:file:`g-hesora.ads`)
1287===========================================
1288
1289.. index:: GNAT.Heap_Sort_A (g-hesora.ads)
1290
1291.. index:: Sorting
1292
1293Provides a general implementation of heap sort usable for sorting arbitrary
1294data items. Move and comparison procedures are provided by passing
1295access-to-procedure values.  The algorithm used is a modified heap sort
1296that performs approximately N*log(N) comparisons in the worst case.
1297This differs from ``GNAT.Heap_Sort`` in having a less convenient
1298interface, but may be slightly more efficient.
1299
1300.. _`GNAT.Heap_Sort_G_(g-hesorg.ads)`:
1301
1302``GNAT.Heap_Sort_G`` (:file:`g-hesorg.ads`)
1303===========================================
1304
1305.. index:: GNAT.Heap_Sort_G (g-hesorg.ads)
1306
1307.. index:: Sorting
1308
1309Similar to ``Heap_Sort_A`` except that the move and sorting procedures
1310are provided as generic parameters, this improves efficiency, especially
1311if the procedures can be inlined, at the expense of duplicating code for
1312multiple instantiations.
1313
1314.. _`GNAT.HTable_(g-htable.ads)`:
1315
1316``GNAT.HTable`` (:file:`g-htable.ads`)
1317======================================
1318
1319.. index:: GNAT.HTable (g-htable.ads)
1320
1321.. index:: Hash tables
1322
1323A generic implementation of hash tables that can be used to hash arbitrary
1324data.  Provides two approaches, one a simple static approach, and the other
1325allowing arbitrary dynamic hash tables.
1326
1327.. _`GNAT.IO_(g-io.ads)`:
1328
1329``GNAT.IO`` (:file:`g-io.ads`)
1330==============================
1331
1332.. index:: GNAT.IO (g-io.ads)
1333
1334.. index:: Simple I/O
1335
1336.. index:: Input/Output facilities
1337
1338A simple preelaborable input-output package that provides a subset of
1339simple Text_IO functions for reading characters and strings from
1340Standard_Input, and writing characters, strings and integers to either
1341Standard_Output or Standard_Error.
1342
1343.. _`GNAT.IO_Aux_(g-io_aux.ads)`:
1344
1345``GNAT.IO_Aux`` (:file:`g-io_aux.ads`)
1346======================================
1347
1348.. index:: GNAT.IO_Aux (g-io_aux.ads)
1349
1350.. index:: Text_IO
1351
1352.. index:: Input/Output facilities
1353
1354Provides some auxiliary functions for use with Text_IO, including a test
1355for whether a file exists, and functions for reading a line of text.
1356
1357.. _`GNAT.Lock_Files_(g-locfil.ads)`:
1358
1359``GNAT.Lock_Files`` (:file:`g-locfil.ads`)
1360==========================================
1361
1362.. index:: GNAT.Lock_Files (g-locfil.ads)
1363
1364.. index:: File locking
1365
1366.. index:: Locking using files
1367
1368Provides a general interface for using files as locks.  Can be used for
1369providing program level synchronization.
1370
1371.. _`GNAT.MBBS_Discrete_Random_(g-mbdira.ads)`:
1372
1373``GNAT.MBBS_Discrete_Random`` (:file:`g-mbdira.ads`)
1374====================================================
1375
1376.. index:: GNAT.MBBS_Discrete_Random (g-mbdira.ads)
1377
1378.. index:: Random number generation
1379
1380The original implementation of ``Ada.Numerics.Discrete_Random``.  Uses
1381a modified version of the Blum-Blum-Shub generator.
1382
1383.. _`GNAT.MBBS_Float_Random_(g-mbflra.ads)`:
1384
1385``GNAT.MBBS_Float_Random`` (:file:`g-mbflra.ads`)
1386=================================================
1387
1388.. index:: GNAT.MBBS_Float_Random (g-mbflra.ads)
1389
1390.. index:: Random number generation
1391
1392The original implementation of ``Ada.Numerics.Float_Random``.  Uses
1393a modified version of the Blum-Blum-Shub generator.
1394
1395.. _`GNAT.MD5_(g-md5.ads)`:
1396
1397``GNAT.MD5`` (:file:`g-md5.ads`)
1398================================
1399
1400.. index:: GNAT.MD5 (g-md5.ads)
1401
1402.. index:: Message Digest MD5
1403
1404Implements the MD5 Message-Digest Algorithm as described in RFC 1321, and
1405the HMAC-MD5 message authentication function as described in RFC 2104 and
1406FIPS PUB 198.
1407
1408.. _`GNAT.Memory_Dump_(g-memdum.ads)`:
1409
1410``GNAT.Memory_Dump`` (:file:`g-memdum.ads`)
1411===========================================
1412
1413.. index:: GNAT.Memory_Dump (g-memdum.ads)
1414
1415.. index:: Dump Memory
1416
1417Provides a convenient routine for dumping raw memory to either the
1418standard output or standard error files. Uses GNAT.IO for actual
1419output.
1420
1421.. _`GNAT.Most_Recent_Exception_(g-moreex.ads)`:
1422
1423``GNAT.Most_Recent_Exception`` (:file:`g-moreex.ads`)
1424=====================================================
1425
1426.. index:: GNAT.Most_Recent_Exception (g-moreex.ads)
1427
1428.. index:: Exception, obtaining most recent
1429
1430Provides access to the most recently raised exception.  Can be used for
1431various logging purposes, including duplicating functionality of some
1432Ada 83 implementation dependent extensions.
1433
1434.. _`GNAT.OS_Lib_(g-os_lib.ads)`:
1435
1436``GNAT.OS_Lib`` (:file:`g-os_lib.ads`)
1437======================================
1438
1439.. index:: GNAT.OS_Lib (g-os_lib.ads)
1440
1441.. index:: Operating System interface
1442
1443.. index:: Spawn capability
1444
1445Provides a range of target independent operating system interface functions,
1446including time/date management, file operations, subprocess management,
1447including a portable spawn procedure, and access to environment variables
1448and error return codes.
1449
1450.. _`GNAT.Perfect_Hash_Generators_(g-pehage.ads)`:
1451
1452``GNAT.Perfect_Hash_Generators`` (:file:`g-pehage.ads`)
1453=======================================================
1454
1455.. index:: GNAT.Perfect_Hash_Generators (g-pehage.ads)
1456
1457.. index:: Hash functions
1458
1459Provides a generator of static minimal perfect hash functions. No
1460collisions occur and each item can be retrieved from the table in one
1461probe (perfect property). The hash table size corresponds to the exact
1462size of the key set and no larger (minimal property). The key set has to
1463be know in advance (static property). The hash functions are also order
1464preserving. If w2 is inserted after w1 in the generator, their
1465hashcode are in the same order. These hashing functions are very
1466convenient for use with realtime applications.
1467
1468.. _`GNAT.Random_Numbers_(g-rannum.ads)`:
1469
1470``GNAT.Random_Numbers`` (:file:`g-rannum.ads`)
1471==============================================
1472
1473.. index:: GNAT.Random_Numbers (g-rannum.ads)
1474
1475.. index:: Random number generation
1476
1477Provides random number capabilities which extend those available in the
1478standard Ada library and are more convenient to use.
1479
1480.. _`GNAT.Regexp_(g-regexp.ads)`:
1481
1482``GNAT.Regexp`` (:file:`g-regexp.ads`)
1483======================================
1484
1485.. index:: GNAT.Regexp (g-regexp.ads)
1486
1487.. index:: Regular expressions
1488
1489.. index:: Pattern matching
1490
1491A simple implementation of regular expressions, using a subset of regular
1492expression syntax copied from familiar Unix style utilities.  This is the
1493simplest of the three pattern matching packages provided, and is particularly
1494suitable for 'file globbing' applications.
1495
1496.. _`GNAT.Registry_(g-regist.ads)`:
1497
1498``GNAT.Registry`` (:file:`g-regist.ads`)
1499========================================
1500
1501.. index:: GNAT.Registry (g-regist.ads)
1502
1503.. index:: Windows Registry
1504
1505This is a high level binding to the Windows registry.  It is possible to
1506do simple things like reading a key value, creating a new key.  For full
1507registry API, but at a lower level of abstraction, refer to the Win32.Winreg
1508package provided with the Win32Ada binding
1509
1510.. _`GNAT.Regpat_(g-regpat.ads)`:
1511
1512``GNAT.Regpat`` (:file:`g-regpat.ads`)
1513======================================
1514
1515.. index:: GNAT.Regpat (g-regpat.ads)
1516
1517.. index:: Regular expressions
1518
1519.. index:: Pattern matching
1520
1521A complete implementation of Unix-style regular expression matching, copied
1522from the original V7 style regular expression library written in C by
1523Henry Spencer (and binary compatible with this C library).
1524
1525.. _`GNAT.Rewrite_Data_(g-rewdat.ads)`:
1526
1527``GNAT.Rewrite_Data`` (:file:`g-rewdat.ads`)
1528============================================
1529
1530.. index:: GNAT.Rewrite_Data (g-rewdat.ads)
1531
1532.. index:: Rewrite data
1533
1534A unit to rewrite on-the-fly string occurrences in a stream of
1535data. The implementation has a very minimal memory footprint as the
1536full content to be processed is not loaded into memory all at once. This makes
1537this interface usable for large files or socket streams.
1538
1539.. _`GNAT.Secondary_Stack_Info_(g-sestin.ads)`:
1540
1541``GNAT.Secondary_Stack_Info`` (:file:`g-sestin.ads`)
1542====================================================
1543
1544.. index:: GNAT.Secondary_Stack_Info (g-sestin.ads)
1545
1546.. index:: Secondary Stack Info
1547
1548Provide the capability to query the high water mark of the current task's
1549secondary stack.
1550
1551.. _`GNAT.Semaphores_(g-semaph.ads)`:
1552
1553``GNAT.Semaphores`` (:file:`g-semaph.ads`)
1554==========================================
1555
1556.. index:: GNAT.Semaphores (g-semaph.ads)
1557
1558.. index:: Semaphores
1559
1560Provides classic counting and binary semaphores using protected types.
1561
1562.. _`GNAT.Serial_Communications_(g-sercom.ads)`:
1563
1564``GNAT.Serial_Communications`` (:file:`g-sercom.ads`)
1565=====================================================
1566
1567.. index:: GNAT.Serial_Communications (g-sercom.ads)
1568
1569.. index:: Serial_Communications
1570
1571Provides a simple interface to send and receive data over a serial
1572port. This is only supported on GNU/Linux and Windows.
1573
1574.. _`GNAT.SHA1_(g-sha1.ads)`:
1575
1576``GNAT.SHA1`` (:file:`g-sha1.ads`)
1577==================================
1578
1579.. index:: GNAT.SHA1 (g-sha1.ads)
1580
1581.. index:: Secure Hash Algorithm SHA-1
1582
1583Implements the SHA-1 Secure Hash Algorithm as described in FIPS PUB 180-3
1584and RFC 3174, and the HMAC-SHA1 message authentication function as described
1585in RFC 2104 and FIPS PUB 198.
1586
1587.. _`GNAT.SHA224_(g-sha224.ads)`:
1588
1589``GNAT.SHA224`` (:file:`g-sha224.ads`)
1590======================================
1591
1592.. index:: GNAT.SHA224 (g-sha224.ads)
1593
1594.. index:: Secure Hash Algorithm SHA-224
1595
1596Implements the SHA-224 Secure Hash Algorithm as described in FIPS PUB 180-3,
1597and the HMAC-SHA224 message authentication function as described
1598in RFC 2104 and FIPS PUB 198.
1599
1600.. _`GNAT.SHA256_(g-sha256.ads)`:
1601
1602``GNAT.SHA256`` (:file:`g-sha256.ads`)
1603======================================
1604
1605.. index:: GNAT.SHA256 (g-sha256.ads)
1606
1607.. index:: Secure Hash Algorithm SHA-256
1608
1609Implements the SHA-256 Secure Hash Algorithm as described in FIPS PUB 180-3,
1610and the HMAC-SHA256 message authentication function as described
1611in RFC 2104 and FIPS PUB 198.
1612
1613.. _`GNAT.SHA384_(g-sha384.ads)`:
1614
1615``GNAT.SHA384`` (:file:`g-sha384.ads`)
1616======================================
1617
1618.. index:: GNAT.SHA384 (g-sha384.ads)
1619
1620.. index:: Secure Hash Algorithm SHA-384
1621
1622Implements the SHA-384 Secure Hash Algorithm as described in FIPS PUB 180-3,
1623and the HMAC-SHA384 message authentication function as described
1624in RFC 2104 and FIPS PUB 198.
1625
1626.. _`GNAT.SHA512_(g-sha512.ads)`:
1627
1628``GNAT.SHA512`` (:file:`g-sha512.ads`)
1629======================================
1630
1631.. index:: GNAT.SHA512 (g-sha512.ads)
1632
1633.. index:: Secure Hash Algorithm SHA-512
1634
1635Implements the SHA-512 Secure Hash Algorithm as described in FIPS PUB 180-3,
1636and the HMAC-SHA512 message authentication function as described
1637in RFC 2104 and FIPS PUB 198.
1638
1639.. _`GNAT.Signals_(g-signal.ads)`:
1640
1641``GNAT.Signals`` (:file:`g-signal.ads`)
1642=======================================
1643
1644.. index:: GNAT.Signals (g-signal.ads)
1645
1646.. index:: Signals
1647
1648Provides the ability to manipulate the blocked status of signals on supported
1649targets.
1650
1651.. _`GNAT.Sockets_(g-socket.ads)`:
1652
1653``GNAT.Sockets`` (:file:`g-socket.ads`)
1654=======================================
1655
1656.. index:: GNAT.Sockets (g-socket.ads)
1657
1658.. index:: Sockets
1659
1660A high level and portable interface to develop sockets based applications.
1661This package is based on the sockets thin binding found in
1662``GNAT.Sockets.Thin``. Currently ``GNAT.Sockets`` is implemented
1663on all native GNAT ports and on VxWorks cross prots.  It is not implemented for
1664the LynxOS cross port.
1665
1666.. _`GNAT.Source_Info_(g-souinf.ads)`:
1667
1668``GNAT.Source_Info`` (:file:`g-souinf.ads`)
1669===========================================
1670
1671.. index:: GNAT.Source_Info (g-souinf.ads)
1672
1673.. index:: Source Information
1674
1675Provides subprograms that give access to source code information known at
1676compile time, such as the current file name and line number. Also provides
1677subprograms yielding the date and time of the current compilation (like the
1678C macros ``__DATE__`` and ``__TIME__``)
1679
1680.. _`GNAT.Spelling_Checker_(g-speche.ads)`:
1681
1682``GNAT.Spelling_Checker`` (:file:`g-speche.ads`)
1683================================================
1684
1685.. index:: GNAT.Spelling_Checker (g-speche.ads)
1686
1687.. index:: Spell checking
1688
1689Provides a function for determining whether one string is a plausible
1690near misspelling of another string.
1691
1692.. _`GNAT.Spelling_Checker_Generic_(g-spchge.ads)`:
1693
1694``GNAT.Spelling_Checker_Generic`` (:file:`g-spchge.ads`)
1695========================================================
1696
1697.. index:: GNAT.Spelling_Checker_Generic (g-spchge.ads)
1698
1699.. index:: Spell checking
1700
1701Provides a generic function that can be instantiated with a string type for
1702determining whether one string is a plausible near misspelling of another
1703string.
1704
1705.. _`GNAT.Spitbol.Patterns_(g-spipat.ads)`:
1706
1707``GNAT.Spitbol.Patterns`` (:file:`g-spipat.ads`)
1708================================================
1709
1710.. index:: GNAT.Spitbol.Patterns (g-spipat.ads)
1711
1712.. index:: SPITBOL pattern matching
1713
1714.. index:: Pattern matching
1715
1716A complete implementation of SNOBOL4 style pattern matching.  This is the
1717most elaborate of the pattern matching packages provided.  It fully duplicates
1718the SNOBOL4 dynamic pattern construction and matching capabilities, using the
1719efficient algorithm developed by Robert Dewar for the SPITBOL system.
1720
1721.. _`GNAT.Spitbol_(g-spitbo.ads)`:
1722
1723``GNAT.Spitbol`` (:file:`g-spitbo.ads`)
1724=======================================
1725
1726.. index:: GNAT.Spitbol (g-spitbo.ads)
1727
1728.. index:: SPITBOL interface
1729
1730The top level package of the collection of SPITBOL-style functionality, this
1731package provides basic SNOBOL4 string manipulation functions, such as
1732Pad, Reverse, Trim, Substr capability, as well as a generic table function
1733useful for constructing arbitrary mappings from strings in the style of
1734the SNOBOL4 TABLE function.
1735
1736.. _`GNAT.Spitbol.Table_Boolean_(g-sptabo.ads)`:
1737
1738``GNAT.Spitbol.Table_Boolean`` (:file:`g-sptabo.ads`)
1739=====================================================
1740
1741.. index:: GNAT.Spitbol.Table_Boolean (g-sptabo.ads)
1742
1743.. index:: Sets of strings
1744
1745.. index:: SPITBOL Tables
1746
1747A library level of instantiation of ``GNAT.Spitbol.Patterns.Table``
1748for type ``Standard.Boolean``, giving an implementation of sets of
1749string values.
1750
1751.. _`GNAT.Spitbol.Table_Integer_(g-sptain.ads)`:
1752
1753``GNAT.Spitbol.Table_Integer`` (:file:`g-sptain.ads`)
1754=====================================================
1755
1756.. index:: GNAT.Spitbol.Table_Integer (g-sptain.ads)
1757
1758.. index:: Integer maps
1759
1760.. index:: Maps
1761
1762.. index:: SPITBOL Tables
1763
1764A library level of instantiation of ``GNAT.Spitbol.Patterns.Table``
1765for type ``Standard.Integer``, giving an implementation of maps
1766from string to integer values.
1767
1768.. _`GNAT.Spitbol.Table_VString_(g-sptavs.ads)`:
1769
1770``GNAT.Spitbol.Table_VString`` (:file:`g-sptavs.ads`)
1771=====================================================
1772
1773.. index:: GNAT.Spitbol.Table_VString (g-sptavs.ads)
1774
1775.. index:: String maps
1776
1777.. index:: Maps
1778
1779.. index:: SPITBOL Tables
1780
1781A library level of instantiation of ``GNAT.Spitbol.Patterns.Table`` for
1782a variable length string type, giving an implementation of general
1783maps from strings to strings.
1784
1785.. _`GNAT.SSE_(g-sse.ads)`:
1786
1787``GNAT.SSE`` (:file:`g-sse.ads`)
1788================================
1789
1790.. index:: GNAT.SSE (g-sse.ads)
1791
1792Root of a set of units aimed at offering Ada bindings to a subset of
1793the Intel(r) Streaming SIMD Extensions with GNAT on the x86 family of
1794targets.  It exposes vector component types together with a general
1795introduction to the binding contents and use.
1796
1797.. _`GNAT.SSE.Vector_Types_(g-ssvety.ads)`:
1798
1799``GNAT.SSE.Vector_Types`` (:file:`g-ssvety.ads`)
1800================================================
1801
1802.. index:: GNAT.SSE.Vector_Types (g-ssvety.ads)
1803
1804SSE vector types for use with SSE related intrinsics.
1805
1806.. _`GNAT.String_Hash(g-strhas.ads)`:
1807
1808``GNAT.String_Hash`` (:file:`g-strhas.ads`)
1809===========================================
1810
1811.. index:: GNAT.String_Hash (g-strhas.ads)
1812
1813.. index:: Hash functions
1814
1815Provides a generic hash function working on arrays of scalars. Both the scalar
1816type and the hash result type are parameters.
1817
1818.. _`GNAT.Strings_(g-string.ads)`:
1819
1820``GNAT.Strings`` (:file:`g-string.ads`)
1821=======================================
1822
1823.. index:: GNAT.Strings (g-string.ads)
1824
1825Common String access types and related subprograms. Basically it
1826defines a string access and an array of string access types.
1827
1828.. _`GNAT.String_Split_(g-strspl.ads)`:
1829
1830``GNAT.String_Split`` (:file:`g-strspl.ads`)
1831============================================
1832
1833.. index:: GNAT.String_Split (g-strspl.ads)
1834
1835.. index:: String splitter
1836
1837Useful string manipulation routines: given a set of separators, split
1838a string wherever the separators appear, and provide direct access
1839to the resulting slices. This package is instantiated from
1840``GNAT.Array_Split``.
1841
1842.. _`GNAT.Table_(g-table.ads)`:
1843
1844``GNAT.Table`` (:file:`g-table.ads`)
1845====================================
1846
1847.. index:: GNAT.Table (g-table.ads)
1848
1849.. index:: Table implementation
1850
1851.. index:: Arrays, extendable
1852
1853A generic package providing a single dimension array abstraction where the
1854length of the array can be dynamically modified.
1855
1856This package provides a facility similar to that of ``GNAT.Dynamic_Tables``,
1857except that this package declares a single instance of the table type,
1858while an instantiation of ``GNAT.Dynamic_Tables`` creates a type that can be
1859used to define dynamic instances of the table.
1860
1861.. _`GNAT.Task_Lock_(g-tasloc.ads)`:
1862
1863``GNAT.Task_Lock`` (:file:`g-tasloc.ads`)
1864=========================================
1865
1866.. index:: GNAT.Task_Lock (g-tasloc.ads)
1867
1868.. index:: Task synchronization
1869
1870.. index:: Task locking
1871
1872.. index:: Locking
1873
1874A very simple facility for locking and unlocking sections of code using a
1875single global task lock.  Appropriate for use in situations where contention
1876between tasks is very rarely expected.
1877
1878.. _`GNAT.Time_Stamp_(g-timsta.ads)`:
1879
1880``GNAT.Time_Stamp`` (:file:`g-timsta.ads`)
1881==========================================
1882
1883.. index:: GNAT.Time_Stamp (g-timsta.ads)
1884
1885.. index:: Time stamp
1886
1887.. index:: Current time
1888
1889Provides a simple function that returns a string YYYY-MM-DD HH:MM:SS.SS that
1890represents the current date and time in ISO 8601 format. This is a very simple
1891routine with minimal code and there are no dependencies on any other unit.
1892
1893.. _`GNAT.Threads_(g-thread.ads)`:
1894
1895``GNAT.Threads`` (:file:`g-thread.ads`)
1896=======================================
1897
1898.. index:: GNAT.Threads (g-thread.ads)
1899
1900.. index:: Foreign threads
1901
1902.. index:: Threads, foreign
1903
1904Provides facilities for dealing with foreign threads which need to be known
1905by the GNAT run-time system. Consult the documentation of this package for
1906further details if your program has threads that are created by a non-Ada
1907environment which then accesses Ada code.
1908
1909.. _`GNAT.Traceback_(g-traceb.ads)`:
1910
1911``GNAT.Traceback`` (:file:`g-traceb.ads`)
1912=========================================
1913
1914.. index:: GNAT.Traceback (g-traceb.ads)
1915
1916.. index:: Trace back facilities
1917
1918Provides a facility for obtaining non-symbolic traceback information, useful
1919in various debugging situations.
1920
1921.. _`GNAT.Traceback.Symbolic_(g-trasym.ads)`:
1922
1923``GNAT.Traceback.Symbolic`` (:file:`g-trasym.ads`)
1924==================================================
1925
1926.. index:: GNAT.Traceback.Symbolic (g-trasym.ads)
1927
1928.. index:: Trace back facilities
1929
1930.. _`GNAT.UTF_32_(g-table.ads)`:
1931
1932``GNAT.UTF_32`` (:file:`g-table.ads`)
1933=====================================
1934
1935.. index:: GNAT.UTF_32 (g-table.ads)
1936
1937.. index:: Wide character codes
1938
1939This is a package intended to be used in conjunction with the
1940``Wide_Character`` type in Ada 95 and the
1941``Wide_Wide_Character`` type in Ada 2005 (available
1942in ``GNAT`` in Ada 2005 mode). This package contains
1943Unicode categorization routines, as well as lexical
1944categorization routines corresponding to the Ada 2005
1945lexical rules for identifiers and strings, and also a
1946lower case to upper case fold routine corresponding to
1947the Ada 2005 rules for identifier equivalence.
1948
1949.. _`GNAT.Wide_Spelling_Checker_(g-u3spch.ads)`:
1950
1951``GNAT.Wide_Spelling_Checker`` (:file:`g-u3spch.ads`)
1952=====================================================
1953
1954.. index:: GNAT.Wide_Spelling_Checker (g-u3spch.ads)
1955
1956.. index:: Spell checking
1957
1958Provides a function for determining whether one wide wide string is a plausible
1959near misspelling of another wide wide string, where the strings are represented
1960using the UTF_32_String type defined in System.Wch_Cnv.
1961
1962.. _`GNAT.Wide_Spelling_Checker_(g-wispch.ads)`:
1963
1964``GNAT.Wide_Spelling_Checker`` (:file:`g-wispch.ads`)
1965=====================================================
1966
1967.. index:: GNAT.Wide_Spelling_Checker (g-wispch.ads)
1968
1969.. index:: Spell checking
1970
1971Provides a function for determining whether one wide string is a plausible
1972near misspelling of another wide string.
1973
1974.. _`GNAT.Wide_String_Split_(g-wistsp.ads)`:
1975
1976``GNAT.Wide_String_Split`` (:file:`g-wistsp.ads`)
1977=================================================
1978
1979.. index:: GNAT.Wide_String_Split (g-wistsp.ads)
1980
1981.. index:: Wide_String splitter
1982
1983Useful wide string manipulation routines: given a set of separators, split
1984a wide string wherever the separators appear, and provide direct access
1985to the resulting slices. This package is instantiated from
1986``GNAT.Array_Split``.
1987
1988.. _`GNAT.Wide_Wide_Spelling_Checker_(g-zspche.ads)`:
1989
1990``GNAT.Wide_Wide_Spelling_Checker`` (:file:`g-zspche.ads`)
1991==========================================================
1992
1993.. index:: GNAT.Wide_Wide_Spelling_Checker (g-zspche.ads)
1994
1995.. index:: Spell checking
1996
1997Provides a function for determining whether one wide wide string is a plausible
1998near misspelling of another wide wide string.
1999
2000.. _`GNAT.Wide_Wide_String_Split_(g-zistsp.ads)`:
2001
2002``GNAT.Wide_Wide_String_Split`` (:file:`g-zistsp.ads`)
2003======================================================
2004
2005.. index:: GNAT.Wide_Wide_String_Split (g-zistsp.ads)
2006
2007.. index:: Wide_Wide_String splitter
2008
2009Useful wide wide string manipulation routines: given a set of separators, split
2010a wide wide string wherever the separators appear, and provide direct access
2011to the resulting slices. This package is instantiated from
2012``GNAT.Array_Split``.
2013
2014.. _`Interfaces.C.Extensions_(i-cexten.ads)`:
2015
2016``Interfaces.C.Extensions`` (:file:`i-cexten.ads`)
2017==================================================
2018
2019.. index:: Interfaces.C.Extensions (i-cexten.ads)
2020
2021This package contains additional C-related definitions, intended
2022for use with either manually or automatically generated bindings
2023to C libraries.
2024
2025.. _`Interfaces.C.Streams_(i-cstrea.ads)`:
2026
2027``Interfaces.C.Streams`` (:file:`i-cstrea.ads`)
2028===============================================
2029
2030.. index:: Interfaces.C.Streams (i-cstrea.ads)
2031
2032.. index::  C streams, interfacing
2033
2034This package is a binding for the most commonly used operations
2035on C streams.
2036
2037.. _`Interfaces.Packed_Decimal_(i-pacdec.ads)`:
2038
2039``Interfaces.Packed_Decimal`` (:file:`i-pacdec.ads`)
2040====================================================
2041
2042.. index:: Interfaces.Packed_Decimal (i-pacdec.ads)
2043
2044.. index::  IBM Packed Format
2045
2046.. index::  Packed Decimal
2047
2048This package provides a set of routines for conversions to and
2049from a packed decimal format compatible with that used on IBM
2050mainframes.
2051
2052.. _`Interfaces.VxWorks_(i-vxwork.ads)`:
2053
2054``Interfaces.VxWorks`` (:file:`i-vxwork.ads`)
2055=============================================
2056
2057.. index:: Interfaces.VxWorks (i-vxwork.ads)
2058
2059.. index:: Interfacing to VxWorks
2060
2061.. index:: VxWorks, interfacing
2062
2063This package provides a limited binding to the VxWorks API.
2064In particular, it interfaces with the
2065VxWorks hardware interrupt facilities.
2066
2067.. _`Interfaces.VxWorks.Int_Connection_(i-vxinco.ads)`:
2068
2069``Interfaces.VxWorks.Int_Connection`` (:file:`i-vxinco.ads`)
2070============================================================
2071
2072.. index:: Interfaces.VxWorks.Int_Connection (i-vxinco.ads)
2073
2074.. index:: Interfacing to VxWorks
2075
2076.. index:: VxWorks, interfacing
2077
2078This package provides a way for users to replace the use of
2079intConnect() with a custom routine for installing interrupt
2080handlers.
2081
2082.. _`Interfaces.VxWorks.IO_(i-vxwoio.ads)`:
2083
2084``Interfaces.VxWorks.IO`` (:file:`i-vxwoio.ads`)
2085================================================
2086
2087.. index:: Interfaces.VxWorks.IO (i-vxwoio.ads)
2088
2089.. index:: Interfacing to VxWorks' I/O
2090
2091.. index:: VxWorks, I/O interfacing
2092
2093.. index:: VxWorks, Get_Immediate
2094
2095.. index:: Get_Immediate, VxWorks
2096
2097This package provides a binding to the ioctl (IO/Control)
2098function of VxWorks, defining a set of option values and
2099function codes. A particular use of this package is
2100to enable the use of Get_Immediate under VxWorks.
2101
2102.. _`System.Address_Image_(s-addima.ads)`:
2103
2104``System.Address_Image`` (:file:`s-addima.ads`)
2105===============================================
2106
2107.. index:: System.Address_Image (s-addima.ads)
2108
2109.. index:: Address image
2110
2111.. index:: Image, of an address
2112
2113This function provides a useful debugging
2114function that gives an (implementation dependent)
2115string which identifies an address.
2116
2117.. _`System.Assertions_(s-assert.ads)`:
2118
2119``System.Assertions`` (:file:`s-assert.ads`)
2120============================================
2121
2122.. index:: System.Assertions (s-assert.ads)
2123
2124.. index:: Assertions
2125
2126.. index:: Assert_Failure, exception
2127
2128This package provides the declaration of the exception raised
2129by an run-time assertion failure, as well as the routine that
2130is used internally to raise this assertion.
2131
2132.. _`System.Atomic_Counters_(s-atocou.ads)`:
2133
2134``System.Atomic_Counters`` (:file:`s-atocou.ads`)
2135=================================================
2136
2137.. index:: System.Atomic_Counters (s-atocou.ads)
2138
2139This package provides the declaration of an atomic counter type,
2140together with efficient routines (using hardware
2141synchronization primitives) for incrementing, decrementing,
2142and testing of these counters. This package is implemented
2143on most targets, including all Alpha, ia64, PowerPC, SPARC V9,
2144x86, and x86_64 platforms.
2145
2146.. _`System.Memory_(s-memory.ads)`:
2147
2148``System.Memory`` (:file:`s-memory.ads`)
2149========================================
2150
2151.. index:: System.Memory (s-memory.ads)
2152
2153.. index:: Memory allocation
2154
2155This package provides the interface to the low level routines used
2156by the generated code for allocation and freeing storage for the
2157default storage pool (analogous to the C routines malloc and free.
2158It also provides a reallocation interface analogous to the C routine
2159realloc. The body of this unit may be modified to provide alternative
2160allocation mechanisms for the default pool, and in addition, direct
2161calls to this unit may be made for low level allocation uses (for
2162example see the body of ``GNAT.Tables``).
2163
2164.. _`System.Multiprocessors_(s-multip.ads)`:
2165
2166``System.Multiprocessors`` (:file:`s-multip.ads`)
2167=================================================
2168
2169.. index:: System.Multiprocessors (s-multip.ads)
2170
2171.. index:: Multiprocessor interface
2172
2173This is an Ada 2012 unit defined in the Ada 2012 Reference Manual, but
2174in GNAT we also make it available in Ada 95 and Ada 2005 (where it is
2175technically an implementation-defined addition).
2176
2177.. _`System.Multiprocessors.Dispatching_Domains_(s-mudido.ads)`:
2178
2179``System.Multiprocessors.Dispatching_Domains`` (:file:`s-mudido.ads`)
2180=====================================================================
2181
2182.. index:: System.Multiprocessors.Dispatching_Domains (s-mudido.ads)
2183
2184.. index:: Multiprocessor interface
2185
2186This is an Ada 2012 unit defined in the Ada 2012 Reference Manual, but
2187in GNAT we also make it available in Ada 95 and Ada 2005 (where it is
2188technically an implementation-defined addition).
2189
2190.. _`System.Partition_Interface_(s-parint.ads)`:
2191
2192``System.Partition_Interface`` (:file:`s-parint.ads`)
2193=====================================================
2194
2195.. index:: System.Partition_Interface (s-parint.ads)
2196
2197.. index:: Partition interfacing functions
2198
2199This package provides facilities for partition interfacing.  It
2200is used primarily in a distribution context when using Annex E
2201with ``GLADE``.
2202
2203.. _`System.Pool_Global_(s-pooglo.ads)`:
2204
2205``System.Pool_Global`` (:file:`s-pooglo.ads`)
2206=============================================
2207
2208.. index:: System.Pool_Global (s-pooglo.ads)
2209
2210.. index:: Storage pool, global
2211
2212.. index:: Global storage pool
2213
2214This package provides a storage pool that is equivalent to the default
2215storage pool used for access types for which no pool is specifically
2216declared. It uses malloc/free to allocate/free and does not attempt to
2217do any automatic reclamation.
2218
2219.. _`System.Pool_Local_(s-pooloc.ads)`:
2220
2221``System.Pool_Local`` (:file:`s-pooloc.ads`)
2222============================================
2223
2224.. index:: System.Pool_Local (s-pooloc.ads)
2225
2226.. index:: Storage pool, local
2227
2228.. index:: Local storage pool
2229
2230This package provides a storage pool that is intended for use with locally
2231defined access types. It uses malloc/free for allocate/free, and maintains
2232a list of allocated blocks, so that all storage allocated for the pool can
2233be freed automatically when the pool is finalized.
2234
2235.. _`System.Restrictions_(s-restri.ads)`:
2236
2237``System.Restrictions`` (:file:`s-restri.ads`)
2238==============================================
2239
2240.. index:: System.Restrictions (s-restri.ads)
2241
2242.. index:: Run-time restrictions access
2243
2244This package provides facilities for accessing at run time
2245the status of restrictions specified at compile time for
2246the partition. Information is available both with regard
2247to actual restrictions specified, and with regard to
2248compiler determined information on which restrictions
2249are violated by one or more packages in the partition.
2250
2251.. _`System.Rident_(s-rident.ads)`:
2252
2253``System.Rident`` (:file:`s-rident.ads`)
2254========================================
2255
2256.. index:: System.Rident (s-rident.ads)
2257
2258.. index:: Restrictions definitions
2259
2260This package provides definitions of the restrictions
2261identifiers supported by GNAT, and also the format of
2262the restrictions provided in package System.Restrictions.
2263It is not normally necessary to ``with`` this generic package
2264since the necessary instantiation is included in
2265package System.Restrictions.
2266
2267.. _`System.Strings.Stream_Ops_(s-ststop.ads)`:
2268
2269``System.Strings.Stream_Ops`` (:file:`s-ststop.ads`)
2270====================================================
2271
2272.. index:: System.Strings.Stream_Ops (s-ststop.ads)
2273
2274.. index:: Stream operations
2275
2276.. index:: String stream operations
2277
2278This package provides a set of stream subprograms for standard string types.
2279It is intended primarily to support implicit use of such subprograms when
2280stream attributes are applied to string types, but the subprograms in this
2281package can be used directly by application programs.
2282
2283.. _`System.Unsigned_Types_(s-unstyp.ads)`:
2284
2285``System.Unsigned_Types`` (:file:`s-unstyp.ads`)
2286================================================
2287
2288.. index:: System.Unsigned_Types (s-unstyp.ads)
2289
2290This package contains definitions of standard unsigned types that
2291correspond in size to the standard signed types declared in Standard,
2292and (unlike the types in Interfaces) have corresponding names. It
2293also contains some related definitions for other specialized types
2294used by the compiler in connection with packed array types.
2295
2296.. _`System.Wch_Cnv_(s-wchcnv.ads)`:
2297
2298``System.Wch_Cnv`` (:file:`s-wchcnv.ads`)
2299=========================================
2300
2301.. index:: System.Wch_Cnv (s-wchcnv.ads)
2302
2303.. index:: Wide Character, Representation
2304
2305.. index:: Wide String, Conversion
2306
2307.. index:: Representation of wide characters
2308
2309This package provides routines for converting between
2310wide and wide wide characters and a representation as a value of type
2311``Standard.String``, using a specified wide character
2312encoding method.  It uses definitions in
2313package ``System.Wch_Con``.
2314
2315.. _`System.Wch_Con_(s-wchcon.ads)`:
2316
2317``System.Wch_Con`` (:file:`s-wchcon.ads`)
2318=========================================
2319
2320.. index:: System.Wch_Con (s-wchcon.ads)
2321
2322This package provides definitions and descriptions of
2323the various methods used for encoding wide characters
2324in ordinary strings.  These definitions are used by
2325the package ``System.Wch_Cnv``.
2326