Update.
Description:
Update HDF5 windows project settings and testing batch files to catch up recent updates on Unix.
Solution:
1. Add toolslib to the dependency of h5dumptst project. (as h5tools_can_encode() is used).
2. Add link to szlibdll.lib for dsetsdll project. (as SZ_encoder_enabled() is used).
3. Update dumptest.bat.
Platforms tested:
Visual C++ 6.0 on Windows XP/2000.
.NET on Windows XP.
(Tested with SZIP-with-encoder and SZIP-without-encoder).
Misc. update:
Bug fix.
Description:
When building h5dumpgentest.c with Visual C++ 6.0, I got the following warning message:
h5dumpgentest.c(4528) : warning C4013: 'h5tools_can_encode' undefined; assuming extern returning int
Solution:
Add the header file h5tools.h into h5dumpgentest.c.
Platforms tested:
Heping (Linux)
Visual C++ 6.0 on Windows XP/2000.
.NET on Windows XP.
(Tested with SZIP-with-encoder and SZIP-without-encoder).
Misc. update:
Bug fix.
Description:
creat(name, (mode_t)0777) is used to create a new file. However, creat() is not available in Visual Studio.
Solution:
Use a Win32 macro so _creat() will be used on Windows and creat() will be used on Unix.
#ifdef WIN32
fd = _creat(name, _S_IREAD | _S_IWRITE);
#else /* WIN32 */
fd = creat(name,(mode_t)0777);
#endif /* WIN32 */
(Note: At first, I tried to define HDcreat() as _creat() for WIN32 and creat() for other platforms in H5private.h. But _creat() and creat() use different parameters for file permission settings. So, I added the WIN32 macro in h5jamgentest.c.)
Platforms tested:
Heping (Linux)
Visual C++ 6.0 on Windows XP/2000.
.NET on Windows XP.
(Tested with SZIP-with-encoder and SZIP-without-encoder).
Misc. update:
Bug fix.
Description:
When building H5Z.c with Visual C++ 6.0, I got the following warning message:
H5Z.c(1241) : warning C4013: 'SZ_encoder_enabled' undefined; assuming extern returning int
Solution:
The header file szlib.h should be included in H5Z.c in order to use SZ_encoder_enabled() function.
Add the following script into H5Z.c:
#ifdef H5_HAVE_SZLIB_H
# include "szlib.h"
#endif
Platforms tested:
Heping (Linux)
Visual C++ 6.0 on Windows XP/2000.
.NET on Windows XP.
(Tested with SZIP-with-encoder and SZIP-without-encoder).
Misc. update:
Description: C++ build failed on kelgia. Binh-Minh fixed
it for 1.6 branch, I am bringing changes back to
1.7
Solution:
Platforms tested: kelgia
Misc. update:
Code cleanup
Description:
Convert chunk iteration code to use skip lists instead of threaded, balanced
binary trees.
Platforms tested:
FreeBSD 4.10 (sleipnir) w/parallel & szip
Too minor to require h5committest
Bug fix
Description:
szip tests were failing due to a few "H5_SZIP_CAN_ENCODE" ifdefs still
lying around in the source code.
Solution:
Eliminate compile time testing by using new SZ_encoder_enabled() routine
at run time.
Platforms tested:
FreeBSD 4.10 (sleipnir) w/szip
Code cleanup (sorta)
Description:
Transition the generic property list code from using the threaded, balanced
binary tree code (H5TB<foo>() routines) to use skip lists (H5SL<foo>() routines)
for internal management of properties, etc.
Platforms tested:
FreeBSD 4.10 (sleipnir)
Too minor to require h5committest
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:
Description: INSTALL file in 1.7 branch had old information about
the minimum set of header files that should be installed
Solution: Fixed
Platforms tested: N/A
Misc. update:
Updated to call timekeeper with minutes.
Also put all timekeeper output to a separated logfile.
Platforms tested:
Did not test since it is hard to test without starting the whole daily test.
The change is trivial too.
Feature
Description:
# As a time keeper of the remote daily test process launched by runtest.
# It sleeps for a certain time and then wakes up to hangup those processes
# that are still around, assuming they have run too long.
Platforms tested:
hand tested in heping.
Description:
Changed -instances=global to -instances=static to avoid multiple
copies of template function verify_val.
Platforms tested:
SunOS 5.7 (arabica)
clean up HDF5 fortran project.
Description:
Remove c/c++ headers from pure fortran project since this will cause
compliants from intel 8.1 compiler.
Solution:
Platforms tested:
.Net 2003, VS 6.0
Misc. update:
Fix a bug in the cache caused by a slightly over active sanity check.
Description:
When the #define H5C_DO_SANITY_CHECKS is TRUE, the macro
H5C__DLL_PRE_INSERT_SC is executed prior to inserting an
entry in the LRU list. The macro performs a variety of
sanity checks, and flags an error if any of the checks
fail.
Prior to this update, the macro used to check to see if
the target list had length 1 and size <= 0. The new
epoch marker entries used in the age out cache size
reduction algorithm have size zero -- making it possible
for this sanity check to fail incorrectly.
Note that cache sanity checks are disabled in the CVS
version of the code, so this bug and bug fix should be
invisible unless you are working with the cache, and
turn the sanity checks on.
Solution:
Removed the offending clause in H5C__DLL_PRE_INSERT_SC. Since
the size used in the macro is typically a size_t and thus
cannot have negative value, there was no point in changing
it to "size < 0".
Platforms tested:
Ran a serial test on heping.
Under the circumstances, I didn't feel the need for further
testing.
Misc. update:
Bug fix.
Description:
-e is not a valid condition for /bin/sh in all machines such as SunOS.
Solution:
Rewrote the condition to avoid the need of using "test -e ...".
Platforms tested:
In Sol only.
Description:
Accidentally edited this file and removed a couple characters from a
defined name, thus caused undefined error in daily test. Fixed!
Platforms tested:
SunOS 5.7 (arabica)
Description:
Replaced cout's with cerr's.
Replaced macro VERIFY with template function verify_val to
verify read data/info.
Cleanup various places in the tests to make them more consistent.
Platforms tested:
SunOS 5.7 (arabica)
Linux 2.4 (eirene)
mpich 1.2.6 does not like the tweaking of using -O2 flag.
Comment out the Tweaking since it caused problems to mpich1.2.6.
Need to investigate the reasons and effects to tweak.
Platforms tested:
Tested in heping using mpich 1.2.6 and in eirene uisng mpich 1.2.6.
Modify the cache code (H5C) to support automatic cache resizing to
adapt to the work load at run time.
Description:
Different applications require different sized caches to maintain
an acceptable hit rate. This set of changes attempts to provide the
ability to adjust to circumstances automatically.
Solution:
Added highly configurable code to allow the user to either set a
fixed cache size, or allow the cache to grow and shrink according to
conditions.
If enabled, cache size increases are triggered when the hit rate
drops below a user specified threshold in a user specified interval.
Cache size reductions (if enabled) are triggered when either the
hit rate exceeds some user specified threshold over a user specified
interval, when the cache contains "enough" entries that haven't been
accessed for a user specified interval, or some mix of the above.
See the header comments on the H5C_auto_size_ctl_t structure in
H5Cprivate.h for further details.
At present, the cache resize configuration options are not
accessible via the user API. Must add this.
Platforms tested:
h5committested, heping (serial), and copper (parallel)
Misc. update:
Modify the cache code (H5C) to support automatic cache resizing to
adapt to the work load at run time.
Description:
Different applications require different sized caches to maintain
an acceptable hit rate. This set of changes attempts to provide the
ability to adjust to circumstances automatically.
Solution:
Added highly configurable code to allow the user to either set a
fixed cache size, or allow the cache to grow and shrink according to
conditions.
If enabled, cache size increases are triggered when the hit rate
drops below a user specified threshold in a user specified interval.
Cache size reductions (if enabled) are triggered when either the
hit rate exceeds some user specified threshold over a user specified
interval, when the cache contains "enough" entries that haven't been
accessed for a user specified interval, or some mix of the above.
See the header comments on the H5C_auto_size_ctl_t structure in
H5Cprivate.h for further details.
At present, the cache resize configuration options are not
accessible via the user API. Must add this.
Platforms tested:
h5committested, hepingi (serial), and copper (parallel)
Misc. update:
Update.
Description:
Update HDF5 Windows installation documentation to include recently added HDF5 high level library and tests information.
Solution:
Platforms tested:
Not necessary.
Misc. update:
Port
Description:
Initial work for supporting GNU FORTRAN/F95 on FreeBSD. I think I've
got things mostly set up correctly, but I'm getting an internal compiler
error on one of the FORTRAN sources, so I'm not going to add this configuration
to the daily tests yet.
Platforms tested:
FreeBSD 4.10 (sleipnir) w/GNU FORTRAN
Not tested in h5committest
Bug fix
Description:
Add @COMMENCE@ to makefile, so that all our predefined macros are included,
which makes 'make distclean' work
Platforms tested:
FreeBSD 4.10 (sleipnir)
Too minor to require h5committest
New feature.
Description:
Add HDF high level into Windows.
Solution:
1. Add hdf5_hl and hdf5_hl_fortran projects under hdf5/project directory, which will be used to generate HDF5 high level C and Fortran libraries.
2. Add hl_test_lite, hl_test_image, and hl_test_table projects under hdf5/hl/test directory, which will be used for HDF5 high level C lite, image, and table tests.
3. Add hl_test_lite_fortran, hl_test_image_fortran, and hl_test_table_fortran projects under hdf5/hl/fortran/test directory, which will be used for HDF5 high level Fortran lite, image, and table tests.
4. Add HDF5 high level C lite, image, and table testing batch files test_hdf5_hl.bat under hdf5/hl/test directory.
5. Add HDF5 high level Fortran lite, image, and table testing batch files test_hdf5_hl.bat under hdf5/hl/fortran/test directory.
6. Update HDF5 library installation batch file installhdf5lib.bat to install HDF5 high level libraries and header files.
7. Add hdf5_hl, hl_test_lite, hl_test_image, and hl_test_table projects to the dependencies of "all" projects. So HDF5 high level C library and tools will be built by default.
8. Update hdf5build.bat to build HDF5 high level Fortran libraries and tools when using enablefortran or enableall options.
9. Update hdf5check.bat to test HDF5 high level Fortran tools when using enablefortran or enableall options.
Platforms tested:
Microsoft Visual C++ 6.0 on Windows XP/2000.
Tested with/without Fortran.
Misc. update:
Bug fix.
Description:
MIPSpro Compiler 7.4.x starts to support C99 features
but stdint.h has a "guard" in it that will #error if
cc is invoked without asking for C99 standard. But it
does not result with a non-zero compiler exit code, thus
configure thought it is okay to use header file stdint.h.
This causes problems later.
Solution:
Default to use the C99 compiler if available.
Platforms tested:
Tested in Sandia tesla machine which is a new SGI machine.
Check in testing code for irregular hyperslab selection with multiple chunks.
Description:
For debugging only, will not be tested by h5committest.
Solution:
Platforms tested:
Linux 2.4 (mpich 1.2.6)
Misc. update:
small bug fix
Description:
When checking whether the current chunk covers the irregular hyperslab,
the ending point of the chunk is not updated.
This will cause the wrong checking output and fail for some irregular hyperslab
selection.
Solution:
Updating the ending point of the chunk.
Platforms tested:
Linux 2.4 + parallel (too small to use h5committest)
Misc. update:
Description: In file H5FDsec2.c and H5FDlog.c, there's statements like
H5_ASSIGN_OVERFLOW(file->eof,sb.st_size,off_t,haddr_t);
It assumes sb.st_size from h5_stat_t is of type off_t. But on Windows, it
has type __int64. So the H5_ASSIGN_OVERFLOW statement may cause problem.
Instead of trying to do switch between Windows and other systems in H5FDsec2.c
and H5FDlog.c, define a substituting type in H5private.h to fix the problem.
On Windows, this type is __int64; on other systems, it is off_t.
Platforms tested: fuss. Simple fix. Already did h5committest for v1.6.