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