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