[multiple changes]
2012-10-04 Vincent Celier <celier@adacore.com> * prj-proc.adb (Process_Package_Declaration): Use project directory display path name as the value of 'Project_Dir. 2012-10-04 Gary Dismukes <dismukes@adacore.com> * exp_util.adb (Build_Allocate_Deallocate_Proc): The subpool can be given by an arbitrary name, so copy the tree to make the call's actual. 2012-10-04 Robert Dewar <dewar@adacore.com> * s-exnllf.adb, s-exnllf.ads: Minor reformatting. 2012-10-04 Thomas Quinot <quinot@adacore.com> * exp_ch6.adb: Minor reformatting. 2012-10-04 Pascal Obry <obry@adacore.com> * projects.texi: Use consistently @command{} when referencing commands. Fix typos. From-SVN: r192068
This commit is contained in:
parent
3b78de5632
commit
4bb43ffbb8
|
@ -1,3 +1,26 @@
|
||||||
|
2012-10-04 Vincent Celier <celier@adacore.com>
|
||||||
|
|
||||||
|
* prj-proc.adb (Process_Package_Declaration): Use project
|
||||||
|
directory display path name as the value of 'Project_Dir.
|
||||||
|
|
||||||
|
2012-10-04 Gary Dismukes <dismukes@adacore.com>
|
||||||
|
|
||||||
|
* exp_util.adb (Build_Allocate_Deallocate_Proc): The subpool can be
|
||||||
|
given by an arbitrary name, so copy the tree to make the call's actual.
|
||||||
|
|
||||||
|
2012-10-04 Robert Dewar <dewar@adacore.com>
|
||||||
|
|
||||||
|
* s-exnllf.adb, s-exnllf.ads: Minor reformatting.
|
||||||
|
|
||||||
|
2012-10-04 Thomas Quinot <quinot@adacore.com>
|
||||||
|
|
||||||
|
* exp_ch6.adb: Minor reformatting.
|
||||||
|
|
||||||
|
2012-10-04 Pascal Obry <obry@adacore.com>
|
||||||
|
|
||||||
|
* projects.texi: Use consistently @command{} when referencing
|
||||||
|
commands. Fix typos.
|
||||||
|
|
||||||
2012-10-03 Ed Schonberg <schonberg@adacore.com>
|
2012-10-03 Ed Schonberg <schonberg@adacore.com>
|
||||||
|
|
||||||
* sem_ch6.adb (New_Overloaded_Entity): call
|
* sem_ch6.adb (New_Overloaded_Entity): call
|
||||||
|
|
|
@ -1217,8 +1217,8 @@ package body Exp_Ch6 is
|
||||||
and then
|
and then
|
||||||
Present (Effective_Extra_Accessibility (Entity (Lhs)))
|
Present (Effective_Extra_Accessibility (Entity (Lhs)))
|
||||||
then
|
then
|
||||||
-- Copyback target is an Ada 2012 stand-alone object
|
-- Copyback target is an Ada 2012 stand-alone object of an
|
||||||
-- of an anonymous access type
|
-- anonymous access type.
|
||||||
|
|
||||||
pragma Assert (Ada_Version >= Ada_2012);
|
pragma Assert (Ada_Version >= Ada_2012);
|
||||||
|
|
||||||
|
@ -3201,7 +3201,7 @@ package body Exp_Ch6 is
|
||||||
end;
|
end;
|
||||||
end if;
|
end if;
|
||||||
|
|
||||||
-- If we are expanding a rhs of an assignment we need to check if tag
|
-- If we are expanding the RHS of an assignment we need to check if tag
|
||||||
-- propagation is needed. You might expect this processing to be in
|
-- propagation is needed. You might expect this processing to be in
|
||||||
-- Analyze_Assignment but has to be done earlier (bottom-up) because the
|
-- Analyze_Assignment but has to be done earlier (bottom-up) because the
|
||||||
-- assignment might be transformed to a declaration for an unconstrained
|
-- assignment might be transformed to a declaration for an unconstrained
|
||||||
|
@ -4219,9 +4219,7 @@ package body Exp_Ch6 is
|
||||||
Ret : Node_Id;
|
Ret : Node_Id;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
if Is_Entity_Name (N)
|
if Is_Entity_Name (N) and then Present (Entity (N)) then
|
||||||
and then Present (Entity (N))
|
|
||||||
then
|
|
||||||
E := Entity (N);
|
E := Entity (N);
|
||||||
|
|
||||||
if Is_Formal (E)
|
if Is_Formal (E)
|
||||||
|
|
|
@ -710,8 +710,11 @@ package body Exp_Util is
|
||||||
Subpool := Subpool_Handle_Name (Expr);
|
Subpool := Subpool_Handle_Name (Expr);
|
||||||
end if;
|
end if;
|
||||||
|
|
||||||
|
-- If a subpool is present it can be an arbitrary name, so make
|
||||||
|
-- the actual by copying the tree.
|
||||||
|
|
||||||
if Present (Subpool) then
|
if Present (Subpool) then
|
||||||
Append_To (Actuals, New_Reference_To (Entity (Subpool), Loc));
|
Append_To (Actuals, New_Copy_Tree (Subpool, New_Sloc => Loc));
|
||||||
else
|
else
|
||||||
Append_To (Actuals, Make_Null (Loc));
|
Append_To (Actuals, Make_Null (Loc));
|
||||||
end if;
|
end if;
|
||||||
|
|
|
@ -1588,7 +1588,7 @@ package body Prj.Proc is
|
||||||
Add_Attributes
|
Add_Attributes
|
||||||
(Project,
|
(Project,
|
||||||
Project.Name,
|
Project.Name,
|
||||||
Name_Id (Project.Directory.Name),
|
Name_Id (Project.Directory.Display_Name),
|
||||||
Shared,
|
Shared,
|
||||||
Shared.Packages.Table (New_Pkg).Decl,
|
Shared.Packages.Table (New_Pkg).Decl,
|
||||||
First_Attribute_Of
|
First_Attribute_Of
|
||||||
|
|
|
@ -1033,7 +1033,7 @@ names in lower case)
|
||||||
After building an application or a library it is often required to
|
After building an application or a library it is often required to
|
||||||
install it into the development environment. This installation is
|
install it into the development environment. This installation is
|
||||||
required if the library is to be used by another application for
|
required if the library is to be used by another application for
|
||||||
example. The @code{gprinstall} tool provide an easy way to install
|
example. The @command{gprinstall} tool provide an easy way to install
|
||||||
libraries, executable or object code generated durting the build. The
|
libraries, executable or object code generated durting the build. The
|
||||||
@b{Install} package can be used to change the default locations.
|
@b{Install} package can be used to change the default locations.
|
||||||
|
|
||||||
|
@ -1963,11 +1963,10 @@ included in the library.
|
||||||
@c ---------------------------------------------
|
@c ---------------------------------------------
|
||||||
|
|
||||||
@noindent
|
@noindent
|
||||||
When using project files, library installation is part of the library build
|
When using project files, a usable version of the library is created in the
|
||||||
process. Thus no further action is needed in order to make use of the
|
directory specified by the @code{Library_Dir} attribute of the library
|
||||||
libraries that are built as part of the general application build. A usable
|
project file. Thus no further action is needed in order to make use of
|
||||||
version of the library is installed in the directory specified by the
|
the libraries that are built as part of the general application build.
|
||||||
@code{Library_Dir} attribute of the library project file.
|
|
||||||
|
|
||||||
You may want to install a library in a context different from where the library
|
You may want to install a library in a context different from where the library
|
||||||
is built. This situation arises with third party suppliers, who may want
|
is built. This situation arises with third party suppliers, who may want
|
||||||
|
@ -1976,6 +1975,12 @@ able to recompile the library. The simplest option in this case is to provide
|
||||||
a project file slightly different from the one used to build the library, by
|
a project file slightly different from the one used to build the library, by
|
||||||
using the @code{externally_built} attribute. @ref{Using Library Projects}
|
using the @code{externally_built} attribute. @ref{Using Library Projects}
|
||||||
|
|
||||||
|
Another option is to use @command{gprinstall} to install the library in a
|
||||||
|
different context than the build location. A project to use this library is
|
||||||
|
generated automatically by @command{gprinstall} which also copy, in the install
|
||||||
|
location, the minimum set of sources needed to use the library.
|
||||||
|
@ref{Installation}
|
||||||
|
|
||||||
@c ---------------------------------------------
|
@c ---------------------------------------------
|
||||||
@node Project Extension
|
@node Project Extension
|
||||||
@section Project Extension
|
@section Project Extension
|
||||||
|
@ -2243,8 +2248,8 @@ Very often, modules will build their own executables (for testing
|
||||||
purposes for instance), or libraries (for easier reuse in various
|
purposes for instance), or libraries (for easier reuse in various
|
||||||
contexts).
|
contexts).
|
||||||
|
|
||||||
However, if you build your project through gnatmake or gprbuild, using
|
However, if you build your project through @command{gnatmake} or
|
||||||
a syntax similar to
|
@command{gprbuild}, using a syntax similar to
|
||||||
|
|
||||||
@smallexample
|
@smallexample
|
||||||
gprbuild -PA.gpr
|
gprbuild -PA.gpr
|
||||||
|
@ -2252,9 +2257,9 @@ a syntax similar to
|
||||||
|
|
||||||
this will only rebuild the main programs of project A, not those of the
|
this will only rebuild the main programs of project A, not those of the
|
||||||
imported projects B and C. Therefore you have to spawn several
|
imported projects B and C. Therefore you have to spawn several
|
||||||
gnatmake commands, one per project, to build all executables.
|
@command{gnatmake} commands, one per project, to build all executables.
|
||||||
This is a little inconvenient, but more importantly is inefficient
|
This is a little inconvenient, but more importantly is inefficient
|
||||||
because gnatmake needs to do duplicate work to ensure that sources are
|
because @command{gnatmake} needs to do duplicate work to ensure that sources are
|
||||||
up-to-date, and cannot easily compile things in parallel when using
|
up-to-date, and cannot easily compile things in parallel when using
|
||||||
the -j switch.
|
the -j switch.
|
||||||
|
|
||||||
|
@ -2295,14 +2300,14 @@ that are built independently from each other (but can be built in
|
||||||
parallel). For instance, you have a project tree rooted at A, and
|
parallel). For instance, you have a project tree rooted at A, and
|
||||||
another one (which might share some subprojects) rooted at B.
|
another one (which might share some subprojects) rooted at B.
|
||||||
|
|
||||||
Using only gprbuild, you could do
|
Using only @command{gprbuild}, you could do
|
||||||
|
|
||||||
@smallexample
|
@smallexample
|
||||||
gprbuild -PA.gpr
|
gprbuild -PA.gpr
|
||||||
gprbuild -PB.gpr
|
gprbuild -PB.gpr
|
||||||
@end smallexample
|
@end smallexample
|
||||||
|
|
||||||
to build both. But again, gprbuild has to do some duplicate work for
|
to build both. But again, @command{gprbuild} has to do some duplicate work for
|
||||||
those files that are shared between the two, and cannot truly build
|
those files that are shared between the two, and cannot truly build
|
||||||
things in parallel efficiently.
|
things in parallel efficiently.
|
||||||
|
|
||||||
|
@ -2316,7 +2321,7 @@ sources.
|
||||||
|
|
||||||
This scenario is particularly useful in environments like VxWorks 653
|
This scenario is particularly useful in environments like VxWorks 653
|
||||||
where the applications running in the multiple partitions can be built
|
where the applications running in the multiple partitions can be built
|
||||||
in parallel through a single gprbuild command. This also works nicely
|
in parallel through a single @command{gprbuild} command. This also works nicely
|
||||||
with Annex E.
|
with Annex E.
|
||||||
|
|
||||||
@c ---------------------------------------------
|
@c ---------------------------------------------
|
||||||
|
@ -2324,9 +2329,9 @@ with Annex E.
|
||||||
@subsection Define a build environment
|
@subsection Define a build environment
|
||||||
@c ---------------------------------------------
|
@c ---------------------------------------------
|
||||||
|
|
||||||
The environment variables at the time you launch gprbuild or gprbuild
|
The environment variables at the time you launch @command{gprbuild} or
|
||||||
will influence the view these tools have of the project (PATH to find
|
@command{gnatmake} will influence the view these tools have of the project
|
||||||
the compiler, ADA_PROJECT_PATH or GPR_PROJECT_PATH to find the
|
(PATH to find the compiler, ADA_PROJECT_PATH or GPR_PROJECT_PATH to find the
|
||||||
projects, environment variables that are referenced in project files
|
projects, environment variables that are referenced in project files
|
||||||
through the "external" statement,...). Several command line switches
|
through the "external" statement,...). Several command line switches
|
||||||
can be used to override those (-X or -aP), but on some systems and
|
can be used to override those (-X or -aP), but on some systems and
|
||||||
|
@ -2382,19 +2387,19 @@ end MyProject;
|
||||||
@subsection Performance improvements in builder
|
@subsection Performance improvements in builder
|
||||||
@c --------------------------------------------
|
@c --------------------------------------------
|
||||||
|
|
||||||
The loading of aggregate projects is optimized in gprbuild and
|
The loading of aggregate projects is optimized in @command{gprbuild} and
|
||||||
gnatmake, so that all files are searched for only once on the disk
|
@command{gnatmake}, so that all files are searched for only once on the disk
|
||||||
(thus reducing the number of system calls and contributing to faster
|
(thus reducing the number of system calls and contributing to faster
|
||||||
compilation times especially on systems with sources on remote
|
compilation times especially on systems with sources on remote
|
||||||
servers). As part of the loading, gprbuild and gnatmake compute how
|
servers). As part of the loading, @command{gprbuild} and @command{gnatmake}
|
||||||
and where a source file should be compiled, and even if it is found
|
compute how and where a source file should be compiled, and even if it is found
|
||||||
several times in the aggregated projects it will be compiled only
|
several times in the aggregated projects it will be compiled only
|
||||||
once.
|
once.
|
||||||
|
|
||||||
Since there is no ambiguity as to which switches should be used, files
|
Since there is no ambiguity as to which switches should be used, files
|
||||||
can be compiled in parallel (through the usual -j switch) and this can
|
can be compiled in parallel (through the usual -j switch) and this can
|
||||||
be done while maximizing the use of CPUs (compared to launching
|
be done while maximizing the use of CPUs (compared to launching
|
||||||
multiple gprbuild and gnatmake commands in parallel).
|
multiple @command{gprbuild} and @command{gnatmake} commands in parallel).
|
||||||
|
|
||||||
@c -------------------------------------
|
@c -------------------------------------
|
||||||
@node Syntax of aggregate projects
|
@node Syntax of aggregate projects
|
||||||
|
@ -2577,15 +2582,15 @@ These override the value given by the attribute, so that
|
||||||
users can override the value set in the (presumably shared
|
users can override the value set in the (presumably shared
|
||||||
with others in his team) aggregate project.
|
with others in his team) aggregate project.
|
||||||
|
|
||||||
@item The -X command line switch to gprbuild and gnatmake
|
@item The -X command line switch to @command{gprbuild} and @command{gnatmake}
|
||||||
|
|
||||||
This always takes precedence.
|
This always takes precedence.
|
||||||
|
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
This attribute is only taken into account in the main aggregate
|
This attribute is only taken into account in the main aggregate
|
||||||
project (i.e. the one specified on the command line to gprbuild or
|
project (i.e. the one specified on the command line to @command{gprbuild} or
|
||||||
natmake), and ignored in other aggregate projects. It is invalid
|
@command{gnatmake}), and ignored in other aggregate projects. It is invalid
|
||||||
in standard projects.
|
in standard projects.
|
||||||
The goal is to have a consistent value in all
|
The goal is to have a consistent value in all
|
||||||
projects that are built through the aggregate, which would not
|
projects that are built through the aggregate, which would not
|
||||||
|
@ -2610,8 +2615,8 @@ are valid:
|
||||||
@item @b{Switches}:
|
@item @b{Switches}:
|
||||||
@cindex @code{Switches}
|
@cindex @code{Switches}
|
||||||
This attribute gives the list of switches to use for the builder
|
This attribute gives the list of switches to use for the builder
|
||||||
(gprbuild or gnatmake), depending on the language of the main file.
|
(@command{gprbuild} or @command{gnatmake}), depending on the language of the
|
||||||
For instance,
|
main file. For instance,
|
||||||
|
|
||||||
@smallexample @c projectfile
|
@smallexample @c projectfile
|
||||||
for Switches ("Ada") use ("-d", "-p");
|
for Switches ("Ada") use ("-d", "-p");
|
||||||
|
@ -2995,7 +3000,7 @@ from other project or library project files.
|
||||||
@item @b{library}: a library project must declare both attributes
|
@item @b{library}: a library project must declare both attributes
|
||||||
@code{Library_Name} and @code{Library_Dir}.
|
@code{Library_Name} and @code{Library_Dir}.
|
||||||
@item @b{configuration}: a configuration project cannot be in a project tree.
|
@item @b{configuration}: a configuration project cannot be in a project tree.
|
||||||
It describes compilers and other tools to @code{gprbuild}.
|
It describes compilers and other tools to @command{gprbuild}.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
@c ---------------------------------------------
|
@c ---------------------------------------------
|
||||||
|
@ -3263,7 +3268,7 @@ Here are some specific examples:
|
||||||
@noindent
|
@noindent
|
||||||
An external value is an expression whose value is obtained from the command
|
An external value is an expression whose value is obtained from the command
|
||||||
that invoked the processing of the current project file (typically a
|
that invoked the processing of the current project file (typically a
|
||||||
gnatmake or gprbuild command).
|
@command{gnatmake} or @command{gprbuild} command).
|
||||||
|
|
||||||
There are two kinds of external values, one that returns a single string, and
|
There are two kinds of external values, one that returns a single string, and
|
||||||
one that returns a string list.
|
one that returns a string list.
|
||||||
|
@ -3878,11 +3883,12 @@ Follow all symbolic links when processing project files.
|
||||||
|
|
||||||
@item ^--subdirs^/SUBDIRS^=<subdir>
|
@item ^--subdirs^/SUBDIRS^=<subdir>
|
||||||
@cindex @option{^--subdirs^/SUBDIRS^=} (gnatmake and gnatclean)
|
@cindex @option{^--subdirs^/SUBDIRS^=} (gnatmake and gnatclean)
|
||||||
This switch is recognized by gnatmake and gnatclean. It indicate that the real
|
This switch is recognized by @command{gnatmake} and @command{gnatclean}. It
|
||||||
directories (except the source directories) are the subdirectories <subdir>
|
indicate that the real directories (except the source directories) are the
|
||||||
of the directories specified in the project files. This applies in particular
|
subdirectories <subdir> of the directories specified in the project files.
|
||||||
to object directories, library directories and exec directories. If the
|
This applies in particular to object directories, library directories and
|
||||||
subdirectories do not exist, they are created automatically.
|
exec directories. If the subdirectories do not exist, they are created
|
||||||
|
automatically.
|
||||||
|
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
@ -4592,7 +4598,7 @@ e.g.@: @code{"wtx"} or @code{"vxworks"}.
|
||||||
This is an associative array attribute, whose domain is a language name. Its
|
This is an associative array attribute, whose domain is a language name. Its
|
||||||
value is string that denotes the command to be used to invoke the compiler.
|
value is string that denotes the command to be used to invoke the compiler.
|
||||||
The value of @code{Compiler_Command ("Ada")} is expected to be compatible with
|
The value of @code{Compiler_Command ("Ada")} is expected to be compatible with
|
||||||
gnatmake, in particular in the handling of switches.
|
@command{gnatmake}, in particular in the handling of switches.
|
||||||
|
|
||||||
@item Debugger_Command
|
@item Debugger_Command
|
||||||
This is simple attribute, Its value is a string that specifies the name of
|
This is simple attribute, Its value is a string that specifies the name of
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
-- --
|
-- --
|
||||||
-- B o d y --
|
-- B o d y --
|
||||||
-- --
|
-- --
|
||||||
-- Copyright (C) 1992-2009 Free Software Foundation, Inc. --
|
-- Copyright (C) 1992-2012, Free Software Foundation, Inc. --
|
||||||
-- --
|
-- --
|
||||||
-- GNAT is free software; you can redistribute it and/or modify it under --
|
-- GNAT is free software; you can redistribute it and/or modify it under --
|
||||||
-- terms of the GNU General Public License as published by the Free Soft- --
|
-- terms of the GNU General Public License as published by the Free Soft- --
|
||||||
|
@ -37,8 +37,7 @@ package body System.Exn_LLF is
|
||||||
|
|
||||||
function Exn_Long_Long_Float
|
function Exn_Long_Long_Float
|
||||||
(Left : Long_Long_Float;
|
(Left : Long_Long_Float;
|
||||||
Right : Integer)
|
Right : Integer) return Long_Long_Float
|
||||||
return Long_Long_Float
|
|
||||||
is
|
is
|
||||||
Result : Long_Long_Float := 1.0;
|
Result : Long_Long_Float := 1.0;
|
||||||
Factor : Long_Long_Float := Left;
|
Factor : Long_Long_Float := Left;
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
-- --
|
-- --
|
||||||
-- S p e c --
|
-- S p e c --
|
||||||
-- --
|
-- --
|
||||||
-- Copyright (C) 1992-2009 Free Software Foundation, Inc. --
|
-- Copyright (C) 1992-2012, Free Software Foundation, Inc. --
|
||||||
-- --
|
-- --
|
||||||
-- GNAT is free software; you can redistribute it and/or modify it under --
|
-- GNAT is free software; you can redistribute it and/or modify it under --
|
||||||
-- terms of the GNU General Public License as published by the Free Soft- --
|
-- terms of the GNU General Public License as published by the Free Soft- --
|
||||||
|
@ -36,7 +36,6 @@ package System.Exn_LLF is
|
||||||
|
|
||||||
function Exn_Long_Long_Float
|
function Exn_Long_Long_Float
|
||||||
(Left : Long_Long_Float;
|
(Left : Long_Long_Float;
|
||||||
Right : Integer)
|
Right : Integer) return Long_Long_Float;
|
||||||
return Long_Long_Float;
|
|
||||||
|
|
||||||
end System.Exn_LLF;
|
end System.Exn_LLF;
|
||||||
|
|
Loading…
Reference in New Issue