Add API versioning to H5Tcommit()
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
AIX/32 5.3 (copper) w/FORTRAN, w/parallel, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
Add H5Rget_obj_type() to the API versioning and switch internal
routines to use H5Rget_obj_type2()
Misc. other code cleanups, etc.
Tested on:
FreeBSD/32 6.2 (duty)
FreeBSD/64 6.2 (liberty)
Linux/32 2.6 (kagiso)
Linux/64 2.6 (smirom)
AIX/32 5.3 (copper)
Solaris/32 2.10 (linew)
Mac OS X/32 10.4.10 (amazon)
Move H5Gget_num_objs() and several minor macros, etc. to deprecated
symbols section, replacing it with H5Gget_info().
Tested on:
FreeBSD/32 6.2 (duty)
FreeBSD/64 6.2 (liberty)
Linux/32 2.6 (kagiso)
Linux/64 2.6 (smirom)
AIX/32 5.3 (copper)
Solaris/32 5.10 (linew)
Mac OS X/32 10.4.10 (amazon)
Move H5Giterate() and H5G_iterate_t to deprecated symbols section,
replacing them with H5Literate and H5L_iterate_t respectively.
Tested on:
FreeBSD/32 6.2 (duty)
FreeBSD/64 6.2 (liberty)
Linux/32 2.6 (kagiso)
Linux/64 2.6 (smirom)
AIX/32 5.3 (copper)
Solaris/32 5.10 (linew)
Mac OS X/32 10.4.10 (amazon)
Move H5Gget_linkval to deprecated symbol section and replace with
H5Lget_val for internal calls.
Tested on:
FreeBSD/32 6.2 (duty)
FreeBSD/64 6.2 (liberty)
Linux/32 2.6 (kagiso)
Linux/64 2.6 (smirom)
Solaris/32 5.10 (linew)
Mac OS X/32 10.4.10 (amazon)
Remove all plain calls to H5Gopen() from source, replacing them with
either H5Gopen2().
Add test for H5Gopen1().
Reformatted several pieces of code, to clean them up.
Tested on:
FreeBSD/32 6.2 (duty)
FreeBSD/64 6.2 (liberty)
Linux/32 2.6 (kagiso)
Linux/64 2.6 (smirom)
Solaris/32 5.10 (linew)
Mac OS X/32 10.4.10 (amazon)
Pursue calls to H5Gcreate() relentlessly and ruthlessly exterminate
them, leaving only a few tame specimens in text files and comments. ;-)
Tested on:
Mac OS X/32 10.4.10 (amazon)
FreeBSD/32 6.2 (duty)
FreeBSD/64 6.2 (liberty)
Linux/32 2.6 (kagiso)
Linux/64 2.6 (smirom)
Solaris/32 5.10 (linew)
Binh-Minh came up with the code fix and Mike. M did changes to configuration
to make it to work.
Tested: kagiso with pgcc, pgCC and gcc, g++ compilers
linew with the SUN cc and CC compilers 32 and 64-bit
smirom with gcc, g++, and PGI version 7.0
All sequential daily tests that were skipped before for 1.8 branch are enabled now.
Add --enable-deprecated-symbols configure option, to allow users to
remove deprecated public API symbols at configure time.
Add bin/make_vers script to bin/reconfigure actions.
Run bin/reconfigure to regenerate autotool components.
Tested on:
Mac OS X/32 10.4.10 (amazon)
FreeBSD/32 6.2 (duty)
Linux/32 2.6 (kagiso)
Bug fix.
Description:
It used to clean out all *.h5 when done but this could cause a racing
condition error if parallel make (e.g., gmake -j ...) is used because
the "rm ... *.h5 ..." would remove *.h5 generaged and are still used
by other test programs (e.g. xx_write/xx_read).
Solution:
Removed "*.h5" from the cleanup list since the test program has already
taken care of removing temporary *.h5 generated.
Tested platform:
smirom. Not triple platforms tested since this is just a simple shell
script change.
Description:
Compilers don't destroy temporary objects at the same time, some do
immediately after use, some delay until the end of the scope. The
delay makes it difficult to test the reference count functionality.
Solution:
Enclosed the operations on objects and check reference count after
getting out of the enclosed block. This only works for the test!
I'm assuming that checking reference count is just for the library
to test that functionality; the user will not need to do that. :-/
Platforms tested:
SunOS 5.10 (linew)
Linux 2.6 (kagiso)
2) Removing configuration of c++/src/H5cxx_pubconf.h file.
Reasoning: the additional pubconf file caused compilation complications, this is cleaner.
Tested: kagiso, smirom
Description: added new configuration to generate a pubconf file
in the c++/src directory, H5cxx_pubconf.h. When C++
compiler recognizes 'offsetof', the macro
H5_CXX_HAVE_OFFSETOF is defined in the new
pubconf file.
tested: kagiso, smirom
Description:
Bring the expected output for the C++ examples up-to-date. This file is used in the Windows test script. It is also used by ./c++/examples/testexamples.sh, although this script is never run by hand. 'make check' runs the script generated by testh5c++.sh.in, which doesn't use expected.out.
Tested:
VS6 on WinXP
kagiso
Description: a new configure flag has been created that will now set a macro
in the test/Makefile. The flag is with-default-vfd=. When set to
a virtual file driver (e.g. "--with-default-vfd=sec2"), the macro
DEFAULT_VFD will hold this value.
Tested: kagiso, smirom, linew
file size from MPI_File_get_size. Bypass this problem by replacing it with
stat. Add an option --disable-mpi-size in configure to indicate this function
doesn't work properly. Add a test in testpar/t_mpi.c, too. If it returns wrong
file size, print out a warning.
Tested on kagiso (parallel) because already tested the same change to v1.6 on
several platforms (kagiso, cobalt, copper, and sol).
The test scripts did not take in account that the binary has been installed
somewhere other than the original prefix. Added a provision to allow
explicit definition of $prefix to work.
Tested:
kagiso.
Rename new error handling API routines from H5E<foo>_stack() to
H5E<foo>2().
Tested on:
Mac OS X/32 10.4.9 (amazon)
FreeBSD/32 6.2 (duty)
FreeBSD/64 6.2 (liberty)
Most fortran compilers do not support the Preprocessing -E option. Removed
the tests for preprocessing only.
examples/testh5cc.sh.in:
c++/examples/testh5c++.sh.in:
Updated comments and some cosmetic rearrangement.
No substance changes.
Tested platform:
Copper, kagiso.
./c++/test/tcompound.cpp
./c++/test/ttypes.cpp
./c++/test/tfilter.cpp
./c++/test/tvlstr.cpp
Also, fixed a declaration in ttypes.cpp that was causing a compile error in MSVS6.0.
Tested:
Visual Studio 6.0 on WinXP
kagiso
too minor for h5committest
Description:
Added extern "C" to cleanup functions as well, forgot last time.
Cleaned up/Added comments to some of the newly added tests.
Platforms tested
AIX 5.1 (copper)
Linux 2.6 (kagiso)
SunOS 5.8 64-bit (sol)
Description:
VMS revealed a problem in calling C++ test functions from C AddTest.
Solution:
Per Quincey's suggestion, added
#ifdef __cplusplus
extern "C"
#endif
to the called C++ functions.
Platforms tested
AIX 5.1 (copper)
Linux 2.6 (kagiso)
On pending: waiting for Elena to test on VMS when she comes back.
The copyright notices have errors in the closing comment lines that
C++ compilers complain about. Fixed the comment line.
Tested platform:
In smirom using disable-production, enable-debug, disable-shared option.
(other combinations would ended in build or test failures. Pretty sure
they were caused by my changes.)
Description: Multiple copies of Copyright appeared in Makefile.in. This was
due to automake copying the copyright right in the included files such as
config/commence.am.
Solution: Automake treats double hashes as comments and does not copy them
to Makefile.in. Changed all the copyright notices in config/*.am to use
double hashes for the Copyright right notice.
Tested: kagiso via bin/reconfigure.
Tested platform:
Kagiso only since it is only a comment block change. If it works in one
machine, it should work in all, I hope. Still need to check the parallel
build on copper.
Description:
- Added a brief test for DSetCreatPropList::setSzip. More through tests
will be added later.
- Moved check_values from dsets.cpp into h5cpputil.cpp for sharing
with other tests.
Platforms tested
AIX 5.1 (copper)
SunOS 5.8 64-bit (sol)
Linux 2.6 (kagiso)
The examples had been depending on the build libraries in src, but should have
been depending only on the installed h5cc. Fixed this.
Tested on kagiso (dependency change only, and was unable to replicate the
problem on any system). Real test will be Daily Tests tonight.
Description:
Added
* tests for some generic datatype operations
* tests for compound datatype operations
These tests are checked in now to make sure they're safe! They can
use some more comments and minor cleanups. Will do very soon.
Fixed few minor typos.
Platforms tested
AIX 5.1 (copper)
SunOS 5.8 64-bit (sol)
HPUX 11.00 (kelgia)
Description:
- Added overloaded function DataType::copy to take a DataSet
- Added overloaded DataType::commit
- Fixed bugzilla 797
- Fixed a warning in DataSpace::operator=
- Set PropList parameter to default in DataType::convert
Platforms tested
AIX 5.1 (copper)
SunOS 5.8 64-bit (sol)
HPUX 11.00 (kelgia)
It seems that while Cygwin supports the time command, it has trouble with
the syntax
srcdir="../../hdf5/test" time ./testhdf5
and complains.
The solution is to test the above case in configure and not to use the time
command if it fails; Cygwin is fine with
srcdir="../../hdf5/test" ./testhdf5
Tested on Cygwin and kagiso. This feature shouldn't be a major compatibility
problem since every platform but Cygwin is already fine with the current
syntax.
Description:
Fixed several mismatched types causing daily test to fail on tg-login.
Platforms tested:
Linux 2.6 (kagiso) - just to make sure no ill effects.
I cannot login to tg-login3 so am going to watch for it on daily test
tonight.
Description:
In Attribute::read, H5Aread malloc's memory for the read data buffer,
so Attribute::read shouldn't allocate the buffer, but needs to
deallocate with HDfree.
Fixed a typo in H5StrType.cpp, should pass PredType::C_S1 to "copy"
instead of H5T_C_S1.
Platforms tested:
AIX 5.1 (copper)
Linux 2.6 (kagiso)
SunOS 5.8 64-bit (sol)
The version of libtool used by HDF5 isn't directly affected by the reconfigure
script; instead, libtoolize --force must be used by hand. Libtool was the
source of the problem, so rolling its version back to 1.5.14 should solve the
issue (at least temporarily).
Reconfigure should still work on both heping and kagiso.
Tested on heping, kagiso, and tg-login3.
Should disable linking against shared libraries in Fortran for compilers that
don't support shared libraries.
Should also fix problem when the wrong Fortran file extension was specified.
If these changes don't solve the Daily Test issues, I'll look at backing out
the autotool version change until I have time to fix them.
Tested on heping, kagiso, juniper.
Refactor generic property list initialization code to put property list
specific routines in property list modules, instead of scattered to the four
winds. Also, introduce property list class initialization objects, to make
adding new property list classes in the library easier.
Fix daily test failure by using H5Pget_elink_prefix() API routine instead
of looking at the "raw" generic property list information.
Tested on:
Mac OS X/32 10.4.8 (amazon)
FreeBSD/32 4.11 (sleipnir) w/threadsafe
Linux/32 2.4 (heping) w/C++ & FORTRAN
Linux/64 2.4 (mir) w/build-all & 1.6 compat
Description:
Correct input file that, via doxygen, creates the C++ reference
manual paragraph that pointed to a now-removed release_docs/ file.
Original file was release_docs/INSTALL_Windows_withcpp.txt;
current file is release_docs/INSTALL_Windows.txt.
Closes Bugzilla entry 719.
Tested:
Trivial change; not tested.
Description:
Added (long) to a verify_val call.
Platforms tested:
Linux 2.6 (kagiso) - very minor, and Kent will test it on Windows, because
that was where it was complained about.
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.
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.
Since these examples need to follow filesystem paths, the Makefiles need
to create directories in the examples directory; added this to the
Makefile.am.
Tested on Windows, mir, juniper
"make check-vfd" will now run all tests in the test directory with different
file drivers (at least, all of those tests that use the testing framework's
FAPL). Tests that fail will be skipped.
This is not a perfect fix, but is better than nothing.
Along with this change, check-vfd should be added to the Daily Tests.
Feature
Description:
Revised Link APIs.
Solution:
New link APIs use H5L*
H5*create_expand do not create links to the objects created; this must
be done manually with H5Llink.
Added APIs to link an object given its ID (H5Llink), to copy links (H5Lcopy),
and changed creation APIs (H5Lcreate_hard and H5Lcreate_soft) and query
API (H5Lget_linkinfo instead of H5Gget_objinfo).
All old APIs are still supported in H5Gdeprec.c .
Platforms tested:
sol, mir, copper
Misc. update:
Forgot to update MANIFEST and release docs. Will do after checkin.
Code cleanup
Description:
Trim trailing whitespace in Makefile.am and C/C++ source files to make
diffing changes easier.
Platforms tested:
None necessary, whitespace only change
Configuration feature
Description:
'make install' now tests both static and shared libraries if both are installed.
Solution:
Previously, shared libraries were only tested when static libraries were not installed.
Also cleaned up line in commence.am that was including HL library in all Makefiles.
Platforms tested:
mir (Makefile change only)
Bug fix - bugzilla #552
Description:
On Cray X1, trying to use : as an argument confused the system.
Solution:
Added a test in configure to see if : as an argument is bad.
If so, skipped the test.
Platforms tested:
mir, Cray X1 (change to configure only)
Description:
Fixed typos and re-arranged some functions to be in sync with 1.6.
Platforms tested:
Linux 2.4 (heping)
SunOS 5.9 (shanti)
AIX 5.1 (copper)
Description:
Shanti compiler destroy unnamed objects later than others, which caused
some reference counting test fail. Revised the test so that destructors
are called at the same time, regardless the differences of compiler
implementation.
Revised some constructors, close, operator=, and destructors to make
sure that all the object ids are handled properly.
Platforms tested:
Linux 2.4 (heping)
SunOS 5.9 (shanti)
HPUX 11.00 (kelgia)
AIX 5.1 (copper)
Description:
Shanti compiler destroy unnamed objects later than others, which caused
some reference counting test fail. Revised the test so that destructors
are called at the same time, regardless the differences of compiler
implementation.
Revised some constructors, close, operator=, and destructors to make
sure that all the object ids are handled properly.
Platforms tested:
Linux 2.4 (heping)
SunOS 5.9 (shanti)
HPUX 11.00 (kelgia)
AIX 5.1 (copper)
Bug fix.
Description:
The ${TR}, though avoid the error, is inconvenient. It is needed
because configure.in use the char range in the style of 'a-z'.
The other style of '[a-z]' is more commonly accepted by all tr
but autoconf tends to strip away [], making the syntax rather
clumsy.
Solution:
Learned from autoconf that it avoids the use of character range
by just spell all the letters out. Changed our tr commands to
use those variables defined by autoconf. Also removed the
definition of ${TR} since it will cause inconsistancy when
autoconf also use plain 'tr' in its generated code.
The Makefile.in are changed because the elimination of ${TR} from
configure triggered its removal from all Makefil.in. That is okay
because ${TR} is not used at all in Makefile.
Platforms tested:
h5committested. (sol failed to connected). also tested in shanti
using both /usr/ucb/tr and /bin/tr (the bad one before.)
Misc. update:
Updated both INSTALL and RELEASE files.
Description: Function prototype H5E_walk_t and structure H5E_error_t wasn't backward
compatible.
Solution: Make them compatible with v1.6 and provide new definitions of H5E_walk_stack_t
and H5E_error_stack_t.
Platforms tested: fuss and h5committest.
Purpose: Bug fix for VMS
Description: I am not sure why I didn't see this bug before ;-O.
H5_HAVE_FILE_VERSIONS macro was added (by me) to the wrong place
causing test program to get creation property list from a non-existing
file object. As a result test program failed with access violation
error.
Solution: Fixed.
Platforms tested: VMS server and copper (just in case)
Misc. update:
Description:
dsets.cpp: added a missing PASSED call to line up output better.
tattr.cpp: casted parameters to verify_val properly to fix compilation
errors on Windows, introduced from the previous checkin.
Platforms tested:
Linux 2.4 (heping) - very minor
Windows XP
Several bug fixes
Description:
Added config file for Cray X1 (previous file was misnamed)
Simplified some code in hyperslab.c test that seemed to have been
confusing compiler on Cray X1.
Fixed typo in config/commence.am
Cleaned up hl/src/Makefile.am
Solution:
All four fixes should be straightforward. The failure on Cray was
very difficult to debug, but involved arithmetic errors.
This change seems to fix it.
Platforms tested:
heping, copper, sol, some Cray X1 (more testing when system comes back up)
Description:
The file size test in C++ library failed on Copper because the
value returned by h5_get_file_size was intepreted incorrectly
due to different interger sizes.
Solution:
H5private.h: Added check to use stat64 and off64_t where appropriate.
h5test.c and h5test.h: used h5_stat_size_t in place of off_t.
tattr.cpp: used h5_stat_size_t in place of off_t.
Platforms tested:
Linux 2.4 (heping)
AIX 5.1 (copper)
SunOS 5.8 64-bit (sol) - still on going
Description: "using std::count" statement caused the problems on copper and kelgia
Solution: I believe this statement is not needed at all (will verify with
more daily tests and Binh-Minh). Removed.
Platforms tested: heping, mir with Intel compiler, copper with -q64,
shanti (there is a known failure in tatrr test)
Misc. update:
Anti-feature
Description:
Revert changes to H5G_stat_t struct, to make it compatible with the 1.6.x
branch again. The information that was added to the H5G_stat_t struct will
be reported through other API routines.
Platforms tested:
FreeBSD 4.11 (sleipnir) w/C++
Linux 2.4/64 (mir) w/C++ & Fortran
Solaris 2.9 (shanti)
Description: Brought VMS changes back. My previous note about
using std::count; should be in this log.
C++ on VMS doesn't support "using std::count"
Solution: IFDEF'ed with H5_VMS (until Binh-Minh has a chance to look into it and
propose a different solution)
Platforms tested: VMS server, heping
Misc. update:
Description: Brought VMS changes back (very minor):
In tfile.cpp file some tests for open and creation should fail on UNIX,
but this is not true on VMS since it has versioning of the files.
In dsets.cpp std::count was used, but it is not available on VMS; also
VMS didn't like "bogus" name for the filter function.
Solution: Used H5_HAVE_FILE_VERSIONS and H5_VMS variables to control the tests;
replaced "bogus" function with "filter_bogus" function
Platforms tested: VMS server, heping
Misc. update:
new feature
Description:
1) separated the HL library into "public" and "private" header files, with the same caracteristics as the basic library
2) added the public headers to hdf5.h (with a conditional include macro, defined in configure.in)
3) added the path to HL in all Makefile.am 's , because of the inclusion in hdf5.h
Solution:
Platforms tested:
linux 32, 64
AIX
solaris
with fortran and c++
(one packet table example fails)
Misc. update:
Code cleanup
Description:
Clean up some runtime errors from unsupported C99 types on Solaris 2.9
by wrapping them with ifdef's.
Platforms tested:
FreeBSD 4.11 (sleipnir)
Linux 2.4 32-bit (heping)
Linux 2.4 64-bit (mir)
Solaris 2.9 (shanti)
Misc. update: