New feature.
Description:
Added a test to verify the correctness of information provided by
configure in H5config.h. Some information, such as SIZEOF some
types can be hardcoded by config/<machine>. This test verified
the information is indeed correct.
Currenly, only size of C language types are verified.
Platforms tested:
Eirene, regular, arabica.
Code cleanup for better compatibility with C++ compilers
Description:
C++ compilers are choking on our C code, for various reasons:
we used our UNUSED macro incorrectly when referring to pointer types
we used various C++ keywords as variables, etc.
we incremented enum's with the ++ operator.
Solution:
Changed variables, etc.to avoid C++ keywords (new, class, typename, typeid,
template)
Fixed usage of UNUSED macro from this:
char UNUSED *c
to this:
char * UNUSED c
Switched the enums from x++ to x=x+1
Platforms tested:
FreeBSD 4.4 (hawkwind)
Purpose:
Refix
Description:
Changed
if test -d $1; then
:
else
to
if test ! -d $1; then
since "test ! -d" should work on all platforms and is a much cleaner
solution than the original.
Platforms tested:
Linux
Purpose:
Feature add
Description:
Changed the "make install" thingy to "make install-all" in the
quick-setup guide. Also, changed the version number of HDF5 in the
examples from 1.4.0 and 1.2.0 to 1.5.x
Purpose:
Feature Add
Description:
Added "install-example" and "install-all" to the Makefile system.
The behaviour of the "make install*" options:
make install - Installs binaries, libraries, include
files, and example programs.
make install-examples - Installs only the example programs.
The directories are:
${prefix}/doc/hdf5/examples/{c,c++,fortran}
make install-all - Install the binaries, libraries, include
files, example programs, and
documentation. The whole kit-n'-caboodle.
make uninstall-examples - Get rid of those example files (but not
the ${prefix}/doc/hdf5/examples/...
directories)
There's a new bin/ program which helps create directories which are
deeply nested called "mkdirs". It's a simple shell script.
Platforms tested:
Linux
Purpose:
fix a bug
Description:
In precondition 3, winzip will unzip hdf5xxx.zip into the directory
hdf5xxx and users should rename hdf5xxx into hdf5 to correctly build
HDF5 library.
Solution:
correct the sentence in precondition 3.
Platforms tested:
windows 2000
Purpose:
Bug Fix
Description:
The error codes checked for were hardcoded into the program.
Solution:
Used the "enum" names instead.
Platforms tested:
Linux
Purpose:
1. rearrange project settings to be consistent with UNIX platforms
2. fix bugs on H5Tinit.c and h5pubconf.h windows version.
Description:
1. overhead, iopipe and chunk testings are moved to perform directory on UNIX platforms
rearrange windows project settings to reflect the changes
2. H5_HAVE_SYS_TIMEB_H is defined in h5pubconf.h, it is only used in the iopipe test.
In iopipe.c, H5_HAVE_SYS_TIMEB is used to get the current time before opening HDF5 file.
This constant is never defined at h5pubconf.h. So iopipe test failed on windows.
3. intn is still used in windows version H5Tinit.c.
4. redefine H5_inline at h5pubconf.h. That will generate warnings like:
..\..\src\H5private.h(150) : warning C4005: 'H5_inline' : macro redefinition ..\..\src\h5pubconf.h(8) : see previous definition of 'H5_inline'
Solution:
1. Rearrange chunk.c,iopipe.c and overhead.c files in project setting.
2. In order not to affect other platform(linux also defines H5_HAVE_SYS_TIMEB_H).
in windows version h5pubconf.h change H5_HAVE_SYS_TIMEB_H into H5_HAVE_SYS_TIMEB.
Now H5_HAVE_SYS_TIMEB is only used by windows platform, iopipe test runs okay.
3. change intn into int.
4. undefine H5_inline on windows version of h5pubconf.h
Platforms tested:
windows 2000(NT5.0) and windows 98.
Purpose:
Bug Fix
Description:
Some so-called "operating systems" (*cough*Windows*cough*) can't
handle large string sizes.
Solution:
Replace the Usage string with individual strings which all call
fprintf() themselves.
Platforms tested:
Linux
Feature
Description:
Added an example program showing how to use different virtual
file drivers. First example is to show the Split File driver.
Platforms tested:
eirene.
Purpose:
New Feature
Description:
Added final output for the configure script which shows a summary of
options people chose while configuring.
Platforms tested:
Linux
Feature
Description:
The H5Pset_fapl_split() used to assume both meta and raw files
have the same prefix name. This prohibited the option to specify
the two files reside on different file systems. E.g., having
meta-file as /user/home/data1.meta and raw-file as /pfs/data1.raw.
Solution:
Added feature that if the raw or meta extension string contains
a "%s", it will be substituted by the filename given for H5Fopen
or H5Fcreate. This is same as the multi-file syntax. If no %s
is found, one is inserted at the beginning. This is the previous
behavior.
Platforms tested:
Modi4 (parallel, serial) and eirene (parallel).
Bug fix
Description:
Added the condition that Parallel programs are dependent on
the hdf5 library too.
Platforms tested:
eirene (parallel), modi4(serial and parallel).
Adding Feature
Description:
Added new H5Pcopy_prop function to copy a property (value) from one property
list or class to another.
Platforms tested:
FreeBSD 4.4 (hawkwind)
New feature.
Description:
Test programs were assumed to be serial programs only.
There was no provision to test parallel programs automatically.
Solution:
Added $(TEST_PARA_PROGS) to hold parallel test programs and
added appropriate action entry to test them if defined.
Platforms tested:
Eirene (parallel).
Bug fix.
Description:
The default file name used is /foo/test.out that usually
is not legal. Changed it to /tmp/test.out.
Platforms tested:
eirene (parallel).
Bug fix.
Description:
Did not update the expected strings for result of grand total test
time. Causing a false report of test failed to complete.
Solution:
Update the strings.
Platforms tested:
Eirene and modi4.
Bug fix
Description:
The previous coding using sed was not portable for all Unix
systems. Much easier to use 'cut' to parse the strings.
Platforms tested:
eirene
Thread-safety Bug Fixes
Description:
FreeBSD must use a different layout or mechanism for allocating objects on
the stack when compiling for thread-safe operation. Unused bits in 'long
double' variable are never used ('long double's on FreeBSD are stored in
12 bytes, but only use 10 bytes for computations), but set to different
values, causing the endianness permutation testing to generate incorrect
results and eventually fail an assertion.
Solution:
Clear the temporary variables used for determining the endianness permutation
with memset (affecting all 12 bytes) instead of just assigning a 0.0 to them
(affecting only 10 bytes)
Platforms tested:
FreeBSD 4.4 (hawkwind)
Portability Bug Fixes
Description:
FreeBSD wants the -pthread flag on both the compile and link lines. Also,
the cipher library is required for certain threading features and needs to
be linked in.
Solution:
Add the -pthread to the compile line and the cipher library to the list of
libraries.
Platforms tested:
FreeBSD 4.4 (hawkwind)
Purpose:
Bug Fix
Description:
The table of error messages was updated in H5E.c. The change wasn't
reflected in this test because, sadly, we use hardcoded numerical
values for the "error" we want to check for and not the symbols.
Solution:
Bumped up the error number from 32 to 34 to coincide with the error
we expect.
Platforms tested:
Linux
Bug fix
Description:
when a snaptest did not complete, it reported it as a failure
of the launching host, rather than the testing host.
Changed it to report the testing host.
Purpose:
Bug Fix
Description:
On some SGI machines (or, rather, it was showing up there), the
/usr/ncsa/lib directory was being placed before the other directories
in the linker line. This was causing the linker to link in
alternative HDF5 libraries than the test library.
Solution:
Modified my previous hack so that it puts the $rpath macro at the
end, since those are the ones we're passing into the libtool function
(in the DYNAMIC_DIRS macro).
Platforms tested:
Paz
Purpose:
Feature Addition
Description:
Added support for gcc 3.0.x. GCC 3.0.x supports the C99
specification. The "-std=c99" gets rid of those annoying "warning
long long not supported by ANSI standard" messages.
Platforms tested:
Linux and gcc 3.0.1
Purpose:
Bug Fix
Description:
Was getting warnings about converting pointers to integers
without a cast.
Solution:
Changed some of the RETURN ERRORs from returning NULL to
returning FAIL instead.
Platforms tested:
Linux
Feature
Description:
Changed some output format.
Improved the CHECK_RSH to better report the result when failed.
Platforms tested:
eirene with nosuch and shalom. (made sure failures do occur)
Purpose:
Bug Fix
Description:
Object IDs command-line options weren't being picked up.
Solution:
The wrong flag was being checked for. Changed the flag from "v" to
"i", which is what the documentation says.
Platforms tested:
Linux
Code cleanup
Description:
This was "thrown" together in a quick way to test MPIO functionality.
Cleaned out some embrassingly useless declaration to reduce compiler
warnings.
Platforms tested:
modi4-pp and eirene-pp.
Bug fix
Description:
SAF test code exposed an error in the HDF5_MPI_OPT_TYPES
code. The SAF code was doing collective write to chunked
storage dataset. Some processes wanted to flush some chunk
while some other processes were doing something else but the
HDF5_MPI_OPT_TYPES code thought the chunk flushing were collective
calls since it only looked at the condition when H5Dwrite
was called. So, it hanged when doing MPI_File_setview.
For now, turned off the HDF5_MPI_OPT_TYPES code so that the
SAF code would work. More long term fix later.
Platforms tested:
modi4(pp)
bug fix
Description:
H5FD_mpio_flush() would try to file seek negative if the
file->eoa is 0 (e.g., doing mpio on the raw-file of the
split file driver). Put in a code to catch this case
by returning succeed immediately.
Platforms tested:
modi4(pp)
Bug fix
Description:
When the Fortran interface was used on the Linux systems, there were segmentation
errors. This was caused because two arrays were being accessed outside of their
bounds and because the trace type parameters were specified inccorectly in
the ProcTrace.inc file. There were also problems on some systems caused because
the long names of HDF entries resulted in trace IDs which were too long.
Solution:
The lines where arrays were being accessed outside of their bounds were changed.
The code in the Makefile.in and the PabloSedscr sed script file were changed so
that the tracetype parameters were generated correctly. The PabloSedscr file was
also modified to eliminate trace IDs for individual entries.
Platforms tested:
LINUX, IRIX64, IBM SP2