Configuration feature
Description:
Serial test output is now stored in log files and printed when all tests
in a directory complete, or when a test fails. This should make test output
more readable and useful.
Also made changes to clean up ii_files directories that are created by some
C++ compilers/linkers.
Also fixed a few minor Makefile bugs.
Solution:
When serial tests run, their output is saved in *.log or *.logsh. While
running, tests only print when they begin and when they complete; their
more specific output (from the log file) is printed if the test fails or
when all tests have completed.
Comments welcome.
Platforms tested:
mir, modi4 (parallel and serial), copper, shanti
Bug fixes
Description:
A number of minor changes to Makefiles. Some files will now be cleaned
properly, some comments are more informative, etc.
Platforms tested:
heping, mir, modi4
bug fix
Description:
rwdsetexample and attrexample both modify the same file created by
dsetexample. Need to serialize all three of them.
Platforms tested:
Did 50 times of make check in fortran/examples. It used to fail
at least once. Now it does not fail.
Bug fix
Description:
The ".chksh" file for a test script was being created in the "source"
location rather than the build location. This can cause problems when
multiple builds are running because "slower" machines will see the ".cshsh"
file from faster machines and will not run the test script as they should.
Solution:
Use 'basename' command to strip off the path of the script and create
the ".chksh" file in the build location.
Platforms tested:
FreeBSD 4.11 (sleipnir)
h5committest
bug fix.
Description:
-nt is not a universal option for the test command in all platforms.
The use of it in conclude.am cause some platforms to bark at the
Makefile generated.
Solution:
Created a command script bin/newer which tests if file1 is newer
than file2. Replace the "test file1 -nt file2" by
"newer file1 file2".
Platforms tested:
Tested in sol.
Bug fix
Description:
Fixed error in Fortran examples on modi4.
Solution:
Added another dependency in the Fortran examples.
Platforms tested:
mir, modi4 (serial and parallel)
Bug fix
Description:
Added dependencies to examples Makefiles so that examples can be run in
parallel.
Solution:
The examples directories (for C, C++, and Fortran) all have some dependencies
explicitly spelled out in their Makefiles.am. This is a good short-term
solution, and should prevent errors in the Daily Tests.
Platforms tested:
mir, modi4 (parallel and sequential)
Bug fix
Description:
Fixed bugs that caused tests to be unable to find testhdf5.sh during
daily tests, and another that broke sol and shanti.
Solution:
When tests are run, their path is ./$testname .
When scripts are run, their path has no leading "./". Fixed.
Sol and shanti don't recognize the -e option for test, but they do know
-f. Fixed.
Also modified release notes.
Platforms tested:
mir, shanti, heping
Feature: tests now use parallel make and only run once
Description:
When make is invoked in parallel (using the -j option), several tests will
now be run simultaneously. This should speed up testing on a number of
systems.
When a test passes, it creates a foo.chkexe or foo.chksh file, which prevents
the test from running again unless the test or library changes.
Solution:
Most of the changes live in config/conclude.am. Added *.chkexe and *.chksh
files to the list of files to be cleaned at "make mostlyclean" time.
Parallel tests still run one at a time, but use the same make instructions
as serial tests.
Platforms tested:
mir, eirene, sleipnir, pommier, copper, modi4 (some errors occurred, probably
due to the test being run before updating hdf5. Will re-run tests after
checkin.)
Description: "long long" type caused compilation problems on Windows
Solution: Use long_long definition
Platforms tested: heping, Windows will follow
Misc. update:
Description:
When compiler flag was used to set the size of Fortran integer
to 8 bytes, library would fail.
Solution:
Cleaned up the code; added detection of Fortran INTEGER type size
and appropriately defined int_f type for C-stubs routines.
Platforms tested:
Solaris 2.8 32 and 64-bit, AIX 5.1 64-bit parallel
PGI Fortran with -i8 flag on heping
Absoft Fortran with -i8 flag on heping
g95 on mir (Fortran integer is 8 bytes by default that cannot be
changed - compiler bug ;-)
AIX Fortran with -qintsize=8 32 and 64-bit modes on copper
Misc. update:
Bug fix
Description:
H5test_kind.f90 had an error when being compiled by pgf90.
Solution:
A variable wasn't declared. Declared it to fix the bug.
Platforms tested:
heping, mir
Bug fix/improvement
Description:
Added another step to fortran type detection. This should help on some
bizarre platforms.
Solution:
Formerly, H5fortran_detect.f90 was included in the distribution. Now
it is generated by H5test_kind.f90 (written by Elena).
Platforms tested:
verbena, modi4, copper
Bug fix
Description:
Fortran type detection failed on Cygwin. This is because executables
in Cygwin have the .exe extension, which confused dependencies in
the Makefile.
Solution:
Sprinkled the $(EXEEXT) variable liberally about the fortran/src
Makefile.am. This variable is set at configure time and will
be ".exe" on Cygwin and stay "" on Linux.
Platforms tested:
Cygwin, modi4, mir
bug fix
Description:
check-s and check-p were set as pre-requistics of test. They
would get executed in parallel if parallel make is used. This
could cause problems since serial tests are used to be executed
before parallel tests. It is not known if it is always okay to
run serial and parallel tests in simultantously.
Solution:
Change check-s and check-p as actions of the target test so
that they get executed sequnentially.
Platforms tested:
heping PP.
Added check-s and check-p targets.
Description:
Added check-s and check-p targets to 1.7 branch to match changes to 1.6
branch. Now parallel and serial tests can be run separately.
Platforms tested:
mir, modi4, copper
Bug fix
Description:
Fortran tests failed because UTF-8 character set flag wasn't initialized
properly.
Solution:
Elena showed me where the flags needs to be initialized. Problem solved.
Platforms tested:
heping, copper, modi4
new fortran parallel test
Description:
added a test that writes and reads several datasets
Solution:
Platforms tested:
linux (intel compiler, tungsten)
AIX (copper)
Misc. update:
Feature
Description:
Added "support" for UTF-8 character encoding.
Solution:
Wrote tests to check that UTF-8 can be used in a number of places in
HDF5 (object names, data, etc.). These tests live in test/tunicode.c.
Added a new UTF-8 character encoding for datatypes.
Platforms tested:
mir, modi4, heping
Misc. update:
Code cleanup
Description:
fortran/src/H5f90i.h used to define different fortran types for every
compiler. Now it only defines three things, and they are the
same for every platform but one.
Solution:
Eliminate duplicate definitions; now there are only two cases
("UNICOS" and "everything else").
This should also let the HDF5 Fortran compile anywhere, even on
unknown platforms.
Platforms tested:
mir, pommier, modi4, copper, Cray X1 (in progress)
Cray X1 Port
Description:
Porting 1.7 branch to Cray X1. With these changes, HDF5 builds, but
there are some errors in the tests. Working on the errors.
Solution:
Added nv1-cray file to config directory.
Cleaned up some code in hl/c++ that was causing compiler to complain.
Platforms tested:
Cray X1, mir, sleipnir
Misc. update:
bug fix
Description:
some lines were longer that 132 characters (the "official" max lenght of a line in F95)
the g95 compiler complained about it
Solution:
reduce the line lenght
Platforms tested:
linux (g95, intel)
Misc. update:
bug fix
Description:
the hdf5 file of the test was being generated on the NFS filesystem
Solution:
use the libtest function h5_fixname
Platforms tested:
Linux
Misc. update:
added new fortran parallel tests that replace the old ones
Description:
this first set of tests do a write/read by hyperslabs
Solution:
Platforms tested:
Linux (heping) PGI compiler
Linux (heping) Intel compiler
AIX (copper) IBM compiler
SGI Altix (cobalt) Intel compiler
Xeon Linux cluster (tungsten) Intel compiler
Misc. update:
Purpose:
Bug fix
Description:
Some platforms (Windows) don't have the long long type, which causes automatic
Fortran type matching to fail.
A solution is to use HDF5's long_long type.
Solution:
Changed H5match_types.c to use long_long type. Moved definition
of long_long out of H5private.h and into H5public.h.
Platforms tested:
mir, copper, pommier
Bug fix
Description:
Made High-Level Fortran code use automatically generated headers
rather than a separate hardcoded header.
Solution:
Set hdf5/hl/fortran/src to include hdf5/fortran/src, so that it
will find the copy of H5f90i.h in that directory.
Took #include "H5private.h" out of H5f90i.h (and moved it to files
that included H5f90i.h.
Platforms tested:
mir, modi4, pommier
Configuration feature
Description:
Fortran integer types (not reals) are now automatically detected at
build-time.
Solution:
Two helper programs are used, one to detect what types the Fortran compiler
has access to, and one to generate header files for C and Fortran matching
up types.
Platforms tested:
mir, copper, modi4, pommier (last week)
Misc. update:
MANIFEST updated, H5f90fortran_types.f90 removed from configure.in, since
it is not longer generated by configure.
Output tweak
Description:
Test output in C++ and Fortran directories now puts "C++ API:" or
"Fortran API:" in front of the name of the test being run.
I had overlooked the line of code that caused this to happen.
Solution:
Added HDF_CXX and HDF_FORTRAN variables to C++ and Fortran Makefiles.am.
Platforms tested:
heping (minor change)
Bug fix.
Description:
When there were errors in the test, program still just call MPI_FINALIZE
and failed to attempt to exit with some error code so that calling
programs like make be informed of the exceptions.
Solution:
Call MPI_ABORT if error is detected. Though MPI_ABORT does not
guarantee 100% failure report, it has the best chance.
Also made dimension incompatible as a real error.
Platforms tested:
Did not h5committest but tested in heping PP only since this
is a simple fix.
Bug fix.
Description:
Data file name is hardcoded to be in current directory which does not
necessarily support MPIO. Changed it to /tmp/sds.h5 for slightly larger
chance of success but the eventual solution is to set it according to
environment variables. Patch it this way for now.
Platforms tested:
mir.
Misc. update:
Minor feature
Description:
If a user configures without C++ or Fortran, 'make' will not recurse into
c++ or fortran directories. However, if the user cd's into these
directories and 'makes,' the Makefiles will attempt to build interfaces
that have not been configured, usually failing.
In an unrelated but minor change, src/H5detect should be compiled with
the -g flag to disable compiler optimizations since it is only
executed once.
Solution:
Make it harder for users to try to compile interfaces that have not been
configured by making c++, fortran, and hl directories not recurse into
their subdirectories unless they have been configured.
Thus, 'make' in /fortran/src will break if Fortran has not been configured,
but 'make' in /fortran will not break.
Platforms tested:
mir, modi4, copper
Misc. update:
Description: h5pget_driver_f function returned information that could not
be interpreted by fortran application
Solution: Defined Fortran global variables that correspond to
the C H5FD_<driver_name> variables at the Fortran library
initialization time.
Platforms tested: heping with PGI compilers, sol 64-bit and copper parallel
Misc. update:
Improvement
Description:
Changed headers in Fortran directories to use H5_FC_FUNC macro
from H5pubconf.h rather than FC_FUNC macro from H5config.h.
This is better practice and works better with the Windows projects.
Platforms tested:
heping, Windows
Description: Removed support for SRB driver
Solution: Removed or modified appropriate files; ran reconfigure
to regenerate Makefile.in and configure files.
Platforms tested: heping and shanti
Misc. update: ran bin/chkmanifest on heping
Description: Added missing h5get_member_class_f function
Solution:
Platforms tested: heping; it is a simple change. I will
watch daily tests and take care of failures.
Misc. update:
Configuration feature
Description:
Different Fortran compilers mangle function names in different ways
(upper case, lower case, adding underscores). To link between
Fortran and C functions, we need to know what a given function's
name is under a given compiler.
Solution:
Use autoconf's FC_WRAPPERS check to determine the Fortran
naming scheme and define the FC_FUNC_ macro to name our
functions (in H5f90proto.h). Removed references to
our old FNAME macro, as well as flags that indicated whether
function names were upper or lower case.
Platforms tested:
mir, pommier, modi4, copper, more
Feature
Description:
Added support for conditional compilation of parallel Fortran
examples. No such examples exist currently, but it should be
possible to add them to the Makefile.am with no fuss and have
them compile only when parallel is enabled.
Platforms tested:
eirene, copper, modi4
Misc. update:
Bug fix
Description:
On some machines, $RUNSERIAL variable needs to be used to run
tests. Set $RUNTESTS (which is used for non-parallel tests) to
be $RUNSERIAL in configure.am.
Also, since I was updating all Makefiles.in anyway, I updated
commence.am to point to autotools installs in AFS instead of
those on heping.
Platforms tested:
mir, sleipnir, modi4, copper
Purpose:
"Bug fix"
Description:
Hardcoded Makefiles to use /bin/sh instead of letting configure
detect shell automatically. This is what v1.6 does, and avoids
problems on janus.
Platforms tested:
sleipnir, copper, modi4, mir
Feature - conditional compilation
Description:
SRB file driver and tests are now compiled only when SRB is enabled
(using --with-srb during configure).
Solution:
Added an automake conditional in configure.in, altered Makefiles.am in
src and test directories to depend on that conditional.
This should make a nice example for posterity to add conditionally
compiled sources.
Platforms tested:
heping (only configure change)
Windows fortran examples was checked into a wrong directory.
The correct directory is hdf5/windows/fortran/examples.
The current directory is hdf5/fortran/examples.
Description:
Solution:
Platforms tested:
Misc. update: