New feature
Description:
Replacing the hardcoding of default version for snapshot test
to a file, bin/snapshot_version. This way, runtest and snapshot
can be version neutral. Makes maintenance easier.
Platforms tested:
eirene.
Purpose:
Code cleanup
Description:
DataType::convert: changed the 'nelmts' parameter from size_t to
hsize_t according to hdf5 library change.
Platforms tested:
SunOS 5.7 (arabica)
Linux 6.2 (eirene)
Purpose:
Small bug fixing
Description:
Replaced NULL by 0 for initializing or passing null "string".
The problem showed up on platinum.
Platforms tested:
SunOS 5.7 (arabica)
Linux 6.2 (eirene)
IA-32 Linux Cluster (platinum)
Purpose:
Adding new member function
Description:
Added PropList::copyProp according to the new api H5Pcopy_prop
in the C library. I'm still working on adding more tests so
test for this will be added as well.
Platforms tested:
SunOS 5.7 (arabica)
Linux 6.2 (eirene)
FreeBSD 4.4 (sleipnir)
Bug fix
Description:
check-install was on the same make line with install. They
got run in parallel.
Run check-install as a separate make action after make install is completed.
Platforms tested:
Eirene
Feature
Description:
The output of multiple tests of one host used to all go to the same
logfile. It is harder to find the beginning of each test.
Solution:
Added hour and minute (HHMM) into the logfile name. Different
tests should go to different files now. If a second test starts
within a minute of the previous test, their output will be all
in the same file. In the case, there are probably not that much
output to worry.
Platforms tested:
eirene
Bug Fix
Description:
There was a problem with having a lot of groups nested together. We
could only handle 1024 characters at most, but, in a parallel program
especially, it could occur that there were lots and lots of groups
and would be more than 1024.
Solution:
I made the "objname" part of the obj_t structure a pointer instead of
a fixed size. Added code to allocate/deallocate the memory we need
for it. Had to fix how the "prefix" was being handled in the h5dump
program. It was also set to only 1024 characters in length. I made it
dynamic.
Added a test case...Go me!
Platforms tested:
Linux, Solaris
Feature
Description:
Added the check-install target to verify if installed software is
working. Currently only run "make check" in examples.
Platforms tested:
eirene
fetures
Description:
The example code used to just run parallel I/O test in the current
directory which is most likely where the program is compiled.
In general, this directory is most likely not a parallel file system.
Therefore, the example code often fails.
Solution:
Add an option "-f <prefix>" for specifying the correct test files
pathname prefix. The program now requires an explicite file prefix
either via the "-f" option or the environment variable $HDF5_PARAPREFIX.
(With the proper setup of $HDF5_PARAPREFIX, the example code can run
automatically in situtaions such as batch job or gmake check.)
Also added feature to cleaup up the test files created.
Of course, an added option "-c" to turn OFF the cleanup action.
Platforms tested:
eirene, modi4, dangermouse (all parallel modes).
modi4 (serial) just to verify it can compile.
Oops
Description:
I added files for testing the group comments dumping feature, but
didn't actually add it to the testh5dump.sh script.
Solution:
Added it.
Platforms tested:
Linux
DLL accommodation
Description:
In the inline constructor below:
DSetCreatPropList() : PropList( H5P_DATASET_CREATE) {}
H5P_DATASET_CREATE causes the famous "unresolved symbol" error
when building the Release version of dsets_cpp with DLL.
H5P_DATASET_CREATE uses H5P_CLS_DATASET_CREATE_g, which is
imported from hdf5dll. The inline constructor used in dsets.cpp
causes the use of H5P_CLS_DATASET_CREATE_g, which is then
considered undefined because dsets_cppdll is not using hdf5dll.
This only occurs in the Release version because the Debug build
disables inline.
Solution:
Made the affected constructor not inlined, i.e., its implementation
went in the cpp file.
Note that this problem does not occur in 1.4 branch because
H5P_DATASET_CREATE was defined differently, i.e., did not involve
external storage.
Platforms tested:
SunOS 5.7 (arabica)
Linux 6.2 (eirene)
Windows 2000
Purpose:
Removing unnecessary file from all.zip
Description:
The file H5config.h.in got into all.zip somehow at some point.
When all.zip is being unzipped, an attempt to replace a newer
H5config.h.in by this file was made. I confirmed this with
Kent and removed it.
Platforms tested:
Windows 2000
Purpose:
Adding C++ support on windows
Description:
Added both static and DLL versions of the C++ API library and tests
to all.zip. The C++ API is disabled, however, and will need to be
enabled by the user.
Platforms tested:
Windows 2000
Purpose:
Bug Fix
Description:
C++ examples weren't being removed.
Solution:
We were trying to remove something called "EXAMPLE_DOCS", but we
needed to remove "EXAMPLE_PROGS" instead.
Platforms tested:
Linux
Bug Fix
Description:
The make uninstall-examples wasn't working if fortran or C++ was
built.
Solution:
Added uninstall-examples to the Makefile.
Platforms tested:
Linux
New feature
Description:
The examples have been changed to use the installed h5cc to do
the compiling. Added a step in the "test" part to
"cd examples; gmake check" which will test against the installed
software.
A more proper way is to create a "check-install" target to test
other installed software besides the C API, such as the Fortran
API.
Platforms tested:
eirene
Bug Fix
Description:
``make uninstall-doc'' wasn't working properly. Some files would be
left behind in the installed source tree. The fix I put in was too
heavy-handed as it wiped out the entire doc tree that was installed
and would remove any other files which were installed there.
Solution:
Executed the ``make uninstall-examples'' command if uninstalling the
docs. Fixed how the java Tutorial examples were being removed (they
weren't). Essentially used the PUB_SUBDOCS macro to help remove them.
Platforms tested:
Linux
Bug Fix
Description:
So, for Raw I/O in parallel, if you open a file with truncation by
multiple processes, it looks as if one process could open the file
and start writing to it while another process also opens the file
with truncation, thus wiping out all of the stuff the first process
wrote to the file.
This is bad.
Also added some garbage collection to the pio_perf routine to reclaim
the space taken by some of the tables.
Solution:
Placed an MPI_Barrier() statement after the Raw open()/create() call
so that all processes are synced up before they start writing to the
file.
Added free() calls to the tables which weren't being free'd.
Platforms tested:
Linux-pp (eirene)
Purpose:
Bone-headed Bug Fix
Description:
There were blanks being put into the output. The cause: the
"print_indent()" routine was printing indents for all of the
processes, but only process 0 should have been printing them out at
all (since process 0 is the one which prints out the reports).
Solution:
Check to make sure that we're process 0 before printing the indents.
Platforms tested:
Linux
Purpose:
Bug Fix
Description:
The doc tree wasn't being cleaned up all the way. Directories would
be left in there and some examples/Tutorial files weren't cleaned up
correctly.
Solution:
Have it remove the whole directory tree of the HDF5 documents
$(RM) -r $(DOCDIR)/hdf5
Platforms tested:
Linux
Bug Fix
Description:
When doing an install of dynamic executables on some platforms, the
"mktemp" command may fail which causes the contents of "tmpdir" to go
away. If it's a failure, we still need the previous value of tmpdir.
Solution:
I replicated some code so that tmpdir's old value before the mktemp
call is regen'ed if the mktemp call failed.
Platforms tested:
HP-UX SysV
Bug fix
Description:
The -lnoop library was specified in $LDFLAS when it should have
been in $LIBS. In the past, human just put it in the back and
repeated it enough times in the link statement till it worked.
The tool h5cc exposed this error since the $LDFLAGS is put in
front of all libraries, including libhdf5.a. That won't work.
Solution:
Moved the specification of -lnoop to $LIBS.
Platforms tested:
Tflops
Adding support for dll
Description:
Added the definition of __DLLCPP__ depending on:
HDF5_CPPDLL_EXPORTS: C++ API is to be exported - this name is
generated by MSVC++ when the project was created.
HDF5CPP_USEDLL: C++ API dll is to be used (imported.) Any
applications, that use the C++ API dll, must define this
name in the project setting.
On non-windows platforms, __DLLCPP__ is nil.
Platforms tested:
Linux 6.2 (eirene)
Windows 2000
Purpose:
Adding support for dll
Description:
Added __DLLCPP__ to all public classes and templates.
Added #include "H5Include.h" to H5RefCounter.cpp because of the
use of DLLCPP in .h file and it needs the following chain:
H5Include.h/hdf5.h/H5public.h/H5api_adpt.h
Added #pragma warning(disable: 4251) to H5Exception.h to eliminate
this warning on private data members of type 'string.' This
occurs because 'string' is not yet instantiated at compilation
time; however, since the class is exported, the warning is
harmless.
Changed this member function's parameter to be passed as reference.
from:
void CompType::insertMember( const string name,...
to:
void CompType::insertMember( const string& name,...
Platforms tested:
Linux 6.2 (eirene)
Windows 2000
Feature
Description:
Change examples to use the installed h5cc to compile the examples
programs. That will test the correctness of the installed software.
Removed examples from make targets in the top level so that it does
not get invoked in make or make check since one cannot compile
the example programs until after "make install" has completed.
Platforms tested:
eirene and modi4 (parallel)
Users were alarmed by the OFFSET overflow and GB file size tests.
Those tests only checks the limits of the MPI implementation, not
really as an error.
Solution:
Changed the VRFY macro to indicate it is an "ERROR".
Modified the INFO macro to print messages as "REMARK (not an error)"
so that users would not be alarmed.
Added an explanation string in the GB file size write/read.
Platforms tested:
eirene and modi4 (parallel)
Remove perf and mpi-perf from the parallel test targets since their
functions are replaced by pio_perf.
Platforms tested:
modi4 and eirene, both parallel modes.
Bug Fix
Description:
If a non-zero fill-value is used for a chunked dataset, any non-existent
chunked read with an "all" selection (or a contiguous hyperslab selection)
will return zero for those instead of the user's fill-value.
Solution:
Fixed I/O code to pass down fill-value to "optimized" I/O routines, so it
will be available to fill the user's buffer with.
Platforms tested:
FreeBSD 4.5 (sleipnir)
Change default actions.
Description:
Change the default maximum number of processes (-P) to use all processes
instead of just 1 (old default). Someone most likely wants to test
the I/O performance with all processes involved.
Also starts performance measurement with maximum number of processes
and decrement it with each loop. If the performance measurement
needs to restart, it can run with fewer processes if those loops
have completed.
Platforms tested:
modi4 and eirene.
Purpose:
Bug Fix
Description:
On some systems, doing the shell command:
if test -z $DEBUG_PKG; then
doesn't work if $DEBUG_PKG is null..
Solution:
Changed to "if test "X$DEBUG_PKG" = "X"; then" which will do the same
thing but without the error...
Platforms tested:
Linux
Bug Fix
Description:
When printing out the summary information after the configuration,
the Compilation Mode and Debugging information would be incorrect.
The library is set to compile to "Production" mode for a release.
Yet, the default compilation mode before that was "Development". If
the user doesn't specify "--enable-production" on the command line,
the configure defaults to "Production" mode, but the summary still
reported "Development" mode.
Solution:
Modified script so that after we've determined which compilation mode
we're in, we reset the "enable_production" variable to the correct
setting. So, we no longer have a "default". The summary part then
reads the new value and uses that to determine which mode we're in.
The debugging summary information was reworked so that it would
output the correct summary information. Slight hacking of the summary
script to check the values a bit more closely...
Platforms tested:
Linux (eirene)
Purpose:
fixed a typo of the name H5S_set_extend on the call
FUNC_ENTER (H5S_set_extend, FAIL);
Platforms tested:
w2000 octopus
linux eirene
sun arabica
IRIX64 modi4
Purpose:
fixed a bug that made a failure on H5Screate_simple, a 1D dimemsion array was declared instead of a 2D array
Platforms tested:
w2000 octopus
linux eirene
sun arabica
IRIX64 modi4
Bug fix
Description:
When a block was preempted from the chunk cache, it is possible that one
of the pointers in the algorithm is invalidated and would generate a core
dump.
Solution:
Re-calculate the internal pointer and move the the preemption after the
re-calc.
Platforms tested:
FreeBSD 4.5 (sleipnir)
Cleanup
Description:
Added set_extend.h5 file to the CLEANUP macro in the Makefile so that
it'll be removed when the other temp files are removed.
Platforms tested:
Linux