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)
Supper 12-byte long double for intel compiler.
Description:
Long double is 12-byte at intel compiler, currently we always set long double to 8-byte.
Change this for intel compiler. This is not the compelete change. H5Tinit.c needs also to be changed to support this.
Solution:
Platforms tested:
Not test yet, since it won't affect other compilers except intel, will test soon.
Misc. update:
long_long to long_long data transform doesn't work with intel compiler on windows.
Description:
Turned off this test.
Solution:
Need corresponding source code changes, will talk with Leon.
Platforms tested:
VS. Net 2003 + Intel 8.1
Misc. update:
Description:
Many warnings about duplicate symbols for various members in the std.
Solution:
Temporarily added -qweaksymbol to suppress linker messages warning
of duplicate symbols since these warnings are harmless.
Note from pSeries and AIX Information Center:
When compiling C++ programs containing extern inline functions,
you can use the -qweaksymbol compiler option to suppress linker
messages warning of duplicate symbols.
Hoping that a better solution is suggested or the problem will be
handled by the compiler in the future.
Platforms tested:
AIX 5.1 (copper)
Bug fix
Description:
Remove declaration of 'prefix' variable that was moved into the h5tools
library.
Platforms tested:
FreeBSD 4.11 (sleipnir) w/CC=g++
Too minor to require h5committest
remove all.zip from HDF5 directory.
Description:
In 1.7, windows projects are directly installed under windows directory.
all.zip should be deprecated.
Solution:
Read install_windows.txt for details on how to build and install HDF5 library on
windows.
Platforms tested:
Misc. update:
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/code cleanup
Description:
Add tests to determine that very long (64K+) object names are working.
Fixed a couple of bugs in h5dump where they weren't...
Platforms tested:
FreeBSD 4.11 (sleipnir)
Solaris 2.9 (shanti)
Use getenv_all for determining HDF5_PARAPREFIX instead of getenv
Description:
the environment variable HDF5_PARAPREFIX is now determined collectively, instead of
having each task call getenv.
Solution:
Environment variables set for task 0 often do not propogate to other tasks which
leads to obscure and hard to track down bugs. getenv_all was written to overcome
this by having all tasks query a single task for the value of its environment.
Eventually, all calls to getenv will be migrated to use getenv_all. For now,
only HDF5_PARAPREFIX will be determined this way.
Platforms tested:
heping pp, sol pp
Misc. update:
Code cleanup
Description:
Clean up various warnings reported by the Windows team.
Platforms tested:
FreeBSD 4.11 (sleipnir)
Too minor to require h5committest
Feature - libtool shared library versioning
Description:
Libtool provides a mechanism for different versions of the same shared
library to be distinguished. Now this is applied to HDF5 when it is
built as a shared library.
Solution:
The version number is stored in config/lt_vers.am, and included in
src/Makefile.am.
This number will be automatically updated by bin/h5vers; developers
only need to update it when they change the API.
*** IMPORTANT ***
Any time the API changes, the version number in config/lt_vers.am must
be updated!
Platforms tested:
mir, eirene, verbena, modi4
Misc. update:
Description: Some memory buffers were allocated by HDmalloc() but weren't cleaned
up before use.
Solution: Use HDmemset() to 0 set the buffers.
Platforms tested: h5committest.
Bug fix
Description:
Opening a dataset (or named datatype) with "." for the name and using a
group ID for the location ID was not returning an error value.
Solution:
Check the type of the object before attempting to open it (internally,
using a group ID and "." for the name maps to the group object).
Platforms tested:
FreeBSD 4.11 (sleipnir)
Solaris 2.9 (shanti)
Too minor to require h5committest
Bug fix
Description:
Correct typo in "base array" free list macro when free list macros are
disabled.
Platforms tested:
FreeBSD 4.11 (sleipnir)
Solaris 2.9 (shanti)
Too minor to require h5committest
Turning off collective irregular selection feature for this platform
because the MPI package doesn't support MPI complicated derived data
type.
Description:
Solution:
Add the macro hdf5_mpi_complex_derived_datatype_works=${hdf5_mpi_complex_derived_datatype_works='no'}
at the end of config file.
Platforms tested:
Won't affect other platform and too minor to go to PSC cluster for testing.
Misc. update:
Bug fix.
Description:
Several call to macro HGOTO_ERROR passes wrong value to ret_value.
Solution:
Change the value from zero to FAIL.
Platforms tested:
heping
Misc. update:
Bug fix.
Description:
One call to macro HGOTO_ERROR passes wrong value to ret_value.
Solution:
Change the value from zero to FAIL.
Platforms tested:
heping
Misc. update:
Bug fix.
Description:
The nbit filter test case (compound datatype with no-op field)
can not pass the daily test on heping and eirene when the
enable-production option is set with configure and PGI compiler
is used. It will generate segmentation fault.
Solution:
It was found that the seg fault disappears when adding a new
index variable in the test case and using it instead of using
an existing index variable twice during initialization.
This does not make much sense since previous codes is logically
equivalent to the changed codes. So, some other factors beyond
the test case codes may have caused the problem.
Platforms tested:
heping
Misc. update:
Description: When stream driver was not enabled, H5FD_STREAM variable
was not define. Fortran compilation failed since H5FD_STREAM
was needed to set up fortran global variables.
Solution: Followed MPIO driver model and defined H5FD_STREAM to be -1
when driver is not enabled.
Platforms tested: heping with --enable(disable)-stream-vfd
Misc. update:
Purpose:
Fix the daily test failure of collective irregular test in modi4.
Description:
The original test passed with new SGI compiler. Albert verified this from
the SGI machine at DOE. The compiler version number at modi4 is 7.3.1.3m, the compiler version number at DOE is 7.4.2m. compiler at modi4 is old and SGI may fix some bugs during the updating of their compiler.
Solution:
At configuration file IRIX.6.x, set the macro MPI_COMPLEX_DERIVED_DATATYPE to no. In that way, HDF5 library won't call derived datatype routine in the test.
Platforms tested:
modi4
Misc. update:
Bug fix.
Description:
The irregular chunk IO tests do not work for processes sizes larger than 3.
Added a check of number of processes and skip the irregular chunk IO
tests if number of processes are larger than 3.
Revamped the tests of collective chunk IO tests too.
Platforms tested:
Tested in mir.
Misc. update:
New feature.
Description:
The scaleoffset filter previously does not use macros to handle
different integer datatype situations.
Solution:
Added macros in the filter for better maintenance and clarity of codes.
Platforms tested:
heping, copper, shanti
Misc. update:
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:
Code optimization
Description:
Add "base" size to array free list code, to accomodate skip list nodes.
Platforms tested:
FreeBSD 4.11 (sleipnir)
Solaris 2.9 (shanti)
Code optimization
Description:
Reduce overhead for common case of stride==NULL and block==NULL for
H5Sselect_hyperslab() calls.
Platforms tested:
FreeBSD 4.11 (sleipnir)
Solaris 2.9 (shanti)
Code optimization
Description:
Use Duff's Device to unroll shuffling loop a bit, for ~30% speedup.
Platforms tested:
FreeBSD 4.11 (sleipnir)
Solaris 2.9 (shanti)