[ET Trac] [Einstein Toolkit] #1377: Cacus could/should provide M_PI
Einstein Toolkit
trac-noreply at einsteintoolkit.org
Mon May 19 14:47:04 CDT 2014
#1377: Cacus could/should provide M_PI
--------------------------+-------------------------------------------------
Reporter: sbrandt | Owner:
Type: enhancement | Status: new
Priority: minor | Milestone:
Component: Cactus | Version: development version
Resolution: | Keywords: GRHydro M_PI
--------------------------+-------------------------------------------------
Comment (by eschnett):
The case for restrict and inline is slightly different. There, we disable
a feature that may not be provided by the compiler, and since this is a
keyword, the user has no way of working around this.
M_PI, on the other hand, is provided on all systems. It is likely also
available by default on all systems. However, some compiler options make
it unavailable. (There may also be compilers that require an option to
enable M_PI, but I don't know of any of those.) In particular, GCC, Clang,
Intel all provide M_PI by default.
The task here is thus:
- provide sane option lists in Simfactory that don't disable M_PI
- warn people if they accidentally disable M_PI with their compiler
options
By the way, the current POSIX version does require M_PI:
<http://pubs.opengroup.org/onlinepubs/9699919799/>. (This is POSIX 2008;
same for POSIX 2004.)
I think that the presence of M_PI is not the actual problem, it is just
the first problem that is encountered when compiler options are wrong in
this way. Defining M_PI will allow the build process to continue a bit
further, but may err out later with more POSIX requirements (M_2PI?
M_SQRT2?).
If we want to provide a Cactus-wide solution, then it would need to be
CCTK_PI.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/1377#comment:12>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
More information about the Trac
mailing list