re PR c++/84691 (internal compiler error: in poplevel_class, at cp/name-lookup.c...
[official-gcc.git] / gcc / ada / doc / gnat_rm / the_gnat_library.rst
blobed614e3b5360678bf8472f98addd6d796e1a44a9
1 .. role:: switch(samp)
3 .. _The_GNAT_Library:
5 ****************
6 The GNAT Library
7 ****************
9 The GNAT library contains a number of general and special purpose packages.
10 It represents functionality that the GNAT developers have found useful, and
11 which is made available to GNAT users.  The packages described here are fully
12 supported, and upwards compatibility will be maintained in future releases,
13 so you can use these facilities with the confidence that the same functionality
14 will be available in future releases.
16 The chapter here simply gives a brief summary of the facilities available.
17 The full documentation is found in the spec file for the package.  The full
18 sources of these library packages, including both spec and body, are provided
19 with all GNAT releases.  For example, to find out the full specifications of
20 the SPITBOL pattern matching capability, including a full tutorial and
21 extensive examples, look in the :file:`g-spipat.ads` file in the library.
23 For each entry here, the package name (as it would appear in a ``with``
24 clause) is given, followed by the name of the corresponding spec file in
25 parentheses.  The packages are children in four hierarchies, ``Ada``,
26 ``Interfaces``, ``System``, and ``GNAT``, the latter being a
27 GNAT-specific hierarchy.
29 Note that an application program should only use packages in one of these
30 four hierarchies if the package is defined in the Ada Reference Manual,
31 or is listed in this section of the GNAT Programmers Reference Manual.
32 All other units should be considered internal implementation units and
33 should not be directly ``with``\ ed by application code.  The use of
34 a ``with`` clause that references one of these internal implementation
35 units makes an application potentially dependent on changes in versions
36 of GNAT, and will generate a warning message.
38 .. _`Ada.Characters.Latin_9_(a-chlat9.ads)`:
40 ``Ada.Characters.Latin_9`` (:file:`a-chlat9.ads`)
41 =================================================
43 .. index:: Ada.Characters.Latin_9 (a-chlat9.ads)
45 .. index:: Latin_9 constants for Character
47 This child of ``Ada.Characters``
48 provides a set of definitions corresponding to those in the
49 RM-defined package ``Ada.Characters.Latin_1`` but with the
50 few modifications required for ``Latin-9``
51 The provision of such a package
52 is specifically authorized by the Ada Reference Manual
53 (RM A.3.3(27)).
55 .. _`Ada.Characters.Wide_Latin_1_(a-cwila1.ads)`:
57 ``Ada.Characters.Wide_Latin_1`` (:file:`a-cwila1.ads`)
58 ======================================================
60 .. index:: Ada.Characters.Wide_Latin_1 (a-cwila1.ads)
62 .. index:: Latin_1 constants for Wide_Character
64 This child of ``Ada.Characters``
65 provides a set of definitions corresponding to those in the
66 RM-defined package ``Ada.Characters.Latin_1`` but with the
67 types of the constants being ``Wide_Character``
68 instead of ``Character``.  The provision of such a package
69 is specifically authorized by the Ada Reference Manual
70 (RM A.3.3(27)).
72 .. _`Ada.Characters.Wide_Latin_9_(a-cwila1.ads)`:
74 ``Ada.Characters.Wide_Latin_9`` (:file:`a-cwila1.ads`)
75 ======================================================
77 .. index:: Ada.Characters.Wide_Latin_9 (a-cwila1.ads)
79 .. index:: Latin_9 constants for Wide_Character
81 This child of ``Ada.Characters``
82 provides a set of definitions corresponding to those in the
83 GNAT defined package ``Ada.Characters.Latin_9`` but with the
84 types of the constants being ``Wide_Character``
85 instead of ``Character``.  The provision of such a package
86 is specifically authorized by the Ada Reference Manual
87 (RM A.3.3(27)).
89 .. _`Ada.Characters.Wide_Wide_Latin_1_(a-chzla1.ads)`:
91 ``Ada.Characters.Wide_Wide_Latin_1`` (:file:`a-chzla1.ads`)
92 ===========================================================
94 .. index:: Ada.Characters.Wide_Wide_Latin_1 (a-chzla1.ads)
96 .. index:: Latin_1 constants for Wide_Wide_Character
98 This child of ``Ada.Characters``
99 provides a set of definitions corresponding to those in the
100 RM-defined package ``Ada.Characters.Latin_1`` but with the
101 types of the constants being ``Wide_Wide_Character``
102 instead of ``Character``.  The provision of such a package
103 is specifically authorized by the Ada Reference Manual
104 (RM A.3.3(27)).
106 .. _`Ada.Characters.Wide_Wide_Latin_9_(a-chzla9.ads)`:
108 ``Ada.Characters.Wide_Wide_Latin_9`` (:file:`a-chzla9.ads`)
109 ===========================================================
111 .. index:: Ada.Characters.Wide_Wide_Latin_9 (a-chzla9.ads)
113 .. index:: Latin_9 constants for Wide_Wide_Character
115 This child of ``Ada.Characters``
116 provides a set of definitions corresponding to those in the
117 GNAT defined package ``Ada.Characters.Latin_9`` but with the
118 types of the constants being ``Wide_Wide_Character``
119 instead of ``Character``.  The provision of such a package
120 is specifically authorized by the Ada Reference Manual
121 (RM A.3.3(27)).
123 .. _`Ada.Containers.Formal_Doubly_Linked_Lists_(a-cfdlli.ads)`:
125 ``Ada.Containers.Formal_Doubly_Linked_Lists`` (:file:`a-cfdlli.ads`)
126 ====================================================================
128 .. index:: Ada.Containers.Formal_Doubly_Linked_Lists (a-cfdlli.ads)
130 .. index:: Formal container for doubly linked lists
132 This child of ``Ada.Containers`` defines a modified version of the
133 Ada 2005 container for doubly linked lists, meant to facilitate formal
134 verification of code using such containers. The specification of this
135 unit is compatible with SPARK 2014.
137 Note that although this container was designed with formal verification
138 in mind, it may well be generally useful in that it is a simplified more
139 efficient version than the one defined in the standard. In particular it
140 does not have the complex overhead required to detect cursor tampering.
142 .. _`Ada.Containers.Formal_Hashed_Maps_(a-cfhama.ads)`:
144 ``Ada.Containers.Formal_Hashed_Maps`` (:file:`a-cfhama.ads`)
145 ============================================================
147 .. index:: Ada.Containers.Formal_Hashed_Maps (a-cfhama.ads)
149 .. index:: Formal container for hashed maps
151 This child of ``Ada.Containers`` defines a modified version of the
152 Ada 2005 container for hashed maps, meant to facilitate formal
153 verification of code using such containers. The specification of this
154 unit is compatible with SPARK 2014.
156 Note that although this container was designed with formal verification
157 in mind, it may well be generally useful in that it is a simplified more
158 efficient version than the one defined in the standard. In particular it
159 does not have the complex overhead required to detect cursor tampering.
161 .. _`Ada.Containers.Formal_Hashed_Sets_(a-cfhase.ads)`:
163 ``Ada.Containers.Formal_Hashed_Sets`` (:file:`a-cfhase.ads`)
164 ============================================================
166 .. index:: Ada.Containers.Formal_Hashed_Sets (a-cfhase.ads)
168 .. index:: Formal container for hashed sets
170 This child of ``Ada.Containers`` defines a modified version of the
171 Ada 2005 container for hashed sets, meant to facilitate formal
172 verification of code using such containers. The specification of this
173 unit is compatible with SPARK 2014.
175 Note that although this container was designed with formal verification
176 in mind, it may well be generally useful in that it is a simplified more
177 efficient version than the one defined in the standard. In particular it
178 does not have the complex overhead required to detect cursor tampering.
180 .. _`Ada.Containers.Formal_Ordered_Maps_(a-cforma.ads)`:
182 ``Ada.Containers.Formal_Ordered_Maps`` (:file:`a-cforma.ads`)
183 =============================================================
185 .. index:: Ada.Containers.Formal_Ordered_Maps (a-cforma.ads)
187 .. index:: Formal container for ordered maps
189 This child of ``Ada.Containers`` defines a modified version of the
190 Ada 2005 container for ordered maps, meant to facilitate formal
191 verification of code using such containers. The specification of this
192 unit is compatible with SPARK 2014.
194 Note that although this container was designed with formal verification
195 in mind, it may well be generally useful in that it is a simplified more
196 efficient version than the one defined in the standard. In particular it
197 does not have the complex overhead required to detect cursor tampering.
199 .. _`Ada.Containers.Formal_Ordered_Sets_(a-cforse.ads)`:
201 ``Ada.Containers.Formal_Ordered_Sets`` (:file:`a-cforse.ads`)
202 =============================================================
204 .. index:: Ada.Containers.Formal_Ordered_Sets (a-cforse.ads)
206 .. index:: Formal container for ordered sets
208 This child of ``Ada.Containers`` defines a modified version of the
209 Ada 2005 container for ordered sets, meant to facilitate formal
210 verification of code using such containers. The specification of this
211 unit is compatible with SPARK 2014.
213 Note that although this container was designed with formal verification
214 in mind, it may well be generally useful in that it is a simplified more
215 efficient version than the one defined in the standard. In particular it
216 does not have the complex overhead required to detect cursor tampering.
218 .. _`Ada.Containers.Formal_Vectors_(a-cofove.ads)`:
220 ``Ada.Containers.Formal_Vectors`` (:file:`a-cofove.ads`)
221 ========================================================
223 .. index:: Ada.Containers.Formal_Vectors (a-cofove.ads)
225 .. index:: Formal container for vectors
227 This child of ``Ada.Containers`` defines a modified version of the
228 Ada 2005 container for vectors, meant to facilitate formal
229 verification of code using such containers. The specification of this
230 unit is compatible with SPARK 2014.
232 Note that although this container was designed with formal verification
233 in mind, it may well be generally useful in that it is a simplified more
234 efficient version than the one defined in the standard. In particular it
235 does not have the complex overhead required to detect cursor tampering.
237 .. _`Ada.Containers.Formal_Indefinite_Vectors_(a-cfinve.ads)`:
239 ``Ada.Containers.Formal_Indefinite_Vectors`` (:file:`a-cfinve.ads`)
240 ===================================================================
242 .. index:: Ada.Containers.Formal_Indefinite_Vectors (a-cfinve.ads)
244 .. index:: Formal container for vectors
246 This child of ``Ada.Containers`` defines a modified version of the
247 Ada 2005 container for vectors of indefinite elements, meant to
248 facilitate formal verification of code using such containers. The
249 specification of this unit is compatible with SPARK 2014.
251 Note that although this container was designed with formal verification
252 in mind, it may well be generally useful in that it is a simplified more
253 efficient version than the one defined in the standard. In particular it
254 does not have the complex overhead required to detect cursor tampering.
256 .. _`Ada.Containers.Functional_Vectors_(a-cofuve.ads)`:
258 ``Ada.Containers.Functional_Vectors`` (:file:`a-cofuve.ads`)
259 =================================================================
261 .. index:: Ada.Containers.Functional_Vectors (a-cofuve.ads)
263 .. index:: Functional vectors
265 This child of ``Ada.Containers`` defines immutable vectors. These
266 containers are unbounded and may contain indefinite elements. Furthermore, to
267 be usable in every context, they are neither controlled nor limited. As they
268 are functional, that is, no primitives are provided which would allow modifying
269 an existing container, these containers can still be used safely.
271 Their API features functions creating new containers from existing ones.
272 As a consequence, these containers are highly inefficient. They are also
273 memory consuming, as the allocated memory is not reclaimed when the container
274 is no longer referenced. Thus, they should in general be used in ghost code
275 and annotations, so that they can be removed from the final executable. The
276 specification of this unit is compatible with SPARK 2014.
278 .. _`Ada.Containers.Functional_Sets_(a-cofuse.ads)`:
280 ``Ada.Containers.Functional_Sets`` (:file:`a-cofuse.ads`)
281 =================================================================
283 .. index:: Ada.Containers.Functional_Sets (a-cofuse.ads)
285 .. index:: Functional sets
287 This child of ``Ada.Containers`` defines immutable sets. These containers are
288 unbounded and may contain indefinite elements. Furthermore, to be usable in
289 every context, they are neither controlled nor limited. As they are functional,
290 that is, no primitives are provided which would allow modifying an existing
291 container, these containers can still be used safely.
293 Their API features functions creating new containers from existing ones.
294 As a consequence, these containers are highly inefficient. They are also
295 memory consuming, as the allocated memory is not reclaimed when the container
296 is no longer referenced. Thus, they should in general be used in ghost code
297 and annotations, so that they can be removed from the final executable. The
298 specification of this unit is compatible with SPARK 2014.
300 .. _`Ada.Containers.Functional_Maps_(a-cofuma.ads)`:
302 ``Ada.Containers.Functional_Maps`` (:file:`a-cofuma.ads`)
303 =================================================================
305 .. index:: Ada.Containers.Functional_Maps (a-cofuma.ads)
307 .. index:: Functional maps
309 This child of ``Ada.Containers`` defines immutable maps. These containers are
310 unbounded and may contain indefinite elements. Furthermore, to be usable in
311 every context, they are neither controlled nor limited. As they are functional,
312 that is, no primitives are provided which would allow modifying an existing
313 container, these containers can still be used safely.
315 Their API features functions creating new containers from existing ones.
316 As a consequence, these containers are highly inefficient. They are also
317 memory consuming, as the allocated memory is not reclaimed when the container
318 is no longer referenced. Thus, they should in general be used in ghost code
319 and annotations, so that they can be removed from the final executable. The
320 specification of this unit is compatible with SPARK 2014.
322 .. _`Ada.Containers.Bounded_Holders_(a-coboho.ads)`:
324 ``Ada.Containers.Bounded_Holders`` (:file:`a-coboho.ads`)
325 =========================================================
327 .. index:: Ada.Containers.Bounded_Holders (a-coboho.ads)
329 .. index:: Formal container for vectors
331 This child of ``Ada.Containers`` defines a modified version of
332 Indefinite_Holders that avoids heap allocation.
334 .. _`Ada.Command_Line.Environment_(a-colien.ads)`:
336 ``Ada.Command_Line.Environment`` (:file:`a-colien.ads`)
337 =======================================================
339 .. index:: Ada.Command_Line.Environment (a-colien.ads)
341 .. index:: Environment entries
343 This child of ``Ada.Command_Line``
344 provides a mechanism for obtaining environment values on systems
345 where this concept makes sense.
347 .. _`Ada.Command_Line.Remove_(a-colire.ads)`:
349 ``Ada.Command_Line.Remove`` (:file:`a-colire.ads`)
350 ==================================================
352 .. index:: Ada.Command_Line.Remove (a-colire.ads)
354 .. index:: Removing command line arguments
356 .. index:: Command line, argument removal
358 This child of ``Ada.Command_Line``
359 provides a mechanism for logically removing
360 arguments from the argument list.  Once removed, an argument is not visible
361 to further calls on the subprograms in ``Ada.Command_Line`` will not
362 see the removed argument.
364 .. _`Ada.Command_Line.Response_File_(a-clrefi.ads)`:
366 ``Ada.Command_Line.Response_File`` (:file:`a-clrefi.ads`)
367 =========================================================
369 .. index:: Ada.Command_Line.Response_File (a-clrefi.ads)
371 .. index:: Response file for command line
373 .. index:: Command line, response file
375 .. index:: Command line, handling long command lines
377 This child of ``Ada.Command_Line`` provides a mechanism facilities for
378 getting command line arguments from a text file, called a "response file".
379 Using a response file allow passing a set of arguments to an executable longer
380 than the maximum allowed by the system on the command line.
382 .. _`Ada.Direct_IO.C_Streams_(a-diocst.ads)`:
384 ``Ada.Direct_IO.C_Streams`` (:file:`a-diocst.ads`)
385 ==================================================
387 .. index:: Ada.Direct_IO.C_Streams (a-diocst.ads)
389 .. index:: C Streams, Interfacing with Direct_IO
391 This package provides subprograms that allow interfacing between
392 C streams and ``Direct_IO``.  The stream identifier can be
393 extracted from a file opened on the Ada side, and an Ada file
394 can be constructed from a stream opened on the C side.
396 .. _`Ada.Exceptions.Is_Null_Occurrence_(a-einuoc.ads)`:
398 ``Ada.Exceptions.Is_Null_Occurrence`` (:file:`a-einuoc.ads`)
399 ============================================================
401 .. index:: Ada.Exceptions.Is_Null_Occurrence (a-einuoc.ads)
403 .. index:: Null_Occurrence, testing for
405 This child subprogram provides a way of testing for the null
406 exception occurrence (``Null_Occurrence``) without raising
407 an exception.
409 .. _`Ada.Exceptions.Last_Chance_Handler_(a-elchha.ads)`:
411 ``Ada.Exceptions.Last_Chance_Handler`` (:file:`a-elchha.ads`)
412 =============================================================
414 .. index:: Ada.Exceptions.Last_Chance_Handler (a-elchha.ads)
416 .. index:: Null_Occurrence, testing for
418 This child subprogram is used for handling otherwise unhandled
419 exceptions (hence the name last chance), and perform clean ups before
420 terminating the program. Note that this subprogram never returns.
422 .. _`Ada.Exceptions.Traceback_(a-exctra.ads)`:
424 ``Ada.Exceptions.Traceback`` (:file:`a-exctra.ads`)
425 ===================================================
427 .. index:: Ada.Exceptions.Traceback (a-exctra.ads)
429 .. index:: Traceback for Exception Occurrence
431 This child package provides the subprogram (``Tracebacks``) to
432 give a traceback array of addresses based on an exception
433 occurrence.
435 .. _`Ada.Sequential_IO.C_Streams_(a-siocst.ads)`:
437 ``Ada.Sequential_IO.C_Streams`` (:file:`a-siocst.ads`)
438 ======================================================
440 .. index:: Ada.Sequential_IO.C_Streams (a-siocst.ads)
442 .. index:: C Streams, Interfacing with Sequential_IO
444 This package provides subprograms that allow interfacing between
445 C streams and ``Sequential_IO``.  The stream identifier can be
446 extracted from a file opened on the Ada side, and an Ada file
447 can be constructed from a stream opened on the C side.
449 .. _`Ada.Streams.Stream_IO.C_Streams_(a-ssicst.ads)`:
451 ``Ada.Streams.Stream_IO.C_Streams`` (:file:`a-ssicst.ads`)
452 ==========================================================
454 .. index:: Ada.Streams.Stream_IO.C_Streams (a-ssicst.ads)
456 .. index:: C Streams, Interfacing with Stream_IO
458 This package provides subprograms that allow interfacing between
459 C streams and ``Stream_IO``.  The stream identifier can be
460 extracted from a file opened on the Ada side, and an Ada file
461 can be constructed from a stream opened on the C side.
463 .. _`Ada.Strings.Unbounded.Text_IO_(a-suteio.ads)`:
465 ``Ada.Strings.Unbounded.Text_IO`` (:file:`a-suteio.ads`)
466 ========================================================
468 .. index:: Ada.Strings.Unbounded.Text_IO (a-suteio.ads)
470 .. index:: Unbounded_String, IO support
472 .. index:: Text_IO, extensions for unbounded strings
474 This package provides subprograms for Text_IO for unbounded
475 strings, avoiding the necessity for an intermediate operation
476 with ordinary strings.
478 .. _`Ada.Strings.Wide_Unbounded.Wide_Text_IO_(a-swuwti.ads)`:
480 ``Ada.Strings.Wide_Unbounded.Wide_Text_IO`` (:file:`a-swuwti.ads`)
481 ==================================================================
483 .. index:: Ada.Strings.Wide_Unbounded.Wide_Text_IO (a-swuwti.ads)
485 .. index:: Unbounded_Wide_String, IO support
487 .. index:: Text_IO, extensions for unbounded wide strings
489 This package provides subprograms for Text_IO for unbounded
490 wide strings, avoiding the necessity for an intermediate operation
491 with ordinary wide strings.
493 .. _`Ada.Strings.Wide_Wide_Unbounded.Wide_Wide_Text_IO_(a-szuzti.ads)`:
495 ``Ada.Strings.Wide_Wide_Unbounded.Wide_Wide_Text_IO`` (:file:`a-szuzti.ads`)
496 ============================================================================
498 .. index:: Ada.Strings.Wide_Wide_Unbounded.Wide_Wide_Text_IO (a-szuzti.ads)
500 .. index:: Unbounded_Wide_Wide_String, IO support
502 .. index:: Text_IO, extensions for unbounded wide wide strings
504 This package provides subprograms for Text_IO for unbounded
505 wide wide strings, avoiding the necessity for an intermediate operation
506 with ordinary wide wide strings.
508 .. _`Ada.Text_IO.C_Streams_(a-tiocst.ads)`:
510 ``Ada.Text_IO.C_Streams`` (:file:`a-tiocst.ads`)
511 ================================================
513 .. index:: Ada.Text_IO.C_Streams (a-tiocst.ads)
515 .. index:: C Streams, Interfacing with ``Text_IO``
517 This package provides subprograms that allow interfacing between
518 C streams and ``Text_IO``.  The stream identifier can be
519 extracted from a file opened on the Ada side, and an Ada file
520 can be constructed from a stream opened on the C side.
522 .. _`Ada.Text_IO.Reset_Standard_Files_(a-tirsfi.ads)`:
524 ``Ada.Text_IO.Reset_Standard_Files`` (:file:`a-tirsfi.ads`)
525 ===========================================================
527 .. index:: Ada.Text_IO.Reset_Standard_Files (a-tirsfi.ads)
529 .. index:: Text_IO resetting standard files
531 This procedure is used to reset the status of the standard files used
532 by Ada.Text_IO.  This is useful in a situation (such as a restart in an
533 embedded application) where the status of the files may change during
534 execution (for example a standard input file may be redefined to be
535 interactive).
537 .. _`Ada.Wide_Characters.Unicode_(a-wichun.ads)`:
539 ``Ada.Wide_Characters.Unicode`` (:file:`a-wichun.ads`)
540 ======================================================
542 .. index:: Ada.Wide_Characters.Unicode (a-wichun.ads)
544 .. index:: Unicode categorization, Wide_Character
546 This package provides subprograms that allow categorization of
547 Wide_Character values according to Unicode categories.
549 .. _`Ada.Wide_Text_IO.C_Streams_(a-wtcstr.ads)`:
551 ``Ada.Wide_Text_IO.C_Streams`` (:file:`a-wtcstr.ads`)
552 =====================================================
554 .. index:: Ada.Wide_Text_IO.C_Streams (a-wtcstr.ads)
556 .. index:: C Streams, Interfacing with ``Wide_Text_IO``
558 This package provides subprograms that allow interfacing between
559 C streams and ``Wide_Text_IO``.  The stream identifier can be
560 extracted from a file opened on the Ada side, and an Ada file
561 can be constructed from a stream opened on the C side.
563 .. _`Ada.Wide_Text_IO.Reset_Standard_Files_(a-wrstfi.ads)`:
565 ``Ada.Wide_Text_IO.Reset_Standard_Files`` (:file:`a-wrstfi.ads`)
566 ================================================================
568 .. index:: Ada.Wide_Text_IO.Reset_Standard_Files (a-wrstfi.ads)
570 .. index:: Wide_Text_IO resetting standard files
572 This procedure is used to reset the status of the standard files used
573 by Ada.Wide_Text_IO.  This is useful in a situation (such as a restart in an
574 embedded application) where the status of the files may change during
575 execution (for example a standard input file may be redefined to be
576 interactive).
578 .. _`Ada.Wide_Wide_Characters.Unicode_(a-zchuni.ads)`:
580 ``Ada.Wide_Wide_Characters.Unicode`` (:file:`a-zchuni.ads`)
581 ===========================================================
583 .. index:: Ada.Wide_Wide_Characters.Unicode (a-zchuni.ads)
585 .. index:: Unicode categorization, Wide_Wide_Character
587 This package provides subprograms that allow categorization of
588 Wide_Wide_Character values according to Unicode categories.
590 .. _`Ada.Wide_Wide_Text_IO.C_Streams_(a-ztcstr.ads)`:
592 ``Ada.Wide_Wide_Text_IO.C_Streams`` (:file:`a-ztcstr.ads`)
593 ==========================================================
595 .. index:: Ada.Wide_Wide_Text_IO.C_Streams (a-ztcstr.ads)
597 .. index:: C Streams, Interfacing with ``Wide_Wide_Text_IO``
599 This package provides subprograms that allow interfacing between
600 C streams and ``Wide_Wide_Text_IO``.  The stream identifier can be
601 extracted from a file opened on the Ada side, and an Ada file
602 can be constructed from a stream opened on the C side.
604 .. _`Ada.Wide_Wide_Text_IO.Reset_Standard_Files_(a-zrstfi.ads)`:
606 ``Ada.Wide_Wide_Text_IO.Reset_Standard_Files`` (:file:`a-zrstfi.ads`)
607 =====================================================================
609 .. index:: Ada.Wide_Wide_Text_IO.Reset_Standard_Files (a-zrstfi.ads)
611 .. index:: Wide_Wide_Text_IO resetting standard files
613 This procedure is used to reset the status of the standard files used
614 by Ada.Wide_Wide_Text_IO. This is useful in a situation (such as a
615 restart in an embedded application) where the status of the files may
616 change during execution (for example a standard input file may be
617 redefined to be interactive).
619 .. _`GNAT.Altivec_(g-altive.ads)`:
621 ``GNAT.Altivec`` (:file:`g-altive.ads`)
622 =======================================
624 .. index:: GNAT.Altivec (g-altive.ads)
626 .. index:: AltiVec
628 This is the root package of the GNAT AltiVec binding. It provides
629 definitions of constants and types common to all the versions of the
630 binding.
632 .. _`GNAT.Altivec.Conversions_(g-altcon.ads)`:
634 ``GNAT.Altivec.Conversions`` (:file:`g-altcon.ads`)
635 ===================================================
637 .. index:: GNAT.Altivec.Conversions (g-altcon.ads)
639 .. index:: AltiVec
641 This package provides the Vector/View conversion routines.
643 .. _`GNAT.Altivec.Vector_Operations_(g-alveop.ads)`:
645 ``GNAT.Altivec.Vector_Operations`` (:file:`g-alveop.ads`)
646 =========================================================
648 .. index:: GNAT.Altivec.Vector_Operations (g-alveop.ads)
650 .. index:: AltiVec
652 This package exposes the Ada interface to the AltiVec operations on
653 vector objects. A soft emulation is included by default in the GNAT
654 library. The hard binding is provided as a separate package. This unit
655 is common to both bindings.
657 .. _`GNAT.Altivec.Vector_Types_(g-alvety.ads)`:
659 ``GNAT.Altivec.Vector_Types`` (:file:`g-alvety.ads`)
660 ====================================================
662 .. index:: GNAT.Altivec.Vector_Types (g-alvety.ads)
664 .. index:: AltiVec
666 This package exposes the various vector types part of the Ada binding
667 to AltiVec facilities.
669 .. _`GNAT.Altivec.Vector_Views_(g-alvevi.ads)`:
671 ``GNAT.Altivec.Vector_Views`` (:file:`g-alvevi.ads`)
672 ====================================================
674 .. index:: GNAT.Altivec.Vector_Views (g-alvevi.ads)
676 .. index:: AltiVec
678 This package provides public 'View' data types from/to which private
679 vector representations can be converted via
680 GNAT.Altivec.Conversions. This allows convenient access to individual
681 vector elements and provides a simple way to initialize vector
682 objects.
684 .. _`GNAT.Array_Split_(g-arrspl.ads)`:
686 ``GNAT.Array_Split`` (:file:`g-arrspl.ads`)
687 ===========================================
689 .. index:: GNAT.Array_Split (g-arrspl.ads)
691 .. index:: Array splitter
693 Useful array-manipulation routines: given a set of separators, split
694 an array wherever the separators appear, and provide direct access
695 to the resulting slices.
697 .. _`GNAT.AWK_(g-awk.ads)`:
699 ``GNAT.AWK`` (:file:`g-awk.ads`)
700 ================================
702 .. index:: GNAT.AWK (g-awk.ads)
704 .. index:: Parsing
706 .. index:: AWK
708 Provides AWK-like parsing functions, with an easy interface for parsing one
709 or more files containing formatted data.  The file is viewed as a database
710 where each record is a line and a field is a data element in this line.
712 .. _`GNAT.Bind_Environment_(g-binenv.ads)`:
714 ``GNAT.Bind_Environment`` (:file:`g-binenv.ads`)
715 ================================================
717 .. index:: GNAT.Bind_Environment (g-binenv.ads)
719 .. index:: Bind environment
721 Provides access to key=value associations captured at bind time.
722 These associations can be specified using the :switch:`-V` binder command
723 line switch.
725 .. _`GNAT.Bounded_Buffers_(g-boubuf.ads)`:
727 ``GNAT.Bounded_Buffers`` (:file:`g-boubuf.ads`)
728 ===============================================
730 .. index:: GNAT.Bounded_Buffers (g-boubuf.ads)
732 .. index:: Parsing
734 .. index:: Bounded Buffers
736 Provides a concurrent generic bounded buffer abstraction.  Instances are
737 useful directly or as parts of the implementations of other abstractions,
738 such as mailboxes.
740 .. _`GNAT.Bounded_Mailboxes_(g-boumai.ads)`:
742 ``GNAT.Bounded_Mailboxes`` (:file:`g-boumai.ads`)
743 =================================================
745 .. index:: GNAT.Bounded_Mailboxes (g-boumai.ads)
747 .. index:: Parsing
749 .. index:: Mailboxes
751 Provides a thread-safe asynchronous intertask mailbox communication facility.
753 .. _`GNAT.Bubble_Sort_(g-bubsor.ads)`:
755 ``GNAT.Bubble_Sort`` (:file:`g-bubsor.ads`)
756 ===========================================
758 .. index:: GNAT.Bubble_Sort (g-bubsor.ads)
760 .. index:: Sorting
762 .. index:: Bubble sort
764 Provides a general implementation of bubble sort usable for sorting arbitrary
765 data items.  Exchange and comparison procedures are provided by passing
766 access-to-procedure values.
768 .. _`GNAT.Bubble_Sort_A_(g-busora.ads)`:
770 ``GNAT.Bubble_Sort_A`` (:file:`g-busora.ads`)
771 =============================================
773 .. index:: GNAT.Bubble_Sort_A (g-busora.ads)
775 .. index:: Sorting
777 .. index:: Bubble sort
779 Provides a general implementation of bubble sort usable for sorting arbitrary
780 data items.  Move and comparison procedures are provided by passing
781 access-to-procedure values. This is an older version, retained for
782 compatibility. Usually ``GNAT.Bubble_Sort`` will be preferable.
784 .. _`GNAT.Bubble_Sort_G_(g-busorg.ads)`:
786 ``GNAT.Bubble_Sort_G`` (:file:`g-busorg.ads`)
787 =============================================
789 .. index:: GNAT.Bubble_Sort_G (g-busorg.ads)
791 .. index:: Sorting
793 .. index:: Bubble sort
795 Similar to ``Bubble_Sort_A`` except that the move and sorting procedures
796 are provided as generic parameters, this improves efficiency, especially
797 if the procedures can be inlined, at the expense of duplicating code for
798 multiple instantiations.
800 .. _`GNAT.Byte_Order_Mark_(g-byorma.ads)`:
802 ``GNAT.Byte_Order_Mark`` (:file:`g-byorma.ads`)
803 ===============================================
805 .. index:: GNAT.Byte_Order_Mark (g-byorma.ads)
807 .. index:: UTF-8 representation
809 .. index:: Wide characte representations
811 Provides a routine which given a string, reads the start of the string to
812 see whether it is one of the standard byte order marks (BOM's) which signal
813 the encoding of the string. The routine includes detection of special XML
814 sequences for various UCS input formats.
816 .. _`GNAT.Byte_Swapping_(g-bytswa.ads)`:
818 ``GNAT.Byte_Swapping`` (:file:`g-bytswa.ads`)
819 =============================================
821 .. index:: GNAT.Byte_Swapping (g-bytswa.ads)
823 .. index:: Byte swapping
825 .. index:: Endianness
827 General routines for swapping the bytes in 2-, 4-, and 8-byte quantities.
828 Machine-specific implementations are available in some cases.
830 .. _`GNAT.Calendar_(g-calend.ads)`:
832 ``GNAT.Calendar`` (:file:`g-calend.ads`)
833 ========================================
835 .. index:: GNAT.Calendar (g-calend.ads)
837 .. index:: Calendar
839 Extends the facilities provided by ``Ada.Calendar`` to include handling
840 of days of the week, an extended ``Split`` and ``Time_Of`` capability.
841 Also provides conversion of ``Ada.Calendar.Time`` values to and from the
842 C ``timeval`` format.
844 .. _`GNAT.Calendar.Time_IO_(g-catiio.ads)`:
846 ``GNAT.Calendar.Time_IO`` (:file:`g-catiio.ads`)
847 ================================================
849 .. index:: Calendar
851 .. index:: Time
853 .. index:: GNAT.Calendar.Time_IO (g-catiio.ads)
855 .. _`GNAT.CRC32_(g-crc32.ads)`:
857 ``GNAT.CRC32`` (:file:`g-crc32.ads`)
858 ====================================
860 .. index:: GNAT.CRC32 (g-crc32.ads)
862 .. index:: CRC32
864 .. index:: Cyclic Redundancy Check
866 This package implements the CRC-32 algorithm.  For a full description
867 of 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,
870 Aug. 1988.  Sarwate, D.V.
872 .. _`GNAT.Case_Util_(g-casuti.ads)`:
874 ``GNAT.Case_Util`` (:file:`g-casuti.ads`)
875 =========================================
877 .. index:: GNAT.Case_Util (g-casuti.ads)
879 .. index:: Casing utilities
881 .. index:: Character handling (``GNAT.Case_Util``)
883 A set of simple routines for handling upper and lower casing of strings
884 without the overhead of the full casing tables
885 in ``Ada.Characters.Handling``.
887 .. _`GNAT.CGI_(g-cgi.ads)`:
889 ``GNAT.CGI`` (:file:`g-cgi.ads`)
890 ================================
892 .. index:: GNAT.CGI (g-cgi.ads)
894 .. index:: CGI (Common Gateway Interface)
896 This is a package for interfacing a GNAT program with a Web server via the
897 Common Gateway Interface (CGI).  Basically this package parses the CGI
898 parameters, which are a set of key/value pairs sent by the Web server.  It
899 builds a table whose index is the key and provides some services to deal
900 with this table.
902 .. _`GNAT.CGI.Cookie_(g-cgicoo.ads)`:
904 ``GNAT.CGI.Cookie`` (:file:`g-cgicoo.ads`)
905 ==========================================
907 .. index:: GNAT.CGI.Cookie (g-cgicoo.ads)
909 .. index:: CGI (Common Gateway Interface) cookie support
911 .. index:: Cookie support in CGI
913 This is a package to interface a GNAT program with a Web server via the
914 Common Gateway Interface (CGI).  It exports services to deal with Web
915 cookies (piece of information kept in the Web client software).
917 .. _`GNAT.CGI.Debug_(g-cgideb.ads)`:
919 ``GNAT.CGI.Debug`` (:file:`g-cgideb.ads`)
920 =========================================
922 .. index:: GNAT.CGI.Debug (g-cgideb.ads)
924 .. index:: CGI (Common Gateway Interface) debugging
926 This is a package to help debugging CGI (Common Gateway Interface)
927 programs written in Ada.
929 .. _`GNAT.Command_Line_(g-comlin.ads)`:
931 ``GNAT.Command_Line`` (:file:`g-comlin.ads`)
932 ============================================
934 .. index:: GNAT.Command_Line (g-comlin.ads)
936 .. index:: Command line
938 Provides a high level interface to ``Ada.Command_Line`` facilities,
939 including the ability to scan for named switches with optional parameters
940 and expand file names using wild card notations.
942 .. _`GNAT.Compiler_Version_(g-comver.ads)`:
944 ``GNAT.Compiler_Version`` (:file:`g-comver.ads`)
945 ================================================
947 .. index:: GNAT.Compiler_Version (g-comver.ads)
949 .. index:: Compiler Version
951 .. index:: Version, of compiler
953 Provides a routine for obtaining the version of the compiler used to
954 compile the program. More accurately this is the version of the binder
955 used to bind the program (this will normally be the same as the version
956 of the compiler if a consistent tool set is used to compile all units
957 of a partition).
959 .. _`GNAT.Ctrl_C_(g-ctrl_c.ads)`:
961 ``GNAT.Ctrl_C`` (:file:`g-ctrl_c.ads`)
962 ======================================
964 .. index:: GNAT.Ctrl_C (g-ctrl_c.ads)
966 .. index:: Interrupt
968 Provides a simple interface to handle Ctrl-C keyboard events.
970 .. _`GNAT.Current_Exception_(g-curexc.ads)`:
972 ``GNAT.Current_Exception`` (:file:`g-curexc.ads`)
973 =================================================
975 .. index:: GNAT.Current_Exception (g-curexc.ads)
977 .. index:: Current exception
979 .. index:: Exception retrieval
981 Provides access to information on the current exception that has been raised
982 without the need for using the Ada 95 / Ada 2005 exception choice parameter
983 specification syntax.
984 This is particularly useful in simulating typical facilities for
985 obtaining information about exceptions provided by Ada 83 compilers.
987 .. _`GNAT.Debug_Pools_(g-debpoo.ads)`:
989 ``GNAT.Debug_Pools`` (:file:`g-debpoo.ads`)
990 ===========================================
992 .. index:: GNAT.Debug_Pools (g-debpoo.ads)
994 .. index:: Debugging
996 .. index:: Debug pools
998 .. index:: Memory corruption debugging
1000 Provide a debugging storage pools that helps tracking memory corruption
1001 problems.
1002 See ``The GNAT Debug_Pool Facility`` section in the :title:`GNAT User's Guide`.
1004 .. _`GNAT.Debug_Utilities_(g-debuti.ads)`:
1006 ``GNAT.Debug_Utilities`` (:file:`g-debuti.ads`)
1007 ===============================================
1009 .. index:: GNAT.Debug_Utilities (g-debuti.ads)
1011 .. index:: Debugging
1013 Provides a few useful utilities for debugging purposes, including conversion
1014 to and from string images of address values. Supports both C and Ada formats
1015 for hexadecimal literals.
1017 .. _`GNAT.Decode_String_(g-decstr.ads)`:
1019 ``GNAT.Decode_String`` (:file:`g-decstr.ads`)
1020 =============================================
1022 .. index:: GNAT.Decode_String (g-decstr.ads)
1024 .. index:: Decoding strings
1026 .. index:: String decoding
1028 .. index:: Wide character encoding
1030 .. index:: UTF-8
1032 .. index:: Unicode
1034 A generic package providing routines for decoding wide character and wide wide
1035 character strings encoded as sequences of 8-bit characters using a specified
1036 encoding method. Includes validation routines, and also routines for stepping
1037 to next or previous encoded character in an encoded string.
1038 Useful in conjunction with Unicode character coding. Note there is a
1039 preinstantiation for UTF-8. See next entry.
1041 .. _`GNAT.Decode_UTF8_String_(g-deutst.ads)`:
1043 ``GNAT.Decode_UTF8_String`` (:file:`g-deutst.ads`)
1044 ==================================================
1046 .. index:: GNAT.Decode_UTF8_String (g-deutst.ads)
1048 .. index:: Decoding strings
1050 .. index:: Decoding UTF-8 strings
1052 .. index:: UTF-8 string decoding
1054 .. index:: Wide character decoding
1056 .. index:: UTF-8
1058 .. index:: Unicode
1060 A preinstantiation of GNAT.Decode_Strings for UTF-8 encoding.
1062 .. _`GNAT.Directory_Operations_(g-dirope.ads)`:
1064 ``GNAT.Directory_Operations`` (:file:`g-dirope.ads`)
1065 ====================================================
1067 .. index:: GNAT.Directory_Operations (g-dirope.ads)
1069 .. index:: Directory operations
1071 Provides a set of routines for manipulating directories, including changing
1072 the current directory, making new directories, and scanning the files in a
1073 directory.
1075 .. _`GNAT.Directory_Operations.Iteration_(g-diopit.ads)`:
1077 ``GNAT.Directory_Operations.Iteration`` (:file:`g-diopit.ads`)
1078 ==============================================================
1080 .. index:: GNAT.Directory_Operations.Iteration (g-diopit.ads)
1082 .. index:: Directory operations iteration
1084 A child unit of GNAT.Directory_Operations providing additional operations
1085 for iterating through directories.
1087 .. _`GNAT.Dynamic_HTables_(g-dynhta.ads)`:
1089 ``GNAT.Dynamic_HTables`` (:file:`g-dynhta.ads`)
1090 ===============================================
1092 .. index:: GNAT.Dynamic_HTables (g-dynhta.ads)
1094 .. index:: Hash tables
1096 A generic implementation of hash tables that can be used to hash arbitrary
1097 data.  Provided in two forms, a simple form with built in hash functions,
1098 and a more complex form in which the hash function is supplied.
1100 This package provides a facility similar to that of ``GNAT.HTable``,
1101 except that this package declares a type that can be used to define
1102 dynamic instances of the hash table, while an instantiation of
1103 ``GNAT.HTable`` creates a single instance of the hash table.
1105 .. _`GNAT.Dynamic_Tables_(g-dyntab.ads)`:
1107 ``GNAT.Dynamic_Tables`` (:file:`g-dyntab.ads`)
1108 ==============================================
1110 .. index:: GNAT.Dynamic_Tables (g-dyntab.ads)
1112 .. index:: Table implementation
1114 .. index:: Arrays, extendable
1116 A generic package providing a single dimension array abstraction where the
1117 length of the array can be dynamically modified.
1119 This package provides a facility similar to that of ``GNAT.Table``,
1120 except that this package declares a type that can be used to define
1121 dynamic instances of the table, while an instantiation of
1122 ``GNAT.Table`` creates a single instance of the table type.
1124 .. _`GNAT.Encode_String_(g-encstr.ads)`:
1126 ``GNAT.Encode_String`` (:file:`g-encstr.ads`)
1127 =============================================
1129 .. index:: GNAT.Encode_String (g-encstr.ads)
1131 .. index:: Encoding strings
1133 .. index:: String encoding
1135 .. index:: Wide character encoding
1137 .. index:: UTF-8
1139 .. index:: Unicode
1141 A generic package providing routines for encoding wide character and wide
1142 wide character strings as sequences of 8-bit characters using a specified
1143 encoding method. Useful in conjunction with Unicode character coding.
1144 Note there is a preinstantiation for UTF-8. See next entry.
1146 .. _`GNAT.Encode_UTF8_String_(g-enutst.ads)`:
1148 ``GNAT.Encode_UTF8_String`` (:file:`g-enutst.ads`)
1149 ==================================================
1151 .. index:: GNAT.Encode_UTF8_String (g-enutst.ads)
1153 .. index:: Encoding strings
1155 .. index:: Encoding UTF-8 strings
1157 .. index:: UTF-8 string encoding
1159 .. index:: Wide character encoding
1161 .. index:: UTF-8
1163 .. index:: Unicode
1165 A preinstantiation of GNAT.Encode_Strings for UTF-8 encoding.
1167 .. _`GNAT.Exception_Actions_(g-excact.ads)`:
1169 ``GNAT.Exception_Actions`` (:file:`g-excact.ads`)
1170 =================================================
1172 .. index:: GNAT.Exception_Actions (g-excact.ads)
1174 .. index:: Exception actions
1176 Provides callbacks when an exception is raised. Callbacks can be registered
1177 for specific exceptions, or when any exception is raised. This
1178 can be used for instance to force a core dump to ease debugging.
1180 .. _`GNAT.Exception_Traces_(g-exctra.ads)`:
1182 ``GNAT.Exception_Traces`` (:file:`g-exctra.ads`)
1183 ================================================
1185 .. index:: GNAT.Exception_Traces (g-exctra.ads)
1187 .. index:: Exception traces
1189 .. index:: Debugging
1191 Provides an interface allowing to control automatic output upon exception
1192 occurrences.
1194 .. _`GNAT.Exceptions_(g-expect.ads)`:
1196 ``GNAT.Exceptions`` (:file:`g-expect.ads`)
1197 ==========================================
1199 .. index:: GNAT.Exceptions (g-expect.ads)
1201 .. index:: Exceptions, Pure
1203 .. index:: Pure packages, exceptions
1205 Normally it is not possible to raise an exception with
1206 a message from a subprogram in a pure package, since the
1207 necessary types and subprograms are in ``Ada.Exceptions``
1208 which is not a pure unit. ``GNAT.Exceptions`` provides a
1209 facility for getting around this limitation for a few
1210 predefined exceptions, and for example allow raising
1211 ``Constraint_Error`` with a message from a pure subprogram.
1213 .. _`GNAT.Expect_(g-expect.ads)`:
1215 ``GNAT.Expect`` (:file:`g-expect.ads`)
1216 ======================================
1218 .. index:: GNAT.Expect (g-expect.ads)
1220 Provides a set of subprograms similar to what is available
1221 with the standard Tcl Expect tool.
1222 It allows you to easily spawn and communicate with an external process.
1223 You can send commands or inputs to the process, and compare the output
1224 with some expected regular expression. Currently ``GNAT.Expect``
1225 is implemented on all native GNAT ports.
1226 It is not implemented for cross ports, and in particular is not
1227 implemented for VxWorks or LynxOS.
1229 .. _`GNAT.Expect.TTY_(g-exptty.ads)`:
1231 ``GNAT.Expect.TTY`` (:file:`g-exptty.ads`)
1232 ==========================================
1234 .. index:: GNAT.Expect.TTY (g-exptty.ads)
1236 As GNAT.Expect but using pseudo-terminal.
1237 Currently ``GNAT.Expect.TTY`` is implemented on all native GNAT
1238 ports. It is not implemented for cross ports, and
1239 in particular is not implemented for VxWorks or LynxOS.
1241 .. _`GNAT.Float_Control_(g-flocon.ads)`:
1243 ``GNAT.Float_Control`` (:file:`g-flocon.ads`)
1244 =============================================
1246 .. index:: GNAT.Float_Control (g-flocon.ads)
1248 .. index:: Floating-Point Processor
1250 Provides an interface for resetting the floating-point processor into the
1251 mode required for correct semantic operation in Ada.  Some third party
1252 library calls may cause this mode to be modified, and the Reset procedure
1253 in this package can be used to reestablish the required mode.
1255 .. _`GNAT.Formatted_String_(g-forstr.ads)`:
1257 ``GNAT.Formatted_String`` (:file:`g-forstr.ads`)
1258 ================================================
1260 .. index:: GNAT.Formatted_String (g-forstr.ads)
1262 .. index:: Formatted String
1264 Provides support for C/C++ printf() formatted strings. The format is
1265 copied from the printf() routine and should therefore gives identical
1266 output. Some generic routines are provided to be able to use types
1267 derived from Integer, Float or enumerations as values for the
1268 formatted string.
1270 .. _`GNAT.Heap_Sort_(g-heasor.ads)`:
1272 ``GNAT.Heap_Sort`` (:file:`g-heasor.ads`)
1273 =========================================
1275 .. index:: GNAT.Heap_Sort (g-heasor.ads)
1277 .. index:: Sorting
1279 Provides a general implementation of heap sort usable for sorting arbitrary
1280 data items. Exchange and comparison procedures are provided by passing
1281 access-to-procedure values.  The algorithm used is a modified heap sort
1282 that performs approximately N*log(N) comparisons in the worst case.
1284 .. _`GNAT.Heap_Sort_A_(g-hesora.ads)`:
1286 ``GNAT.Heap_Sort_A`` (:file:`g-hesora.ads`)
1287 ===========================================
1289 .. index:: GNAT.Heap_Sort_A (g-hesora.ads)
1291 .. index:: Sorting
1293 Provides a general implementation of heap sort usable for sorting arbitrary
1294 data items. Move and comparison procedures are provided by passing
1295 access-to-procedure values.  The algorithm used is a modified heap sort
1296 that performs approximately N*log(N) comparisons in the worst case.
1297 This differs from ``GNAT.Heap_Sort`` in having a less convenient
1298 interface, but may be slightly more efficient.
1300 .. _`GNAT.Heap_Sort_G_(g-hesorg.ads)`:
1302 ``GNAT.Heap_Sort_G`` (:file:`g-hesorg.ads`)
1303 ===========================================
1305 .. index:: GNAT.Heap_Sort_G (g-hesorg.ads)
1307 .. index:: Sorting
1309 Similar to ``Heap_Sort_A`` except that the move and sorting procedures
1310 are provided as generic parameters, this improves efficiency, especially
1311 if the procedures can be inlined, at the expense of duplicating code for
1312 multiple instantiations.
1314 .. _`GNAT.HTable_(g-htable.ads)`:
1316 ``GNAT.HTable`` (:file:`g-htable.ads`)
1317 ======================================
1319 .. index:: GNAT.HTable (g-htable.ads)
1321 .. index:: Hash tables
1323 A generic implementation of hash tables that can be used to hash arbitrary
1324 data.  Provides two approaches, one a simple static approach, and the other
1325 allowing arbitrary dynamic hash tables.
1327 .. _`GNAT.IO_(g-io.ads)`:
1329 ``GNAT.IO`` (:file:`g-io.ads`)
1330 ==============================
1332 .. index:: GNAT.IO (g-io.ads)
1334 .. index:: Simple I/O
1336 .. index:: Input/Output facilities
1338 A simple preelaborable input-output package that provides a subset of
1339 simple Text_IO functions for reading characters and strings from
1340 Standard_Input, and writing characters, strings and integers to either
1341 Standard_Output or Standard_Error.
1343 .. _`GNAT.IO_Aux_(g-io_aux.ads)`:
1345 ``GNAT.IO_Aux`` (:file:`g-io_aux.ads`)
1346 ======================================
1348 .. index:: GNAT.IO_Aux (g-io_aux.ads)
1350 .. index:: Text_IO
1352 .. index:: Input/Output facilities
1354 Provides some auxiliary functions for use with Text_IO, including a test
1355 for whether a file exists, and functions for reading a line of text.
1357 .. _`GNAT.Lock_Files_(g-locfil.ads)`:
1359 ``GNAT.Lock_Files`` (:file:`g-locfil.ads`)
1360 ==========================================
1362 .. index:: GNAT.Lock_Files (g-locfil.ads)
1364 .. index:: File locking
1366 .. index:: Locking using files
1368 Provides a general interface for using files as locks.  Can be used for
1369 providing program level synchronization.
1371 .. _`GNAT.MBBS_Discrete_Random_(g-mbdira.ads)`:
1373 ``GNAT.MBBS_Discrete_Random`` (:file:`g-mbdira.ads`)
1374 ====================================================
1376 .. index:: GNAT.MBBS_Discrete_Random (g-mbdira.ads)
1378 .. index:: Random number generation
1380 The original implementation of ``Ada.Numerics.Discrete_Random``.  Uses
1381 a modified version of the Blum-Blum-Shub generator.
1383 .. _`GNAT.MBBS_Float_Random_(g-mbflra.ads)`:
1385 ``GNAT.MBBS_Float_Random`` (:file:`g-mbflra.ads`)
1386 =================================================
1388 .. index:: GNAT.MBBS_Float_Random (g-mbflra.ads)
1390 .. index:: Random number generation
1392 The original implementation of ``Ada.Numerics.Float_Random``.  Uses
1393 a modified version of the Blum-Blum-Shub generator.
1395 .. _`GNAT.MD5_(g-md5.ads)`:
1397 ``GNAT.MD5`` (:file:`g-md5.ads`)
1398 ================================
1400 .. index:: GNAT.MD5 (g-md5.ads)
1402 .. index:: Message Digest MD5
1404 Implements the MD5 Message-Digest Algorithm as described in RFC 1321, and
1405 the HMAC-MD5 message authentication function as described in RFC 2104 and
1406 FIPS PUB 198.
1408 .. _`GNAT.Memory_Dump_(g-memdum.ads)`:
1410 ``GNAT.Memory_Dump`` (:file:`g-memdum.ads`)
1411 ===========================================
1413 .. index:: GNAT.Memory_Dump (g-memdum.ads)
1415 .. index:: Dump Memory
1417 Provides a convenient routine for dumping raw memory to either the
1418 standard output or standard error files. Uses GNAT.IO for actual
1419 output.
1421 .. _`GNAT.Most_Recent_Exception_(g-moreex.ads)`:
1423 ``GNAT.Most_Recent_Exception`` (:file:`g-moreex.ads`)
1424 =====================================================
1426 .. index:: GNAT.Most_Recent_Exception (g-moreex.ads)
1428 .. index:: Exception, obtaining most recent
1430 Provides access to the most recently raised exception.  Can be used for
1431 various logging purposes, including duplicating functionality of some
1432 Ada 83 implementation dependent extensions.
1434 .. _`GNAT.OS_Lib_(g-os_lib.ads)`:
1436 ``GNAT.OS_Lib`` (:file:`g-os_lib.ads`)
1437 ======================================
1439 .. index:: GNAT.OS_Lib (g-os_lib.ads)
1441 .. index:: Operating System interface
1443 .. index:: Spawn capability
1445 Provides a range of target independent operating system interface functions,
1446 including time/date management, file operations, subprocess management,
1447 including a portable spawn procedure, and access to environment variables
1448 and error return codes.
1450 .. _`GNAT.Perfect_Hash_Generators_(g-pehage.ads)`:
1452 ``GNAT.Perfect_Hash_Generators`` (:file:`g-pehage.ads`)
1453 =======================================================
1455 .. index:: GNAT.Perfect_Hash_Generators (g-pehage.ads)
1457 .. index:: Hash functions
1459 Provides a generator of static minimal perfect hash functions. No
1460 collisions occur and each item can be retrieved from the table in one
1461 probe (perfect property). The hash table size corresponds to the exact
1462 size of the key set and no larger (minimal property). The key set has to
1463 be know in advance (static property). The hash functions are also order
1464 preserving. If w2 is inserted after w1 in the generator, their
1465 hashcode are in the same order. These hashing functions are very
1466 convenient for use with realtime applications.
1468 .. _`GNAT.Random_Numbers_(g-rannum.ads)`:
1470 ``GNAT.Random_Numbers`` (:file:`g-rannum.ads`)
1471 ==============================================
1473 .. index:: GNAT.Random_Numbers (g-rannum.ads)
1475 .. index:: Random number generation
1477 Provides random number capabilities which extend those available in the
1478 standard Ada library and are more convenient to use.
1480 .. _`GNAT.Regexp_(g-regexp.ads)`:
1482 ``GNAT.Regexp`` (:file:`g-regexp.ads`)
1483 ======================================
1485 .. index:: GNAT.Regexp (g-regexp.ads)
1487 .. index:: Regular expressions
1489 .. index:: Pattern matching
1491 A simple implementation of regular expressions, using a subset of regular
1492 expression syntax copied from familiar Unix style utilities.  This is the
1493 simplest of the three pattern matching packages provided, and is particularly
1494 suitable for 'file globbing' applications.
1496 .. _`GNAT.Registry_(g-regist.ads)`:
1498 ``GNAT.Registry`` (:file:`g-regist.ads`)
1499 ========================================
1501 .. index:: GNAT.Registry (g-regist.ads)
1503 .. index:: Windows Registry
1505 This is a high level binding to the Windows registry.  It is possible to
1506 do simple things like reading a key value, creating a new key.  For full
1507 registry API, but at a lower level of abstraction, refer to the Win32.Winreg
1508 package provided with the Win32Ada binding
1510 .. _`GNAT.Regpat_(g-regpat.ads)`:
1512 ``GNAT.Regpat`` (:file:`g-regpat.ads`)
1513 ======================================
1515 .. index:: GNAT.Regpat (g-regpat.ads)
1517 .. index:: Regular expressions
1519 .. index:: Pattern matching
1521 A complete implementation of Unix-style regular expression matching, copied
1522 from the original V7 style regular expression library written in C by
1523 Henry Spencer (and binary compatible with this C library).
1525 .. _`GNAT.Rewrite_Data_(g-rewdat.ads)`:
1527 ``GNAT.Rewrite_Data`` (:file:`g-rewdat.ads`)
1528 ============================================
1530 .. index:: GNAT.Rewrite_Data (g-rewdat.ads)
1532 .. index:: Rewrite data
1534 A unit to rewrite on-the-fly string occurrences in a stream of
1535 data. The implementation has a very minimal memory footprint as the
1536 full content to be processed is not loaded into memory all at once. This makes
1537 this interface usable for large files or socket streams.
1539 .. _`GNAT.Secondary_Stack_Info_(g-sestin.ads)`:
1541 ``GNAT.Secondary_Stack_Info`` (:file:`g-sestin.ads`)
1542 ====================================================
1544 .. index:: GNAT.Secondary_Stack_Info (g-sestin.ads)
1546 .. index:: Secondary Stack Info
1548 Provide the capability to query the high water mark of the current task's
1549 secondary stack.
1551 .. _`GNAT.Semaphores_(g-semaph.ads)`:
1553 ``GNAT.Semaphores`` (:file:`g-semaph.ads`)
1554 ==========================================
1556 .. index:: GNAT.Semaphores (g-semaph.ads)
1558 .. index:: Semaphores
1560 Provides classic counting and binary semaphores using protected types.
1562 .. _`GNAT.Serial_Communications_(g-sercom.ads)`:
1564 ``GNAT.Serial_Communications`` (:file:`g-sercom.ads`)
1565 =====================================================
1567 .. index:: GNAT.Serial_Communications (g-sercom.ads)
1569 .. index:: Serial_Communications
1571 Provides a simple interface to send and receive data over a serial
1572 port. This is only supported on GNU/Linux and Windows.
1574 .. _`GNAT.SHA1_(g-sha1.ads)`:
1576 ``GNAT.SHA1`` (:file:`g-sha1.ads`)
1577 ==================================
1579 .. index:: GNAT.SHA1 (g-sha1.ads)
1581 .. index:: Secure Hash Algorithm SHA-1
1583 Implements the SHA-1 Secure Hash Algorithm as described in FIPS PUB 180-3
1584 and RFC 3174, and the HMAC-SHA1 message authentication function as described
1585 in RFC 2104 and FIPS PUB 198.
1587 .. _`GNAT.SHA224_(g-sha224.ads)`:
1589 ``GNAT.SHA224`` (:file:`g-sha224.ads`)
1590 ======================================
1592 .. index:: GNAT.SHA224 (g-sha224.ads)
1594 .. index:: Secure Hash Algorithm SHA-224
1596 Implements the SHA-224 Secure Hash Algorithm as described in FIPS PUB 180-3,
1597 and the HMAC-SHA224 message authentication function as described
1598 in RFC 2104 and FIPS PUB 198.
1600 .. _`GNAT.SHA256_(g-sha256.ads)`:
1602 ``GNAT.SHA256`` (:file:`g-sha256.ads`)
1603 ======================================
1605 .. index:: GNAT.SHA256 (g-sha256.ads)
1607 .. index:: Secure Hash Algorithm SHA-256
1609 Implements the SHA-256 Secure Hash Algorithm as described in FIPS PUB 180-3,
1610 and the HMAC-SHA256 message authentication function as described
1611 in RFC 2104 and FIPS PUB 198.
1613 .. _`GNAT.SHA384_(g-sha384.ads)`:
1615 ``GNAT.SHA384`` (:file:`g-sha384.ads`)
1616 ======================================
1618 .. index:: GNAT.SHA384 (g-sha384.ads)
1620 .. index:: Secure Hash Algorithm SHA-384
1622 Implements the SHA-384 Secure Hash Algorithm as described in FIPS PUB 180-3,
1623 and the HMAC-SHA384 message authentication function as described
1624 in RFC 2104 and FIPS PUB 198.
1626 .. _`GNAT.SHA512_(g-sha512.ads)`:
1628 ``GNAT.SHA512`` (:file:`g-sha512.ads`)
1629 ======================================
1631 .. index:: GNAT.SHA512 (g-sha512.ads)
1633 .. index:: Secure Hash Algorithm SHA-512
1635 Implements the SHA-512 Secure Hash Algorithm as described in FIPS PUB 180-3,
1636 and the HMAC-SHA512 message authentication function as described
1637 in RFC 2104 and FIPS PUB 198.
1639 .. _`GNAT.Signals_(g-signal.ads)`:
1641 ``GNAT.Signals`` (:file:`g-signal.ads`)
1642 =======================================
1644 .. index:: GNAT.Signals (g-signal.ads)
1646 .. index:: Signals
1648 Provides the ability to manipulate the blocked status of signals on supported
1649 targets.
1651 .. _`GNAT.Sockets_(g-socket.ads)`:
1653 ``GNAT.Sockets`` (:file:`g-socket.ads`)
1654 =======================================
1656 .. index:: GNAT.Sockets (g-socket.ads)
1658 .. index:: Sockets
1660 A high level and portable interface to develop sockets based applications.
1661 This package is based on the sockets thin binding found in
1662 ``GNAT.Sockets.Thin``. Currently ``GNAT.Sockets`` is implemented
1663 on all native GNAT ports and on VxWorks cross prots.  It is not implemented for
1664 the LynxOS cross port.
1666 .. _`GNAT.Source_Info_(g-souinf.ads)`:
1668 ``GNAT.Source_Info`` (:file:`g-souinf.ads`)
1669 ===========================================
1671 .. index:: GNAT.Source_Info (g-souinf.ads)
1673 .. index:: Source Information
1675 Provides subprograms that give access to source code information known at
1676 compile time, such as the current file name and line number. Also provides
1677 subprograms yielding the date and time of the current compilation (like the
1678 C macros ``__DATE__`` and ``__TIME__``)
1680 .. _`GNAT.Spelling_Checker_(g-speche.ads)`:
1682 ``GNAT.Spelling_Checker`` (:file:`g-speche.ads`)
1683 ================================================
1685 .. index:: GNAT.Spelling_Checker (g-speche.ads)
1687 .. index:: Spell checking
1689 Provides a function for determining whether one string is a plausible
1690 near misspelling of another string.
1692 .. _`GNAT.Spelling_Checker_Generic_(g-spchge.ads)`:
1694 ``GNAT.Spelling_Checker_Generic`` (:file:`g-spchge.ads`)
1695 ========================================================
1697 .. index:: GNAT.Spelling_Checker_Generic (g-spchge.ads)
1699 .. index:: Spell checking
1701 Provides a generic function that can be instantiated with a string type for
1702 determining whether one string is a plausible near misspelling of another
1703 string.
1705 .. _`GNAT.Spitbol.Patterns_(g-spipat.ads)`:
1707 ``GNAT.Spitbol.Patterns`` (:file:`g-spipat.ads`)
1708 ================================================
1710 .. index:: GNAT.Spitbol.Patterns (g-spipat.ads)
1712 .. index:: SPITBOL pattern matching
1714 .. index:: Pattern matching
1716 A complete implementation of SNOBOL4 style pattern matching.  This is the
1717 most elaborate of the pattern matching packages provided.  It fully duplicates
1718 the SNOBOL4 dynamic pattern construction and matching capabilities, using the
1719 efficient algorithm developed by Robert Dewar for the SPITBOL system.
1721 .. _`GNAT.Spitbol_(g-spitbo.ads)`:
1723 ``GNAT.Spitbol`` (:file:`g-spitbo.ads`)
1724 =======================================
1726 .. index:: GNAT.Spitbol (g-spitbo.ads)
1728 .. index:: SPITBOL interface
1730 The top level package of the collection of SPITBOL-style functionality, this
1731 package provides basic SNOBOL4 string manipulation functions, such as
1732 Pad, Reverse, Trim, Substr capability, as well as a generic table function
1733 useful for constructing arbitrary mappings from strings in the style of
1734 the SNOBOL4 TABLE function.
1736 .. _`GNAT.Spitbol.Table_Boolean_(g-sptabo.ads)`:
1738 ``GNAT.Spitbol.Table_Boolean`` (:file:`g-sptabo.ads`)
1739 =====================================================
1741 .. index:: GNAT.Spitbol.Table_Boolean (g-sptabo.ads)
1743 .. index:: Sets of strings
1745 .. index:: SPITBOL Tables
1747 A library level of instantiation of ``GNAT.Spitbol.Patterns.Table``
1748 for type ``Standard.Boolean``, giving an implementation of sets of
1749 string values.
1751 .. _`GNAT.Spitbol.Table_Integer_(g-sptain.ads)`:
1753 ``GNAT.Spitbol.Table_Integer`` (:file:`g-sptain.ads`)
1754 =====================================================
1756 .. index:: GNAT.Spitbol.Table_Integer (g-sptain.ads)
1758 .. index:: Integer maps
1760 .. index:: Maps
1762 .. index:: SPITBOL Tables
1764 A library level of instantiation of ``GNAT.Spitbol.Patterns.Table``
1765 for type ``Standard.Integer``, giving an implementation of maps
1766 from string to integer values.
1768 .. _`GNAT.Spitbol.Table_VString_(g-sptavs.ads)`:
1770 ``GNAT.Spitbol.Table_VString`` (:file:`g-sptavs.ads`)
1771 =====================================================
1773 .. index:: GNAT.Spitbol.Table_VString (g-sptavs.ads)
1775 .. index:: String maps
1777 .. index:: Maps
1779 .. index:: SPITBOL Tables
1781 A library level of instantiation of ``GNAT.Spitbol.Patterns.Table`` for
1782 a variable length string type, giving an implementation of general
1783 maps from strings to strings.
1785 .. _`GNAT.SSE_(g-sse.ads)`:
1787 ``GNAT.SSE`` (:file:`g-sse.ads`)
1788 ================================
1790 .. index:: GNAT.SSE (g-sse.ads)
1792 Root of a set of units aimed at offering Ada bindings to a subset of
1793 the Intel(r) Streaming SIMD Extensions with GNAT on the x86 family of
1794 targets.  It exposes vector component types together with a general
1795 introduction to the binding contents and use.
1797 .. _`GNAT.SSE.Vector_Types_(g-ssvety.ads)`:
1799 ``GNAT.SSE.Vector_Types`` (:file:`g-ssvety.ads`)
1800 ================================================
1802 .. index:: GNAT.SSE.Vector_Types (g-ssvety.ads)
1804 SSE vector types for use with SSE related intrinsics.
1806 .. _`GNAT.String_Hash(g-strhas.ads)`:
1808 ``GNAT.String_Hash`` (:file:`g-strhas.ads`)
1809 ===========================================
1811 .. index:: GNAT.String_Hash (g-strhas.ads)
1813 .. index:: Hash functions
1815 Provides a generic hash function working on arrays of scalars. Both the scalar
1816 type and the hash result type are parameters.
1818 .. _`GNAT.Strings_(g-string.ads)`:
1820 ``GNAT.Strings`` (:file:`g-string.ads`)
1821 =======================================
1823 .. index:: GNAT.Strings (g-string.ads)
1825 Common String access types and related subprograms. Basically it
1826 defines a string access and an array of string access types.
1828 .. _`GNAT.String_Split_(g-strspl.ads)`:
1830 ``GNAT.String_Split`` (:file:`g-strspl.ads`)
1831 ============================================
1833 .. index:: GNAT.String_Split (g-strspl.ads)
1835 .. index:: String splitter
1837 Useful string manipulation routines: given a set of separators, split
1838 a string wherever the separators appear, and provide direct access
1839 to the resulting slices. This package is instantiated from
1840 ``GNAT.Array_Split``.
1842 .. _`GNAT.Table_(g-table.ads)`:
1844 ``GNAT.Table`` (:file:`g-table.ads`)
1845 ====================================
1847 .. index:: GNAT.Table (g-table.ads)
1849 .. index:: Table implementation
1851 .. index:: Arrays, extendable
1853 A generic package providing a single dimension array abstraction where the
1854 length of the array can be dynamically modified.
1856 This package provides a facility similar to that of ``GNAT.Dynamic_Tables``,
1857 except that this package declares a single instance of the table type,
1858 while an instantiation of ``GNAT.Dynamic_Tables`` creates a type that can be
1859 used to define dynamic instances of the table.
1861 .. _`GNAT.Task_Lock_(g-tasloc.ads)`:
1863 ``GNAT.Task_Lock`` (:file:`g-tasloc.ads`)
1864 =========================================
1866 .. index:: GNAT.Task_Lock (g-tasloc.ads)
1868 .. index:: Task synchronization
1870 .. index:: Task locking
1872 .. index:: Locking
1874 A very simple facility for locking and unlocking sections of code using a
1875 single global task lock.  Appropriate for use in situations where contention
1876 between tasks is very rarely expected.
1878 .. _`GNAT.Time_Stamp_(g-timsta.ads)`:
1880 ``GNAT.Time_Stamp`` (:file:`g-timsta.ads`)
1881 ==========================================
1883 .. index:: GNAT.Time_Stamp (g-timsta.ads)
1885 .. index:: Time stamp
1887 .. index:: Current time
1889 Provides a simple function that returns a string YYYY-MM-DD HH:MM:SS.SS that
1890 represents the current date and time in ISO 8601 format. This is a very simple
1891 routine with minimal code and there are no dependencies on any other unit.
1893 .. _`GNAT.Threads_(g-thread.ads)`:
1895 ``GNAT.Threads`` (:file:`g-thread.ads`)
1896 =======================================
1898 .. index:: GNAT.Threads (g-thread.ads)
1900 .. index:: Foreign threads
1902 .. index:: Threads, foreign
1904 Provides facilities for dealing with foreign threads which need to be known
1905 by the GNAT run-time system. Consult the documentation of this package for
1906 further details if your program has threads that are created by a non-Ada
1907 environment which then accesses Ada code.
1909 .. _`GNAT.Traceback_(g-traceb.ads)`:
1911 ``GNAT.Traceback`` (:file:`g-traceb.ads`)
1912 =========================================
1914 .. index:: GNAT.Traceback (g-traceb.ads)
1916 .. index:: Trace back facilities
1918 Provides a facility for obtaining non-symbolic traceback information, useful
1919 in various debugging situations.
1921 .. _`GNAT.Traceback.Symbolic_(g-trasym.ads)`:
1923 ``GNAT.Traceback.Symbolic`` (:file:`g-trasym.ads`)
1924 ==================================================
1926 .. index:: GNAT.Traceback.Symbolic (g-trasym.ads)
1928 .. index:: Trace back facilities
1930 .. _`GNAT.UTF_32_(g-table.ads)`:
1932 ``GNAT.UTF_32`` (:file:`g-table.ads`)
1933 =====================================
1935 .. index:: GNAT.UTF_32 (g-table.ads)
1937 .. index:: Wide character codes
1939 This 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
1942 in ``GNAT`` in Ada 2005 mode). This package contains
1943 Unicode categorization routines, as well as lexical
1944 categorization routines corresponding to the Ada 2005
1945 lexical rules for identifiers and strings, and also a
1946 lower case to upper case fold routine corresponding to
1947 the Ada 2005 rules for identifier equivalence.
1949 .. _`GNAT.Wide_Spelling_Checker_(g-u3spch.ads)`:
1951 ``GNAT.Wide_Spelling_Checker`` (:file:`g-u3spch.ads`)
1952 =====================================================
1954 .. index:: GNAT.Wide_Spelling_Checker (g-u3spch.ads)
1956 .. index:: Spell checking
1958 Provides a function for determining whether one wide wide string is a plausible
1959 near misspelling of another wide wide string, where the strings are represented
1960 using the UTF_32_String type defined in System.Wch_Cnv.
1962 .. _`GNAT.Wide_Spelling_Checker_(g-wispch.ads)`:
1964 ``GNAT.Wide_Spelling_Checker`` (:file:`g-wispch.ads`)
1965 =====================================================
1967 .. index:: GNAT.Wide_Spelling_Checker (g-wispch.ads)
1969 .. index:: Spell checking
1971 Provides a function for determining whether one wide string is a plausible
1972 near misspelling of another wide string.
1974 .. _`GNAT.Wide_String_Split_(g-wistsp.ads)`:
1976 ``GNAT.Wide_String_Split`` (:file:`g-wistsp.ads`)
1977 =================================================
1979 .. index:: GNAT.Wide_String_Split (g-wistsp.ads)
1981 .. index:: Wide_String splitter
1983 Useful wide string manipulation routines: given a set of separators, split
1984 a wide string wherever the separators appear, and provide direct access
1985 to the resulting slices. This package is instantiated from
1986 ``GNAT.Array_Split``.
1988 .. _`GNAT.Wide_Wide_Spelling_Checker_(g-zspche.ads)`:
1990 ``GNAT.Wide_Wide_Spelling_Checker`` (:file:`g-zspche.ads`)
1991 ==========================================================
1993 .. index:: GNAT.Wide_Wide_Spelling_Checker (g-zspche.ads)
1995 .. index:: Spell checking
1997 Provides a function for determining whether one wide wide string is a plausible
1998 near misspelling of another wide wide string.
2000 .. _`GNAT.Wide_Wide_String_Split_(g-zistsp.ads)`:
2002 ``GNAT.Wide_Wide_String_Split`` (:file:`g-zistsp.ads`)
2003 ======================================================
2005 .. index:: GNAT.Wide_Wide_String_Split (g-zistsp.ads)
2007 .. index:: Wide_Wide_String splitter
2009 Useful wide wide string manipulation routines: given a set of separators, split
2010 a wide wide string wherever the separators appear, and provide direct access
2011 to the resulting slices. This package is instantiated from
2012 ``GNAT.Array_Split``.
2014 .. _`Interfaces.C.Extensions_(i-cexten.ads)`:
2016 ``Interfaces.C.Extensions`` (:file:`i-cexten.ads`)
2017 ==================================================
2019 .. index:: Interfaces.C.Extensions (i-cexten.ads)
2021 This package contains additional C-related definitions, intended
2022 for use with either manually or automatically generated bindings
2023 to C libraries.
2025 .. _`Interfaces.C.Streams_(i-cstrea.ads)`:
2027 ``Interfaces.C.Streams`` (:file:`i-cstrea.ads`)
2028 ===============================================
2030 .. index:: Interfaces.C.Streams (i-cstrea.ads)
2032 .. index::  C streams, interfacing
2034 This package is a binding for the most commonly used operations
2035 on C streams.
2037 .. _`Interfaces.Packed_Decimal_(i-pacdec.ads)`:
2039 ``Interfaces.Packed_Decimal`` (:file:`i-pacdec.ads`)
2040 ====================================================
2042 .. index:: Interfaces.Packed_Decimal (i-pacdec.ads)
2044 .. index::  IBM Packed Format
2046 .. index::  Packed Decimal
2048 This package provides a set of routines for conversions to and
2049 from a packed decimal format compatible with that used on IBM
2050 mainframes.
2052 .. _`Interfaces.VxWorks_(i-vxwork.ads)`:
2054 ``Interfaces.VxWorks`` (:file:`i-vxwork.ads`)
2055 =============================================
2057 .. index:: Interfaces.VxWorks (i-vxwork.ads)
2059 .. index:: Interfacing to VxWorks
2061 .. index:: VxWorks, interfacing
2063 This package provides a limited binding to the VxWorks API.
2064 In particular, it interfaces with the
2065 VxWorks hardware interrupt facilities.
2067 .. _`Interfaces.VxWorks.Int_Connection_(i-vxinco.ads)`:
2069 ``Interfaces.VxWorks.Int_Connection`` (:file:`i-vxinco.ads`)
2070 ============================================================
2072 .. index:: Interfaces.VxWorks.Int_Connection (i-vxinco.ads)
2074 .. index:: Interfacing to VxWorks
2076 .. index:: VxWorks, interfacing
2078 This package provides a way for users to replace the use of
2079 intConnect() with a custom routine for installing interrupt
2080 handlers.
2082 .. _`Interfaces.VxWorks.IO_(i-vxwoio.ads)`:
2084 ``Interfaces.VxWorks.IO`` (:file:`i-vxwoio.ads`)
2085 ================================================
2087 .. index:: Interfaces.VxWorks.IO (i-vxwoio.ads)
2089 .. index:: Interfacing to VxWorks' I/O
2091 .. index:: VxWorks, I/O interfacing
2093 .. index:: VxWorks, Get_Immediate
2095 .. index:: Get_Immediate, VxWorks
2097 This package provides a binding to the ioctl (IO/Control)
2098 function of VxWorks, defining a set of option values and
2099 function codes. A particular use of this package is
2100 to enable the use of Get_Immediate under VxWorks.
2102 .. _`System.Address_Image_(s-addima.ads)`:
2104 ``System.Address_Image`` (:file:`s-addima.ads`)
2105 ===============================================
2107 .. index:: System.Address_Image (s-addima.ads)
2109 .. index:: Address image
2111 .. index:: Image, of an address
2113 This function provides a useful debugging
2114 function that gives an (implementation dependent)
2115 string which identifies an address.
2117 .. _`System.Assertions_(s-assert.ads)`:
2119 ``System.Assertions`` (:file:`s-assert.ads`)
2120 ============================================
2122 .. index:: System.Assertions (s-assert.ads)
2124 .. index:: Assertions
2126 .. index:: Assert_Failure, exception
2128 This package provides the declaration of the exception raised
2129 by an run-time assertion failure, as well as the routine that
2130 is used internally to raise this assertion.
2132 .. _`System.Atomic_Counters_(s-atocou.ads)`:
2134 ``System.Atomic_Counters`` (:file:`s-atocou.ads`)
2135 =================================================
2137 .. index:: System.Atomic_Counters (s-atocou.ads)
2139 This package provides the declaration of an atomic counter type,
2140 together with efficient routines (using hardware
2141 synchronization primitives) for incrementing, decrementing,
2142 and testing of these counters. This package is implemented
2143 on most targets, including all Alpha, ia64, PowerPC, SPARC V9,
2144 x86, and x86_64 platforms.
2146 .. _`System.Memory_(s-memory.ads)`:
2148 ``System.Memory`` (:file:`s-memory.ads`)
2149 ========================================
2151 .. index:: System.Memory (s-memory.ads)
2153 .. index:: Memory allocation
2155 This package provides the interface to the low level routines used
2156 by the generated code for allocation and freeing storage for the
2157 default storage pool (analogous to the C routines malloc and free.
2158 It also provides a reallocation interface analogous to the C routine
2159 realloc. The body of this unit may be modified to provide alternative
2160 allocation mechanisms for the default pool, and in addition, direct
2161 calls to this unit may be made for low level allocation uses (for
2162 example see the body of ``GNAT.Tables``).
2164 .. _`System.Multiprocessors_(s-multip.ads)`:
2166 ``System.Multiprocessors`` (:file:`s-multip.ads`)
2167 =================================================
2169 .. index:: System.Multiprocessors (s-multip.ads)
2171 .. index:: Multiprocessor interface
2173 This is an Ada 2012 unit defined in the Ada 2012 Reference Manual, but
2174 in GNAT we also make it available in Ada 95 and Ada 2005 (where it is
2175 technically an implementation-defined addition).
2177 .. _`System.Multiprocessors.Dispatching_Domains_(s-mudido.ads)`:
2179 ``System.Multiprocessors.Dispatching_Domains`` (:file:`s-mudido.ads`)
2180 =====================================================================
2182 .. index:: System.Multiprocessors.Dispatching_Domains (s-mudido.ads)
2184 .. index:: Multiprocessor interface
2186 This is an Ada 2012 unit defined in the Ada 2012 Reference Manual, but
2187 in GNAT we also make it available in Ada 95 and Ada 2005 (where it is
2188 technically an implementation-defined addition).
2190 .. _`System.Partition_Interface_(s-parint.ads)`:
2192 ``System.Partition_Interface`` (:file:`s-parint.ads`)
2193 =====================================================
2195 .. index:: System.Partition_Interface (s-parint.ads)
2197 .. index:: Partition interfacing functions
2199 This package provides facilities for partition interfacing.  It
2200 is used primarily in a distribution context when using Annex E
2201 with ``GLADE``.
2203 .. _`System.Pool_Global_(s-pooglo.ads)`:
2205 ``System.Pool_Global`` (:file:`s-pooglo.ads`)
2206 =============================================
2208 .. index:: System.Pool_Global (s-pooglo.ads)
2210 .. index:: Storage pool, global
2212 .. index:: Global storage pool
2214 This package provides a storage pool that is equivalent to the default
2215 storage pool used for access types for which no pool is specifically
2216 declared. It uses malloc/free to allocate/free and does not attempt to
2217 do any automatic reclamation.
2219 .. _`System.Pool_Local_(s-pooloc.ads)`:
2221 ``System.Pool_Local`` (:file:`s-pooloc.ads`)
2222 ============================================
2224 .. index:: System.Pool_Local (s-pooloc.ads)
2226 .. index:: Storage pool, local
2228 .. index:: Local storage pool
2230 This package provides a storage pool that is intended for use with locally
2231 defined access types. It uses malloc/free for allocate/free, and maintains
2232 a list of allocated blocks, so that all storage allocated for the pool can
2233 be freed automatically when the pool is finalized.
2235 .. _`System.Restrictions_(s-restri.ads)`:
2237 ``System.Restrictions`` (:file:`s-restri.ads`)
2238 ==============================================
2240 .. index:: System.Restrictions (s-restri.ads)
2242 .. index:: Run-time restrictions access
2244 This package provides facilities for accessing at run time
2245 the status of restrictions specified at compile time for
2246 the partition. Information is available both with regard
2247 to actual restrictions specified, and with regard to
2248 compiler determined information on which restrictions
2249 are violated by one or more packages in the partition.
2251 .. _`System.Rident_(s-rident.ads)`:
2253 ``System.Rident`` (:file:`s-rident.ads`)
2254 ========================================
2256 .. index:: System.Rident (s-rident.ads)
2258 .. index:: Restrictions definitions
2260 This package provides definitions of the restrictions
2261 identifiers supported by GNAT, and also the format of
2262 the restrictions provided in package System.Restrictions.
2263 It is not normally necessary to ``with`` this generic package
2264 since the necessary instantiation is included in
2265 package System.Restrictions.
2267 .. _`System.Strings.Stream_Ops_(s-ststop.ads)`:
2269 ``System.Strings.Stream_Ops`` (:file:`s-ststop.ads`)
2270 ====================================================
2272 .. index:: System.Strings.Stream_Ops (s-ststop.ads)
2274 .. index:: Stream operations
2276 .. index:: String stream operations
2278 This package provides a set of stream subprograms for standard string types.
2279 It is intended primarily to support implicit use of such subprograms when
2280 stream attributes are applied to string types, but the subprograms in this
2281 package can be used directly by application programs.
2283 .. _`System.Unsigned_Types_(s-unstyp.ads)`:
2285 ``System.Unsigned_Types`` (:file:`s-unstyp.ads`)
2286 ================================================
2288 .. index:: System.Unsigned_Types (s-unstyp.ads)
2290 This package contains definitions of standard unsigned types that
2291 correspond in size to the standard signed types declared in Standard,
2292 and (unlike the types in Interfaces) have corresponding names. It
2293 also contains some related definitions for other specialized types
2294 used by the compiler in connection with packed array types.
2296 .. _`System.Wch_Cnv_(s-wchcnv.ads)`:
2298 ``System.Wch_Cnv`` (:file:`s-wchcnv.ads`)
2299 =========================================
2301 .. index:: System.Wch_Cnv (s-wchcnv.ads)
2303 .. index:: Wide Character, Representation
2305 .. index:: Wide String, Conversion
2307 .. index:: Representation of wide characters
2309 This package provides routines for converting between
2310 wide and wide wide characters and a representation as a value of type
2311 ``Standard.String``, using a specified wide character
2312 encoding method.  It uses definitions in
2313 package ``System.Wch_Con``.
2315 .. _`System.Wch_Con_(s-wchcon.ads)`:
2317 ``System.Wch_Con`` (:file:`s-wchcon.ads`)
2318 =========================================
2320 .. index:: System.Wch_Con (s-wchcon.ads)
2322 This package provides definitions and descriptions of
2323 the various methods used for encoding wide characters
2324 in ordinary strings.  These definitions are used by
2325 the package ``System.Wch_Cnv``.