Bug fix
Description:
When the v1.2 compatibility code was turned on, internal functions in the
library were getting confused.
Solution:
Separated guts of H5Pget_driver call into an API function (the definition
of which depends on the compatibility switch) and an internal function
which always behaves like the v1.3/4 function. Replaced API function calls
in the library code with the internal function.
Platforms tested:
FreeBSD 4.2 (hawkwind)
New parallel test features
Description:
Added test cases:
INDEPENDENT write with some processes do not participate at all.
The library should not hang for this case.
COLLECTIVE read/write with some processes asking for zero elements.
The library should work properly and not hanging.
Some house cleaning: get rid of a conditional directive that was
fixed already.
Platforms tested:
IRIX64,-64,parallel
Code cleanup
Description:
Several places in the code were using -2 as a default value for various
features. However, when a default value is returned from a function that
is supposed to return negative on failure, it was causing confusion and
extra work for users to check for the special value.
Solution:
Replaced hard-coded -2 values in the code with symbolic names, then changed
symbolic names to 0 instead of -2.
Platforms tested:
FreeBSD 4.2 (hawkwind)
Feature, kind of
Description:
Moved the multiple dataset test out of the write-test
part so that it can be skipped or tested independent of
the other tests.
Platforms tested:
IRIX64,-64,parallel.
Bug fix
Description:
Fixed some typo that cause compiling errors in parallel mode.
Also added a default case in the H5Pget_xfer code to catch
potential future added data transfer mode.
Platforms tested:
IRIX64-64, parallel.
Backward compatibility code
Description:
Add in code to allow the library to emulate the v1.2 API and behavior.
Platforms tested:
FreeBSD 4.2 (hawkwind)
Bug fix
Description:
The optimized MPI-IO calls, H5S_mpio_spaces_write/H5S_mpio_spaces_read,
are changed for collective data transfer only since they
call H5FD_mpio_setup to do setup to eveually call MPI_File_set_view
in H5FD_mpio_read or H5FD_mpio_write. MPI_File_set_view is a
collective call. Letting independent data transfer use this
route would result in hanging.
Solution:
For now, the checking is being done in
H5D_write and H5D_read before H5S_mpio_spaces_write/H5S_mpio_spaces_read
is called because the checking code in H5S_mpio_spaces_xfer, though with
the right idea, is not correct yet.
Platforms tested:
IRIX64-64 parallel.
Purpose:
Bug fix
Description:
H5S_mpio_spaces_xfer() did not do clean up all the times especially
the MPI_type freeing.
Solution:
Include the MPI_type freeing as part of cleanup code. Replaced
most HRETURN_ERROR(...) with HGOTO_ERROR so that cleanup code
will be executed.
Platforms tested:
IRIX64-64.
Purpose:
Fix a bug caught by debug version of windows 2000 at test_compound_5(struct optimization converter).
Description:
free memory of a variable before checking the result by using that variable.
Solution:
put free(buf) and free(bkg) after the following block:
/* Check results */
if (memcmp(src[1].name, dst[1].name, sizeof(src[1].name)) ||
src[1].tdim!=dst[1].tdim ||
src[1].coll_ids[0]!=dst[1].coll_ids[0] ||
src[1].coll_ids[1]!=dst[1].coll_ids[1] ||
src[1].coll_ids[2]!=dst[1].coll_ids[2] ||
src[1].coll_ids[3]!=dst[1].coll_ids[3]) {
FAILED();
return 1;
}
Platforms tested:
windows 2000 and confirmed at LINUX(eirene).
Purpose:
make mtime test available on windows
Description:
calculating time zone difference on windows
Solution:
1.Use /#if WIN32 #endif/ to make sure the modification will not affect other platforms.
2. use <sys/types.h> and <sys/timeb.h> on NT to obtain time zone difference.
Platforms tested:
windows 2000
Purpose:
update windows-related projects
Description:
Add new source code (H5Fseq.c) and several test codes into all.zip
update hdf5.dsp,hdf5dll.dsp,testhdf5.dsp and testhdf5dll.dsp.
update setting for h4toh5 and h5toh4 converters.
Solution:
Platforms tested:
windows 2000
New feature
Description:
Added tests to make sure collective read or write works correctly
even if some process has no data to transfer.
ZROW--process 0 asks for zero rows of data while other processes ask
for a slab of rows.
ZCOL--process 0 asks for zero columns of data while other processes ask
for a slab of columns.
Platforms tested:
IRIX64 parallel (-64,-n32).
cvS: ----------------------------------------------------------------------
Bug workaround
Description:
tarray4.h5 and tdvltypes4.h5 are causing core dumps on modi4
Solution:
Commented out those tests for now. I'll take a look at them after the code
freeze for the beta-release is finished.
Platforms tested:
O2K (modi4)
Bug fix (feature, kind of)
Description:
The library used to hang if a collective dataset read/write request
does not have the same number of eventual MPIO request. Part of the
reason is that H5FD_read/H5FD_write immediately returns succeess
if it sees the request size is 0. This caused problem since other
processes with I/O to do would be hanging by waiting for the early
returned process(es).
Solution:
H5FD.c: disable the early return code in parallel mode. Make it
go on even with "nothing" to transfer.
H5D.c: the optimized MPIO xfer routines can handle collect calls correctly
when the condition is right (e.g., no conversion). When the COLLECTIVE
request cannot be handled correctly without the risk of hanging, the
COLLECTIVE is changed to INDEPENDENT calls for the eventual MPIO
calls.
Platforms tested:
IRIX64 parallel (-64, n32), IRIX64 -64 sequential, Linux sequential.
Bug fixes and misc. code fixing.
Description:
Updated to reflect current DDL document. Also changed VL data to be able
to be able also dump VL data of any other datatype.
Platforms tested:
FreeBSD 4.1.1 (hawkwind)
Corrections & updates
Description:
Updated and corrected DDL description & examples to include all the
current features for the v1.4 release. Lots of changes...
Platforms tested:
Netscape 4.76
Bug fix
Description:
The code for determining what a string should print out if it was
declared as H5T_STR_NULLTERM (C strings), H5T_STR_SPACEPAD
(Fortran strings), or H5T_STR_NULLPAD (print null characters to
the end of the line) was mucked. A user had a problem with it and
suggested a change, but the change didn't seem to work properly.
Also, if the string was H5T_STR_SPACEPAD, it could have stopped
when encountering a NULL even if it hadn't gotten to the end of
the string.
Solution:
Reworked the code to make it more understandable what's happening
and to add in support for H5T_STR_SPACEPAD which may have been
missing before.
Platforms tested:
Linux
Simple changes
Description:
testphdf5.h:
Call MPI_Abort when error is detected. MPI_Finalized was used
before but it might hang if the test has already encountered errors.
Also, it does not do the H5Eprint any more since auto report is on.
t_mdest.c:
Changed the variable name of rank and nprocs to mpi_rank and mpi_size
so that it is the same with the other tests and can use the VRFY macro
call.
Platforms tested:
modi4-64.
Bug fix
Description:
If TESTH5TOH4 or TESTH4TOH5 wasn't set, then it would mess up the
testing process by adding a ``#'' to the for statement (since
there was a line-continuation in the definition of the macro).
Solution:
Placed the macro expansions all on one line so that there's no
junk characters picked up by accident.
Platforms tested:
OSF1 (Gondolin)
Bug fix
Description:
make reconfigure complained syntax error.
Solution:
The for loop previous added contained a typo. Replaced $$test
with $$sub.
Platforms tested:
modi4-64.
Purpose:
Code maintenance and development
Description:
I added two functions h5open_f and h5close_f to initialize
C library and Fortran interface (flags, predefined datatypes, etc).
Those calls are required for any F90 program that uses HDF5.
I renamed H5f90misc.c and H5f90miscf.f90 files to H5f.c and H5ff.f90.
New functions are added to those new files.
Platforms tested:
Solaris 2.6
Code bullet-proofing
Description:
There were several hard-coded values in various places in this test and
it wasn't checking for out-of-memory conditions very robustly.
Solution:
Changed hard-coded values to be computed values and performed better
checking for out-of-memory situations.
Platforms tested:
SGI O2K (modi4) and Solaris 2.6 (baldric)
Bug fix, cleanup,...
Description:
The test was doing the hyperslab select incorrectly (thinking
count was the block length.
Solution:
Fixed it to do the correct hyperslab selection.
Changed it to calculate different data for different datasets.
Changed output by rows instead by cols. It tests the purpose
of creating multiple datasets the same but runs faster.
Platforms tested:
modi4-64.
Purpose:
Bug fix
Description:
HP and AIX compilers did not like duplicate array declarations in
common blocks statements.
Solution:
Removed duplication
Platforms tested:
SP2 and HPUX 11.00
Bug fix
Description:
With the changing of the spelling error in the h5ls usage
statement, these testfiles puked.
Solution:
Corrected them in there.
Platforms tested:
Linux
Addtion
Description:
Added variable length datatypes to the DDL and put an example in
the "example" thingy at the bottom.
Doo dah doo dah.
Platforms tested:
w3m
Purpose:
Code maintenance
Description:
Fixed the code to use new h5tarray_create_f subroutine to
create a compound datatype with an array field.
Platforms tested:
Solaris 2.6
Purpose:
Bugs fix
Description:
I used H5Tcreate_array instead of H5Tarray_create in C stub
Solution:
Fixed
Platforms tested:
Solaris 2.6
OCVS: ----------------------------------------------------------------------
Code cleaning
Description:
Use the variable to rid the warnings of "variable set but not used".
Platforms tested:
Linux and modi4 -64. Just compile only.