[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9. The GNAT Library

The GNAT library contains a number of general and special purpose packages. It represents functionality that the GNAT developers have found useful, and which is made available to GNAT users. The packages described here are fully supported, and upwards compatibility will be maintained in future releases, so you can use these facilities with the confidence that the same functionality will be available in future releases.

The chapter here simply gives a brief summary of the facilities available. The full documentation is found in the spec file for the package. The full sources of these library packages, including both spec and body, are provided with all GNAT releases. For example, to find out the full specifications of the SPITBOL pattern matching capability, including a full tutorial and extensive examples, look in the `g-spipat.ads' file in the library.

For each entry here, the package name (as it would appear in a with clause) is given, followed by the name of the corresponding spec file in parentheses. The packages are children in four hierarchies, Ada, Interfaces, System, and GNAT, the latter being a GNAT-specific hierarchy.

Note that an application program should only use packages in one of these four hierarchies if the package is defined in the Ada Reference Manual, or is listed in this section of the GNAT Programmers Reference Manual. All other units should be considered internal implementation units and should not be directly with'ed by application code. The use of a with statement that references one of these internal implementation units makes an application potentially dependent on changes in versions of GNAT, and will generate a warning message.

9.1 Ada.Characters.Latin_9 (`a-chlat9.ads')  
9.2 Ada.Characters.Wide_Latin_1 (`a-cwila1.ads')  
9.3 Ada.Characters.Wide_Latin_9 (`a-cwila1.ads')  
9.4 Ada.Characters.Wide_Wide_Latin_1 (`a-czila1.ads')  
9.5 Ada.Characters.Wide_Wide_Latin_9 (`a-czila9.ads')  
9.6 Ada.Command_Line.Remove (`a-colire.ads')  
9.7 Ada.Command_Line.Environment (`a-colien.ads')  
9.8 Ada.Direct_IO.C_Streams (`a-diocst.ads')  
9.9 Ada.Exceptions.Is_Null_Occurrence (`a-einuoc.ads')  
9.10 Ada.Exceptions.Traceback (`a-exctra.ads')  
9.11 Ada.Sequential_IO.C_Streams (`a-siocst.ads')  
9.12 Ada.Streams.Stream_IO.C_Streams (`a-ssicst.ads')  
9.13 Ada.Strings.Unbounded.Text_IO (`a-suteio.ads')  
9.14 Ada.Strings.Wide_Unbounded.Wide_Text_IO (`a-swuwti.ads')  
9.15 Ada.Strings.Wide_Wide_Unbounded.Wide_Wide_Text_IO (`a-szuzti.ads')  
9.16 Ada.Text_IO.C_Streams (`a-tiocst.ads')  
9.17 Ada.Wide_Text_IO.C_Streams (`a-wtcstr.ads')  
9.18 Ada.Wide_Wide_Text_IO.C_Streams (`a-ztcstr.ads')  
9.19 GNAT.Array_Split (`g-arrspl.ads')  
9.20 GNAT.AWK (`g-awk.ads')  
9.21 GNAT.Bounded_Buffers (`g-boubuf.ads')  
9.22 GNAT.Bounded_Mailboxes (`g-boumai.ads')  
9.23 GNAT.Bubble_Sort (`g-bubsor.ads')  
9.24 GNAT.Bubble_Sort_A (`g-busora.ads')  
9.25 GNAT.Bubble_Sort_G (`g-busorg.ads')  
9.26 GNAT.Calendar (`g-calend.ads')  
9.27 GNAT.Calendar.Time_IO (`g-catiio.ads')  
9.28 GNAT.CRC32 (`g-crc32.ads')  
9.29 GNAT.Case_Util (`g-casuti.ads')  
9.30 GNAT.CGI (`g-cgi.ads')  
9.31 GNAT.CGI.Cookie (`g-cgicoo.ads')  
9.32 GNAT.CGI.Debug (`g-cgideb.ads')  
9.33 GNAT.Command_Line (`g-comlin.ads')  
9.34 GNAT.Compiler_Version (`g-comver.ads')  
9.35 GNAT.Ctrl_C (`g-ctrl_c.ads')  
9.36 GNAT.Current_Exception (`g-curexc.ads')  
9.37 GNAT.Debug_Pools (`g-debpoo.ads')  
9.38 GNAT.Debug_Utilities (`g-debuti.ads')  
9.39 GNAT.Directory_Operations (g-dirope.ads)  
9.40 GNAT.Dynamic_HTables (`g-dynhta.ads')  
9.41 GNAT.Dynamic_Tables (`g-dyntab.ads')  
9.42 GNAT.Exception_Actions (`g-excact.ads')  
9.43 GNAT.Exception_Traces (`g-exctra.ads')  
9.44 GNAT.Exceptions (`g-expect.ads')  
9.45 GNAT.Expect (`g-expect.ads')  
9.46 GNAT.Float_Control (`g-flocon.ads')  
9.47 GNAT.Heap_Sort (`g-heasor.ads')  
9.48 GNAT.Heap_Sort_A (`g-hesora.ads')  
9.49 GNAT.Heap_Sort_G (`g-hesorg.ads')  
9.50 GNAT.HTable (`g-htable.ads')  
9.51 GNAT.IO (`g-io.ads')  
9.52 GNAT.IO_Aux (`g-io_aux.ads')  
9.53 GNAT.Lock_Files (`g-locfil.ads')  
9.54 GNAT.MD5 (`g-md5.ads')  
9.55 GNAT.Memory_Dump (`g-memdum.ads')  
9.56 GNAT.Most_Recent_Exception (`g-moreex.ads')  
9.57 GNAT.OS_Lib (`g-os_lib.ads')  
9.58 GNAT.Perfect_Hash_Generators (`g-pehage.ads')  
9.59 GNAT.Regexp (`g-regexp.ads')  
9.60 GNAT.Registry (`g-regist.ads')  
9.61 GNAT.Regpat (`g-regpat.ads')  
9.62 GNAT.Secondary_Stack_Info (`g-sestin.ads')  
9.63 GNAT.Semaphores (`g-semaph.ads')  
9.64 GNAT.Signals (`g-signal.ads')  
9.65 GNAT.Sockets (`g-socket.ads')  
9.66 GNAT.Source_Info (`g-souinf.ads')  
9.67 GNAT.Spell_Checker (`g-speche.ads')  
9.68 GNAT.Spitbol.Patterns (`g-spipat.ads')  
9.69 GNAT.Spitbol (`g-spitbo.ads')  
9.70 GNAT.Spitbol.Table_Boolean (`g-sptabo.ads')  
9.71 GNAT.Spitbol.Table_Integer (`g-sptain.ads')  
9.72 GNAT.Spitbol.Table_VString (`g-sptavs.ads')  
9.73 GNAT.Strings (`g-string.ads')  
9.74 GNAT.String_Split (`g-strspl.ads')  
9.75 GNAT.UTF_32 (`g-table.ads')  
9.76 GNAT.Table (`g-table.ads')  
9.77 GNAT.Task_Lock (`g-tasloc.ads')  
9.78 GNAT.Threads (`g-thread.ads')  
9.79 GNAT.Traceback (`g-traceb.ads')  
9.80 GNAT.Traceback.Symbolic (`g-trasym.ads')  
9.81 GNAT.Wide_String_Split (`g-wistsp.ads')  
9.82 GNAT.Wide_Wide_String_Split (`g-zistsp.ads')  
9.83 Interfaces.C.Extensions (`i-cexten.ads')  
9.84 Interfaces.C.Streams (`i-cstrea.ads')  
9.85 Interfaces.CPP (`i-cpp.ads')  
9.86 Interfaces.Os2lib (`i-os2lib.ads')  
9.87 Interfaces.Os2lib.Errors (`i-os2err.ads')  
9.88 Interfaces.Os2lib.Synchronization (`i-os2syn.ads')  
9.89 Interfaces.Os2lib.Threads (`i-os2thr.ads')  
9.90 Interfaces.Packed_Decimal (`i-pacdec.ads')  
9.91 Interfaces.VxWorks (`i-vxwork.ads')  
9.92 Interfaces.VxWorks.IO (`i-vxwoio.ads')  
9.93 System.Address_Image (`s-addima.ads')  
9.94 System.Assertions (`s-assert.ads')  
9.95 System.Memory (`s-memory.ads')  
9.96 System.Partition_Interface (`s-parint.ads')  
9.97 System.Restrictions (`s-restri.ads')  
9.98 System.Rident (`s-rident.ads')  
9.99 System.Task_Info (`s-tasinf.ads')  
9.100 System.Wch_Cnv (`s-wchcnv.ads')  
9.101 System.Wch_Con (`s-wchcon.ads')  


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.1 Ada.Characters.Latin_9 (`a-chlat9.ads')

This child of Ada.Characters provides a set of definitions corresponding to those in the RM-defined package Ada.Characters.Latin_1 but with the few modifications required for Latin-9 The provision of such a package is specifically authorized by the Ada Reference Manual (RM A.3(27)).


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.2 Ada.Characters.Wide_Latin_1 (`a-cwila1.ads')

This child of Ada.Characters provides a set of definitions corresponding to those in the RM-defined package Ada.Characters.Latin_1 but with the types of the constants being Wide_Character instead of Character. The provision of such a package is specifically authorized by the Ada Reference Manual (RM A.3(27)).


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.3 Ada.Characters.Wide_Latin_9 (`a-cwila1.ads')

This child of Ada.Characters provides a set of definitions corresponding to those in the GNAT defined package Ada.Characters.Latin_9 but with the types of the constants being Wide_Character instead of Character. The provision of such a package is specifically authorized by the Ada Reference Manual (RM A.3(27)).


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.4 Ada.Characters.Wide_Wide_Latin_1 (`a-czila1.ads')

This child of Ada.Characters provides a set of definitions corresponding to those in the RM-defined package Ada.Characters.Latin_1 but with the types of the constants being Wide_Wide_Character instead of Character. The provision of such a package is specifically authorized by the Ada Reference Manual (RM A.3(27)).


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.5 Ada.Characters.Wide_Wide_Latin_9 (`a-czila9.ads')

This child of Ada.Characters provides a set of definitions corresponding to those in the GNAT defined package Ada.Characters.Latin_9 but with the types of the constants being Wide_Wide_Character instead of Character. The provision of such a package is specifically authorized by the Ada Reference Manual (RM A.3(27)).


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.6 Ada.Command_Line.Remove (`a-colire.ads')

This child of Ada.Command_Line provides a mechanism for logically removing arguments from the argument list. Once removed, an argument is not visible to further calls on the subprograms in Ada.Command_Line will not see the removed argument.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.7 Ada.Command_Line.Environment (`a-colien.ads')

This child of Ada.Command_Line provides a mechanism for obtaining environment values on systems where this concept makes sense.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.8 Ada.Direct_IO.C_Streams (`a-diocst.ads')

This package provides subprograms that allow interfacing between C streams and Direct_IO. The stream identifier can be extracted from a file opened on the Ada side, and an Ada file can be constructed from a stream opened on the C side.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.9 Ada.Exceptions.Is_Null_Occurrence (`a-einuoc.ads')

This child subprogram provides a way of testing for the null exception occurrence (Null_Occurrence) without raising an exception.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.10 Ada.Exceptions.Traceback (`a-exctra.ads')

This child package provides the subprogram (Tracebacks) to give a traceback array of addresses based on an exception occurrence.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.11 Ada.Sequential_IO.C_Streams (`a-siocst.ads')

This package provides subprograms that allow interfacing between C streams and Sequential_IO. The stream identifier can be extracted from a file opened on the Ada side, and an Ada file can be constructed from a stream opened on the C side.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.12 Ada.Streams.Stream_IO.C_Streams (`a-ssicst.ads')

This package provides subprograms that allow interfacing between C streams and Stream_IO. The stream identifier can be extracted from a file opened on the Ada side, and an Ada file can be constructed from a stream opened on the C side.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.13 Ada.Strings.Unbounded.Text_IO (`a-suteio.ads')

This package provides subprograms for Text_IO for unbounded strings, avoiding the necessity for an intermediate operation with ordinary strings.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.14 Ada.Strings.Wide_Unbounded.Wide_Text_IO (`a-swuwti.ads')

This package provides subprograms for Text_IO for unbounded wide strings, avoiding the necessity for an intermediate operation with ordinary wide strings.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.15 Ada.Strings.Wide_Wide_Unbounded.Wide_Wide_Text_IO (`a-szuzti.ads')

This package provides subprograms for Text_IO for unbounded wide wide strings, avoiding the necessity for an intermediate operation with ordinary wide wide strings.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.16 Ada.Text_IO.C_Streams (`a-tiocst.ads')

This package provides subprograms that allow interfacing between C streams and Text_IO. The stream identifier can be extracted from a file opened on the Ada side, and an Ada file can be constructed from a stream opened on the C side.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.17 Ada.Wide_Text_IO.C_Streams (`a-wtcstr.ads')

This package provides subprograms that allow interfacing between C streams and Wide_Text_IO. The stream identifier can be extracted from a file opened on the Ada side, and an Ada file can be constructed from a stream opened on the C side.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.18 Ada.Wide_Wide_Text_IO.C_Streams (`a-ztcstr.ads')

This package provides subprograms that allow interfacing between C streams and Wide_Wide_Text_IO. The stream identifier can be extracted from a file opened on the Ada side, and an Ada file can be constructed from a stream opened on the C side.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.19 GNAT.Array_Split (`g-arrspl.ads')

Useful array-manipulation routines: given a set of separators, split an array wherever the separators appear, and provide direct access to the resulting slices.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.20 GNAT.AWK (`g-awk.ads')

Provides AWK-like parsing functions, with an easy interface for parsing one or more files containing formatted data. The file is viewed as a database where each record is a line and a field is a data element in this line.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.21 GNAT.Bounded_Buffers (`g-boubuf.ads')

Provides a concurrent generic bounded buffer abstraction. Instances are useful directly or as parts of the implementations of other abstractions, such as mailboxes.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.22 GNAT.Bounded_Mailboxes (`g-boumai.ads')

Provides a thread-safe asynchronous intertask mailbox communication facility.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.23 GNAT.Bubble_Sort (`g-bubsor.ads')

Provides a general implementation of bubble sort usable for sorting arbitrary data items. Exchange and comparison procedures are provided by passing access-to-procedure values.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.24 GNAT.Bubble_Sort_A (`g-busora.ads')

Provides a general implementation of bubble sort usable for sorting arbitrary data items. Move and comparison procedures are provided by passing access-to-procedure values. This is an older version, retained for compatibility. Usually GNAT.Bubble_Sort will be preferable.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.25 GNAT.Bubble_Sort_G (`g-busorg.ads')

Similar to Bubble_Sort_A except that the move and sorting procedures are provided as generic parameters, this improves efficiency, especially if the procedures can be inlined, at the expense of duplicating code for multiple instantiations.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.26 GNAT.Calendar (`g-calend.ads')

Extends the facilities provided by Ada.Calendar to include handling of days of the week, an extended Split and Time_Of capability. Also provides conversion of Ada.Calendar.Time values to and from the C timeval format.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.27 GNAT.Calendar.Time_IO (`g-catiio.ads')


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.28 GNAT.CRC32 (`g-crc32.ads')

This package implements the CRC-32 algorithm. For a full description of this algorithm see "Computation of Cyclic Redundancy Checks via Table Look-Up", Communications of the ACM, Vol. 31 No. 8, pp. 1008-1013, Aug. 1988. Sarwate, D.V.

Provides an extended capability for formatted output of time values with full user control over the format. Modeled on the GNU Date specification.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.29 GNAT.Case_Util (`g-casuti.ads')

A set of simple routines for handling upper and lower casing of strings without the overhead of the full casing tables in Ada.Characters.Handling.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.30 GNAT.CGI (`g-cgi.ads')

This is a package for interfacing a GNAT program with a Web server via the Common Gateway Interface (CGI). Basically this package parses the CGI parameters, which are a set of key/value pairs sent by the Web server. It builds a table whose index is the key and provides some services to deal with this table.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.31 GNAT.CGI.Cookie (`g-cgicoo.ads')

This is a package to interface a GNAT program with a Web server via the Common Gateway Interface (CGI). It exports services to deal with Web cookies (piece of information kept in the Web client software).


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.32 GNAT.CGI.Debug (`g-cgideb.ads')

This is a package to help debugging CGI (Common Gateway Interface) programs written in Ada.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.33 GNAT.Command_Line (`g-comlin.ads')

Provides a high level interface to Ada.Command_Line facilities, including the ability to scan for named switches with optional parameters and expand file names using wild card notations.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.34 GNAT.Compiler_Version (`g-comver.ads')

Provides a routine for obtaining the version of the compiler used to compile the program. More accurately this is the version of the binder used to bind the program (this will normally be the same as the version of the compiler if a consistent tool set is used to compile all units of a partition).


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.35 GNAT.Ctrl_C (`g-ctrl_c.ads')

Provides a simple interface to handle Ctrl-C keyboard events.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.36 GNAT.Current_Exception (`g-curexc.ads')

Provides access to information on the current exception that has been raised without the need for using the Ada-95 exception choice parameter specification syntax. This is particularly useful in simulating typical facilities for obtaining information about exceptions provided by Ada 83 compilers.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.37 GNAT.Debug_Pools (`g-debpoo.ads')

Provide a debugging storage pools that helps tracking memory corruption problems. See section "Finding memory problems with GNAT Debug Pool" in the GNAT User's Guide.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.38 GNAT.Debug_Utilities (`g-debuti.ads')

Provides a few useful utilities for debugging purposes, including conversion to and from string images of address values. Supports both C and Ada formats for hexadecimal literals.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.39 GNAT.Directory_Operations (g-dirope.ads)

Provides a set of routines for manipulating directories, including changing the current directory, making new directories, and scanning the files in a directory.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.40 GNAT.Dynamic_HTables (`g-dynhta.ads')

A generic implementation of hash tables that can be used to hash arbitrary data. Provided in two forms, a simple form with built in hash functions, and a more complex form in which the hash function is supplied.

This package provides a facility similar to that of GNAT.HTable, except that this package declares a type that can be used to define dynamic instances of the hash table, while an instantiation of GNAT.HTable creates a single instance of the hash table.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.41 GNAT.Dynamic_Tables (`g-dyntab.ads')

A generic package providing a single dimension array abstraction where the length of the array can be dynamically modified.

This package provides a facility similar to that of GNAT.Table, except that this package declares a type that can be used to define dynamic instances of the table, while an instantiation of GNAT.Table creates a single instance of the table type.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.42 GNAT.Exception_Actions (`g-excact.ads')

Provides callbacks when an exception is raised. Callbacks can be registered for specific exceptions, or when any exception is raised. This can be used for instance to force a core dump to ease debugging.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.43 GNAT.Exception_Traces (`g-exctra.ads')

Provides an interface allowing to control automatic output upon exception occurrences.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.44 GNAT.Exceptions (`g-expect.ads')

Normally it is not possible to raise an exception with a message from a subprogram in a pure package, since the necessary types and subprograms are in Ada.Exceptions which is not a pure unit. GNAT.Exceptions provides a facility for getting around this limitation for a few predefined exceptions, and for example allow raising Constraint_Error with a message from a pure subprogram.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.45 GNAT.Expect (`g-expect.ads')

Provides a set of subprograms similar to what is available with the standard Tcl Expect tool. It allows you to easily spawn and communicate with an external process. You can send commands or inputs to the process, and compare the output with some expected regular expression. Currently GNAT.Expect is implemented on all native GNAT ports except for OpenVMS. It is not implemented for cross ports, and in particular is not implemented for VxWorks or LynxOS.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.46 GNAT.Float_Control (`g-flocon.ads')

Provides an interface for resetting the floating-point processor into the mode required for correct semantic operation in Ada. Some third party library calls may cause this mode to be modified, and the Reset procedure in this package can be used to reestablish the required mode.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.47 GNAT.Heap_Sort (`g-heasor.ads')

Provides a general implementation of heap sort usable for sorting arbitrary data items. Exchange and comparison procedures are provided by passing access-to-procedure values. The algorithm used is a modified heap sort that performs approximately N*log(N) comparisons in the worst case.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.48 GNAT.Heap_Sort_A (`g-hesora.ads')

Provides a general implementation of heap sort usable for sorting arbitrary data items. Move and comparison procedures are provided by passing access-to-procedure values. The algorithm used is a modified heap sort that performs approximately N*log(N) comparisons in the worst case. This differs from GNAT.Heap_Sort in having a less convenient interface, but may be slightly more efficient.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.49 GNAT.Heap_Sort_G (`g-hesorg.ads')

Similar to Heap_Sort_A except that the move and sorting procedures are provided as generic parameters, this improves efficiency, especially if the procedures can be inlined, at the expense of duplicating code for multiple instantiations.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.50 GNAT.HTable (`g-htable.ads')

A generic implementation of hash tables that can be used to hash arbitrary data. Provides two approaches, one a simple static approach, and the other allowing arbitrary dynamic hash tables.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.51 GNAT.IO (`g-io.ads')

A simple preelaborable input-output package that provides a subset of simple Text_IO functions for reading characters and strings from Standard_Input, and writing characters, strings and integers to either Standard_Output or Standard_Error.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.52 GNAT.IO_Aux (`g-io_aux.ads')

Provides some auxiliary functions for use with Text_IO, including a test for whether a file exists, and functions for reading a line of text.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.53 GNAT.Lock_Files (`g-locfil.ads')

Provides a general interface for using files as locks. Can be used for providing program level synchronization.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.54 GNAT.MD5 (`g-md5.ads')

Implements the MD5 Message-Digest Algorithm as described in RFC 1321.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.55 GNAT.Memory_Dump (`g-memdum.ads')

Provides a convenient routine for dumping raw memory to either the standard output or standard error files. Uses GNAT.IO for actual output.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.56 GNAT.Most_Recent_Exception (`g-moreex.ads')

Provides access to the most recently raised exception. Can be used for various logging purposes, including duplicating functionality of some Ada 83 implementation dependent extensions.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.57 GNAT.OS_Lib (`g-os_lib.ads')

Provides a range of target independent operating system interface functions, including time/date management, file operations, subprocess management, including a portable spawn procedure, and access to environment variables and error return codes.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.58 GNAT.Perfect_Hash_Generators (`g-pehage.ads')

Provides a generator of static minimal perfect hash functions. No collisions occur and each item can be retrieved from the table in one probe (perfect property). The hash table size corresponds to the exact size of the key set and no larger (minimal property). The key set has to be know in advance (static property). The hash functions are also order preservering. If w2 is inserted after w1 in the generator, their hashcode are in the same order. These hashing functions are very convenient for use with realtime applications.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.59 GNAT.Regexp (`g-regexp.ads')

A simple implementation of regular expressions, using a subset of regular expression syntax copied from familiar Unix style utilities. This is the simples of the three pattern matching packages provided, and is particularly suitable for "file globbing" applications.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.60 GNAT.Registry (`g-regist.ads')

This is a high level binding to the Windows registry. It is possible to do simple things like reading a key value, creating a new key. For full registry API, but at a lower level of abstraction, refer to the Win32.Winreg package provided with the Win32Ada binding


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.61 GNAT.Regpat (`g-regpat.ads')

A complete implementation of Unix-style regular expression matching, copied from the original V7 style regular expression library written in C by Henry Spencer (and binary compatible with this C library).


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.62 GNAT.Secondary_Stack_Info (`g-sestin.ads')

Provide the capability to query the high water mark of the current task's secondary stack.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.63 GNAT.Semaphores (`g-semaph.ads')

Provides classic counting and binary semaphores using protected types.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.64 GNAT.Signals (`g-signal.ads')

Provides the ability to manipulate the blocked status of signals on supported targets.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.65 GNAT.Sockets (`g-socket.ads')

A high level and portable interface to develop sockets based applications. This package is based on the sockets thin binding found in GNAT.Sockets.Thin. Currently GNAT.Sockets is implemented on all native GNAT ports except for OpenVMS. It is not implemented for the LynxOS cross port.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.66 GNAT.Source_Info (`g-souinf.ads')

Provides subprograms that give access to source code information known at compile time, such as the current file name and line number.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.67 GNAT.Spell_Checker (`g-speche.ads')

Provides a function for determining whether one string is a plausible near misspelling of another string.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.68 GNAT.Spitbol.Patterns (`g-spipat.ads')

A complete implementation of SNOBOL4 style pattern matching. This is the most elaborate of the pattern matching packages provided. It fully duplicates the SNOBOL4 dynamic pattern construction and matching capabilities, using the efficient algorithm developed by Robert Dewar for the SPITBOL system.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.69 GNAT.Spitbol (`g-spitbo.ads')

The top level package of the collection of SPITBOL-style functionality, this package provides basic SNOBOL4 string manipulation functions, such as Pad, Reverse, Trim, Substr capability, as well as a generic table function useful for constructing arbitrary mappings from strings in the style of the SNOBOL4 TABLE function.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.70 GNAT.Spitbol.Table_Boolean (`g-sptabo.ads')

A library level of instantiation of GNAT.Spitbol.Patterns.Table for type Standard.Boolean, giving an implementation of sets of string values.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.71 GNAT.Spitbol.Table_Integer (`g-sptain.ads')

A library level of instantiation of GNAT.Spitbol.Patterns.Table for type Standard.Integer, giving an implementation of maps from string to integer values.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.72 GNAT.Spitbol.Table_VString (`g-sptavs.ads')

A library level of instantiation of GNAT.Spitbol.Patterns.Table for a variable length string type, giving an implementation of general maps from strings to strings.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.73 GNAT.Strings (`g-string.ads')

Common String access types and related subprograms. Basically it defines a string access and an array of string access types.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.74 GNAT.String_Split (`g-strspl.ads')

Useful string manipulation routines: given a set of separators, split a string wherever the separators appear, and provide direct access to the resulting slices. This package is instantiated from GNAT.Array_Split.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.75 GNAT.UTF_32 (`g-table.ads')

This is a package intended to be used in conjunction with the Wide_Character type in Ada 95 and the Wide_Wide_Character type in Ada 2005 (available in GNAT in Ada 2005 mode). This package contains Unicode categorization routines, as well as lexical categorization routines corresponding to the Ada 2005 lexical rules for identifiers and strings, and also a lower case to upper case fold routine corresponding to the Ada 2005 rules for identifier equivalence.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.76 GNAT.Table (`g-table.ads')

A generic package providing a single dimension array abstraction where the length of the array can be dynamically modified.

This package provides a facility similar to that of GNAT.Dynamic_Tables, except that this package declares a single instance of the table type, while an instantiation of GNAT.Dynamic_Tables creates a type that can be used to define dynamic instances of the table.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.77 GNAT.Task_Lock (`g-tasloc.ads')

A very simple facility for locking and unlocking sections of code using a single global task lock. Appropriate for use in situations where contention between tasks is very rarely expected.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.78 GNAT.Threads (`g-thread.ads')

Provides facilities for creating and destroying threads with explicit calls. These threads are known to the GNAT run-time system. These subprograms are exported C-convention procedures intended to be called from foreign code. By using these primitives rather than directly calling operating systems routines, compatibility with the Ada tasking run-time is provided.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.79 GNAT.Traceback (`g-traceb.ads')

Provides a facility for obtaining non-symbolic traceback information, useful in various debugging situations.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.80 GNAT.Traceback.Symbolic (`g-trasym.ads')

Provides symbolic traceback information that includes the subprogram name and line number information.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.81 GNAT.Wide_String_Split (`g-wistsp.ads')

Useful wide string manipulation routines: given a set of separators, split a wide string wherever the separators appear, and provide direct access to the resulting slices. This package is instantiated from GNAT.Array_Split.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.82 GNAT.Wide_Wide_String_Split (`g-zistsp.ads')

Useful wide wide string manipulation routines: given a set of separators, split a wide wide string wherever the separators appear, and provide direct access to the resulting slices. This package is instantiated from GNAT.Array_Split.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.83 Interfaces.C.Extensions (`i-cexten.ads')

This package contains additional C-related definitions, intended for use with either manually or automatically generated bindings to C libraries.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.84 Interfaces.C.Streams (`i-cstrea.ads')

This package is a binding for the most commonly used operations on C streams.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.85 Interfaces.CPP (`i-cpp.ads')

This package provides facilities for use in interfacing to C++. It is primarily intended to be used in connection with automated tools for the generation of C++ interfaces.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.86 Interfaces.Os2lib (`i-os2lib.ads')

This package provides interface definitions to the OS/2 library. It is a thin binding which is a direct translation of the various `<bse.h>' files.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.87 Interfaces.Os2lib.Errors (`i-os2err.ads')

This package provides definitions of the OS/2 error codes.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.88 Interfaces.Os2lib.Synchronization (`i-os2syn.ads')

This is a child package that provides definitions for interfacing to the OS/2 synchronization primitives.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.89 Interfaces.Os2lib.Threads (`i-os2thr.ads')

This is a child package that provides definitions for interfacing to the OS/2 thread primitives.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.90 Interfaces.Packed_Decimal (`i-pacdec.ads')

This package provides a set of routines for conversions to and from a packed decimal format compatible with that used on IBM mainframes.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.91 Interfaces.VxWorks (`i-vxwork.ads')

This package provides a limited binding to the VxWorks API. In particular, it interfaces with the VxWorks hardware interrupt facilities.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.92 Interfaces.VxWorks.IO (`i-vxwoio.ads')

This package provides a binding to the ioctl (IO/Control) function of VxWorks, defining a set of option values and function codes. A particular use of this package is to enable the use of Get_Immediate under VxWorks.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.93 System.Address_Image (`s-addima.ads')

This function provides a useful debugging function that gives an (implementation dependent) string which identifies an address.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.94 System.Assertions (`s-assert.ads')

This package provides the declaration of the exception raised by an run-time assertion failure, as well as the routine that is used internally to raise this assertion.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.95 System.Memory (`s-memory.ads')

This package provides the interface to the low level routines used by the generated code for allocation and freeing storage for the default storage pool (analogous to the C routines malloc and free. It also provides a reallocation interface analogous to the C routine realloc. The body of this unit may be modified to provide alternative allocation mechanisms for the default pool, and in addition, direct calls to this unit may be made for low level allocation uses (for example see the body of GNAT.Tables).


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.96 System.Partition_Interface (`s-parint.ads')

This package provides facilities for partition interfacing. It is used primarily in a distribution context when using Annex E with GLADE.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.97 System.Restrictions (`s-restri.ads')

This package provides facilities for accessing at run-time the status of restrictions specified at compile time for the partition. Information is available both with regard to actual restrictions specified, and with regard to compiler determined information on which restrictions are violated by one or more packages in the partition.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.98 System.Rident (`s-rident.ads')

This package provides definitions of the restrictions identifiers supported by GNAT, and also the format of the restrictions provided in package System.Restrictions. It is not normally necessary to with this generic package since the necessary instantiation is included in package System.Restrictions.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.99 System.Task_Info (`s-tasinf.ads')

This package provides target dependent functionality that is used to support the Task_Info pragma


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.100 System.Wch_Cnv (`s-wchcnv.ads')

This package provides routines for converting between wide and wide wide characters and a representation as a value of type Standard.String, using a specified wide character encoding method. It uses definitions in package System.Wch_Con.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.101 System.Wch_Con (`s-wchcon.ads')

This package provides definitions and descriptions of the various methods used for encoding wide characters in ordinary strings. These definitions are used by the package System.Wch_Cnv.


[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by Mail Server on June, 15 2005 using texi2html