==============================
GPRBUILD 2.2 NEW FEATURES LIST
==============================

Copyright (C) 2013-2014, AdaCore

This file contains a complete list of new features in version 2.2 of GPRBUILD.
A full description of all GPRBUILD features can be found in the GPRBUILD
User's Guide.

NF-22-NA15-003 GPRslave control of simultaneous responses (2014-10-15)

  A new option has been added to GPRslave to control the number of
  simultaneous responses (sending back object code and ALI files)
  supported. This was hard coded to 2, it is now possible to set this
  value between 1 and the maximum number of simultaneous compilations.

NF-22-N812-027 --target and CodePeer mode (2014-08-20)

  When gprbuild is called with switches --codepeer and --target, it now
  issues a clear error message indicating that these two switches cannot be
  used simultaneously, instead of hard to understand errors such as:
      no languages defined for this project

NF-22-N725-033 gprconfig issues an error for compiler not found (2014-09-26)

  When gprconfig cannot find a compiler for a language specified with a switch
  --conf, it now issues an error, even in quiet mode, indicating the language,
  the target and the runtime.

NF-22-N718-026 New gprbuild option --complete-output (2014-10-13)

  A new option --complete-output is added to gprbuild, allowed only on the
  command line and incompatible with option --distributed=.
  When this option is used, the standard output and standard error of the
  compiler are redirected to text files. When these files exist for a source
  that is up to date, their content is output to stdout and stderr.

NF-22-N717-033 Switch -a accepted with a warning (2014-07-17)

  To ease migration from gnatmake to gprbuild, switch -a is now accepted by
  gprbuild. However, this switch has no other effect than to issue this
  warning:
     warning: switch -a is ignored and no additional source is compiled

NF-22-N704-034 Add build master id in log message (2014-07-05)

  A unique id in front of all log messages is now output by gprslave.
  This make it is easier to find all log for a specific build.

NF-22-N704-033 Better reactivity for gprslave (2014-08-02)

  The locking circuitry of gprslave has been rewritten completely to ensure
  better responsiveness to multiple requests. For example, now a gprclean
  distributed request won't have to wait the end of compilations.

NF-22-N626-040 Randomized distributed job dispatching (2014-07-11)

  Now gprbuild in distributed mode will select slaves randomly instead of
  picking the first with some compilation slots available. This will better
  distribute the load over all the slaves.

NF-22-N602-030 Project path depends on compilers (2014-10-13)

  For tools gprbuild, gprclean and gprinstall, the project path depends on the
  compilers, not the prefix of the tool. For each compiler driver in a "bin"
  subdirectory, the compiler root is the parent directory of this "bin"
  subdirectory and the directories in the project path are, in order:
     <compiler_root>/<target>/lib/gnat
     <compiler_root>/<target>/share/gpr
     <compiler_root>/share/gpr
     <compiler_root>/lib/gnat

NF-22-N505-024 Handles Library_Options in gprinstall (2014-05-07)

  When generating a project for a library (standard or aggregate), gprinstall
  now adds into the generated Linker_Options the options that were into
  the Library_Options.

NF-22-N418-025 New gprinstall option to copy only project sources (2014-04-19)

  Using gprinstall's --sources-only option it is now possible to install
  projects sources only. In this mode it is not required for the project to
  have been built before.

NF-22-N411-007 Add a time-stamp in all gprslave's message (2014-04-12)

  All gprslave's messages are now prefixed with a time-stamp in verbose mode.
  This will help tracking down possible issues with the slave.

NF-22-N402-028 Short message when main library project up to date (2014-04-02)

  When the main project is a library project and is up to date, gprbuild
  instead of running silently now displays a short message such as:
     "libmain.a" up to date
     "libmain.so" up to date

NF-22-N327-028 Runtime specific directories in the project path (2014-10-13)

  For each non default runtime, there are now two more directories in the
  project path: <runtime_root>/lib/gnat and <runtime_root>/share/gpr,
  where <runtime_root> is either:
    - <runtime> ifthe runtime is explicitly specified as an absolute path
    - <compiler_root>/<target>/<runtime> if the runtime is not explicitly
      specified as an absolute path

NF-22-N321-014 Add support for LLVM C compiler (2014-03-21)

  This adds support for compiling and linking with the LLVM C compiler (clang).

NF-22-N310-033 Display slaves name for remote compilation errors (2014-03-15)

  When a remote compilation fails we now display on which remote computer
  this compilation was conducted. This can helps finding remote computers
  with incorrect setup for example.

NF-22-N206-046 Advice to use --help for incorrectly invoked tools (2014-02-10)

  When a gpr tool (gprbuild, gprconfig, gprclean or gprinstall) is incorrectly
  invoked, with at least one argument, the usage will no longer be displayed.
  Instead this line will be displayed:
     type "gprxxx --help" for more information.

NF-22-N130-015 Check distributed build consistency (2014-02-03)

  A check is now done to ensure that build slaves, used on a distributed
  compilation farm, are all of the same version as the build master.

NF-22-N121-005 Check for clock drift in distributed mode (2014-01-29)

  A clock check is done between the slaves and the build master before
  starting a distributed compilation. A warning is issued if a clock drift
  is detected. It is important to have the clock properly synchronized to
  avoid unneeded recompilation.

NF-22-N115-029 GPRinstall supports listing of installed packages (2014-03-13)

  A new mode, enabled with the option --list, can be used in GPRinstall to
  display the installed packages. Used with --stat a set of statistics are
  also displayed like the number of installed files and the total size on disk.

NF-22-N108-032 Add support for grouping installs with gprinstall (2014-01-22)

  A new option named --install-name can be used to group installations
  under a single name. It makes it possible to uninstall with a single
  command the multiple installations. This can be handy when a library
  comes with some tools for example, both built with different projects files.
  Yet, the library and the executables are tightly related and part of the
  same application.

NF-22-K929-003 Limit SAL content to the closure of the interface (2014-04-29)

  When using gprbuild to build a Stand-Alone Library, only the closure of the
  Ada interface is compiled, bound and put in the library file.
