changed the h5pubconf.h file the MALLOC_WORKS definition
for code warrior , which is #undef
this is because pt=malloc(0) returns 0 in code warrior
and was causing a failure in the config_malloc_test
Platforms tested:
code warrior
Misc. update:
bug fix
Description:
in the close strong case in H5F_close there was a do..while loop
that executed when nfiles==0, calling malloc(0)
this was causing a failure in the close call in Code Warrior, that returns 0
in the call pt=malloc(0)
Solution:
replaced with a while loop (checks the condition before executing)
Platforms tested:
code warrior, linux
Misc. update:
Bug Fix
Description:
A resource leak happened if the H5Fget_access_plist() function was
called. What was happening: the driver ID and info parts of the
property list copied in H5Fget_access_plist were being overwritten,
but those properties were copied initially, so we lost information.
Added calls to the H5Fget_access_plist function to get the PList and
then immediately close it. It would cause an infinite loop if there
is a resource leak.
Solution:
Before copying over those values, call the H5F_acs_close() function
to close those values.
Platforms tested:
Modi4 (Parallel & Fortran)
Arabica (Fortran)
Verbena (Fortran & C++)
Misc. update:
Bug Fix
Description:
A resource leak happened if the H5Fget_access_plist() function was
called. What was happening: the driver ID and info parts of the
property list copied in H5Fget_access_plist were being overwritten,
but those properties were copied initially, so we lost information.
Solution:
Before copying over those values, call the H5F_acs_close() function
to close those values.
Platforms tested:
Modi4 (Parallel & Fortran)
Arabica (Fortran)
Verbena (Fortran & C++)
Misc. update:
bug fix
Description:
The fphdf5.o and similar files are not included in the make clean
target. So, if the same directory is used again for a different
build, the left behind file could cause a problem (e.g., if
the second build is for a different binary format.)
Solution:
Added fphdf5.c to the TEST_SRC list which indirect form the clean
target list.
Platforms tested:
Did not run h5committest tests because they don't verify this
failure. I tested the fix in modi4 pp to verify all files are cleaned.
Misc. update:
Feature
Description:
Test program for the Flexible PHDF5 feature.
Platforms tested:
Tested on modi4 before but the feature is currenly disabled in
configure. Checking this in for future work.
Misc. update:
Bug fix
Description:
Sometimes when H5detect fails (incorrect code, incorrect mpi launch
command, insufficient resources,...), it generates an incomplete or
even empty H5Tinit.c file. If the empty file is not removed but
the make is run again, make will just use the empty file to generate
the library which will have lots of missing routines. Make won't
fail until much later and the missing routines would be puzzling
to inexperienced users.
Solution:
If H5detect fails, the generated H5Tinit.c will be removed unless
$HDF5_Make_Ignore is set. This is similar to removing .o file if
the compile fails.
Platforms tested:
Copper (parallel) which has a condition causing H5detect to fail.
That verified the change works.
Eirene (parallel) in which H5detect runs well. This verified the
change works in normal conditions too.
Did not do the h5committest because this is just a makefile change
and the above two tests covered it well.
Misc. update:
Bug fixes/API changes
Description:
Previously, the Communicator and Info object arguments supplied
to H5Pset_fapl_mpio() are stored in the property with its handle
values. This meant changes to the communicator or the Info object
after calling H5Pset_fapl_mpio would affect the how the property
list function. This was also the case when H5Fopen/create operated.
They just stored the handle value. This is not according to the
MPI-2 defined behavior of how Info objects should be handled. (MPI-2
defines Info objects must be parsed when called.)
The old design was trying to avoid numerous duplicates of the same
information (e.g., every property object holds one version, every
file opened holds another version, when all of them are referring to
the same original version.) Nevertheless it is safer to implement
it according to MPI-2 definition.
Futhermore, the library often needs to do message passing using the
supplied communicator. Using the same communicator as the application
version may result in some messages mix up.
Solution:
H5Pset_fapl_mpio now stores a duplicate of each of the communicator
and Info object.
H5Pget_fapl_mpio returns a duplicate of its stored communicator and
Info object. It is now the responsibility of the applications to free
those objects when done.
H5Fopen/create also stores a duplicate of the communicator and Info
object supplied by the File Access Property list.
H5Fclose frees those duplicates.
There are a few more internal VFL call back functions that they
follow this "make duplicates" requirement.
Platforms tested:
"h5committested".
What other platforms/configurations were tested?
Eirene (mpicc), sol(mpicc), copper(parallel)
Misc. update:
Need to update MANIFEST for the added t_ph5basic.c which tests the
correctness of duplicated communicator and INFO object.
Bug fixes/API changes
Description:
Previously, the Communicator and Info object arguments supplied
to H5Pset_fapl_mpio() are stored in the property with its handle
values. This meant changes to the communicator or the Info object
after calling H5Pset_fapl_mpio would affect the how the property
list function. This was also the case when H5Fopen/create operated.
They just stored the handle value. This is not according to the
MPI-2 defined behavior of how Info objects should be handled. (MPI-2
defines Info objects must be parsed when called.)
The old design was trying to avoid numerous duplicates of the same
information (e.g., every property object holds one version, every
file opened holds another version, when all of them are referring to
the same original version.) Nevertheless it is safer to implement
it according to MPI-2 definition.
Futhermore, the library often needs to do message passing using the
supplied communicator. Using the same communicator as the application
version may result in some messages mix up.
Solution:
H5Pset_fapl_mpio now stores a duplicate of each of the communicator
and Info object.
H5Pget_fapl_mpio returns a duplicate of its stored communicator and
Info object. It is now the responsibility of the applications to free
those objects when done.
H5Fopen/create also stores a duplicate of the communicator and Info
object supplied by the File Access Property list.
H5Fclose frees those duplicates.
There are a few more internal VFL call back functions that they
follow this "make duplicates" requirement.
Platforms tested:
"h5committested".
What other platforms/configurations were tested?
Eirene (mpicc), sol(mpicc), copper(parallel)
Misc. update:
A compiling error fixed for windows only
Description:
Use file handler instead of file stream at H5FDstdio.c when using getfileHandle function of windows.
Solution:
see above, however; stdio driver tests failed on windows. I am still investigating the bug.
The current check will not fix the failure of stdio driver test on windows.
The good news is that it won't affect the release since the default driver used for test is sec2 driver and
all tests passed for sec2 driver on windows.
Platforms tested:
windows 2000 and confirmed at Linux.
Since the only change is two-line code inside #ifdef WIN32 #endif macro block,
it is not necessary to test all UNIX platforms. Still confirmed at eirene.
Misc. update:
Purpose:
Add new functions.
Rewrite existing function.
Description:
Added H5get_vfd_handle and H5get_obj_ids.
Rewrote H5get_obj_count: function description was incomplete
and 2 (of 3) parameters were missing.
Platforms tested:
Safari, IE 5
Purpose:
Add new function
Add note regarding intentionally undocumented function
Description:
Added H5Dget_offset.
H5Ddebug -- Added note in HTML-coded comment that this function,
while technically public, is not intended for public use and
should not be listed in the RM.
Platforms tested:
Safari, IE 5
Purpose:
Removed reference to discontinued API
Changes reflecting renamed section of RM
Description:
Removed reference to H5RA, ragged arrays.
Made edits reflecting the H5Z change from "Compression" to
"Filters & Compression."
Platforms tested:
Safari, IE 5
Purpose:
Comment out functions not in R1.6
Description:
Commented out these hyperslab functions since they are not "turned on"
for Release 1.6:
h5scombine_hyperslab_f
h5scombine_select_f
h5sselect_select_f
Platforms tested:
Safari, IE 5
Purpose:
Add new function
Add operands to 2 existing functions
Comment out functions not in R1.6
Description:
H5Sget_select_type -- Added new function.
H5Sselect_hyperslab -- Added operands H5S_SELECT_AND, H5S_SELECT_XOR,
and H5S_SELECT_NOTB, H5S_SELECT_NOTA.
Reformatted part of Description source code, with minor copy-edits.
H5Sselect_elements -- Added operands H5S_SELECT_APPEND, H5S_SELECT_PREPEND.
Commented out these hyperslab functions since they are not "turned on"
for Release 1.6:
H5Scombine_hyperslab
H5Scombine_select
H5Sselect_select
and the corresponding FORTRAN routines
Platforms tested:
Safari, IE 5
added some niceties and utilities, and more tests
Description:
some niceties: more error messages on cases of bad input
utilities: some functions to more human readable output
more tests: described in the test matrix
Platforms tested:
Linux/rockaway(C)
SunOS/arabica (C)
SGI/modi4 (C)
feature.
Description:
Added the option of "setenv3" which sets the environment variable
that has three components like env AR="ar -X 64". It is another
kludge like setenv2. Got to code in a better 'setenv' option.
Platforms tested:
Copper (because its -64 compiling needs that AR set as above).
Eirene (where it usually launches).
Did not do h5committest which does not test bin/runtest.
Misc. update:
Bug fix.
Description:
The stdio filer driver is not reducing the file's size in the manner
that the sec2 driver does.
Solution:
Copy code from the sec2 for handling this properly.
Platforms tested:
h5committested
Bug Fix
Description:
When using the STDIO driver, the dsets test would fail.
Solution:
Need to flush the data to disk before doing an HDopen call.
Platforms tested:
Modi4 (Parallel & Fortran)
Arabica (Fortran)
Verbena (Fortran & C++)
Misc. update:
Purpose: Windows port for 1.5 branch
Description: Projects files were not up-to-date; Fortran and C libraries,
and tests would not build.
Solution: Updated all projects and coresponding all_withf90.zip file
Platforms tested: Windows 2000
Only static tests (both debug and release) passed on Windows.
DLLs have multiple problems ;-)
Misc. update:
Purpose: Windows port
Description: Windows cannot convert from _uint64_t to double. One of
the tests (test_set_local) used conversion to fill a data
buffer. Compilation failed on Windows.
Solution: Fixed the code not to use conversion
Platforms tested: CRAY T90IEEE, arabica, modi4 with parallel, Windows 2000
Only static tests (both debug and release) passed on Windows.
DLLs have multiple problems ;-)
Misc. update:
Purpose: Added copyright statement; cleaned code and fixed bugs for
Windows and Cray T90IEEE
Description: Windows and Cray ports exposed few typos in the source code
that caused tests to fail
Solution: Added copyright statement and clean the code.
Platforms tested: CRAY T90IEEE, arabica, modi4 with parallel, Windows 2000
Only static tests (both debug and release) passed on Windows.
DLLs have multiple problems ;-)
Misc. update:
Purpose: Added copyright statement; cleaned code and fixed bugs for
Windows and Cray T90IEEE
Description: Fortran files did not have copyright statement; VL types
did not work on T90IEEE since I never brought the correct code
from 1.4 branch; there were compilation warnings on Windows;
some character parameters were not passed correctly to C stubs
causing tests to fail on Windows.
Solution: Added copyright statement and clean the code.
Platforms tested: CRAY T90IEEE, arabica, modi4 with parallel, Windows 2000
Only static tests (both debug and release) passed on Windows.
DLLs have multiple problems ;-)
Misc. update:
Purpose: Catching up with 1.4 branch
Description: 1.5 didn't have unicos10.0.X configuration files
for both C and fortran.
Solution: Added the files
Platforms tested: CRAY T90IEEE
Misc. update:
Purpose: Catching up with 1.4 branch
Description: 1.5 didn't have unicos10.0.X configuration files
for both C and fortran.
Solution: Added the files and updated MANIFEST
Platforms tested: bin.chmanifest on arabica
Misc. update:
Bug Fix
Description:
When calling "H5F_get_access_plist" after setting the FAPL to a multi
driver, and then trying to get the multi driver back, it resulted in
returing a "NULL" value instead of the driver.
Solution:
The stuff at the location pointed to by the driver was being stored
into the property list and not the pointer to the driver itself.
Changed the "H5P_set" code so that it stores the pointer instead of
the driver...(Added an "&" in from of the "driver_info" variable).
Platforms tested:
Arabica (Fortran)
Burrwhite (Fortran & C++)
Modi4 (Fortran & Parallel)
Misc. update:
Code cleanup
Description:
Clean up comments, etc.
Platforms tested:
FreeBSD 4.8 (sleipnir) w/C++
Linux 2.4 (burrwhite) w/FORTRAN
Solaris 2.7 (arabica) w/FORTRAN
IRIX64 6.5 (modi4) w/parallel & FORTRAN
(h5committest not run due to my ongoing difficulties with C++ on burrwhite).
New feature.
Description:
Added tests to verify correct operation of re-using file space.
Platforms tested:
FreeBSD 4.8 (sleipnir) w/C++
Linux 2.4 (burrwhite) w/FORTRAN
Solaris 2.7 (arabica) w/FORTRAN
IRIX64 6.5 (modi4) w/parallel & FORTRAN
(h5committest not run due to my ongoing difficulties with C++ on burrwhite).
Code cleanup
Description:
Added macro for reporting line #'s of test failures more easily.
Platforms tested:
FreeBSD 4.8 (sleipnir) w/C++
Linux 2.4 (burrwhite) w/FORTRAN
Solaris 2.7 (arabica) w/FORTRAN
IRIX64 6.5 (modi4) w/parallel & FORTRAN
(h5committest not run due to my ongoing difficulties with C++ on burrwhite).
Bug fix
Description:
Return correct value (1 instead of -1) on test failure.
Platforms tested:
FreeBSD 4.8 (sleipnir) w/C++
Linux 2.4 (burrwhite) w/FORTRAN
Solaris 2.7 (arabica) w/FORTRAN
IRIX64 6.5 (modi4) w/parallel & FORTRAN
(h5committest not run due to my ongoing difficulties with C++ on burrwhite).
Code cleanup
Description:
Switched some system/library calls to use wrappers.
Platforms tested:
FreeBSD 4.8 (sleipnir) w/C++
Linux 2.4 (burrwhite) w/FORTRAN
Solaris 2.7 (arabica) w/FORTRAN
IRIX64 6.5 (modi4) w/parallel & FORTRAN
(h5committest not run due to my ongoing difficulties with C++ on burrwhite).
New feature, sorta
Description:
Track changes to various internal APIs
Platforms tested:
FreeBSD 4.8 (sleipnir) w/C++
Linux 2.4 (burrwhite) w/FORTRAN
Solaris 2.7 (arabica) w/FORTRAN
IRIX64 6.5 (modi4) w/parallel & FORTRAN
(h5committest not run due to my ongoing difficulties with C++ on burrwhite).
New feature
Description:
Track changes in the internal metadata API with clearing the metadata
dirty flag without flushing object.
Added ability to delete an object header in the file and restore all the
space referenced by various header messages.
Platforms tested:
FreeBSD 4.8 (sleipnir) w/C++
Linux 2.4 (burrwhite) w/FORTRAN
Solaris 2.7 (arabica) w/FORTRAN
IRIX64 6.5 (modi4) w/parallel & FORTRAN
(h5committest not run due to my ongoing difficulties with C++ on burrwhite).
Code cleanup, bug fix & new feature.
Description:
The local heaps were missed in the last changes to the metadata "dirty"
flag, making them operate incorrectly in the metadata cache. Fixed by changing
to use "cache_info.dirty" flag instead.
Track changes for internal metadata API, regarding marking metadata as clean
without flushing it to the file.
Added ability to delete a local heap in the file.
Added ability to reduce the size of a local heap if there is a free-space
block at the end of the heap and the free-space block is over half the size of
the local heap.
Some migration of package-specific information out of the private header
and into the code module as well.
Platforms tested:
FreeBSD 4.8 (sleipnir) w/C++
Linux 2.4 (burrwhite) w/FORTRAN
Solaris 2.7 (arabica) w/FORTRAN
IRIX64 6.5 (modi4) w/parallel & FORTRAN
(h5committest not run due to my ongoing difficulties with C++ on burrwhite).
Bug fix & new feature.
Description:
The global heap 'dirty' flag was missed in the last round of changes to
the metadata cache and was not using the new "cache_info.dirty" flag.
Solution:
Switched to using correct flag for marking dirty objects in the metadata
cache.
Also, added new metadata callback for marking a piece of metadata as clean
without writing it back to the file.
Platforms tested:
FreeBSD 4.8 (sleipnir) w/C++
Linux 2.4 (burrwhite) w/FORTRAN
Solaris 2.7 (arabica) w/FORTRAN
IRIX64 6.5 (modi4) w/parallel & FORTRAN
(h5committest not run due to my ongoing difficulties with C++ on burrwhite).