Changes since 19990618
----------------------
./configure.in
./configure [REGENERATED]
Now that compound struct conversions don't make so many calls
to convert their members I turned the H5T debugging back on by
default (it will still be disabled in a production version).
./src/H5AC.c
./src/H5B.c
Made it possible to turn off messages about debugging these
two packages using the same method as for all other
packages. Just supply an invalid file descriptor number or use
the shell to redirect said descriptor to /dev/null like this:
$ HDF5_DEBUG=99,ac,b 99>/dev/null a.out
./src/H5T.c
Changed the name of the old compound conversion function from
`struct' to `struct(no-opt)' to be more consistent with the
new version named `struct(opt)'.
Fixed a bug in H5T_cmp() that caused any two VL types to
compare as being equal.
Removed duplicate code for bitfield comparisons in H5T_cmp().
./src/H5Tconv.c
Relaxed some constraints in the new compound conversion
function so it applies to more cases. Also eliminated a
memcpy in a tight loop.
./test/cmpd_dset.c
Added a `--noopt' command line switch which unregisters the
optimized compound conversion so we can test the non-optimized
version.
Changes since 19990618
----------------------
./Makefile.in
Running `make' in the top directory recurses into the examples
directory also except if the make target is one of: lib,
progs, check, test, _test, install, uninstall.
./examples/Makefile.in
Changed programs into tests, which just means that `make
tests' does what `make progs' used to do and that `make check'
runs the executables.
./src/H5Tconv.c
Fixed a typo in the unsigned-to-signed native converter for
large types to small types. This fixes a bug on baldric and
possibly other machines for the `dtypes' test.
Also fixed a signed vs. unsigned warning.
----------------------
./Makefile.in
Running `make' in the top directory recurses into the examples
directory also except if the make target is one of: lib,
progs, check, test, _test, install, uninstall.
./examples/Makefile.in
Changed programs into tests, which just means that `make
tests' does what `make progs' used to do and that `make check'
runs the executables.
./src/H5Tconv.c
Fixed a typo in the unsigned-to-signed native converter for
large types to small types. This fixes a bug on baldric and
possibly other machines for the `dtypes' test.
Also fixed a signed vs. unsigned warning.
Changes since 19990616
----------------------
./src/H5T.c
./src/H5Tconv.c
All conversion functions take an extra argument called
`stride' which is the number of bytes to advance the source
and destination pointers after each element is converted. If
the value is zero then the old behavior is preserved (source
and destination values are packed). This feature was necessary
to implement the compound datatype conversion optimizations
and it causes a minor change to the API (application-defined
type conversion functions take an extra size_t stride
argument).
./src/H5Tconv.c
An additional compound data type conversion function was added
which is applied unless the destination type is larger than
the source type. I'm measuring significant performance
increases for certain operations:
Test Name Struct-Conv Noop-Conv
New(Old) MB/s New(Old) MB/s
---------- ------------- -------------
Reordering 2.062(0.3936) 54087(0.9047)
Subsetting 2.901(0.6581) 40192(1.1100)
Shrinking 1.976(0.3925) 33628(1.1500)
---------- ------------- -------------
./test/dtypes.c
Added various compound datatype conversion tests.
Fixed return values from functions.
./src/H5T.c
Conversion timers are updated only if H5T debugging is turned
on a runtime (in addition to compile time). This allows the
data type layer to be compiled with debugging support without
having to pay a big runtime penalty if the debugging isn't
actually used.
./src/H5A.c
./src/H5D.c
./src/H5Ofill.c
./src/H5P.c
./src/H5T.c
./src/H5Tconv.c
./src/H5Tpkg.h
./src/H5Tprivate.h
./src/H5Tpublic.h
Added the stride argument to the H5T_convert() calls. The
stride is always zero, which means that the source and
destination data values are packed.
./configure.in
./configure [REGENERATED]
If API tracing is turned off then libhdf5.settings will say
`no' instead of nothing.
./test/flush1.c
./test/flush2.c
Added better error messages in a couple places.
because it is predefined in <errno.h>, not <sys/errno.h> which
contains the system error codes.
Fixed and tested in IRIX6.5 (also got rid of the few K&R C-style
function declaration statements.)
Changes since 19990615
----------------------
./README
Version number synchronized with library.
./bin/h5vers
If the version number of the library is changed then the first
line of the README file is also changed to something like
This is hdf5-1.2.3 currently under development
The `release' script (which also gets run by `snapshot')
changes that line to include the release date but keeps the
version number the same. The net effect is that the version
numbers in README and H5public.h should now always stay
synchronized.
./bin/snapshot
The CVS checkin comment includes the version number for the
snapshot that was just made.
./tools/testh5toh4
Changed `*-SKIP-*' to `-SKIP-' to be consistent with the other
tests.
hdp before HDF 4.1r3 does not handle Vgroups loops correctly.
Solution:
Added codes to detect the library version of hdp command. Skipped
tests for loops. Tested in an old solaris with HDF 4.1r2, Solaris 2.6
and Hawkwind.
Changes since 19990614
----------------------
./src/H5D.c
Changed the way the plist_id argument of H5Dvlen_reclaim() is
checked so that it's more specific and works when debugging is
turned off.
./src/H5TB.c
Removed an unused local variable.
./test/fillval.c
./test/h5test.c
./test/h5test.h
Changed `basename' variables to `base_name' to prevent a
warning about a global with the same name.
./tools/h5ls.c
Changed `indent' variables to `ind' to prevent a warning about
a global with the same name.
./tools/h5toh4.c
Commented out declarations for things that normally appear in
system header files since our definitions might be
incompatible with the system and prevent h5toh4 from
compiling. If all looks good on other systems then we can
permanently remove these declarations...
----------------------
./src/H5D.c
Changed the way the plist_id argument of H5Dvlen_reclaim() is
checked so that it's more specific and works when debugging is
turned off.
./src/H5TB.c
Removed an unused local variable.
./test/fillval.c
./test/h5test.c
./test/h5test.h
Changed `basename' variables to `base_name' to prevent a
warning about a global with the same name.
./tools/h5ls.c
Changed `indent' variables to `ind' to prevent a warning about
a global with the same name.
./tools/h5toh4.c
Commented out declarations for things that normally appear in
system header files since our definitions might be
incompatible with the system and prevent h5toh4 from
compiling. If all looks good on other systems then we can
permanently remove these declarations...
Changes since 19990611
----------------------
./doc/html/H5.format.html
Added documentation for opaque data types (bitfield types were
already documented but they were out of order).
./src/H5E.c
Fixed a bug with glibc2 on linux systems where `stdout' is an
extern and can't be used to initialize static data.
./src/H5T.c
./src/H5Tpkg.h
./src/H5Tpublic.h
./src/H5detect.c
Removed the `_T' from the new C9x types I just added so the
names are consistent with existing types. Besides, the fact
that something is a datatype is obvious because it starts with
H5T_NATIVE_.
./tools/h5ls.c
Added the new C9x data types. H5ls prints one of these types
only if it doesn't match one of the builtin C types.
Prints the OID for shared data types.
Fixed a formatting bug with symbolic links which was
introduced a few changes ago.
The commandline has been changed so that objects from multiple
files can be listed with a single command. Instead of
specifying a file name and an optional list of objects, each
thing to print is a file name and object concatenated. H5ls
figures out how to devide the name into a file name and object
name even when the file name part doesn't correspond to an
actual Unix file.
Old syntax: h5ls [OPTIONS] FILE [OBJECTS]
New syntax: h5ls [OPTIONS] FILE[/OBJECT] [FILE[/OBJECT]]...
Example ({X,Y} is expanded by the shell)
Old command: h5ls -d ../test/x.data dir1 dir2
New command: h5ls -d ../test/x.data/{dir1,dir2}
The filename is printed as part of the object name when full
names are requested (--full or --recursive). If people really
don't like this they can undefine a constant at the top of
h5ls.
Errors from the hdf5 library are turned off.
Commandline switches of the form `--width 80' are accepted in
addition to `--width=80'. This is more symmetric with
single-letter switches that take two forms: `-w 80' and
`-w80'.
./src/H5D.c
Added tracing instrumentation for H5Dvlen_reclaim().
./src/H5private.h
Added casts to int for the isalpha() et al macros to shut up
solaris warnings about char subscripts.
----------------------
./doc/html/H5.format.html
Added documentation for opaque data types (bitfield types were
already documented but they were out of order).
./src/H5E.c
Fixed a bug with glibc2 on linux systems where `stdout' is an
extern and can't be used to initialize static data.
./src/H5T.c
./src/H5Tpkg.h
./src/H5Tpublic.h
./src/H5detect.c
Removed the `_T' from the new C9x types I just added so the
names are consistent with existing types. Besides, the fact
that something is a datatype is obvious because it starts with
H5T_NATIVE_.
./tools/h5ls.c
Added the new C9x data types. H5ls prints one of these types
only if it doesn't match one of the builtin C types.
Prints the OID for shared data types.
Fixed a formatting bug with symbolic links which was
introduced a few changes ago.
The commandline has been changed so that objects from multiple
files can be listed with a single command. Instead of
specifying a file name and an optional list of objects, each
thing to print is a file name and object concatenated. H5ls
figures out how to devide the name into a file name and object
name even when the file name part doesn't correspond to an
actual Unix file.
Old syntax: h5ls [OPTIONS] FILE [OBJECTS]
New syntax: h5ls [OPTIONS] FILE[/OBJECT] [FILE[/OBJECT]]...
Example ({X,Y} is expanded by the shell)
Old command: h5ls -d ../test/x.data dir1 dir2
New command: h5ls -d ../test/x.data/{dir1,dir2}
The filename is printed as part of the object name when full
names are requested (--full or --recursive). If people really
don't like this they can undefine a constant at the top of
h5ls.
Errors from the hdf5 library are turned off.
Commandline switches of the form `--width 80' are accepted in
addition to `--width=80'. This is more symmetric with
single-letter switches that take two forms: `-w 80' and
`-w80'.
./src/H5D.c
Added tracing instrumentation for H5Dvlen_reclaim().
./src/H5private.h
Added casts to int for the isalpha() et al macros to shut up
solaris warnings about char subscripts.
the generanted hdf files against saved output of hdp. This did not
work well because whenever the hdp changes its output format, the
tests failed unnecessarily. The tests also failed if the test machine
uses a different version of HDF library from the HDF5 development
machine.
Changed the algorithm to compare the generated HDF files against
saved HDF files (first by a simple cmp; if that fails, compare the
output of the host machine's hdp on both HDF files.)
Saved HDF files are stored in testfiles/Expected.
Tested on Hawkwind (FreeBSD) with srcdir option and Baldric (Solaris)
without srcdir option.
the generanted hdf files against saved output of hdp. This did not
work well because whenever the hdp changes its output format, the
tests failed unnecessarily. The tests also failed if the test machine
uses a different version of HDF library from the HDF5 development
machine.
Changed the algorithm to compare the generated HDF files against
saved HDF files (first by a simple cmp; if that fails, compare the
output of the host machine's hdp on both HDF files.)
Tested on Hawkwind (FreeBSD) with srcdir option and Baldric (Solaris)
without srcdir option.
----------------------
./configure.in
./configure [REGENERATED]
./src/H5T.c
./src/H5Tpkg.h
./src/H5Tpublic.h
./src/H5config.h.in [REGENERATED]
./src/H5detect.c
./src/H5private.h
Added checks for the C9x integer types like int32_t,
int_least32_t, and int_fast32_t and the unsigned
versions. HDF5 defines H5T_NATIVE_* versions (all caps) to be
the same as the type provided by the C library, otherwise it
defines them as integers exactly the specified size. Hardware
type conversion functions are used when the types
match some C-language type (like `int').
while-loop. Prepare it for the next revision in which the hdp
will apply to both the converted hdf4 file and a preserved hdf4
file, then compare the hdp output from both for h5toh4 converter
correctness.