Bug Fix/Code Cleanup/Doc Cleanup/Optimization/Branch Sync :-)
Description:
Generally speaking, this is the "signed->unsigned" change to selections.
However, in the process of merging code back, things got stickier and stickier
until I ended up doing a big "sync the two branches up" operation. So... I
brought back all the "infrastructure" fixes from the development branch to the
release branch (which I think were actually making some improvement in
performance) as well as fixed several bugs which had been fixed in one branch,
but not the other.
I've also tagged the repository before making this checkin with the label
"before_signed_unsigned_changes".
Platforms tested:
FreeBSD 4.10 (sleipnir) w/parallel & fphdf5
FreeBSD 4.10 (sleipnir) w/threadsafe
FreeBSD 4.10 (sleipnir) w/backward compatibility
Solaris 2.7 (arabica) w/"purify options"
Solaris 2.8 (sol) w/FORTRAN & C++
AIX 5.x (copper) w/parallel & FORTRAN
IRIX64 6.5 (modi4) w/FORTRAN
Linux 2.4 (heping) w/FORTRAN & C++
Misc. update:
Bug Fix/Update
Description:
Updated "trace" to include "void**" as a datatype (it sets it to
"x"). Format changes as well.
Added "close(DEPEND); close(NEW);" to the dependencies script. This
was reported by a user that it wasn't doing this.
Platforms tested:
Linux (small changes)
Misc. update:
Update/Fix
Description:
The Dependencies files weren't begin generated properly for C++.
Solution:
Modified the "dependencies" script to use "top_srcdir" only instead
of "srcdir", which tended to confuse matters. Regenerated the
Dependencies files.
Platforms tested:
Arabica (Small changes)
Misc. update:
Update
Description:
Revamped the configuration system. The configurations for the Fortran
and C++ libraries are no longer separate from the "main"
configuration system. This involved removing the "configure*" and
"aclocal.m4" files from the fortran/ and c++/ subdirectories. Also
merging settings in the config/ subdirectories into the main config/
subdirectory.
Fortran header files had to be modified a little for Linux. It was
checking if it was a Linux machine by some #defines, however with the
-std=c99 switch, these defines weren't there. I added a check for
some other ones which should be there whether the -std=c99 switch is
used or not.
Had to add C++ information to this script.
Platforms tested:
Verbena (Fortran & C++)
Sol (Fortran & C++)
Copper (Fortran & C++)
Modi4 (Parallel, Fortran, & C++)
Misc. update:
Bug Fix
Description:
If there was a header file with a path like:
/some/path/mpich.optimized/...
The dependencies script would change that to
/some/path/mpich.loptimized/...
^--Note.
Solution:
Mike McKay offered the solution to replace the substitution script
from "s/\.o/\.lo/g" to "s/\.o(\b)/\.lo$1/g". It doesn't crash when
run on Linux, but we need to make sure that it's okay for his
machine.
Platforms tested:
Linux, since this script is only run on GNU platforms.
Misc. update:
Purpose:
Bug Fix
Description:
The dependencies weren't being generated properly. What was
happening, if there was a "." in the path name to the source
directories, it would say, "oh! That matches anything. Dup-dee-do
I'll just mess everything up, then."
Solution:
Escape all occurences of "." with a "\." so that it will match an
actual "." instead of anything.
Platforms tested:
Linux
Purpose:
Bug Fix
Description:
The way we were generating Dependencies and .depend files was broken.
If the $srcdir or other macros began with a ".", then it would match
anything and cause problems since it would then overwrite the
beginning of the header file's path.
Solution:
Wrote a Perl script which can handle this type of weirdness better.
It's only used when the environment is a GNU one with a GCC
compiler...
Platforms tested:
Linux