| .. _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. |
| |