The only remaining code consists of a few floating-point tests
that rely on pre-generated and checked-in VMS files. These have
been left alone, even though they will not be possible to
recreate, since testing VMS float behavior is still important.
Tested on: h5committest
Tested w/ h5committest
NOTES: - The manifest may still be messed up.
- Cmake fails since the dual binary work needs to be merged with
this repo's CMake externals.
Description:
Added footer to include copyright and helpdesk info.
Platform tested:
Re-run Doxygen on cpp_doc_config and verified the html files on a
Windows 7 machine.
The H5F_ACC_DEBUG symbol remains but has been defined to zero and
has been listed as deprecated.
Fixes: HDFFV-1074
Tested on:
h5committest
32-bit Linux w/ C++ and Fortran and multi VFD
32-bit Linux w/ C++ and Fortran and multi VFD (no deprec symbols)
The error is that $EXAMPLETOPDIR is used without setting a value first.
Solution is to set them with the proper values.
Tested: jam only to confirm the error no longer exists.
configure.ac
hl/src/H5LTparse.c
hl/src/H5LTparse.h
Address HDFFV-9010: configure issue with gcc 4.9.2 "-l ".
Change default to disable_shared on CYGWIN.
release_docs/INSTALL_Cygwin.txt
release_docs/RELEASE.txt
Update for changed default and no CYGWIN szip binary.
c++/src/cpp_doc_config
bin/h5vers
AddressHDFFV-9010: Add cpp_doc_config to h5vers
Tested with h5committest, on CYGWIN.
Description:
- In DataType::DataType(const PredType& pred_type), using DataType::copy
will invoke DataType::close() unnecessarily, which will produce undefined
behavior. Changed to call H5Tcopy directly, code reuse is not useful in
this case.
- Also, fixed CommonFG::childObjVersion to return expected value outside of
an if/else block.
Platforms tested:
Linux/ppc64 (ostrich)
Linux/64 (platypus)
Linux/32 2.6 (jam)
Description:
- Put back the UNUSED parameters in dsets test because the change to remove
the warning last time caused failure in setting filter, in turn, caused
failure in the test with such obscure/unrelated errors!
- Added incRefCount() to other constructors that missed from last time.
Platforms tested:
Linux/64 (platypus)
Linux/32 2.6 (jam)
SunOS 5.11 (emu)
Description:
Per user Jason Newton request, the following constructor is added:
H5File(hid_t existing_id);
Also, fixed H5File::openFile to close current file first before re-using
the object.
Platforms tested:
Linux/64 (platypus)
Linux/32 2.6 (jam gnu and Intel 15.0)
SunOS 5.11 (emu)
Description:
When copy constructor or constructor that takes an existing id is invoked,
the C ref counter stays the same but there is an extra C++ object which
later is destroyed and may cause the HDF5 id to be closed prematurely. The
C++ library needs to increment the ref counter in these situations, so that
the C library will not close the id when it is still being referenced.
However, the incrementing of ref count left some objects opened at the end
of the program, perhaps, due to compiler's optimization on cons/destructors. The constructor, that takes an existing id, needs to increment the counter
but it seems that the matching destructor wasn't invoked. The workaround
is to have a function for each class that has "id" that only sets the id
and not increment the ref count for the library to use in these situations.
These functions are "friend" and not public.
The friend functions are:
void f_Attribute_setId(Attribute *, hid_t)
void f_DataSet_setId(DataSet *, hid_t)
void f_DataSpace_setId(DataSpace *, hid_t)
void f_DataType_setId(DataType *, hid_t)
Platforms tested:
Linux/64 (platypus)
Linux/32 2.6 (jam gnu and Intel 15.0)
SunOS 5.11 (emu)
Description:
Added wrappers for C functions H5P[s/g]et_libver_bounds and wrappers
for getting object header version
// Sets bounds on versions of library format to be used when creating
// or writing objects.
void setLibverBounds(H5F_libver_t libver_low, H5F_libver_t libver_high) const;
// Gets the current settings for the library version format bounds.
void getLibverBounds(H5F_libver_t& libver_low, H5F_libver_t& libver_high) const;
// Returns the object header version of an object in a file or group,
// given the object's name.
unsigned childObjVersion(const char* objname) const;
unsigned childObjVersion(const H5std_string& objname) const;
Platforms tested:
Linux/64 (platypus)
Linux/32 2.6
SunOS 5.11
Description:
- Changed DataType::operator= to simply copy the id of rhs instead of
calling H5Tcopy because, when the operator= is invoked, a different
datatype id is created and it won't have the same characteristics as
rhs', specifically, if the rhs represents a named datatype, "this"
would still be a transient datatype.
- Added a DataType constructor that takes a PredType object, and this
constructor will cause H5Tcopy to generate another datatype id, from a
predefined datatype.
- Fixed various mistakes in tests.
Platforms tested:
Linux/64 (platypus)
Linux/32 2.6 (jam/gnu and jam/icc 15)
SunOS 5.11 (emu development/production)
Description:
The following two constructors of classes: AbstractDs, IdComponent,
H5Location, and H5Object are no longer appropriate after the data member
"id" had been moved from IdComponent to the sub-classes.
The copy constructors are noop and will be generated by the compilers if
needed so they can be removed in 1.8.15 without effecting applications. The
other constructors will be removed from 1.10 release, and then from 1.8 if
their removal does not raise any problems in at least two 1.10 releases.
<Classname>(const hid_t h5_id);
<Classname>(const <Classname>& original);
Deprecation warnings are added to each of these classes.
The other classes are changed to call the default constructor instead of
one of the constructors above.
Platforms tested:
Linux/64 (platypus)
Linux/32 2.6 (jam)
SunOS 5.11 (emu)
Description:
Fixed base classes that were in wrong order on the prototype lines and
some misc. warnings.
Platforms tested:
Linux/64 (platypus)
Linux/32 2.6 (jam)
SunOS 5.11 (emu)
Description:
Parameter had the same name as the class' member's. Replaced parameter
with a different name.
Platforms tested:
Linux/64 (platypus)
Linux/32 2.6 (jam)
SunOS 5.11 (emu)
Description:
Missing initializing one of the base classes in multiple inheritance.
Added CommonFG() to constructors' prototype.
Platforms tested:
Linux/64 (platypus)
Linux/32 2.6 (jam)
SunOS 5.11 (emu)
CXX_SHARED_CONDITIONAL does not appear in AM_CONDITIONAL
This was due to a removed AM_CONDITIONAL macro in configure.ac.
The CXX_SHARED_CONDITIONAL code was removed from the Makefile.am
files. Additionally, the C++ shared library build settings field in
libhdf5.settings file was updated.
Tested on: local linux VM w/ C++
--enable-shared --enable-static
--enable-shared --disable-static
--disable-shared --enable-static
branch.
Removed the configure option that allows selective disabling of individual
internal filters (fletcher32, shuffle, etc.).
This feature mucked up the code with a lot of #ifdefs, saved very little space,
and was not scalable to a general scheme for library size reduction. We've
decided to remove the feature while we investigate a more general scheme for
decreasing the library size.
Part of: HDFFV-9086
Tested on: h5committest
- Remove Infering parallel compilers (C and Fortran) from configure.ac
- Remove restriction to build shared with parallel
- Cleanup parallel sections in configure.ac
- remove large file support checks
- MPE fixes.
tested with h5committest.
Developers will now have to run bin/reconfigure (deprecated, will be removed
soon) or autogen.sh after checking out code.
Part of: HDFFV-9120
Tested on: jam with Fortran and C++
Change AC_TRY_RUN TO AC_TRY_COMPILE
Changed all the instances of AC_TRY_RUN for the Fortran and C++ tests to use
AC_COMPILE_IFELSE and moved all the tests to new files in m4 directory:
aclocal_cxx.m4 (for C++ tests)
aclocal_fc.m4 (for Fortran tests)
tested: jam
Description:
Added notes regarding UTF-8 and extended ASCII, provided in HDFFV-8899,
to C++ API.
Platforms tested:
Linux/32 2.6 (jam) - only in comments