----------------------
./INSTALL
./doc/html/Compression.html
./doc/html/Filters.html
Disassociated GNU from zlib. Did not change the introduction
which incorrectly states that compression in hdf5 is available
only if GNU gzip is available (should read zlib).
Changed a typo in INSTALL to match what is documented in
various other places: that zlib 1.1.2 (not 1.0.2) or better is
required for compression.
Added a reference to the main zlib web page in various places.
./src/H5Fistore.c
Fixed a typo in a comment.
./src/H5Flow.c
Removed carriage returns from the end of lines.
./test/dsets.c
The deflate compression tests are still run but `-SKIP-' is
printed instead of `PASSED' if the zlib library was not
detected at configuration time. The tests check that the
compression layer (H5Z) is correctly bypassed.
----------------------
./test/dtypes.c
./test/enum.c [NEW]
Added support for enumeration data types.
./test/fillval.c
./test/istore.c
Fixed memory leaks during error handling.
----------------------
./INSTALL
Added warning that enabling debugging code can adversely
affect performance even when the debugging isn't turned on at
run-time. Performance testing shows that under certain
circumstances (like data type conversions of compound types)
the H5_timer functions, although only a few lines each,
contribute a fairly large percent to the execution time.
./src/H5T.c
./src/H5Tpkg.h
./src/H5Tpublic.h
Improved the H5Tunregister() function to make unregistering
more flexible. It takes the same arguments as H5Tregister()
but also accepts wild cards. All conversion functions that
match the H5Tunregister() search criteria are removed from the
global type conversion table.
The H5Tregister_hard() and H5Tregister_soft() were combined
into a single function called H5Tregister() which is the
counterpart to H5Tunregister(). A new `persistence' argument
was added to differentiate between the two types of conversion
functions.
The application is allowed to register a hard conversion
function for the no-op conversion path although the library
isn't obligated to call it (it usually does). This is mostly
for completeness, but the application might use it to help
determine if the raw data pipeline was able to use the
optimized path for the case when no type conversion is
necessary. The library doesn't allow this path to be
unregistered although the application can redefine it as often
as it likes.
Fixed the type conversion tables in preparation for MT-safety
and to fix previosly-known design bugs wrt. unregistering
conversion functions or changing the C function associated
with a conversion path. The MT-safety stuff is documented in a
separate white paper.
Increased the conversion function debugging name from 9
characters to 31 characters so the output can be more
descriptive.
Moved conversion path statistics from the H5T_cdata_t member
into the conversion path itself. This makes H5T_cdata_t
contain only application-visible data structures.
./src/H5A.c
./src/H5D.c
./src/H5Ofill.c
./src/H5P.c
./src/H5T.c
Improved the way type conversion functions are called so the
caller doesn't have to check for data type debugging and
increment type conversion timers and statistics.
Changed check for no-op conversion since it is now
application-definable and there may even be more than one
definition at a time in a multi-threaded application (one
thread might be using the no-op conversion path when some
other thread changes its definition -- the first thread still
sees the original defintion until it's done with the
operation).
./doc/html/Datatypes.html
Updated the user guide to reflect the changes to data type
conversion registration functions.
./bin/trace
./src/H5.c
Added tracing support for the new H5T_pers_t data type.
./test/dtypes.c
Added printf to display alignment value if non-aligned data
types are being tested.
./test/h5test.c
Modified the H5Tunregister() calls to use the new
arguments. All 94 of those calls can be replaced by a single
call to the new H5Tunregister() function.
./src/H5.c
Added HAVE_GETTIMEOFDAY around an auto variable and
initialized the elapsed time to zero when gettimeofday() is
not available.
./src/H5F.c
./src/H5Fprivate.h
./src/H5P.c
Added an H5*_init() functions which do the same thing as
H5*_init_interface() but can be called from other packages and
don't do anything if the interface is already initialized.
This fixes a couple memory leaks in applications that
repeatedly close and open the library with H5close().
./src/H5Tconv.c
Optimized some data alignment code in the hardware conversion
functions.
Hardware conversions accumulate statistics about source and
destination data alignment and print that information when the
conversion function is unregistered (usually when the
application exits) if data type debugging is compiled into the
library and enabled at run-time.
The conversion caching was cleaned up for the compound data
type conversion function. It now caches conversion paths in a
manner that will be MT-safe and is much simpler than the old
method. Also cleaned up some array index maps.
./src/H5detect.c
Fixd mispelling of alingemnt.
./src/H5private.h
Changed `TRUE' to `1' in assignment to interface_initialize_g
in FUNC_ENTER macro definition.
./tools/testh5dump.sh
Completely rewritten to make it shorter, better documented,
and conforming to most of the other test outputs.
The comparison of the actual output with the expected output
is insensitive to differences in white space. The test now
passes for the first time on Linux where the output width
wasn't as expected but the output was otherwise correct.
./tools/testfiles/tall-1.ddl
./tools/testfiles/tall-2.ddl
./tools/testfiles/tall-3.ddl
./tools/testfiles/tattr-1.ddl
./tools/testfiles/tattr-2.ddl
./tools/testfiles/tattr-3.ddl
./tools/testfiles/tattr-4.ddl
./tools/testfiles/tcomp-1.ddl
./tools/testfiles/tcomp-2.ddl
./tools/testfiles/tcomp-3.ddl
./tools/testfiles/tcomp-4.ddl
./tools/testfiles/tdset-1.ddl
./tools/testfiles/tdset-2.ddl
./tools/testfiles/tdset-3.ddl
./tools/testfiles/tdset-4.ddl
./tools/testfiles/tgroup-1.ddl
./tools/testfiles/tgroup-2.ddl
./tools/testfiles/tgroup-3.ddl
./tools/testfiles/tlink-1.ddl
./tools/testfiles/tlink-2.ddl
./tools/testfiles/tlink-3.ddl
./tools/testfiles/tlink-4.ddl
./tools/testfiles/tlink-5.ddl
./tools/testfiles/tslink-1.ddl
./tools/testfiles/tslink-2.ddl
Changed `../h5dump' to just `h5dump'.
./config/alpha-dec-osf4.0
Added more warning and optimization switches to the native
compiler.
----------------------
./MANIFEST
Added tcompound2.{dmp,h5} and tdset2.{dmp,h5} used by the
h5toh4 testing.
./configure.in
./configure [REGENERATED]
./src/H5config.h.in [REGENERATED]
Added check for <sys/timeb.h> for Win32.
Determines sizeof(char) just so we have a complete list of
type sizes defined as preprocessor symbols.
./src/H5detect.c
./src/H5T.c
./src/H5Tpkg.h
Detects alignment constraints. In order for this to work the
operating system must not correct unaligned data (for
instance, on the DEC Alpha one might need to say `uac p
sigbus' before running H5detect).
./src/H5private.h
Includes <signal.h> because it's needed by H5detect.c to
detect alignment constraints.
./src/H5Tconv.c
Added extra checks to all hardware conversion functions so
they align data when necessary before the conversion. This
slows down the conversions somewhat but they're still much
faster than the software conversions.
./test/dtypes.c
By setting a constant at the top of the source you can test
conversions where the data is aligned on various byte
boundaries.
By setting a constant at the top of the source you can
simulate architectures that have alignment constraints on
architectures that don't.
Changed typo SIZEOF_LDOUBLE to SIZEOF_LONG_DOUBLE in a few
places.
----------------------
./doc/html/Datatypes.html
./src/H5.c
./src/H5T.c
./src/H5Tconv.c
./src/H5Tpkg.h
./src/H5Tpublic.h
./src/H5detect.c
./test/chunk.c
./test/dtypes.c
./test/h5test.c
./test/mtime.c
./test/tattr.c
./test/th5s.c
./tools/h5dump.c
./tools/h5dumputil.c
./tools/h5import.c
./tools/h5ls.c
./tools/h5toh4.c
./tools/h5tools.c
Renamed the old H5T_NATIVE_CHAR type to H5T_NATIVE_SCHAR to
denote that it is always signed.
Added a new H5T_NATIVE_CHAR type which has the same range,
representation, and behavior as either H5T_NATIVE_SCHAR or
H5T_NATIVE_UCHAR depending on the compiler and its
command-line switches for the application source file which
references H5T_NATIVE_CHAR. If source files are compiled with
different switches then each source file will resolve
H5T_NATIVE_CHAR appropriately so it matches the C type `char'
in that source file.
NOTE: THERE ARE OTHER DOCUMENTATION FILES THAT I DIDN'T CHANGE
BECAUSE I CAN'T MODIFY THE SOURCE.
./test/extend.c
Swapped two lines to prevent diagnostic messages from messing
up the formatted output.
----------------------
./src/H5T.c
Fixed a typo in the registration of the `unsigned char' to
`unsigned long long' type conversion that caused it to not be
registered, falling back to software whenever that conversion
path was taken.
./MANIFEST
./test/Makefile.in
./test/testhdf5.c
./test/testhdf5.h
./test/theap.c [REMOVED]
./test/lheap.c [NEW]
./test/tohdr.c [REMOVED]
./test/ohdr.c [NEW]
./test/tstab.c [REMOVED]
./test/stab.c [NEW]
Removed the `t' from the front of these names and made each
test a stand-alone program following the format of most of the
other tests.
./test/big.c
Uses libh5test.a but always sets the low-level driver to 1GB
file family.
The `#if' near the top to set the data space to 8GB has been
simplified now that `long_long' is always defined and the
error message is improved when `long_long' isn't wide enough.
Cleanup code was added to the error handling.
./test/gheap.c
./test/istore.c
Uses libh5test.a. Added error cleanup code.
./test/dtypes.c
./test/h5test.c
Added 68 new tests that check hardware and software
conversions between `long long' and `unsigned long long' and
the other integer types. The tests only run on machines where
sizeof(long_long)!=sizeof(long). We test a total of 180
different integer conversions, half in hardware and half in
software.
Cut down the number of times each test is run from 5 to 1 so
it doesn't take so long. If you want to run more times
there's a constant that can be changed at the top of the file.
./test/extend.c
Removed unused variable.
./test/h5test.c
./test/h5test.h
./test/external.c
./test/fillval.c
The h5_cleanup() returns true/false so it can be used in an `if'
statement to clean up additional files.
./doc/html/Environment.html
Indented. Added HDF5_PREFIX and HDF5_DRIVER descriptions.
./src/H5P.c
Changed the trace type for the second argument from `Iu' to
`x' since it's an output parameter.
./INSTALL
Added a warning that the GNU zlib that comes with the latest
version of HDF4 is too old to use with HDF5 and must be
renamed so configure doesn't see it when `--enable-hdf4' is
used.
----------------------
./src/H5Tconv.c
With my poor eyesight I missed the definitions of SCHAR_MIN
and SCHAR_MAX in <limits.h> and used CHAR_MIN and CHAR_MAX
incorrectly. I changed all occurrences of the latter to the
former and the new hardware integer type conversions now work
on Irix.
./configure.in
./configure [REGENERATED]
./src/H5config.h.in [REGENERATED]
./src/H5private.h
./src/H5.c
./test/h5test.c
Added a wrapper for HDsnprintf() that just calls sprintf() if
snprintf() isn't available.
./MANIFEST
Added Paul's new h5toh4 files.
----------------------
./MANIFEST
./test/Makefile.in
./test/shtype.c [REMOVED]
Removed shtype.c because it was all commented out. Besides,
these tests are done in dtypes.c now anyway.
./test/external.c
./test/fillval.c
./test/flush1.c
./test/flush2.c
./test/links.c
./test/mount.c
./test/mtime.c
./test/unlink.c
The tests that check the HDF5 API use the h5test support
functions. For one thing, that means that you can specify the
file driver that thay use by the HDF5_DRIVER environment
variable. Possible values are:
HDF5_DRIVER='sec2' Use read() and write()
HDF5_DRIVER='stdio' Use fread() and fwrite()
HDF5_DRIVER='core' Use malloc() and free()
HDF5_DRIVER='split' Split meta and raw data
HDF5_DRIVER='family N' Use file families with each
member being N megabytes (N
can be fractional, defaults to
one).
Some tests might fail for certain drivers: for instance, the
mount and link tests fail for the `core' driver because
they must be able to close and then reopen a file.
----------------------
./src/H5.c
./src/H5A.c
./src/H5AC.c
./src/H5B.c
./src/H5D.c
./src/H5E.c
./src/H5F.c
./src/H5Farray.c
./src/H5Fcore.c
./src/H5Ffamily.c
./src/H5Fistore.c
./src/H5Flow.c
./src/H5Fmpio.c
./src/H5Fsec2.c
./src/H5Fsplit.c
./src/H5Fstdio.c
./src/H5G.c
./src/H5Gent.c
./src/H5Gnode.c
./src/H5Gstab.c
./src/H5HG.c
./src/H5HL.c
./src/H5I.c
./src/H5Iprivate.h
./src/H5MF.c
./src/H5MM.c
./src/H5O.c
./src/H5Oattr.c
./src/H5Ocomp.c
./src/H5Ocont.c
./src/H5Odtype.c
./src/H5Oefl.c
./src/H5Ofill.c
./src/H5Olayout.c
./src/H5Omtime.c
./src/H5Oname.c
./src/H5Osdspace.c
./src/H5Oshared.c
./src/H5Ostab.c
./src/H5P.c
./src/H5R.c
./src/H5RA.c
./src/H5S.c
./src/H5Sall.c
./src/H5Shyper.c
./src/H5Smpio.c
./src/H5Snone.c
./src/H5Spoint.c
./src/H5Sselect.c
./src/H5T.c
./src/H5TB.c
./src/H5Tbit.c
./src/H5Tconv.c
./src/H5V.c
./src/H5Z.c
./src/H5detect.c
./src/H5private.h
Most of these changes are because the `interface_initialize_g'
variable change from hbool_t to int. It's a one line change.
Changed the way the library is closed so we have more control
over the order the interfaces are shut down. Instead of
registering an atexit() function for every interface in some
haphazard order we just register one: H5_term_library() which
then calls the H5*_term_interface() functions in a
well-defined order.
If the library is closed and then reopened repeatedly by
calling H5close() and H5open() in a loop we only add one copy
of the library termination functions with atexit().
Termination is a two-step process in order to help detect
programming errors that would cause an infinite loop caused by
the termination of one interface waking up some other
previously terminated interface. The first step terminates
the interface and *marks it as unusable*. After all
interfaces are terminated then we mark them all as usable
again. The FUNC_ENTER() macro has been modified to return
failure or to dump core (depending on whether NDEBUG is
defined) if we try to call an interface while it's shutting
down.
./src/H5.c
The H5dont_atexit() function returns failure if it's called
more than once or if it's called too late. However, the error
stack is not automatically printed on failure because the
library might not be initialized yet
./test/chunk.c
./test/flush1.c
./test/flush2.c
./test/iopipe.c
./test/overhead.c
./test/ragged.c
Changed the extra cast for Win32 so we do floating point
division again -- it was just confusion about precedence and
associativity of casting and the C coercion rules. Removed
extra carriage returns inserted by broken operating system.
./src/H5Ffamily.c
Fixed an bug where H5F_fam_write() lowered the EOF marker for
one of the family members causing H5F_fam_read() to read
zeros.
./test/h5test.h [NEW]
./test/h5test.c [NEW]
./test/Makefile.in
./test/bittests.c
./test/cmpd_dset.c
./test/dsets.c
./test/dtypes.c
./test/extend.c
./test/external.c
Support library for test files. This isn't done yet but
Katie's contractions are ~10 minutes apart so I figured I
better back this stuff up just in case I'm not here next
week...
Eventually all test files will understand HDF5_DRIVER to name
the low level file driver and parameters so we can easily test
various drivers. They will also understand HDF5_PREFIX to
prepend to the beginning of file names which is necessary for
testing ROMIO with various drivers. Also, the cleanup function
will know how to use the file name prefix and will understand
different file driver naming schemes like file families. I'm
not sure they'll understand the `gsf:' type prefixes yet.
Note, the external test is completely commented out because
I'm in the middle of modifying it. It will still compile and
run but it doesn't test anything at the moment.
----------------------
./test/flush2.c
./test/overhead.c
Removed carriage-returns inserted by a broken operating system.
./test/big.c
./test/mtime.c
./test/ragged.c
./tools/h5ls.c
Removed inclusion of <H5config.h>, system header files, and definition
of __unused__ since this all happens in <H5private.h>.
./test/chunk.c
./test/cmpd_dset.c
./test/dsets.c
./test/dtypes.c
./test/extend.c
./test/external.c
./test/fillval.c
./test/flush1.c
./test/flush2.c
./test/iopipe.c
./test/links.c
./test/mount.c
./test/overhead.c
./test/shtype.c
./test/unlink.c
./tools/h5import.c
./tools/h5repart.c
Removed inclusion of <H5config.h> since <hdf5.h> includes it.
./test/flush1.c
Includes <stdlib.h>, protects inclusion of <unistd.h> by using
HAVE_UNISTD_H instead of STDC_HEADERS.
----------------------
./src/H5.c
./src/H5Smpio.c
./src/H5T.c
./src/H5Tconv.c
./src/H5Tpublic.h
./src/H5detect.c
./src/H5private.h
./src/H5public.h
./test/big.c
The `long long' type isn't quite as prevalent as we had hoped;
there is at least one system that defines `__int64' but not
`long long'. Therefore, I've temporarily changed all
occurrences of `long long' to `long_long' and then #define
that in H5private.h based on the existence of `long long' or
`__int64'. This gets rid of some #ifdef's in other parts of the code.
The semantics of the hdf5 types are:
*int8_t Exactly one byte
*int16_t At least two bytes. We favor 32-bit integers over
16-bit integers if the 16-bit integer is 4-bytes wide
(Cray)
*int32_t At least four bytes.
*int64_t At least eight bytes
long_long The widest integral integer type
The H5Smpio.c contains debugging code which is non-portable.
./tools/h5ls.c
Changed the order native types are detected so we favor the name `int'
over `short' or `long' if two of them are the same.
./config/conclude.in
Added a rule to make test programs depend on the hdf5 library. This
fixes a minor bug where changing H5detect.c and then running `make
test' caused H5Tinit.c to not be recompiled and therefore the test
files are not relinked.
----------------------
./INSTALL.parallel [NEW]
We're beginning to unify some of the parallel installation
steps. This file will contain general information for
installing the parallel library. It's not complete yet.
./configure.in
./configure [REGENERATED]
./src/H5config.h.in [REGENERATED]
Check for xdr_int() in libnsl required on Solaris when linking
with hdf4. It's found on the Irix system I tested which
complains that `-lnsl' didn't resolve any symbols. Oh well.
Fixed the order of searching for libdf and libmfhdf for hdf4
linking.
./configure.in
./configure [REGENERATED]
./src/H5config.h.in [REGENERATED]
./src/H5Z.c
Check for compress() in libz in order to find older versions
of the library that will still work for hdf4. Added a
separate check for compress2() that hdf5 will use.
./configure.in
./configure [REGENERATED]
./src/H5config.h.in [REGENERATED]
./src/H5.c
./src/H5private.h
./src/H5A.c
./src/H5B.c
./src/H5Bprivate.h
./src/H5D.c
./src/H5F.c
./src/H5Farray.c
./src/H5Fcore.c
./src/H5Ffamily.c
./src/H5Fistore.c
./src/H5Flow.c
./src/H5Fmpio.c
./src/H5Fprivate.h
./src/H5Fsec2.c
./src/H5Fsplit.c
./src/H5Fstdio.c
./src/H5Gent.c
./src/H5Gnode.c
./src/H5Gpkg.h
./src/H5Gprivate.h
./src/H5HG.c
./src/H5HL.c
./src/H5O.c
./src/H5Oattr.c
./src/H5Ocomp.c
./src/H5Ocont.c
./src/H5Odtype.c
./src/H5Oefl.c
./src/H5Ofill.c
./src/H5Olayout.c
./src/H5Omtime.c
./src/H5Oname.c
./src/H5Oprivate.h
./src/H5Osdspace.c
./src/H5Oshared.c
./src/H5Ostab.c
./src/H5R.c
./src/H5RA.c
./src/H5Sall.c
./src/H5Shyper.c
./src/H5Snone.c
./src/H5Spoint.c
./src/H5Sprivate.h
./src/H5Sselect.c
./src/H5T.c
./src/H5Tbit.c
./src/H5Tconv.c
./src/H5Tpkg.h
./src/H5V.c
./test/bittests.c
./test/gheap.c
./test/hyperslab.c
./test/istore.c
./test/tmeta.c
./test/trefer.c
./test/tselect.c
./tools/h5debug.c
./tools/h5tols.c
Added checks for Posix.1g types like `int8_t'. If not defined
then H5private.h defines them. Changed all `int8' etc. to
`int8_t'.
./src/H5A.c
./src/H5D.c
./src/H5F.c
./src/H5G.c
./src/H5I.c
./src/H5P.c
./src/H5R.c
./src/H5RA.c
./src/H5S.c
./src/H5T.c
./src/H5TB.c
./src/H5Z.c
Calling H5*_term_interface() resets interface_initialize_g to
FALSE so a subsequent call to H5open() (implied or explicit)
reinitializes global variables properly.
./src/H5private.h
./src/H5Oefl.c
./src/H5S.c
Changed MAX_SIZET, MAX_SSIZET, MAX_HSIZET, and MAX_HSSIZET to
SIZET_MAX, SSIZET_MAX, HSIZET_MAX, and HSSIZE_MAX to they
match the Posix.1 constants in <limits.h>.
./src/H5T.c
./src/H5Tconv.c
./src/H5Tpkg.h
./src/H5Tprivate.h
./src/H5detect.c
Added 36 more integer hardware conversion functions to the
type conversion table for conversions to/from `long long' and
`unsigned long long'. The `long long' names will be changed
shortly to make them portable to Win32.
Changed H5T_init() to H5T_native_open() and added an
H5T_native_close() to open and close the predefined native
data types.
Increased the initial size of the type conversion table from
64 to 128 entries.
Reordered the 90 new integer conversion functions so the names
that are printed favor `int' over `short' or `long' when two
of them are the same.
./test/dtypes.c
Added hardware and software integer conversion tests for the
56 functions I added recently but not the additional 36
checked in this time. That will come next.
Call H5close() after each test so type conversion statistics
are easier to follow. Try this: $ HDF5_DEBUG=t ./dtypes
Added more debugging output for when things go wrong.
./src/H5private.h
Removed trailing carriage-returns inserted by broken operating
system ;-)
In machine (e.g. O2K) where long long and long are the same sizes, it
ended up defining GB8LL as 1 which is way too small for the dataset size.
Solution:
Add an entry to define GB8LL if long can hold it. When all fails,
define GB8LL as 0. During runtime, enough_room() will detect this
special value and skips the test.
Platform tested:
O2K IRIX64.
----------------------
./config/conclude.in
./test/Makefile.in
./tools/Makefile.in
The Makefile $TESTS variable has finally been split into
$TEST_PROGS and $TEST_SCRIPTS with the latter being the names
of shell scripts that need to be run with `/bin/sh'. Now we
don't have to copy each shell script before we run it. NOTE:
THIS CHANGE DOES NOT AFFECT THE PABLO MAKEFILE SINCE THAT FILE
IS A COPY OF A PREVIOUSLY GENERATED MAKEFILE.
./src/Makefile.in
Added H5Snone.c to the source list.
./src/H5G.c
Plugged a memory leak by emptying the object type "isa" table
when the library is closed.
./src/H5Tconv.c
./src/H5Tpkg.h
Added 48 new type functions to take advantage of hardware for
integer type conversions. These functions are not registered
in the conversion table yet because I haven't fully tested
them.
./src/H5Tpkg.h
Removed __unused__ qualifiers from prototypes.
----------------------
./INSTALL
Added instructions about specifying a path for GNU zlib and
HDF4 headers and library.
Added comments for each of the tool names. Added h5toh4 as a
tool name.
./configure.in
./conigure [REGENERATED]
./src/H5config.h.in [REGENERATED]
The config/* scripts get invoked with $CC_BASENAME set the
base name of the compiler in order to make it easier to handle
setting compiler flags for different compilers in a big case
statement. For instance, if $CC has the value
/usr/local/mpi/bin/mpicc -ansi -64
then $CC_BASENAME will be `mpicc'. The $CC_BASENAME is not
set if $CC is not set.
Fixed alignment in `configure --help'.
An include and/or library path can be specified for GNU zlib
if configure can't find it in normal places. The "normal"
means wherever your compiler normally searches, including
search paths you've added through environment variables like
CPPFLAGS and LDFLAGS. The INSTALL file has instructions.
The `-ljpeg' library is detected.
If `ssize_t' is not found then a #define is added to
H5config.h similar to what we already do for `size_t'.
We detect the hdf5 header file `mfhdf.h' and libraries
`-lmfhdf' and `-ldf' and if found define the H5TOH4 and
TESTH5TOH4 Makefile variables. The user can specify an
include and/or library path. The INSTALL file has
instructions.
The `RUNTEST' variable has been split into `RUNSERIAL' and
`RUNPARALLEL' because these are different commands. The
makefile still uses `RUNTEST', which defaults to the RUNSERIAL
value. The new testpar/Makefile.in sets RUNTEST to the
RUNPARALLEL value. The default RUNSERIAL value is empty and
the default RUNPARALLEL value is `mpirun -np 2'. These can
both be overridden in the config/* files. To make the value
the empty string set it like `RUNPARALLEL=none' in the
config/* file.
The new testpar/Makefile is generated from testpar/Makefile.in
./config/commence.in
Added the RUNSERIAL and RUNPARALLEL makefile definitions.
./src/Makefile.in
The `H5detect' program is run with RUNSERIAL, which is empty
on all platforms except intel-osf1 (ASCI/Red)
./config/conclude.in
Removed the `.c.a:' implicit rule -- we don't use it any more.
./config/BlankForm
./config/alpha-dec
./config/alpha-dec-osf4.0
./config/freebsd2.2.7
./config/hpux10.20
./config/hpux9.03
./config/intel-osf1
./config/irix5.3
./config/irix6.2
./config/irix64
./config/linux
./config/powerpc-ibm-aix4.2.1.0
./config/rs6000-ibm-aix4.1.4.0
./config/solaris2.5
All of these files have been updated to hande multiple
compilers. Most of them assume `cc' if CC is not set. The
documentation in `BlankForm' has been updated and
documentation in the other files refer to `BlankForm'.
The intel-osf1 uses LDFLAGS instead of LIBS to specify the extra
library search paths.
./examples/Makefile.in
./test/Makefile.in
./tools/Makefile.in
Simplified by grouping some dependency information together
more succinctly.
The tools Makefile.in has been modified to work with the
`h5toh4' and `testh5toh4' programs. Until Paul checks these
in you may have problems compiling. If so, just create files
h5toh4.c and testh5toh4.c that contain:
#include <stdio.h>
int main(int argc, char *argv[]) {
fprintf(stderr, "%s: not implemented\n", argv[0]);
return 1;
}
./src/H5public.h
Removed definition for `ssize_t' since this is now handled by
configure in H5config.h with a #define.
./MANIFEST
./testpar/Makefile.in [NEW]
Added a makefile for parallel tests. As soon as we get this
working properly we can remove the other four makefiles in
that directory and maintain just one.
----------------------
./tools/h5ls.c
The chunk dimensions and total size is printed for chunked datasets.
./examples/h5_attribute.c
./examples/h5_select.c
./test/chunk.c
./test/iopipe.c
./test/ragged.c
./src/H5.c
./src/H5private.h
./src/H5public.h
Removed extra carriage-return characters inserted by a broken
OS :-)
Reformatted strange-looking comments.
Removed C++ comments.
Wrapped long lines.
./examples/h5_attribute.c
./examples/h5_select.c
Removed inclusion of private headers.
Changed `uint32' (originally `uint') to `unsigned' because
`int32' is not exported as part of the API.
./src/H5Fmpio.h
Removed includes for <sys/types.h> and <sys/stat.h> since
they're already included by H5private.h. All system include
files should be included in H5private.h so we can wrap them
with appropriate feature macros.
./tools/h5import.c
./tools/h5repart.c
Included header files like all other programs in that
directory.
./tools/h5tools.c
Better type checking for `hsize_t' and `hssize_t'.
----------------------
./MANIFEST
Added new Pablo files HDF5record_RT.h and ProcIDs.h
./acconfig.h
./configure [REGENERATED]
./configure.in
./src/H5.c
./src/H5Vprivate.h
./src/H5config.h.in [REGENERATED]
./src/H5private.h
./src/H5public.h
./test/big.c
Added more configuration stuff for the Win32 environment. Removed all
the #ifdef WIN32 from the source and replaced them with OS-independent
stuff. Specifics follow:
Check for non-Posix.1 `st_blocks' field in `struct stat' which is used
by the big file test to decide if the file system supports holes. If
the st_blocks field isn't present then we just skip the test.
Configure checks for <io.h> <sys/resource.h> <sys/time.h> and
<winsock.h> and defines HAVE_IO_H, HAVE_SYS_RESOURCE_H,
HAVE_SYS_TIME_H and HAVE_WINSOCK_H when they're found.
Configure checks whether both <sys/time.h> and <time.h> can be
included and defines SYS_TIME_WITH_TIME if so. Otherwise include only
<sys/time.h> or <time.h> even if both exist.
Configure checks sizeof(__int64) and defines SIZEOF___INT64 to the
result or to zero if __int64 isn't defined. The source uses `long
long' in preference to `__int64'.
Removed null WIN32 definition for `inline' since such a definition
already exists in H5config.h
Protected gettimeofday() calls in debugging code with
HAVE_GETTIMEOFDAY instead of WIN32.
./src/H5F.c
./src/H5Flow.c
./src/H5Fmpio.c
./src/H5Fsec2.c
./src/H5Fstdio.h
./src/H5P.c
./src/H5Tconv.c
./src/H5private.h
Removed #include of system files from library source files and
consolodated them into H5private.h where they're protected by various
configuration macros (most of them were duplicated there already
anyway).
./test/big.c
./test/chunk.c
./test/cmpd_dset.c
./test/dsets.c
./test/dtypes.c
./test/extend.c
./test/external.c
./test/fillval.c
./test/flush1.c
./test/flush2.c
./test/iopipe.c
./test/links.c
./test/mount.c
./test/mtime.c
./test/overhead.c
./test/ragged.c
./test/shtype.c
./test/unlink.c
Protected system #include's with #ifdef's from H5config.h.
Undefined NDEBUG since some of the tests rely on assert() to check
return values.
Removed WIN32 definitions for __unused__ since this can be controlled
by the definition of HAVE_ATTRIBUTE in H5config.h
./test/testhdf5.h
Removed the CLEAN_CMD definition because we no longer use it.
Albert's cleanup() functions replaced it.
./test/fillval.c
Initialized auto hid_t variables to fix warnings in error recovery
code when data flow analysis is turned on in compilers.
./test/h5tools.c
Initialized an auto variable to fix a compiler warning.
./test/chunk.c
./test/ragged.c
The WIN32 had some unsigned variables changed to signed because the
compiler generates warnings when coercing unsigned to double(?). I
changed them back to unsigned because they really are unsigned
quantities. If this the change was just to shut up extraneous warnings
then perhaps a compiler flag can do the same; otherwise if the
compiler generates bad code then we should supply a patch file instead
messing up source code with bug work-arounds.
./src/H5detect.c
Protected system #include's with #ifdef's from H5config.h thereby
removing a WIN32.
If getpwuid() doesn't exist (HAVE_GETPWUID) then we assume that
`struct passwd' doesn't exist either (we don't really need it in that
case).
The H5T_NATIVE_LLONG and H5T_NATIVE_ULLONG are defined in terms of
`long long' or else `__int64' or else `long' depending on what's
available.
./src/H5Flow.c
./src/H5Ofill.c
Added __unused__ to some function arguments that aren't used when
assertions are turned off.
./src/H5V.c
Changed an auto variable name in some hand-inlined code to get rid of
a warning about the variable shadowing a previous auto.
----------------------
./MANIFEST
./test/th5s.h5 [NEW]
./test/th5s.c
Added a test to make sure that creating a data space with too
large a rank fails.
Added a test to make sure that reading a file that has a
dataset with a space with too large a rank fails. Actually,
this one is a little weird: the code that reads the data space
message assumes the space is scalar if the message cannot be
read. Fortunately the layout message fails also, preventing
the dataset from being opened. However, since the data type
message is still visible h5ls will report that the object is a
named data type.
./test/space_overflow.c [NEW]
This is the little program that makes the th5s.h5 file.
./src/H5A.c
./src/H5R.c
./src/H5Sselect.c
Updated trace info.
./src/H5Olayout.c
./src/H5Osdspace.c
Added code to fail if the dimensionality is too large when
decoding a layout or simple data space message.
./src/H5Oprivate.h
Redefined H5O_LAYOUT_NDIMS in terms of H5S_MAX_RANK.
./src/H5P.c
./src/H5S.c
Check for ndims>H5S_MAX_RANK in API function calls, added
assert to internal functions.
./src/H5V.c
Changed a `<' to an `<=' in an assert.
./test/flush2.c
Includes stdlib.h for getenv().
./tools/h5tools.c
Able to handle up to H5S_MAX_RANK dimensions during output.
----------------------
./MANIFEST
./test/Makefile.in
./test/flush1.c [NEW]
./test/flush2.c [NEW]
Test to see if calling H5Fflush() results in a consistent
file.
./src/H5.c
./src/H5A.c
./src/H5D.c
./src/H5Fistore.c
./src/H5I.c
./src/H5S.c
./src/H5Shyper.c
./src/H5Sselect.c
./src/H5TB.c
Changed comparisons against SUCCEED and FAIL to >=0 and <0 in
about 15 places.
./src/H5.c
./src/H5V.c
./src/H5detect.c
./src/H5private.h
./src/H5public.h
./test/big.c
./test/chunk.c
./test/cmpd_dset.c
./test/dsets.c
./test/dtypes.c
./test/external.c
./test/fillval.c
./test/iopipe.c
./test/links.c
./test/mount.c
./test/mtime.c
./test/ragged.c
./test/shtype.c
./test/unlink.c
Removed ^M from the end of lines inserted on broken OS's ;-)
./src/H5private.h
Changed c++ comments to c comments.
./src/H5R.c
Added tracing macros.
----------------------
./src/H5Fistore.c
Improved the hash function so it mixes bits better. This
results in a few percent improvement in raw data chunk cache
efficiency because there are fewer collisions.
./test/chunk.c
Added #define's for chunk preemption `w0' value and number of
slots in cache.
./src/H5B.c
Added some more comments to H5B_insert_helper() and
H5B_remove_helper() and also point to some additional
documentation.
----------------------
./bin/trace
./src/H5.c
./src/H5F.c
./src/H5Fprivate.h
./src/H5Fpublic.h
Added a `scope' argument to H5Fflush() which should be either
H5F_SCOPE_LOCAL or H5F_SCOPE_GLOBAL and determines which files
are flushed (just the specified file or the entire virtual
file).
./src/H5F.c
Added reference counts to the H5F_t struct so we get the
correct behavior between H5Funmount() and H5Fclose().
./src/H5O.c
Fixed a memory leak that happens during error handling.
./test/cmpd_dset.c
./test/unlink.c
Fixed a memory leak.
./test/mount.c
Enabled the H5Fclose() test.
----------------------
./src/H5.c
Fixed a signed vs. unsigned comparison.
./src/H5D.c
Setting a fill value of all zeros will cause the fill value to
be written to the dataset instead of relying on the low-level
file driver initializing unwritten areas with zero.
./src/H5D.c
./src/H5F.c
./src/H5Fprivate.h
./src/H5G.c
./src/H5Gpkg.h
./src/H5Gprivate.h
./src/H5O.c
./src/H5T.c
More file mounting stuff.
./src/H5I.c
Fixed a bug where trying to close an invalid object id caused
a core dump. For instance, H5Gclose(-1).
./MANIFEST
./test/Makefile.in
./test/mount.c [NEW]
Mounting tests.
./src/H5R.c
Fixed a couple (herr_t)NULL casts.
----------------------
./src/H5F.c
./src/H5Fprivate.h
./src/H5G.c
./src/H5Gpkg.h
./src/H5Gprivate.h
./src/H5Gpublic.h
./test/istore.c
./test/tstab.c
Removed CWG functionality.
./tools/Makefile.in
Added `_test' where I added `test' last week. Maybe now the
snapshots will start up again...
----------------------
./doc/html/H5.format.html
./src/H5HG.c
Fixed a bug in the global heap that caused H5HG_read() to
write past the end of the buffer in certain cases.
./test/big.c
The test is skipped if hdf5 was configured with
`--disable-hsizet'.
./src/H5Ofill.c
Data type conversions are implemented for the fill value.
./src/H5.c
Tracing prints one of H5P_FILE_CREATE, H5P_FILE_ACCESS,
H5P_DATASET_CREATE, H5P_DATASET_XFER, or H5P_MOUNT instead of
the more cryptic H5I_TEMPLATE_* constants.
./src/H5D.c
Removed prototype for H5D_find_name().
./src/H5I.c
The GROUP_MASK and ID_MASK are both calculated from GROUP_BITS
instead of being set by hand.
We don't use the sign bit of hid_t; all valid hid_t values are
positive so we can say things like `if ((file=H5Fopen(...))<0)'.
Changed `(int)pow(2.0,x)' to `1<<x' so we don't have to worry
about rounding.
Fixed H5I_get_type() so it doesn't always fail an assertion.
./src/H5E.c
./src/H5Epublic.h
Added minor error H5E_MOUNT
./src/H5F.c
./src/H5Fprivate.h
Added H5Fmount() and H5Funmount(). Mounting and unmounting
works as documented but some of the other things aren't
implemented yet, the biggest being current working groups
always acting on the root of the mount tree, and H5Fclose()
closing the entire tree. The rest of the stuff will be added
shortly...
./src/H5P.c
./src/H5Ppublic.h
Added the H5P_MOUNT property list but haven't implemented any
particular properties for it yet.
./src/H5Gstab.c
Hard links across files return an error instead of failing an
assertion.