Code cleanup
Description:
Remove the fill-value option entirely, since the 1.5.x library's default
behavior is now the same as the 1.4.x behavior and also there is no
corresponding code for implementing fill-values with the POSIX or MPI-I/O tests.
Platforms tested:
FreeBSD 4.8 (sleipnir) w/parallel
too small to need h5committest
Update
Description:
Changed the --enable-mpe flag to --with-mpe so that we could
specify the directory information for where the MPE stuff is
kept. (with the =DIR option that we have for --with-* flags)
Solution:
7%
Platforms tested:
Copper (where MPE is...small change no requiring h5committest).
Misc. update:
bug fixes
Description:
The "fs flush" actually discards the local caches information,
NOT pushing the local file out to the servers. It does not
help the AFS problems we had but probably made it worse by
creating more demands on the servers.
Solution:
Removed the FLUSH_FILES code.
Platforms tested:
Can't be tested by h5committest and I am pretty sure the
change is safe.
Misc. update:
Purpose:
Complete "compression" to "filters" revisions.
H5Zregister review feedback.
Description:
Intro -- Finish the "Compression" ==> "Filters" changes.
H5Zregister -- Clarify that the can_apply_func and set_local_func
can be set to null.
-- Define value of filter_id
-- Other smaller revisions.
(all based on review feedback)
Platforms tested:
IE 5, Safari
Bug fix
Description:
Alignment on Cray SV1 machine was not being detected correctly and was
not aligning integer types correctly for type conversion, nor was detecting the
proper internal offset of the data in a 'short' type.
Solution:
Added more checks to detect way Cray aligns pointers in addition to current
checks.
Corrected 'offset' detection on big-endian machines.
Platforms tested:
FreeBSD 4.8 (sleipnir)
h5committest
Bug fix
Description:
Tighten up checks on "index" parameter to H5Aiterate to disallow negative
values and values greater than the number of attributes on an object.
Platforms tested:
FreeBSD 4.8 (sleipnir)
h5committest
Bug fix (backward compatibility)
Description:
Track changes to allow H5Giterate to pass along iterator callback's return
value
Also, improve range checking on "index" parameter to disallow invalid
starting indices (<0 or > the number of objects in a group).
Platforms tested:
FreeBSD 4.8 (sleipnir)
h5committest
Bug fix (backward compatibility)
Description:
Changes we've made during development of the 1.5.x branch had broken the
feature of allowing user's callbacks to H5Giterate to return a value
through the library back to the application which called H5Giterate.
Solution:
Better testing for this feature.
Platforms tested:
FreeBSD 4.8 (sleipnir)
h5committest
Bug fix (backward compatibility)
Description:
Changes we've made during development of the 1.5.x branch had broken the
feature of allowing user's callbacks to H5Giterate to return a value
through the library back to the application which called H5Giterate.
Solution:
Correctly pass along iterator callback return value and adjust internal
library code to conform to this design.
Platforms tested:
FreeBSD 4.8 (sleipnir)
h5committest
Purpose:
Edits based on review feedback.
Description:
H5Dget_offset -- Corrected return value.
H5Dcreate -- Added a brief mention of "fill values and space allocation"
and a set of cross-references.
H5Dfill -- Added H5Dcreate to the cross-reference list.
Platforms tested:
IE 5, Safari
Purpose:
Edits based on review feedback.
Description:
H5Tis_variable_str
H5Tdetect_class
-- Added notes regarding applicability of these 2 functions.
H5Tget_native_type -- Copy edits.
Added note to close returned identifier with H5Tclose and
clarification WRT array, compoud, etc datatypes.
Misc copy edits.
Platforms tested:
IE 5, Safari
Purpose:
Add new tools:
h5diff
h5perf
h5redeploy
h5c++
Corrections to h5import
Description:
h5diff, h5perf, h5redeploy, h5c++ -- Added these tools.
h5import -- Corrected the description of the naming convention for
output datasets. Other edits based on review comments.
Copy edits and source code formatting.
Platforms tested:
IE 5, Safari
Bug Fix
Description:
Quincey discovered that the new compiler on SOL needs the
-features=tmplife flag. However, this flag is only available for
version 5.3 of the compiler (and up, we're assuming).
Solution:
Add this flag only if the version of the compiler is 5.3 or greater.
Platforms tested:
Sol and Arabica (only affects solaris machines)
Misc. update:
Expand test
Description:
Expanded # of dangling objects from 2 to 1000, to stress ID cleanup code
in library more.
Platforms tested:
FreeBSD 4.8 (sleipnir)
h5committest
Bug fix & code cleanup
Description:
The H5F_get_objects_cb was returning SUCCEED (i.e. 0) to indicate that
the ID iterator should exit early, but the ID iterator needs a non-zero return
from a callback to exit early.
Also, track change to ID iterator "operator data" to be non-const
Solution:
Changed H5F_get_objects_cb() to return "TRUE" instead, to indicate an
early exit for the ID iterator.
Platforms tested:
FreeBSD 4.8 (sleipnir)
h5committest
Code cleanup
Description:
Add another dependency to the API shutdown code to not shut down the ID
management code until the other APIs which use IDs are shut down.
Platforms tested:
FreeBSD 4.8 (sleipnir)
h5committest
Bug Fix
Description:
On Copper, the redefinition of the PACKAGE_* #defined macros
in H5pubconf_fortran.h was causing havoc with the compiler now
that we specify ANSI C with it.
Solution:
Renamed the PACKAGE_* variables to FORTRAN_PACKAGE_* instead.
Platforms tested:
Copper (small fix...needed to determine the sed command worked).
Misc. update:
Purpose: IA64 (titan) cleanup and backing up previous change to the
H5f90global.f90 file
Description: We defined IA64 variable for C-stubs compilation
on IA64 systems. But system defines __ia64 and
it is better to use it as we do on all other systems.
Fortran test failed since global variable became undefined.
Solution: Removed -DIA64 and use __ia64 instead.
Somehow removal of COMMON statements from H5f90global.f90
caused errors on titan. Most of the global fortran variables became
undefined. I am not sure why it is happenning. It may be ecc compiler
or there is an error in the Fortran code. Since it may take some time
to track it, I decided to remove this change.
Platforms tested: titan, arabica
Misc. update:
Purpose: IA64 (titan) cleanup
Description: We defined IA64 variable for C-stubs compilation
on IA64 systems. But system defines __ia64 and
it is better to use it as we do on all other systems.
Solution: Removed -DIA64 from compilation flags since H5f90i.h header
files uses __ia64 variable that is defined on IA64 systems.
Platforms tested: titan
Misc. update:
Purpose: Bug fix
Description: On Cray SV1 multi-driver test failed while closing
access property list.
This test creates a file using multi driver, writes
dataset, closes the file; reopens the file and reads
back data. At some point I commented out call to
h5pget_access_plist_f, but forgot to comment out corresponding
h5pclose_f.
Solution: removed comment on the h5pget_access_plist_f subroutine.
Platforms tested: Cray SV1, copper with parallel, Winodws with VF, arabica.
There is some caveat left. I have a call to h5pget_fapl_multi_f
that follows h5pget_access_plist_f, it was also commented out.
This call works everywhere except Windows. Fortran part looks OK,
since my test program uses h5pget_fapl_multi_f before it closes the
file in the same test, and it works. Probably it is a library
bug that needs confirmation. For now I will leave second
h5pget_fapl_multi_f commented out.
Misc. update:
Code cleanup
Description:
Change some variables that are keywords in C++ to non-keywords.
Platforms tested:
FreeBSD 4.8 (sleipnir)
too minor to require full h5committest
Bug fix and refactored code
Description:
Return the file space we have allocated already when a dataset creation
fails.
Also track the change to the H5Fget_obj_<foo> APIs
Platforms tested:
FreeBSD 4.8 (sleipnir)
h5committest
Bug fix, refactored code
Description:
Fixed closing objects for "strong" file degree, which previously would
sometime attempt to close the same object twice (when a named datatype and
a dataset which used it were both left open before the file was closed).
Stopped datatype iteration from querying for the group entry of non-named
datatypes.
Added attributes to the list of objects that can be queried by
H5Fget_obj_count and H5Fget_obj_ids, since they can hold open a file also.
Took a suggestion from Robb to return the number of open objects
in the return values of H5Fget_obj_count and H5Fget_obj_ids.
Also, added a "max_objs" parameter to the H5Fget_obj_ids function, so that
it can work well with staticly allocated arrays.
Platforms tested:
FreeBSD 4.8 (sleipnir)
h5committest
More tests
Description:
Added tests to make certain that failed dataset, group, named datatype and
attribute creations clean up the file space they allocated before failing.
Platforms tested:
FreeBSD 4.8 (sleipnir)
h5committest
Refactored code
Description:
Moved duplicated "get_file_size()" function from a couple of tests into a
central location.
Platforms tested:
FreeBSD 4.8 (sleipnir)
h5committest
Improved tests
Description:
Added test for dangling attributes.
Also added code to test with weak, semi & strong file close degrees for
all tests.
Platforms tested:
FreeBSD 4.8 (sleipnir)
h5committest
Bug fix.
Description:
When a duplicate object was attempted to be created, the library would
leak file memory and object references in the file, potentially causing an
infinite loop when shutting the library down.
Solution:
Clean up after ourselves... :-)
Platforms tested:
FreeBSD 4.8 (sleipnir)
h5committest
Bug fix
Description:
When objects were left open in a file, the API shutdown code would end
up closing property lists "out from underneath" files that were left open
pending the objects in the being closed. This caused problems later when
file objects would try to access their property list and fail to close,
causing an infinite loop in the library shutdown.
Solution:
Create some dependencies in the order that APIs are shut down, trying to
close "higher" level APIs before closing "low" level APIs. This still isn't
precise, but it does work correctly now.
Platforms tested:
FreeBSD 4.8 (sleipnir)
h5committest
Purpose: Bug fix
Description: On Windows Fortran szip test failed in debug mode.
It turned out that C-stub for H5Pget_filter_by_id didn't
calculate the correct value of namelen parameter that is
passed to the H5Pget_filter_by_id function. As a result
fortran parameter that hold creation property id was overwritten
and h5fdcreate_f failed.
Solution: Fixed the value of namelen parameter to the H5Pget_filter_by_id
function.
Platforms tested: Windows 2000 with VF both debu and release modes,
sol, verbena.
Misc. update:
Improvement
Description:
If $CXX is not defined, configure will try a list of possible
C++ compiler name. That is not always desireable.
Solution:
Change configure to combine all powerpc-ibm-aix* to one version.
Add xlC as the default $CXX value.
Platforms tested:
Tested in Copper only since the change affect AIX machine only.
Misc. update:
bug fix
Description:
Parallel binary generated in copper could not run without first
setting LIBPATH to some values. This is because libtool putting
a very restrictive libray path into the generated library.
Solution:
There had been hack in before for the other IBM SP systems
identified by hostname. Add copper to the list.
Also, narrow down the hostname patter for Nersc Seaborg
machine a little bit.
Platforms tested:
Copper parallel only since that is the only place it failed.
Misc. update:
Purpose: Code cleanup
Description: For some unknown to myself reason I used COMMON in the
HDF5 module that has to be included in all Fortran
HDF5 application. This is redundant and may cause
problems for optimization. Also COMMON is an "OLD"
feature and shouldn't be used.
Solution: Removed COMMON statements.
Platforms tested: modi4 sequential and parallel, arabica, vebena,
Windows with Visual Fortran.
Misc. update:
Bug fix.
Description:
the MPI_Get_count test does not work correctly (the macro name
MPI_GET_COUNT_WORKS is not even used in source code.) For some
reason, this test sometimes hangs in AIX.
Solution:
Blocked out the test for now and removed the code later when
things are verified to be correct.
Platforms tested:
h5committested.
ALso tested in Copper (32/64bit parallel, 32 bit serial).
Misc. update:
Windows portability fix
Description:
Change "long long"s in code to "long_long"s, which is the portable version
of this type.
Platforms tested:
FreeBSD 4.8 (sleipnir)
to small for h5committest
Description: H5Tget_native_type fails on Cray for compound datatype.
Solution: there's size comfusion in the library on H5T_get_native_int function
Platforms tested: Cray, h5committest
Misc. update:
Improvement
Description:
RUNPARALLEL is setup with default value when --enable-parallel but only if
CC is not set.
Solution:
set RUNPARALLEL to default value of using poe when --enable-parallel
or when an MPI compiler (e.g. mpcc_r) is used.
Platforms tested:
Copper for both 32 and 64 bit, serial and parallel.
(32bit parallel had a hang problem in configure which is a different but
known problem.)
Note that one still need to setenv AR "ar -X64" for 64bit configure.
Misc. update:
Purpose:
Bug Fix
Description:
There was another GNU-make-ism in the C++ examples Makefile.in
that I didn't clean up.
Solution:
Changed the "$<" to the name of the file to compile.
Platforms tested:
Copper (Small fix...problem was on Copper).
Misc. update:
Test bug fix
Description:
The fill time in a dataset with no fill value information created with an
older version of the library was getting set to H5D_FILL_TIME_ALLOC instead of
the new default H5D_FILL_TIME_IFSET and was causing H5Dcreate() calls with that
dataset creation property list to fail now.
Solution:
Set the new default in the fill time initialization for missing fill value
information.
Platforms tested:
FreeBSD 4.8 (sleipnir)
h5committest
Bug fix
Description:
The fill time in a dataset with no fill value information created with an
older version of the library was getting set to H5D_FILL_TIME_ALLOC instead of
the new default H5D_FILL_TIME_IFSET and was causing H5Dcreate() calls with that
dataset creation property list to fail now.
Solution:
Set the new default in the fill time initialization for missing fill value
information.
Platforms tested:
FreeBSD 4.8 (sleipnir)
h5committest