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