Cleanup
Description:
If there isn't anything to "remove" during the cleanup faze. This
stops the "make clean"s from printing out:
rm -f
all of the time.
Solution:
Check if hte macros have anything in them before calling the rm.
Platforms tested:
Linux
Portability changes
Description:
Very quick port to Compaq (nee DEC) Alpha OSF5.
Solution:
Added a new "dec-osf5.x" configuration file and changed configure.in
to look for it.
The local test machine is now passing all the tests, except I can't get
the "-L<path>" stuff to work, so tools which depend on the HDF4 library
around tested.
Platforms tested:
Compaq Alpha 5.1 (compaq.ncsa.uiuc.edu)
Bug Fix
Description:
If we need to specify a -R flag for dynamic libraries (like, in the
case when we specify --with-hdf4), then this flag needs to be added
to the linking line so that it will show up in the generated library
and other programs linking to that library will be able to find the
relevant libraries.
Solution:
Added the DYNAMIC_DIRS macro to the link line.
Platforms tested:
Arabica
Bug Fix
Description:
If the user specifies where to look for a library (like the zlib) on
the commandline, then we add that directory to the LDFLAGS macro.
Solution:
Copied the code which checks for this from the C configure.in. Also
added code which checks for the --with-zlib flag since that wasn't in
there.
Platforms tested:
Linux
Description:
dsets.cpp:
- Added routine's headers to be consistent with the C tests
- Added the following tests (they are not in the C version
test because they are C++ specific):
+ Test copying a user-defined type using DataType::copy
+ Test copying a user-defined type using DataType::operator=
+ Test copying a user-defined int type using DataType::operator=
+ Test copying an integer predefined type using a constructor
+ Test copying an integer predefined type using DataType::operator=
th5s.cpp:
- Added routine's headers to be consistent with the C tests
- Cleanup old couts and statements used during debugging
Platforms tested:
arabica (sparc-sun-solaris 2.7)
Description and Solution:
- Predefined type objects become outdated when the application calls
H5close and then H5open to use the library again.
Solution:
+ Reimplemented PredType using enum type to obtain up-to-date
values for predefined types, i.e. H5T_xxx_yyy's, when they
are used.
+ Added to PredType its own version of getId() to return the
appropriate predefined type id according to the enum value.
+ Made IdComponent::getId() a virtual function
- Since Albert already fixed the "multiply defined RcsId" problem,
removed the now become unnessary "#undef RCSID" from H5Include.h
- Added a check for func_name != NULL in one of the Exception
constructors because seg. fault. might occur in some situations.
- It is more convenient to make a copy of a datatype, dataspace,
or property list by using assignment operator
Solution:
+ Added assignment operator to DataType, DataSpace, and
PropList so that they will invoke H5Tcopy, H5Scopy,
and H5Pcopy, respectively, instead of just simply
copying the data members as for other classes. So,
now a type, space, or property list can be copied by
either :
mytype = original_type, or
mytype.copy(original_type)
Note that copy constructors are still just copying the
data members.
+ Added an assignment operator to DataType that takes a
predefined type.
+ Made IdComponent::operator= a virtual function
Platforms tested:
arabica (sparc-sun-solaris 2.7)
Bug Fix
Description:
Some of the modules weren't being compiled cause they weren't added
to the TEST_OBJ macro.
Solution:
Added them to the TEST_OBJ macro a la the C tests.
Platforms tested:
Linux
Purpose:
Adding data file for testing
Description:
The dataspace test, th5s.cpp, needs this data file.
Solution:
Added the file, using the copy of hdf5/test/th5s.h5
Platforms:
arabica (sparc-sun-solaris 2.7)
Purpose:
Improve C++ API test output appearance
Description:
The C++ API tests are not easy to be spotted because their output
look similar to part of the C tests.
Solution:
Added "C++ API:" in front of the C++ test titles.
Platforms tested:
arabica (sparc-sun-solaris 2.7)
Purpose:
Format and typos mostly
Description:
Changed the "Copyright" header of some files so they will be consistent.
Platforms tested:
arabica (sparc-sun-solaris 2.7)
Purpose: Usability enhancement
Description:
- Added more information about the failure to all the throw's,
i.e, member function name and more detail about the failure, where
appropriate. Also, added exception throws for private functions,
such as p_close to provide more specific details.
- Added two api functions: Exception::getFuncName() and
Exception::getCFuncName() to provide the name of the member
function where failure occurs.
- Fixed some typos, one of which caused segn. fault in some
situations (resetIdComponent was accidentally called twice
in a couple of places :)
Platforms:
arabica (sparc-sun-solaris 2.7)
Purpose:
Test code improvement
Description:
- Added H5_HAVE_ZLIB_H and H5_HAVE_LIBZ to dsets.cpp
- Added the use of new API Exception::getCFuncName to obtain
the name of the function where failure occurs, to various places
in the test code.
Platforms tested:
arabica (sparc-sun-solaris 2.7)
Bug Fix
Description:
Fixed the compile lines for the C++ tests.
Solution:
Added the actual objects to be compiled into the testhdf5 program and
removed the tfile from the TEST_PROGS line since it would try to
create a program from the tfile module, but it didn't have a "main"
function.
Platforms tested:
Linux
Update
Description:
We now have a "real" testing thingy for the C++ code. We don't need
to run things in the examples directory.
Solution:
Commented out the "TEST_SCRIPT" line.
Platforms tested:
Linux
Purpose:
Bug fix
Description:
Compiled error about "RcsId initialized twice"
Solution:
This problem has been taken care of in the C++ API already. However,
because dsets.cpp includes the C++ header file H5Cpp.h after the
C test header files, h5test.h and testhdf5.h, the fix was missed.
Moved H5Cpp.h to before those C header files.
Platforms tested:
arabica (sparc-sun-solaris 2.7)
Purpose:
Bug fix
Description:
The Exception destructor accidently called H5Eprint, which caused
error messages to be printed where they are not supposed to because
the failures are expected.
Solution:
Removed that lousy call!
Platforms tested:
arabica (sparc-sun-solaris 2.7)
Adding Test
Description:
- Add the tests to the Makefile so that they'll be executed.
- Fixed a few bugs in dsets.cpp
* Some buffers should have been char *'s instead of void *'s.
* An iterator for a loop wasn't declared properly.
- Formatting changes
Solution:
- Changed the void *'s to char *'s.
- Declared the loop iterator.
NOTE: Doesn't work just yet. There's a conflict with a C++ keyword
(delete) in the H5Pprivate.h header file. Quincey's looking into
this.
Platforms tested:
Linux
Feasibility improvement
Description:
- Some member functions in class Exception can be called without
an Exception instance exits, but because they are not static, they
cannot.
- Many exception throwings don't provide any information to callers.
Solution:
- Add 'static' to several member functions in class Exception.
- Added <class name::function name> to some exceptions thrown
in H5File.cpp and H5FcreatProp.cpp. I'm trying this for users'
comments. More information may be added later and to all
exceptions.
- Changed the comment line for emacs editor to:
// C++ informative line for the emacs editor: -*- C++ -*-
because... I'd rather not say that the code "may look like C" :-)
Platforms tested:
Linux (gcc version egcs-2.91.66)
Bug Fix
Description:
Wasn't building the test programs if user simply did a build with
``make check'' instead of ``make all && make check''.
Solution:
Put the test programs in the TEST_PROGS macro so that they'd be
built.
Platforms tested:
Linux
Bug Fix
Description:
The RUNSERIAL and RUNPARALLEL macros weren't needed in the C++ stuff
and were messing up some of the testing.
Solution:
Removed them.
Platforms tested:
Linux
Bug Fix
Description:
Added comments to the top of C++ files to indicate that it's a C++
file and not a C source code file. Also added a macro which makes
emacs automagically enter c++-mode. (Recommended by Frank Schimmel
fschimme@monsoon.CAPS.ou.edu)
Adding tests to the C++ API
Description:
The C++ API has no formal testing yet.
Solution:
Added tests for file and dataset interfaces. I'm still working on
other tests.
Platforms tested:
Linux (gcc version egcs-2.91.66)
I temporarily modified the Makefile on my local Linux machine and these
tests work. I need Bill to help adding them permanently before I can
test on an NCSA machine. I checked the files in now so Bill can do that.
Purpose:
Small bug fix
Description:
A stub function has returned type hsize_t but returns -1.
Solution:
Changed returned value from -1 to 0
Platforms tested:
Solaris (arabica)
Fixup
Description:
We were specifying a config file for the C++ stuff and it didn't need
one. This would cause problems with compiling the C++ stuff since it
wouldn't get the correct H5config.h file.
Solution:
Removed support for it.
Platforms tested:
Eirene
Purpose: bug fix
Description:
I found a couple of places where virtual destructors were missing
and could cause small memory leaks. Also, some destructors were
not virtual when they should be.
Solution:
- added virtual destructors, which also free dynamically allocated
memory
- added virtual to several destructors
- also, fixed several typos
Platforms tested:
Solaris 2.7 (arabica)
Fix and improve
Description:
- Put functions that are common to H5File and Group into a
prototype class, CommonFG. I didn't do that before because
of the fear of the consequences of multiple inheritance, since
H5File and Group already inherit from different super classes.
I recently read a C++ book and learned to use MI more safely.
This change reduced some more of code redundancy.
- Added missing const to some function parameters
Platforms tested:
Solaris/CC 5.0 (arabica)
Fix and improve
Description:
- Put functions that are common to H5File and Group into a
prototype class, CommonFG. I didn't do that before because
of the fear of the consequences of multiple inheritance, since
H5File and Group already inherit from different super classes.
I recently read a C++ book and learned to use MI more safely.
This change reduced some more of code redundancy.
- Added missing const to some function parameters
- Added missing return statements for some functions.
Platforms tested:
Solaris/CC 5.0 (arabica)
Doh!
Description:
When adding the examples directory to the testing, forgot to
remove it from the other scripts in the makefile since it would
then be run twice.
Solution:
Removed it (saved the old code)
Platforms tested:
Hey! Trust me :)
Description:
Dec CC compiler doesn't support some new c++ features.
Some typos caused compilation erros on Dec Alpha.
Solution:
- Added macro BOOL_NOTDEFINED to define bool type on Dec
Alpha (gondolin) since its compiler doesn't support bool.
- Added macro NO_STATIC_CAST to prevent the use of the new
c++ feature static_cast since Dec CC compiler doesn't support.
- Added const to parameters of some functions to match the
functions' declaration and definition. Typos errors and
Dec CC complained.
Platform:
Solaris (arabica). Also tried to build on Dec Alpha but still
not linked due to some missing compiler flags; its compilation
went fine though.
Fix
Description:
When not building in the same directory, we needed to tell the
checker wherre to look for files.
Solution:
Put $(srcdir) before things which needed it.
Platforms tested:
Linux
Add
Description:
Adding a small amount of testing to the C++ library until "real"
testing can be created. (We use the examples).
Platforms tested:
Linux
Fix
Description:
Needed to change the extention to the file configure expects to
be in the source directory when Binh-Minh changed the extensions
for all the files.
Solution:
Did just that.
Fix
Description:
Windows couldn't handle the .C extension. The filenames had to be
changed to *.cpp instead.
Solution:
Changed in the Makefiles to accomodate said change.
Platforms tested:
Eyeballed.