Bug fix & code cleanup
Description:
Don't unmount child files from a parent file if the parent file is
being held open by an object.
Also, moved the mounting routines into their own source file and the
superblock routines into their own file also.
Solution:
Moved the code for unmounting child files down in the H5F_close routine
and also add checks to the file and group mounting code to unmount child
files when the last object holding open a file closes.
Platforms tested:
FreeBSD 4.11 (sleipnir)
h5committest
Bug fix
Description:
When plotting, if the minimum number of processors was not 1, gen_report.pl would fail.
Solution:
The minimum number of processors in the datafile was inadvertantly hard-coded to be 1.
Fixed it to dynamically determine the number of processors from the data.
Platforms tested:
colonelk.
Misc. update:
Description: pgcc version 6.0x have optimization (-O, -O2, or -O3) problem.
It caused multi driver test to fail. The problem happened in a macro
definition.
Solution: Detect these versions and add option "-Mx,28,0x8" to the compiler
to avoid the problem if optimization is enable.
Platforms tested: mir and fuss - simple change.
Bug fix
Description:
Fixed error in Fortran examples on modi4.
Solution:
Added another dependency in the Fortran examples.
Platforms tested:
mir, modi4 (serial and parallel)
bug fix
Description:
a string buffer did not had space for the trailing null
Solution:
add one more element to the buffer
Platforms tested:
linux
Misc. update:
Bug fix
Description:
Added dependencies to examples Makefiles so that examples can be run in
parallel.
Solution:
The examples directories (for C, C++, and Fortran) all have some dependencies
explicitly spelled out in their Makefiles.am. This is a good short-term
solution, and should prevent errors in the Daily Tests.
Platforms tested:
mir, modi4 (parallel and sequential)
Code cleanup
Description:
Refactor metadata cache to merge "dirtied" flag in with other flags for
H5AC_unprotect and H5C_unprotect.
Platforms tested:
FreeBSD 4.11 (sleipnir)
h5committest
Bug fix
Description:
Fixed bugs that caused tests to be unable to find testhdf5.sh during
daily tests, and another that broke sol and shanti.
Solution:
When tests are run, their path is ./$testname .
When scripts are run, their path has no leading "./". Fixed.
Sol and shanti don't recognize the -e option for test, but they do know
-f. Fixed.
Also modified release notes.
Platforms tested:
mir, shanti, heping
Bug fix
Description:
When a series of files is mounted on one another and one of those files
is not unmounted, the library gets confused at shutdown and goes into an
infinite loop in the file interface.
Solution:
If there are still files left in the "closing" state when shutting down
the file API, iterate over those file IDs and unmount any child files that we
find mounted on those files.
Platforms tested:
FreeBSD 4.11 (sleipnir)
Too minor to require h5committest
Feature: tests now use parallel make and only run once
Description:
When make is invoked in parallel (using the -j option), several tests will
now be run simultaneously. This should speed up testing on a number of
systems.
When a test passes, it creates a foo.chkexe or foo.chksh file, which prevents
the test from running again unless the test or library changes.
Solution:
Most of the changes live in config/conclude.am. Added *.chkexe and *.chksh
files to the list of files to be cleaned at "make mostlyclean" time.
Parallel tests still run one at a time, but use the same make instructions
as serial tests.
Platforms tested:
mir, eirene, sleipnir, pommier, copper, modi4 (some errors occurred, probably
due to the test being run before updating hdf5. Will re-run tests after
checkin.)
Update solution file all.sln
Description:
Change building configurations of all.dsw so that fortran project files would not be built when users choose visual studio .net
to build HDF5 from command line.
Solution:
Platforms tested:
Misc. update:
bug fix
Description:
when diffing a string type string , a cycle is made using the hdf5 get_size function, which returns
the type size
some strings might have a NULL terminator character before the type size position
this was noticed on a HDF-EOS file on the HDFEOSVersion attribute which was defined as a type with a 32 size,
but contained a string with 12 characters, making h5diff to compare the extra garbage characters
Solution:
detect the NULL terminator character and end the diff at that position
Platforms tested:
linux
Misc. update:
Description:
For the definition of the macro H5T_CONV_Xx_CORE, added a condition branch
(else if (*((ST*)S) == (DT)(D_MAX))) which seems redundant.
It handles a special situation when the source is "float" and assigned the value
of "INT_MAX". A compiler may do roundup making this value "INT_MAX+1". However,
when do comparison "if (*((ST*)S) > (DT)(D_MAX))", the compiler may consider them
equal.
Platforms tested: fuss - simple change.
Description: "long long" type caused compilation problems on Windows
Solution: Use long_long definition
Platforms tested: heping, Windows will follow
Misc. update:
Bug fix for parallel case for new "Some objects were not comparable" patch to h5diff.
Description:
The parallel h5diff wouldn't print out "Some objects were not comparable" because the worker
tasks were not communicating the not_cmp flag of the diff_opt_t struct back to the manager, who ultimately
prints everything.
Also, some miscellaneous fixes for error printing. Some errors were printed out with printf instead of fprintf(stderr,...).
In parallel environments, this can result in output getting lost.
Solution:
Had the worker tasks pass along the not_cmp flag to the manager when they sent along
the number of differences they found.
Platforms tested:
heping (pp), sol (pp)
Misc. update:
modified the script test so that when the test files do not exist , they are created
Description:
Solution:
Platforms tested:
linux
solaris
Misc. update:
bug fix
Description:
when 2 objects were not comparable, the final print information for the non verbose mode printed "0 differences found"
Solution:
replaced instead with a Summary message that says
"Some objects were not comparable"
Platforms tested:
linux
solaris
Misc. update:
Add new macro to remove data conversion errors on visual c++ .Net on windows XP
Description:
Solution:
Platforms tested:
Visual C++ .Net 2003 on windows XP
Misc. update:
Update project file hdf5_hl_fortran.dsp
Description:
New source code H5IMcc.c was added into project file hdf5_hl_fortran.dsp
Solution:
Platforms tested:
MSVS 6.0 on windows XP.
Misc. update:
Update project file file_handledll.dsp
Description:
file_handle.c was renamed to vfd.c
Solution:
Platforms tested:
MSVS 6.0 on windows XP
Misc. update:
Description: Finally moved Fortran related function H5IM_get_palette to the
fortran part of the hl source (to the H5IMcc.c file)
Solution:
Platforms tested: sleipnir, mir with g95
Misc. update:
Purpose: Bug fix
Description: mismatched "static" declaration for notorious H5IM_find_palette function
caused compilation to fail on sleipnir.
Solution: Remove it for now. Function should go back to Fortran part of HL library.
Platforms tested: sleipnir
Misc. update:
Description: First, report a bug fix(#214) of family driver. Second
document PGI compiler bug for optimization on AMD processor.
Misc. update: First, report a bug fix(#214) of family driver. Second
document PGI compiler bug for optimization on AMD processor.
Renamed file_handle.c as vfd.c since its tests have evloved from
merely file handles tests to other basic features of VFD's.
Did some minor cosmetic changes in vfd.c.
Updated Makefile.am with the new name.
Makefile.in is regenerated.
Platforms tested:
In heping only since the changes are trivial.
Misc. update:
Interim checkin of code changes moving management of the is_dirty flag
into the cache code.
Description:
Prior to this checkin, management of the is_dirty flag was handled
above the level of the metadata cache. This can no longer be allowed,
as it introduces a race condition in the proposed fix for a cache
coherency bug in PHDF5.
Solution:
Move management fo the is_dirty flag to the cache code proper.
Entries are now marked as dirty via a flag on the unprotect call.
Platforms tested:
h5committested
Misc. update:
Description:
1.7 daily tests failed in HL library when Fortran was not
enabled; also long long instead of long_long declarations
were used and caused failures on Windows
Solution:
Removed Fortran related functions (except H5IM_find_palette) from
H5IM.c file and put it into fortran/src/H5IMcc.c
Modified appropriate Makefile.am files, regenerated Makefile.in files, updated header files, MANIFEST, etc.
Note: H5IM_find_palette should be also in H5IMcc.c, but
for some unknown to me reason, linking fails if the function is
included in H5IMcc.c. I will really appreciate if some C guru
will look into the code and figure out what is wrong :-) Thanks!
Platforms tested: mir with g95, heping with and without Fortran enabled
Misc. update:
Purpose:
Added new meta data cache functions.
Added links to HDF5 High-Level API reference pages to nav bar.
Other minor (though somewhat pervasive) reformatting.
Platforms tested:
Firefox
Purpose:
Added new section for High-level HDF5 APIS.
Added links to HDF5 High-Level API reference pages to nav bar.
Added quick-links bar for
High-level APIs
Main HDF5 Library, including Low-level APIs
Fortran and C++ Interfaces
Added "Main HDF5 Library, including Low-level APIs" heading.
There had previously been no comparable heading.
Platforms tested:
Firefox
Description: See details from Bug #213. Family member file size wasn't saved
anywhere in file. When family file is opened, the first member size determine
the member size.
Solution: Hopefully, this is the last step of checkin for this stage. This step
mainly enables h5repart tool to be able to convert file driver from family to
sec2. Because the library saves family information in file, in trying to convert
to sec2 driver, the library simply change the address of driver information to
undefined so that the driver information block can be ignored. This step also
updates the reference manual of H5Pset_fapl_family() and h5repart.
In the fifth step of checkin, backward compatibility with v1.6
is tested. A family file created was created with the v1.6 library and opened
with this version of the library.
In the fourth step of checkin, a test suit is added for h5repart,
including a program to generate the test files, a script file to run h5repart,
and a program to verify repartitioned files can be opened by the library.
There's a change from the first step of checkin. Family name template is no
longer saved in the superblock because different pathname can make the name
different.
In the third step of checkin, h5repart has been modified. If h5repart is used
to change the size of family member file, the new size(actual member size) is saved
in the superblock.
In the second step of checkin, multi driver is checked against the driver
name saved in superblock. Wrong driver will result in a failure with an error message
indicating
multi driver should be used. This change includes split driver because it's a special
case for multi
driver.
In the first step of checkin. Family member size and name template(unused at this stage) are saved
in file superblock. When file is reopened,the size passed in thrin superblock. A different size
will trigger a failure with an error message indicating the right size. Wrong driver to open family
file will cause a failure, too.
Platforms tested: h5committest and fuss.
Misc. update: doc/html/RM_H5P.html and doc/html/Tools.html
Description:
When compiler flag was used to set the size of Fortran integer
to 8 bytes, library would fail.
Solution:
Cleaned up the code; added detection of Fortran INTEGER type size
and appropriately defined int_f type for C-stubs routines.
Platforms tested:
Solaris 2.8 32 and 64-bit, AIX 5.1 64-bit parallel
PGI Fortran with -i8 flag on heping
Absoft Fortran with -i8 flag on heping
g95 on mir (Fortran integer is 8 bytes by default that cannot be
changed - compiler bug ;-)
AIX Fortran with -qintsize=8 32 and 64-bit modes on copper
Misc. update: