----------------------
./MANIFEST
./doc/html/H5.format.html
./src/H5O.c
./src/H5Oprivate.h
./src/H5Omtime.c [NEW]
./src/H5private.h
./src/Makefile.in
Added the modification time message. If an object header has
this message then it's value is updated with the current time
whenever anything changes in the object header.
./acconfig.h
./configure.in
Alas, there seems to be no standard way to convert a string
time like 19980727122800 in UTC to a time_t since mktime()
only converts local times to time_t. So I've modified the
configuration to check for various ways of getting the time
zone information:
* Added checks for the `tm_gmtoff' field of `struct tm'.
* Added a check for the `timezone' global variable.
* Added a check for `struct timezone'.
* Added a check for BSDgettimeofday().
* Added a check for gettimeofday() although it doesn't
actually set the timezone argument on some systems.
* Added a check to see if `tm_zone' is a member of `struct tm'.
* Added a check to see if `tzname' is a global variable.
* Added a check to see if `struct tm' is defined in time.h
or sys/time.h.
It's not difficult to get the right UTC modification message
into the object header, but some systems might have problems
getting the right time back out (Irix64 is one) and those
systems will report zero for the H5G_stat_t.mtime from an
H5Gstat() call as if the mtime message isn't even present. It
will, however, continue to be updated as normal.
./src/H5G.c
./src/H5Gpublic.h
The H5G_stat_t struct now contains an `mtime' field which will
hold the object modification time. If the object has no
object modification time then the `mtime' will be initialized
to zero.
Fixed a bug in H5G_stat() that caused the `objno' field of the
H5G_stat_t to be set incorrectly on some machines.
./src/H5D.c
Writing to external datasets fail if the hdf5 file is not open
for writing.
A modification time message is added to the dataset object
header when it's created and H5O_touch() is called from
H5D_write() to update that message.
./src/H5T.c
Fixed a bug in H5Tget_member_dims() that caused a segmentation
fault if one of the output array arguments was the null
pointer.
Relaxed the member dimension checking in H5Tinsert_array() so
it can also be used for scalar members.
./test/Makefile.in
Added additional file names to the `mostlyclean' target.
./tools/h5dump.c
./tools/h5tools.h
Increased the temporary buffer size to 1MB.
Added support for printing compound data types with array
members.
When printing H5T_NATIVE_CHAR and H5T_NATIVE_UCHAR we escape
double quote characters.
./tools/h5ls.c
Changed the output format a little because we were starting to
get too much info to fit on a line. Without `--verbose' each
object occupies one line of output. Otherwise, additional
information is printed below the object name: object file
address, comment, and modification time. If `--dump' is given
then the data is printed after the other information.
./test/cmpd_dset.c
Changed the way the dataset is initialized to be more uniform.
----------------------
./bin/trace
./src/H5.c
Added tracing support for H5S_seloper_t and H5S_class_t.
./src/H5Sselect.c
./src/H5S.c
Added tracing statements that weren't inserted previously
because of formatting problems.
./src/H5T.c
./src/H5Tconv.c
./src/H5Tpkg.h
./src/H5Tprivate.h
./src/H5Tpublic.h
./test/cmpd_dset.c
Added H5Tinsert_array() for inserting an array member into a
compound data type. Added support to the struct conversion
function for member arrays. The index permutation is not
supported yet in the conversion (source and destination must
have the same permutations).
----------------------
./html/Datatypes.html
./src/H5T.c
./src/H5Tconv.c
./src/H5Tpkg.h
./src/H5Tpublic.h
./src/H5detect.c
./test/cmpd_dset.c
./test/dsets.c
./test/dtypes.c
./test/external.c
./test/tattr.c
./test/th5s.c
Organized the predefined data types.
./html/H5.intro.html
NO MODIFICATIONS! This file is a mess (obviously generated
from something else) so I skipped updating it!
./src/h5ls.c
./test/dsets.c
./test/tattr.c
./test/th5s.c
Added extra argument to H5Sget_dims() calls per Albert's last
update.
----------------------
./src/H5A.c
Named data types can have attributes.
Fixed bugs where the API functions didn't check the return
values of their internal counterparts and thus the automatic
error reporting didn't work.
Fixed some places where the error stack wasn't cleared after a
function returned failure.
Data types returned by H5Aget_type() are always read-only.
If the `attr_num' argument of H5Aiterate() is null then it
acts like H5Giterate() instead of failing -- it begins
processing attributes with the first one.
./src/H5D.c
We check for allocation overruns when scalar datasets are
stored in external files.
./src/H5O.c
H5O_modify() will fail if the message is >=16kB.
./src/H5Oattr.c
Split some long lines
./src/H5T.c
./src/H5Tprivate.h
Added H5T_entof() to support attributes on named types.
./src/h5ls.c
Prints the names of attributes and their sizes.
./test/cmpd_dset.c
./test/dsets.c
./test/dtypes.c
./test/extend.c
./test/external.c
./test/gheap.c
./test/istore.c
./test/links.c
./test/shtype.c
If the environment variable HDF5_NOCLEANUP is defined then the
temporary files are not removed. The testhdf5 program still
has the bug that it removes *.h5, clobbering test files from
other programs... oh well.
./test/dtypes.c
Added attribute tests.
----------------------
./html/Datasets.html
Fixed a couple of typos.
./src/H5.c
Added the `Z' modifier to HDfprintf() for `size_t' sizes. Use
it like this:
HDfprintf(stderr,"size is %Zd\n", (size_t)x);
./src/H5AC.c
./src/H5F.c
./src/H5Fprivate.h
The maximum number of meta data objects that can be cached can
be set from the application (but the library might not honor
it every time; it's a hint).
./src/H5D.c
Changed a warning message so it's not so alarming.
./src/H5Fistore.c
Chunks can be cached.
./src/H5O.c
./src/H5Oprivate.h
Added H5O_copy() and H5O_free() to copy and free messages.
./src/H5P.c
./src/H5Ppublic.h
Added H5Pset_cache() and H5Pget_cache() and changed lots of
"template" to "property list".
./src/H5Z.c
./src/H5Zpublic.h
Miscellaneous little things to clean up. Mostly just removed
H5Z_MAXVAL and added H5Z_USERDEF_MIN and H5Z_USERDEF_MAX.
./MANIFEST
./test/Makefile.in
./test/chunk.c [NEW]
Added a performance test for chunk caching. It looks at the
amount of I/O instead of timing because timing is partly
dependent on the chunk size and I wanted a measurement that
was a function of only the cache size. Run `chunk' with no
arguments and then say `gnuplot x-gnuplot' to see the plots
(press return between plots). Postscript files are created for
each plot.
./test/big.c
./test/cmpd_dset.c
./test/extend.c
./test/external.c
./test/gheap.c
Added H5F_ACC_DEBUG so we can see cache performance
statistics.
./src/H5F.c
./src/H5G.c
./src/H5O.c
./src/H5Osdspace.c
./src/H5T.c
./src/H5Tconv.c
./src/H5Z.c
./test/big.c
./test/cmpd_dset.c
./test/dsets.c
./test/extend.c
./test/istore.c
Now that I have a home-grown version of Purify I fixed all the
leaks in all the test files.
----------------------
./src/H5B.c
./src/H5D.c
./src/H5Dprivate.h
./src/H5Dpublic.h
./src/H5F.c
./src/H5Farray.c
./src/H5Fcore.c
./src/H5Ffamily.c
./src/H5Fistore.c
./src/H5Flow.c
./src/H5Fprivate.h
./src/H5Fpublic.h
./src/H5Fsec2.c
./src/H5Fsplit.c
./src/H5Fstdio.c
./src/H5G.c
./src/H5Gent.c
./src/H5Gnode.c
./src/H5HG.c
./src/H5HL.c
./src/H5MF.c
./src/H5MFprivate.h
./src/H5O.c
./src/H5Ocont.c
./src/H5Odtype.c
./src/H5Oefl.c
./src/H5Olayout.c
./src/H5Oname.c
./src/H5Oprivate.h
./src/H5Osdspace.c
./src/H5Oshared.c
./src/H5Ostab.c
./src/H5P.c
./src/H5Ppublic.h
./src/H5S.c
./src/H5Sprivate.h
./src/H5Spublic.h
./src/H5Ssimp.c
./src/H5Tconv.c
./src/H5Tpkg.h
./src/H5V.c
./src/H5Vprivate.h
./src/H5private.h
./src/H5public.h
./src/h5ls.c
./test/cmpd_dset.c
./test/dsets.c
./test/extend.c
./test/external.c
./test/hyperslab.c
./test/iopipe.c
./test/istore.c
./test/shtype.c
./test/tfile.c
./test/th5s.c
Anything having to do with the size of a dataset now uses the
types `hsize_t' and `hssize_t' which must be the same size and
at least as large as `size_t'. This isn't fully tested yet,
so hsize_t and hssize_t are defined as size_t and ssize_t in
H5public.h. Setting them to larger values will trip up gcc
versions less than 2.8.1 on x86 platforms.
Documented unused function formals with `__unused__' before
the formal name. This also has the effect of supressing
warning messages for gcc since it's defined to be
`__attribute__((unused))' in the H5private.h file.
./src/debug.c
./src/h5ls.c
If the file name contains a `%' then the file is opened as a
file family with H5P_DEFAULT for the file member access
property list.
./src/h5ls.c
The group name is optional, defaulting to `/'.
./src/hdf5.h
Added some missing public header files.
----------------------
./configure.in
Moved setting of compiler warning switches earlier in the file.
Turned on more warning switches to gcc.
./config/linux
Prints a warning if the gcc version is less than 2.8.1 since
that version has problems with register allocation for `long
long'.
./html/Datatypes.html
Documented sharing of data types between datasets.
./src/H5G.c
./src/H5Gpublic.h
Implemented H5Gmove(), H5Glink() and H5Gunlink() for hard
links. Still have soft links to do.
./src/H5AC.c
./src/H5ACprivate.h
./src/H5D.c
./src/H5E.c
./src/H5Eprivate.h
./src/H5F.c
./src/H5Farray.c
./src/H5Fcore.c
./src/H5Ffamily.c
./src/H5Fistore.c
./src/H5Flow.c
./src/H5Fprivate.h
./src/H5Fpublic.h
./src/H5Fsec2.c
./src/H5Fstdio.c
./src/H5G.c
./src/H5Gent.c
./src/H5Gnode.c
./src/H5Gpkg.h
./src/H5Gprivate.h
./src/H5HG.c
./src/H5HL.c
./src/H5HLprivate.h
./src/H5I.c
./src/H5Iprivate.h
./src/H5MM.c
./src/H5MMprivate.h
./src/H5O.c
./src/H5Oefl.c
./src/H5Oprivate.h
./src/H5Osdspace.c
./src/H5Oshared.c
./src/H5Ostab.c
./src/H5P.c
./src/H5S.c
./src/H5Ssimp.c
./src/H5T.c
./src/H5Tconv.c
./src/H5Tprivate.h
./src/H5Tpublic.h
./src/H5V.c
./src/H5Vprivate.h
./src/H5detect.c
./src/h5ls.c
./test/cmpd_dset.c
./test/dsets.c
./test/external.c
./test/hyperslab.c
./test/iopipe.c
./test/istore.c
./test/shtype.c
./test/tstab.c
Fixed comparisons between signed and unsigned values. Fixed
warnings about unused function arguments.
----------------------
./src/H5D.c
./src/H5T.c
./src/H5Tprivate.h
Fixed a bug found by Kevin Powell regarding preservation of
existing data during a read or write when the source and
destination data types are the same. Thanks Kevin!
Fixed a couple warnings on Irix64.
./src/H5D.c
./src/H5Dprivate.h
./src/H5P.c
./src/H5Ppublic.c
./src/H5Tconv.c
./src/H5Tpublic.h
./test/cmpd_dset.c
The application can now turn on/off the part of the I/O
pipeline that deals with preservation of initialized data.
The default is off since this will be the usual case and
turning it on slows down the pipe. Use H5Pset_preserve() and
H5Pget_preserve().
./src/H5Fistore.c
Added an optimization for reading/writing a single chunk of
chunked storage.
./src/H5Odtype.c
./src/H5Oefl.c
./src/H5Olayout.c
./src/H5Oname.c
./src/H5Osdspace.c
./src/H5Ostab.c
Fixed warnings reported by marek@iiasa.ac.at. Thanks Marek.
./src/H5Odtype.c
Fixed a failing assert() wrt reading compound types (not
present in hdf5-1.0.0a).
----------------------
./configure.in
./src/H5Fprivate.h
./src/H5Fsec2.c
We now detect and use lseek64() on systems that have it (e.g.,
Irix64) and are able to generate >2GB files on Irix XFS file
systems (and anything else that supports large files). This
change also removed some warning messages from the Irix `-64'
compiler.
> $ ls -l istore.h5
> -rw-r--r-- 1 matzke meshtv 8605436856 Feb 17 14:03 istore.h5
./configure.in
./src/H5Fprivate.h
./src/H5Fstdio.h
We now detect and use fseek64() on systems that have it (e.g.,
Irix64) and are able to generate >2GB files on Irix XFS file
systems (and anything else that supports large files). This
change also removed some warning messages from the Iris `-64'
compiler.
./src/H5E.c
./src/H5Epublic.h
Added the H5E_OVERFLOW error to signal file address overflow.
./src/H5Fpublic.h
./examples/h5_chunk_read.c
./examples/h5_compound.c
./examples/h5_extend_write.c
./examples/h5_group.c
./examples/h5_read.c
./examples/h5_write.c
./html/Datasets.html
./html/Files.html
./html/H5.api.html
./html/H5.intro.html
./html/H5.sample_code.html
./html/ph5example.c
./html/review1.html
./test/cmpd_dset.c
./test/dsets.c
./test/extend.c
./test/tfile.c
./test/th5p.c
./test/theap.c
./test/tohdr.c
./test/tstab.c
./testpar/phdf5.c
Renamed file access constants to follow the naming scheme.
Also changed the base names a little to be more accurate as to
what they do. The old names H5ACC_WRITE and H5ACC_OVERWRITE
will temporarily work.
H5ACC_DEFAULT --> H5F_ACC_RDONLY for H5Fopen()
H5ACC_DEFAULT --> H5F_ACC_EXCL for H5Fcreate()
H5ACC_WRITE --> H5F_ACC_RDWR
H5ACC_OVERWRITE --> H5F_ACC_TRUNC
Albert or Kim: The H5ACC_INDEPENDENT and H5ACC_COLLECTIVE
macros in H5Fpublic.h should be an enum typedef and have names
more like H5F_MPIO_INDEPENDENT and H5F_MPIO_COLLECTIVE. Also
change the access_mode argument of H5Cset_mpio().
H5Fcreate() and H5Fopen() are more strict now about which
flags are acceptable for the operation.
./src/H5Fprivate.h
./src/H5F.c
./src/H5C.c
Changed the file access template to make it more general. A
union contains a struct for each type of low-level driver and
the default template is initialized at run-time.
./src/H5Fpublic.h
./src/H5F.c
Added H5Fget_access_template() and cleaned up
H5Fget_create_template().
./src/H5C.c
The H5Cset_mpi() no longer trashes the file access template
when an error is detected. We check for errors and *then*
update the file access template.
Added H5C_close() so Albert and Kim have a place to release
the MPI communicator and info from the file access property
list.
Kim or Albert: I notice in H5Cset_mpi() you copy the MPI
communicator. Do you need to do something similar in
H5C_copy()?
./src/H5F.c
Added more error checking for the file creation and access
property lists because it used to be possible to make the
library dump core by swapping the creation and access property
list ID numbers of H5Fcreate().
./test/istore.c
./test/tfile.c
./test/th5p.c
./test/theap.c
./test/tohdr.c
./test/tstab.c
./testpar/testphdf5.c
One must pass H5C_DEFAULT as the file creation or access
property list in order to get the default property list. It
is no longer possible to pass zero or any other arbitrary bad
object ID.
./src/H5Fcore.c
./src/H5Ffamly.c
./src/H5Flow.c
./src/H5Fmpio.c
./src/H5Fsec2.c
./src/H5Fsplit.c
./src/H5Fstdio.c
./src/H5MF.c
The file access property list is passed to all H5F_low_...()
functions and to the drivers.
./src/H5Fcore.c
The block size can be set at run time on a per-file basis
instead of at compile time across all files. The "5000 items in
a group test" now takes 1.6 seconds.
./src/H5private.h
Removed inclusion of mpi.h and mpio.h since they're included
from H5public.h.
./src/H5Cpublic.h
./src/H5C.c
Added H5Cset_stdio(), H5Cset_sec2(), H5Cset_core(),
H5Cset_split(), and H5Cset_family() in addition to the
H5Cset_mpio() that Kim and Albert already wrote. We still
need the H5Cget_driver() and an H5Cget...() counterpart for
each of those functions. The split and family drivers still
need a little work but I'm checking this in anyway.
while he is visiting LLNL. I changed the default creation template
offset and length to 4. Will fix the problem later.
Changes since 19980205
----------------------
./src/H5H.c
./src/H5Hprivate.h
./src/H5O.c
./src/H5Ocont.c
./src/H5Odtype.c
./src/H5Oefl.c
./src/H5Olayout.c
./src/H5Oname.c
./src/H5Onull.c
./src/H5Oprivate.h
./src/H5Odspace.c
./src/H5Ostab.c
./src/debug.c
./html/H5.format.html
Added an extra 4-byte field after the heap magic number for
alignment on the DEC alpha. Changed object header message
alignment to 8-bytes.
./src/H5F.c
./src/H5Farray.c
./src/H5Ffamily.c
./src/H5Fistore.c
./src/H5Flow.c
./src/H5Fprivate.h
./src/H5Fsec2.c
./src/H5Fstdio.c
./src/H5Gnode.c
./src/H5O.c
./src/H5Odtype.c
./src/H5P.c
./src/H5Pprivate.h
./src/H5T.c
./src/H5Tconv.c
./src/H5Tpkg.h
./src/H5Tpublic.h
./src/H5V.c
./src/H5detect.c
./test/cmpd_dset.c
./test/dsets.c
./test/dtypes.c
./test/extend.c
./test/hyperslab.c
./test/istore.c
./test/th5p.c
./test/theap.c
Fixed a few irix64 warnings regarding size_t vs. int,
variables set but not used, printf formats
./config/irix64
Added `-woff 1196' to get rid of errors about __vfork() being
implicitly defined in a system header file.
./src/H5B.c
Fixed a stack alignment problem.
----------------------
./INSTALL
Added instructions for which C flags to set for debugging.
./src/H5C.c
./src/H5Cpublic.h
H5Cset_chunk() takes const pointer.
./src/H5D.c
./src/H5Dprivate.h
./src/H5Dpublic.h
Added H5Dextend() to extend the dimensions of a dataset.
./src/H5Osdspace.c
./src/H5P.c
./src/H5Pprivate.h
./src/H5Ppublic.h
./test/cmpd_dset.c
./test/dsets.c
./test/th5p.c
Added the optional `maxdims' argument to H5Pcreate_simple()
and defined constant H5P_UNLIMITED which can appear in the
maxdims. Added `const' to arguments.
Implemented H5Pcopy()
Removed the unused file argument from H5P_modify.
Added H5P_extend().
Removed the `flags' field from simple data types and we
determine if the `max' or `perm' arrays are valid by looking
at the pointer. Cleaned up the H5O_sdspace_debug output.
./src/H5T.c
Fixed a printf format.
./MANIFEST
./test/Makefile.in
./test/extend.c [NEW]
Added a test for multi-dimensional unlimited dimensions.
----------------------
./RELEASE
Added Library functions that I missed the first time.
./html/Datasets.html
Added an example for Elena's question about how to read a
single member of a compound data type so it becomes an array
of that member in memory.
./src/H5Pprivate.h
Fixed the prototype for H5P_get_hyperslab() to match the
definition.
./src/H5Psimp.c
Oops, added the kludge back in for the offset argument, which
is still an `intn' instead of a `size_t'.
./src/H5.c
./src/H5public.h
./src/H5F.c
./src/H5T.c
./src/H5Tpublic.h
Changed H5init() to H5open() and added an H5close() to fit our
create/open/close paradigm. The H5open() happens
automatically on the first call to the HDF5 library. The
H5close() happens automatically on exit() (unless the app
turns off that feature). H5close() closes all datasets and
files and releases all resources used by the library.
./test/dsets.c
Added calls to H5open() and H5close() to test them.
./test/dtypes.c
Removed call to H5init() since we no longer need it there.
./src/H5Fstdio.c
Changed the PABLO_MASK to the right value. Thanks Kim.
Problem:
Step 8 failed because H5Pcreate_simple expects size_t dimension
array but the code used an int array. (In IRIX64 -64 mode, size_t
is a 64bit unsigned long but ints are only 32 bits long.) casting
it to size_t* just avoided warning message but did not change the
data type.
Solution:
Throw in a kludge by using a temporary dimension array of size_t.
Can't change the type of h_size since it is also used for the hyperslab
routine which expects an int dimension array. The Hyperslab routine
will be changed. Put in a patch for now.
----------------------
./config/conclude.in
The maintainer-clean target removes Emacs backup files,
mirroring backup and contrib files, core files, and profile
output files in addition to what it used to remove.
./src/H5D.c
Fixed a buffer allocation bug in the output pipeline.
./src/H5Gnode.c
Fixed a comparison against size_t
./test/Makefile.in
Added the other temporary h5 files to the `MOSTLYCLEAN' var.
./test/cmpd_dset.c
Added four tests for partial I/O. Don't you just love it when
something works on the first try!
----------------------
./src/H5D.c
./src/H5Dpublic.c
Added H5Dget_space().
./src/H5Gstab.c
./src/H5H.c
Fixed a comparison with size_t against <0.
./src/H5P.c
./src/H5Pprivate.h
./src/H5Ppublic.h
Changed `intn' to `int' for public function args and
returns. H5Pget_hyperslab() returns the dimensionality.
./test/testhdf5.h
Clears error stack more frequently.
./src/H5Psimp.c
./test/cmpd_dset.c
Impelementing data space conversion.
----------------------
./src/H5D.c
./src/H5T.c
./src/H5Tconv.c
./src/H5Tpkg.h
./src/H5Tprivate.h
./src/H5Tpublic.h
./test/cmpd_dset.c
Added support to turn background buffer on/off to help speed
up conversions. Currently, every type of conversion turns it
off except compound-->compound conversions which always turn
it on. In the future the compound-->compound conversions
might be more frugal.