Fix SZIP filter to dynmically detect encoder.
Description:
Solution:
See:
http://hdf.ncsa.uiuc.edu/RFC/SZIP/Szip_dynamic_12_Oct.pdf
Platforms tested:
verbena, arabica, cobalt.
Note RE testing:
All automatic tests work as before.
The feature is a configuration thing, so the tests are manual.
Tested with the following configs:
pre-release version of SZIP, with dynamic library,
1. no SZIP
2. SZIP, decoder only
3. SZIP, encoder+decoder
released (static lib) SZIP
4. no SZIP
5. SZIP, decoder only
6. SZIP, encoder+decoder
after build, switch szip in LD_LIBRARY_PATH at run time
7. SZIP decoder
8. SZIP encoder
Misc. update:
Manifest updated
Code cleanup
Description:
Update FORTRAN configuration test code to be more syntacticly correct
and not generate errors with stricter standards checking in the compiler.
Platforms tested:
Linux 2.4 (verbena)
Too minor to require h5committest
Refactor and update fortran configuration
Description:
Changed configure.in to include the production, debugging and profiling
flags for FORTRAN in the command line.
Added '-flags' files for PGI and Intel C compilers
Added '-fflags' files for PGI and Intel FORTRAN compilers
Updated 'gnu-flags' file for GNU C compiler to not modify compiler flags
when gcc is not being used.
Make detection of the correct FORTRAN compiler a bit smarter for Linux
platforms. (And carried over some of the minor changes to other affected
machines)
Platforms tested:
Linux 2.4 (tungsten) w/PGI and Intel C & FORTRAN compilers.
Changes not tested by h5committest
Adding new 'jam' utility
Description:
New utility, plus changes to makefiles
Solution:
See http://hdf.ncsa.uiuc.edu/RFC/Jam
Platforms tested:
verbena (fortran,C++), arabica, hirdls (SGI Irix64)
Misc. update:
Manifest will be done in next checkin.
Code cleanup
Description:
Fix another batch of minor differences between the development and release
branches.
Platforms tested:
FreeBSD 4.10 (sleipnir) w/parallel
Too minor to require h5committest
Purpose:
Bug fix
Description:
Modification time test (mtime) would die silently on some systems. This is
because the code is very system-dependant (it relies on getting the current
time and the timezone from the OS).
Solution:
mtime test now uses TEST_ERROR macro to print "FAILED" and to output where the
failure occurred. Configure script is a little smarter about whether
gettimeofday() function returns the timezone correctly.
Further bugs will need to be addressed on a system-by-system basis.
Platforms tested:
sleipnir, arabica, verbena, copper, windows (VC7)
Code cleanup
Description:
Clean up collective chunking code a bit.
Also, add '--enable-instrument' configure flag to have a mechanism for
determining that optimized operations happened correctly in the library (instead
of just the "normal" way) by allowing 'flag' properties to be set outside the
library and set when the "right" thing happens. This is mainly for debugging
and regression checks, so we make certain we don't break optimized I/O by
accident. It's enabled by default when --enable-debug is on (which is on by
default in the development branch and off by default in the release branch),
but can also be independently controlled with its own configure flag.
Platforms tested:
FreeBSD 4.10 (sleipnir) w/parallel
IBM p690 (copper) w/parallel
Feature
Description:
Showed the fortran compiler and FFLAGS and CXX compiler and CXXFLAGS
when the corresponding language API is enabled.
Platforms tested:
No h5committest since it is just a simple shell script change.
Tested in Eirene.
Misc. update:
Purpose:
HDF5 now supports SZIP with no encoder.
Description:
SZIP can be configured to have both encoder and decoder or just to have the decoder. HDF5 can now query the configuration of any filter, and will throw errors if users try to write using a filter with encoding disabled.
Solution:
Added H5Zget_filter_info function, changed API for H5Pget_filter and H5P_get_filter_by_id. See SZIP RFC.
Platforms tested:
Copper (fortran, C++, parallel), Sleipnir (C++), Arabica (fortran, C++), Verbena (fortran, C++)
Misc. update:
Update shell scripts
Description:
Switch to generating the testh5dump.sh script at configure time, so we can
determine which filters are available to test.
Platforms tested:
FreeBSD 4.9 (sleipnir)
too small to require h5committest
Description: A new bug is found on HP. There is float exception during conversion from double to
unsigned long long when the value of double is very big.
Solution: Try to catch the problem in configure and skip this part of test.
Platforms tested: kelgia and verbena(mainly these two machines are involved)
Description: The HP compiler cannot convert from float-point numbers to unsigned long long
correctly. It sets the maximal value of unsigned long long as 0x7fffffffffffffff.
Solution: Skip the conversion test when this happens by testing it during configuration.
Platforms tested: kelgia(HP-UX 11) and fuss(RH 8)
Description: For certain compiler(PGI we know so far), during conversion
from float or double to unsigned long long, it does round-up when the
fraction part is greater than 0.5, which shouldn't happen.
Solution: check it during configuration and compensate this offset
during testing in dtypes.
Platforms tested: verbena and fuss. verbena is the only machine with
PGI compiler. Ran it on fuss to verify it with other compiler.
Description: Solaris 64-bit machines cannot handle round-up correctly during
conversion between unsigned (long) long and double.
Solution: During configuration, run a program to test if there is any failure
during conversion. Enable a macro if failures happen and adjust the test/dtypes
for round-up.
Platforms tested: h5committest, arabica 64-bit.
Bug fix (sorta)
Description:
Add hack to allow the MS Visual Studio 6 compiler to build the library.
It cannot cast unsigned long long values to float or double values. So, add
another configuration macro to disable this conversion in the library. Just
the "hardware" conversion is disabled, so the library will still correctly
convert unsigned long long to float and double values, it will just happen
more slowly with the "software" conversion routine.
Platforms tested:
FreeBSD 4.9 (sleipnir) with "Windows" setting faked
inappropriate for h5committest
Bug fix (sorta)
Description:
The SGI machines have problems accurately (and consistently) converting
unsigned long values to float and double values, so put in a bit of a hack in
the datatype conversion test code to allow them to get "close enough". This
hack is enabled at configure time by a flag which should only be set on machines
with this problem.
Platforms tested:
FreeBSD 4.9 (sleipnir)
h5committest
Bug fix
Description:
Add special-case handling to floating-point conversion tests to avoid
problems with denormalized values on Cray T3E & T90 platforms. (Still not
working on Cray SV1, but at least it's closer).
Solution:
Detect denormalized values and don't try to operate on them on the Crays.
Platforms tested:
FreeBSD 4.9 (sleipnir)
Cray T3E (hubble.cray.com)
Cray T90 (gypsy.cray.com)
Code cleanup, bug fixes
Description:
Wrap up rest of changes necessary for fixing the "short" MPI-I/O read
problem that Robb reported.
Platforms tested:
FreeBSD 4.9 (sleipnir)
too minor to require h5committest