Clean up some object header code in advance of more major changes in the
near future.
Fix small initialization error in attribute message name buffer copy.
Tweak down the default # of messages for new object headers.
Tested on:
FreeBSD/32 4.11 (sleipnir) w/threadsafe
Linux/32 2.4 (heping) w/FORTRAN & C++
Mac OS/32 10.4.8 (amazon)
Previous implementation failed to compile on MAC OS X Tiger 10.4 and AIX 5.2
In previous implementation, each overloaded Fortran function called the same
C function. Since declaration of parameters in INTERFACE block for
C Function differed, some compilers issued warnings but g95 on MAC and AIX
failed to compile.
Solution: Add C wrappers corresponding to each overloaded Fortran function
to call C stub function. This fix should also reduce number of warnings
on IRIX systems.
Platforms tested: MAC OS and AIX 5.2 (copper) with g95;
sol (with Sun compilers), heping with PGI compilers
Bug fix (related to 544)
Description:
h5_get_file_size() was coded to return 0 if failed but
file size can be 0. Changed the failure return value to -1
which is allowed by the returned type of off_t which is a signed
type.
Also changed the checking code of the stat call to just == 0
since that is how it is defined.
Test:
Could test it in heping only. Both Sol and Copper failed to
compiled due to error in the Direct IO VFD code.
Bug Fix (Bug 544)
Description:
SGI Altix's MPI_File_get_size overflowed at 2GB and more.
Replaced h5_mpi_get_file_size calls by h5_get_file_size.
Tested:
Cobalt.
So new flush2 tests generates false failures for DLL version on windows.
Two cases of flush2 tests were skipped temporarily on windows.
The inserted windows macros should be removed when a better solution is found.
Tested on vs6.0 and vs 7.1 and Linux.
Update datasets and the layout, attributes and fill-value
object header messages to use the latest version
of the file format flag.
Tested on:
FreeBSD 4.11 (sleipnir)
Linux/64 2.4 (mir)
Linux/32 2.4 (heping)
option --enable-direct-vfd/--disable-direct-vfd to enable/disable Direct I/O support. The default
is enabled. There's a small test in test/vfd.c. Another way to test it is to set environment
variable HDF5_DRIVER to "direct" and run "make check" in the test/ directory. There'll be some
further improvement in the following checkin including allowing user to provide memory boundary
value, file block size, and copying buffer size.
Tweak down some of the static array definitions for new & re-loaded object
header data structures, to reduce memory use in common cases.
Tested on:
Linux/32 2.6 (chicago)
Add "use the latest format" support for dataspace object header encode/
decode routines and clean up format a bit for the latest format (new to 1.8.x
releases)
Remove storing 'perm' parameter for array datatypes in memory and the file,
and add test to make certain that if any user applications are attempting to
store them, we get some reports back. (Should be unlikely, since the RefMan
says that the parameter is not implemented and is unsupported).
Carry those changes into the tests, etc.
Clean up a bunch more compiler warnings.
Tested on:
FreeBSD/32 4.11 (sleipnir) w/threadsafe
Linux/32 2.4 (heping) w/FORTRAN & C++
Linux/64 2.4 (mir) w/enable-1.6-compat
Clean up some compiler warnings and resolve some inconsistenceis between
hsize_t and size_t in the interface.
Tested on:
FreeBSD/32 4.11 (sleipnir) w/threadsafe
Linux/32 2.4 (heping) w/FORTRAN & C++
Linux/64 2.4 (mir) w/enable-1.6-compat
Use calloc() instead of malloc(), in order to fail a bit more gracefully
on errors.
Tested on:
FreeBSD/32 4.11 (sleipnir) w/threadsafe
Linux/32 2.4 (heping) w/FORTRAN & C++
Linux/64 2.4 (mir) w/enable-1.6-compat
Fix error with passing in new root indirect block instead of NULL pointer
to protect of previous root direct block, when converting heap to use a root
indirect block.
Tested on:
FreeBSD/32 4.11 (sleipnir) w/threadsafe
Linux/32 2.4 (heping) w/FORTRAN & C++
Linux/64 2.4 (mir) w/enable-1.6-compat
2. Using H5Dmpio_Debug macro to reflect the debugging information of new parallel IO supports.
They are very minor changes. Tested at heping. t_pflush2 failed. Others passed.
Bug Fix (Bug 544)
Description:
SGI Altix's MPI_File_get_size overflowed at 2GB and more.
Put in a temporary patch to use stat() instead to make Cobalt
passing on this test (bigdset). A better fix (like detect if
MPI_File_get_size does not work before using this is preferred.)
Tested:
Cobalt and Heping.
exposed by that one in which closing a read/write file ID wouldn't flush the
cache if there was another file handle open. This caused problems when the
second file handle was read-only; neither would actually flush the cache.
Now all read/write file handles flush the cache when the close, but only
when the file is going to be destroyed is the cache destroyed. This way
read-only file handles keep the cache open but it is always clean.
Tested on mir, heping, sol, and copper (parallel)
Description: Add a new part to the flush test that checks to see what happens in case a file is flushed, and
then a new dataset is created and the program exits without flushing this subsequent dataset.
The test verifies that, at the very least, the data written out before the H5Fflush call is correct.
Description:
It seems that, on AIX, calling MPI_Finalize without closing all files results in an error.
This causes t_pflush1 to fail because the whole point of the test is to see what happens if you
don't close a file. Try getting rid of the call to MPI_Finalize to see if this will silence the error.
Tested:
AIX (copper)
and quote its arguments. Also checks for the 'socket' library on
Solaris.
If this patch passes the Daily Tests and makes the user happy, I'll
port it back to the 1.6 branch.
Tested on mir and sol.
Finish 'use the latest version of the format' changes to the datatype
object header message. Compound and enumerated types will now be encoded
more efficiently by packing the field names & member offsets better.
Tested on:
Linux 2.6/32 (chicago)
Linux 2.6/64 (chicago2)
Add the "use the latest version of the format" support to datatype
messages. And a regression test to check that it's working.
Also, found that we have been over-allocating space for compound datatype
messages (when they have array datatypes or can use the latest version of the
format) and trimmed the size back.
Clean up datatype & dataspace encode/decode routines by having them
allocate & release "fake" file structures, which gets them out of needing to
"know" about the internals of file structures.
Other minor whitespace/formatting cleanups, etc.
Tested on:
Linux/32 2.6 (chicago)
Linux/64 2.6 (chicago2)
Further minor modifications to the file format for tracking links in groups.
This is tentatively the "final" file format for groups.
Tested on:
Linux/32 2.6 (chicago)
Linux/64 2.6 (chicago2)
Fix file handle destroy routine to not attempt to flush out partially
initialized file handles (when opening a file fails).
Tested on: (until they finished testing, this time... :-)
FreeBSD/32 4.11 (sleipnir) w/threadsafe
Linux/64 2.4 (mir) w/1.6 compat
Linux/32 2.4 (heping) w/FORTRAN & C++
Mac OSX/32 10.4.8 (amazon)
defined in H5private.h.
Moved definition of int64_t from H5private.h to H5public.h as a temporary
solution.
Tested on heping and Windows (windows also needed H5Gdense.c and H5Gbtree2.c
to be added to hdf5 project).