GNATColl Core Components
************************

* 1. Introduction to the GNAT Component Collection

  * 1.1. Bug reports

* 2. Building GNATColl

  * 2.1. Configuring the build environment

  * 2.2. Building GNATColl

  * 2.3. Installing GNATColl

* 3. **Scripts**: Embedding script languages

  * 3.1. Supported languages

    * 3.1.1. The Shell language

    * 3.1.2. Classes exported to all languages

  * 3.2. Scripts API

    * 3.2.1. Initializing the scripting module

    * 3.2.2. Creating interactive consoles

    * 3.2.3. Exporting classes and methods

    * 3.2.4. Executing startup scripts

    * 3.2.5. Multithreading applications and scripts

    * 3.2.6. Debugging scripts

* 4. **Traces**: Logging information

  * 4.1. Configuring traces

  * 4.2. Using the traces module

    * 4.2.1. Logging unexpected exceptions

    * 4.2.2. Checking whether the handle is active

  * 4.3. Log decorators

  * 4.4. Defining custom stream types

  * 4.5. Logging to syslog

  * 4.6. Dynamically disabling features

* 5. **Strings**: high-performance strings

  * 5.1. Small string optimization

  * 5.2. Character types

  * 5.3. Configuring the size of small strings

  * 5.4. Task safety

  * 5.5. Copy on write

  * 5.6. Growth strategy

  * 5.7. Substrings

  * 5.8. API

* 6. **Memory**: Monitoring memory usage

* 7. **Mmap**: Reading and Writing Files

* 8. **Boyer-Moore**: Searching strings

* 9. **Paragraph filling**: formatting text

* 10. **Templates**: generating text

* 11. **Email**: Processing email messages

  * 11.1. Message formats

  * 11.2. Parsing messages

  * 11.3. Parsing mailboxes

  * 11.4. Creating messages

* 12. **Ravenscar**: patterns for multitasking

  * 12.1. Tasks

  * 12.2. Servers

  * 12.3. Timers

* 13. **Storage Pools**: controlling memory management

* 14. **VFS**: Manipulating Files

  * 14.1. Filesystems abstraction

    * 14.1.1. file names encoding

  * 14.2. Remote filesystems

    * 14.2.1. Filesystem factory

    * 14.2.2. Transport layer

  * 14.3. Virtual files

* 15. **Tribooleans**: Three state logic

* 16. **Geometry**: primitive geometric operations

* 17. **Projects**: manipulating gpr files

  * 17.1. Defining a project with user-defined packages and reading
    them

* 18. **Refcount**: Reference counting

* 19. **Config**: Parsing configuration files

* 20. **Pools**: Controlling access to resources

* 21. **JSON**: handling JSON data

  * 21.1. API overview

  * 21.2. Examples

* 22. **Terminal**: controlling the console

  * 22.1. Colors

  * 22.2. Cursors

* 23. **Promises**: deferring work


Indices and tables
******************

* Index

This document may be copied, in whole or in part, in any form or by
any means, as is or with alterations, provided that (1) alterations
are clearly marked as alterations and (2) this copyright notice is
included unmodified in any copy.
