* 2000-10-31 Robb Matzke <matzke@llnl.gov> (H5F_dest)
Do not call H5FL_FREE() if the root group
object is null. This fixes a bug in h5ls when that tool is given
a file which is not an hdf5 file.
Purpose:
Removing functions that have been removed from library.
Solution:
Removed H5Pget_driver, H5P[gs]et_stdio, H5P[gs]et_sec2,
H5P[gs]et_core, H5P[gs]et_split, H5P[gs]et_family,
H5P[gs]et_mpi, and H5P[gs]et_xfer.
Platforms tested:
IE5
"New" document
Description:
Raymond has prepared and added a new document reporting his
experience of using HDF5 with OpenMP. It was checked in as
a .txt file but browsers could not display it properly, at least
not for the MS-IE.
Solution:
I renamed the file from openmp-test.txt to openmp-hdf5.html,
added in simple mind html control statement (<pre>), added
an entry to the TechNote.html so that it can be found with
other technical notes.
Platforms tested:
Viewed by MS-IE.
Purpose:
Maintenance
Description:
I created ./fortran/testpar directory and added files to it
but forgot to update MANIFEST file.
Solution:
Fixed MANIFEST.
Platforms tested:
Purpose:
Bug fix.
Description:
Reading from the file failed because property list identifier
was not properly passed to the subroutine h5dread_f.
Solution:
Fixed the order of the parameters in the h5dread_d call
Platforms tested:
O2K (modi4)
Purpose:
Adding F90 || tests.
Description:
I created testpar directory with the following files
ptesthdf5_fortran.f90 - F90 test driver program
tcheck.f90 thdf5.f90 - handy subroutines to use with the tests
thyperslab_wr.f90 - F90 test:
collectively writes and reads hyperslabs to/from the dataset
Solution:
Platforms tested:
Partially tested on modi4 (O2K)
Bug fix
Description:
There is typo in the H5D_write function which reported the
optimized write failure as a H5E_READERROR.
Solution:
Replaced it with the correct H5E_WRITEERROR code.
Platforms tested:
modi4 parallel (compiled H5D.o only).
Purpose:
Port to Windows.
Description:
The stream_test program now also compiles and can be run under Windows.
Solution:
The problem was that fork(2) and waitpid(2) aren't available
under Windows when using the MS compilers.
So I test for both H5_HAVE_FORK and H5_HAVE_WAITPID.
These are already checked fortunately during configuration.
If they are not there the code just says
printf ("Test skipped because this architecture doesn't provide "
"fork(2) and waitpid(2)\n");
Platforms tested:
Windows NT, both with MS Visual C++ and GNU cc
Now you can build and run the Stream VFD testsuite under Windows
when using GNU cc !!
Purpose:
Set compiler flag to force BSD compliance.
Description:
In order to set a socket descriptor into non-blocking mode
via ioctl(2) the Stream driver uses the FIONBIO constant.
Under Solaris this is defined only when compiled as BSD code.
I hope this doesn't break anything.
Platforms tested:
Solaris 5.7
Purpose:
Detect whether the system has the netinet/tcp.h header file.
Description:
The Stream VFD uses setsockopt(2) to set TCP_NODELAY on an opened
socket. This constant is defined normally in netinet/tcp.h
except for GNU cc under Windows where this header doesn't exist.
This template header file just contains the
#undef HAVE_NETINET_TCP_H
Platforms tested:
Windows NT, GNU cc
Purpose:
Detect whether the system has the netinet/tcp.h header file.
Description:
The Stream VFD uses setsockopt(2) to set TCP_NODELAY on an opened
socket. This constant is defined normally in netinet/tcp.h
except for GNU cc under Windows where this header doesn't exist.
Platforms tested:
Windows NT, GNU cc
Purpose:
Port to Windows platform
Bug fix
Description:
The Stream VFD is ported to Windows now.
Also fixed a bug where an application terminated when it got a SIGPIPE
due to sending/receiving on a closed socket.
Solution:
The socket stuff is treated different under Windows when using
the MS compilers to build HDF5. They define their own socket datatype
and have closesocket() instead of close(2) to close sockets.
Also there are different header files for all the socket stuff.
So I introduced my own socket decriptor datatype in H5FDstream.h
which should be used to pass in external sockets. This datatype
is mapped to either 'int' (UNIX-type sockets) or 'SOCKET' (Windows).
In the code the error code checking was adapted according to the
socket datatype used. Also, for Windows you have to call a routine
to initialize the Socket layer before using it.
As a kind of bug fix, the process signal mask is now set to ignore
SIGPIPE signals which otherwise cause the application to terminate.
The driver read/write routines catch this and return an error code.
Platforms tested:
Windows NT, both with MS Visual C++ compiler and with GNU cc
It is interesting that when compiling with GNU cc under Windows
it is possible to use both Windows and UNIX-type sockets (either
one or the other). So I check for GNU cc and go for UNIX sockets
if possible.
Bug fix...I hope
Description:
For some reason, libtool wasn't generating a .lai library file in
the .libs directory. It needs this to install things, apparently.
Solution:
Major hack! I force a ln to the "real" one libtools wants.
Platforms tested:
Modi4
Bug fix
Description:
Forgot to decrement the number of objects in the group when removing
each one...
Solution:
Decrement the ID count when successfully removing each object from a
group.
Platforms tested:
None yet.
Bug fix
Description:
Fixed a very subtle bug that was corrupting the objects in a group when
H5I_clear_group was called and not all the objects in the group were able
to be cleared.
Solution:
Track whether an object as been deleted from each hash location's linked
list and only destroy the list when all the objects on the list are
actually removed.
Platforms tested:
None yet.
Documentation of TS Library
Description:
This is the document Chee Wai wrote up about the thread safe
version of the HDF5 library. I just put it in HTML format and
checked it in...
Platforms tested:
Netscrape
Purpose:
Maintenancece.
Description:
F90 APIs would not compile anymore for || version..
Solution:
Replaced old functions h5pset(get)_mpio, h5set(get)_xfer with
ones h5pset(get)_fapl_m and h5pset(get)_dxpl_mpio_f
Platforms tested:
O2K.
Bug Fix
Description:
People need to type in the full-path to the
attribute/dataset/etc. and weren't being told to do so by the
"usage" statement.
Solution:
Added an example and changed <names> to <path> to be more
explicit...
Feature
Description:
Allow dumping of variable length records. This is a first-time
stab at this. It doesn't break any tests on my Linux box and it
does output the variable length data, but it might look ugly (it
doesn't handle new-lines as of yet)...I'm open to suggestions on
what should be done next, what new features to add/remove...
Platforms tested:
Linux
Code optimization
Description:
Minor tweaks throughout the optimized regular hyperslab code to increase
speed. This set of improvements increase the benchmark time from taking
~5.46 seconds to ~4.50 seconds, or around a 20% further speedup.
Platforms tested:
Solaris 2.6 (baldric)
Bug fix
Description:
Recent changes to H5FD_read() added a new argument of type of
data to be written but the MPIO file driver call to H5FD_read()
was not updated. Also, the prototype of H5FD_read() in H5Fprivate.h
was "screened out", thus the compiler could not detect the inconsistency.
With the mismatched arguments, MPIO failed badly.
Solution:
Update the H5FD_read() call with the new parameter. Since the
call is used by H5Dread call so far, it is hardcoded to use
H5FD_MEM_DRAW as the value. If the call is used besides for
H5Dread, this parameter needs to be better defined.
(Still need to fix the prototype being blocked off.)
Platforms tested:
O2K -64 parallel.
New tests
Description:
Added a new test file (tsaf.h5) for h5dump and h5ls. The test file was
created by lib SAF team. This file used to cause previous version
of hdf5 tools to core dump.
tsaf.ddl is the expected output from h5dump.
Platforms tested:
IRIX64 -64, linux
New tests
Description:
Added a new test file (tsaf.h5) for h5dump and h5ls. The test file was
created by lib SAF team. This file used to cause previous version
of hdf5 tools to core dump.
Platforms tested:
IRIX64 -64, linux
Purpose:
Bug fix.
Description:
fortranlib_test.f90 had a typo in the format string. Would not compile on O2K.
Test did not check the length of the attribute name.
Solution:
Fixed format strings.
Added more code to test returned attribute name length.
Platforms tested:
O2K, Linux
Purpose:
Bug fix
Description:
Attribute test failed on O2K. h5aget_name_f function could not
return correct attribute name.
Solution:
size function parameter had wrong datatype in F90 subroutine.
Fixed it to be of INTEGER(SIZE_T) type.
Platforms tested:
O2K, Linux
Bug Fix
Description:
Getting messages while compiling the || fortran stuff that it
didn't have a rule to make "H5Pf_parallel.c".
Solution:
The quotes were confusing it. I placed the text in another macro
to fix this.
Platforms tested:
Modi4
Purpose:
This file describes the experiencing of OpenMP with hdf5.
Description:
All detailed description is in the file.
Solution:
[details about the changes, algorithm, etc...]
[Please as detail as you can since your own explanation is
better than others guessing it from the code.]
Platforms tested:
Everything was done on modi4.
Bug fix.
Description:
Could not find the pre-created file for the H5S_MAX_RANK test
when --srcdir option is used. testhdf5 was looking for it
in the currect directory only.
Solution:
Make use of the value of the environment variable srcdir that
is passed to the tests. Compose the real location of the testfile
in order to open it even from a remote build directory.
Platforms tested:
Modi4, arabica, eirene
new feature
Description:
h5ls was not tested
Solution:
Added a test script, testh5ls.sh, to give h5ls some tests.
Since the output from h5ls is sometime machine dependent (e.g.,
Datatypes), can not compare them with expected output. For now,
run it against various hdf5 binary files. If it exits with 0,
consider it passes.
Platforms tested:
IRIX64, eirene, arabica.
tidy it up
Description:
Change the variable names so that it looks more generic. Plan to
make it a generic script test template.
Platforms tested:
IRIX64-64, linux, solaris 2.7
Feature symmetry
Description:
A while ago I needed to get the 'type' of data being accessed during writes
to the VFL driver, so I put in code to get the information down there.
Albert asked for the same information during reads, so I've added that in.
Tested:
FreeBSD 4.1.1 (hawkwind)
Feature symmetry
Description:
A while ago I needed to get the 'type' of data being accessed during writes
to the VFL driver, so I put in code to get the information down there.
Albert asked for the same information during reads, so I've added that in.
Tested:
Netscape
Bug fix
Description:
During a `reconfigure', it wasn't traversing the
subdirectories...
Solution:
Added a loop to the reconfigure logic to do just that.
Platforms tested:
NOT tested...
Change test files for increased maximum dimension constant.
Description:
space_overflow.c - added some simple error checking.
th5s.c - corrected test case for maximem dimensions to use correct file
and actually test what is supposed to be tested... :-)
th5s.h5 - regenerated with increased dimensions.
Platforms Tested:
FreeBSD 4.1.1 (hawkwind)
Solaris 2.5 (baldric)
Increase constant for H5S_MAX_RANK from 31 -> 32
Description:
To better align the HDF5 library's maximum dimenions with HDF4 and netCDF,
the maximum number of dimensions has been increased to 32.
Platforms Tested:
FreeBSD 4.1.1 (hawkwind)
Solaris 2.5 (baldric)