blob: 467d3366b667bc701e0e5a601bd06d0f0c687c42 [file] [log] [blame]
.. _About_This_Guide:
About This Guide
~~~~~~~~~~~~~~~~
.. only:: PRO
For ease of exposition, 'GNAT Pro' will be referred to simply as
'GNAT' in the remainder of this document.
This guide describes the use of GNAT,
a compiler and software development
toolset for the full Ada programming language.
It documents the features of the compiler and tools, and explains
how to use them to build Ada applications.
GNAT implements Ada 95, Ada 2005 and Ada 2012, and it may also be
invoked in Ada 83 compatibility mode.
By default, GNAT assumes Ada 2012, but you can override with a
compiler switch (:ref:`Compiling_Different_Versions_of_Ada`)
to explicitly specify the language version.
Throughout this manual, references to 'Ada' without a year suffix
apply to all Ada 95/2005/2012 versions of the language.
What This Guide Contains
========================
This guide contains the following chapters:
* :ref:`Getting_Started_with_GNAT` describes how to get started compiling
and running Ada programs with the GNAT Ada programming environment.
* :ref:`The_GNAT_Compilation_Model` describes the compilation model used
by GNAT.
* :ref:`Building_Executable_Programs_With_GNAT` describes how to use the
main GNAT tools to build executable programs, and it also gives examples of
using the GNU make utility with GNAT.
* :ref:`GNAT_Project_Manager` describes how to use project files
to organize large projects.
* :ref:`Tools_Supporting_Project_Files` described how to use the project
facility in conjunction with various GNAT tools.
* :ref:`GNAT_Utility_Programs` explains the various utility programs that
are included in the GNAT environment
* :ref:`GNAT_and_Program_Execution` covers a number of topics related to
running, debugging, and tuning the performace of programs developed
with GNAT
Appendices cover several additional topics:
* :ref:`Platform_Specific_Information` describes the different run-time
library implementations and also presents information on how to use
GNAT on several specific platforms
* :ref:`Example_of_Binder_Output_File` shows the source code for the binder
output file for a sample program.
* :ref:`Elaboration_Order_Handling_in_GNAT` describes how GNAT helps
you deal with elaboration order issues.
* :ref:`Inline_Assembler` shows how to use the inline assembly facility
in an Ada program.
What You Should Know before Reading This Guide
==============================================
.. index:: Ada 95 Language Reference Manual
.. index:: Ada 2005 Language Reference Manual
This guide assumes a basic familiarity with the Ada 95 language, as
described in the International Standard ANSI/ISO/IEC-8652:1995, January
1995.
It does not require knowledge of the features introduced by Ada 2005
or Ada 2012.
Reference manuals for Ada 95, Ada 2005, and Ada 2012 are included in
the GNAT documentation package.
Related Information
===================
For further information about Ada and related tools, please refer to the
following documents:
* :title:`Ada 95 Reference Manual`, :title:`Ada 2005 Reference Manual`, and
:title:`Ada 2012 Reference Manual`, which contain reference
material for the several revisions of the Ada language standard.
* :title:`GNAT Reference_Manual`, which contains all reference material for the GNAT
implementation of Ada.
* :title:`Using the GNAT Programming Studio`, which describes the GPS
Integrated Development Environment.
* :title:`GNAT Programming Studio Tutorial`, which introduces the
main GPS features through examples.
* :title:`Debugging with GDB`,
for all details on the use of the GNU source-level debugger.
* :title:`GNU Emacs Manual`,
for full information on the extensible editor and programming
environment Emacs.
A Note to Readers of Previous Versions of the Manual
====================================================
In early 2015 the GNAT manuals were transitioned to the
reStructuredText (rst) / Sphinx documentation generator technology.
During that process the :title:`GNAT User's Guide` was reorganized
so that related topics would be described together in the same chapter
or appendix. Here's a summary of the major changes realized in
the new document structure.
* :ref:`The_GNAT_Compilation_Model` has been extended so that it now covers
the following material:
- The `gnatname`, `gnatkr`, and `gnatchop` tools
- :ref:`Configuration_Pragmas`
- :ref:`GNAT_and_Libraries`
- :ref:`Conditional_Compilation` including :ref:`Preprocessing_with_gnatprep`
and :ref:`Integrated_Preprocessing`
- :ref:`Generating_Ada_Bindings_for_C_and_C++_headers`
- :ref:`Using_GNAT_Files_with_External_Tools`
* :ref:`Building_Executable_Programs_With_GNAT` is a new chapter consolidating
the following content:
- :ref:`The_GNAT_Make_Program_gnatmake`
- :ref:`Compiling_with_GCC`
- :ref:`Binding_with_gnatbind`
- :ref:`Linking_with_gnatlink`
- :ref:`Using_the_GNU_make_Utility`
* :ref:`GNAT_Utility_Programs` is a new chapter consolidating the information about several
GNAT tools:
.. only:: PRO or GPL
- :ref:`The_File_Cleanup_Utility_gnatclean`
- :ref:`The_GNAT_Library_Browser_gnatls`
- :ref:`The_Cross-Referencing_Tools_gnatxref_and_gnatfind`
- :ref:`The_Ada_to_HTML_Converter_gnathtml`
- :ref:`The_Ada-to-XML_Converter_gnat2xml`
- :ref:`The_Program_Property_Verifier_gnatcheck`
- :ref:`The_GNAT_Metrics_Tool_gnatmetric`
- :ref:`The_GNAT_Pretty-Printer_gnatpp`
- :ref:`The_Body_Stub_Generator_gnatstub`
- :ref:`The_Unit_Test_Generator_gnattest`
.. only:: FSF
- :ref:`The_File_Cleanup_Utility_gnatclean`
- :ref:`The_GNAT_Library_Browser_gnatls`
- :ref:`The_Cross-Referencing_Tools_gnatxref_and_gnatfind`
- :ref:`The_Ada_to_HTML_Converter_gnathtml`
* :ref:`GNAT_and_Program_Execution` is a new chapter consolidating the following:
- :ref:`Running_and_Debugging_Ada_Programs`
- :ref:`Code_Coverage_and_Profiling`
- :ref:`Improving_Performance`
- :ref:`Overflow Check Handling in GNAT <Overflow_Check_Handling_in_GNAT>`
- :ref:`Performing Dimensionality Analysis in GNAT <Performing_Dimensionality_Analysis_in_GNAT>`
- :ref:`Stack_Related_Facilities`
- :ref:`Memory_Management_Issues`
* :ref:`Platform_Specific_Information` is a new appendix consolidating the following:
- :ref:`Run_Time_Libraries`
- :ref:`Microsoft_Windows_Topics`
- :ref:`Mac_OS_Topics`
* The `Compatibility and Porting Guide` appendix has been moved to the
:title:`GNAT Reference Manual`. It now includes a section
`Writing Portable Fixed-Point Declarations` which was previously
a separate chapter in the :title:`GNAT User's Guide`.
Conventions
===========
.. index:: Conventions, typographical
.. index:: Typographical conventions
Following are examples of the typographical and graphic conventions used
in this guide:
* `Functions`, `utility program names`, `standard names`,
and `classes`.
* `Option flags`
* :file:`File names`
* `Variables`
* *Emphasis*
* [optional information or parameters]
* Examples are described by text
::
and then shown this way.
* Commands that are entered by the user are shown as preceded by a prompt string
comprising the ``$`` character followed by a space.
* Full file names are shown with the '/' character
as the directory separator; e.g., :file:`parent-dir/subdir/myfile.adb`.
If you are using GNAT on a Windows platform, please note that
the '\\' character should be used instead.