Documentation
Solution:
Reference the README file in testpar directory for expansion on
how to input User preferered file prefixes.
Platform tested:
ASCI Red
New feature
Problem:
Source code must be modified prior to compiling to allow full
filenames to contain preferred user directories. Source must be
recompiled everytime the preferred user directory changes.
Solution:
Instead, allow file prefixes preferred by user to be passed at
runtime using the arguments "-f <prefix>". The "-f" to signal the
next argument is to be a file prefix, and the "<prefix>" to be the
actual prefix used.
Platform tested:
ASCI Red
Fixed a bug that caused `h5vers -i' to fail with a usage
message. The new behavior is the same as `h5vers -i release'
which increments the release number.
./bin/snapshot
A shell script intended to be run nightly from cron which
compares the current version of hdf5 against the previous
version. If there are differences it creates a tar file in an
ftp directory, increments the hdf5 release number, and commits
the changes back into the cvs repository. The name of the ftp
directory in which to place the release can be given on the
command line (default /hdf3/ftp/pub/outgoing/hdf5/snapshots).
The CVSROOT environment variable must be set.
Simplified greatly. When run from the top of the hdf5 source
tree with no arguments a new tar file is created in the
`releases' directory. When given one or more of the words
`tar', `compress', `gzip', or `bzip2' each type of archive is
created. The name of the releases directory can be changed
with the `-d DIR' switch.
----------------------
./MANIFEST
./test/Makefile.in
./test/mtime.c [NEW]
Test for the modification time message.
./src/H5AC.c
./src/H5Fistore.c
Turned off printing of statistics on H5close() if H5AC_DEBUG
isn't defined.
----------------------
./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.
----------------------
./tools/h5dump.c
./tools/h5ls.c
./tools/h5tools.h
Able to handle compound data types now. Moved code that
chooses memory data type based on file data type from h5ls to
libh5tools.a(h5dump.o)
----------------------
./src/H5A.c
./src/H5Apublic.h
./test/tattr.c
Switched the order of the second and third argument of
H5Aget_name() to make it consistent with other functions that
take buffers and buffer sizes.
./src/H5G.c
./src/H5Gpublic.h
./src/H5Gprivate.h
The H5Gget_comment() function returns the size of the comment
including the null terminator. If the object has no comment
then zero is returned. If an error occurs then a negative
value is returned.
./MANIFEST
./tools/Makefile.in
./tools/h5tools.h [NEW]
./tools/h5dump.c [NEW]
Created a library for printing values of datasets in a way
that looks nice. It's not done yet, but I needed it for
debugging the contents of files from Jim Reus.
./tools/h5ls.c
Added the `-d' and `--dump' options which cause the contents
of a dataset to be printed. Added `-w N' and `--width=N'
options to control how wide the raw data output should be. If
you want single-column output then say `-w1'.
Printing dataset values can now handle datasets of any integer
or floating point atomic type. As a special case, integers
which are one byte wide are treated a character strings for
now.
Sample output:
$ h5ls --dump --width=60 banana.hdf
ARCHIVE 0:0:0:744 Dataset {52/Inf}
Data:
(0) "U struct complex { double R; double I; };\012V"
(43) " double;\012"
U 0:0:0:2500 Dataset {256/512}
Data: printing of compound data types is not implemented yet
V 0:0:0:3928 Dataset {256/512}
Data:
(0) 0, 0.015625, 0.03125, 0.046875, 0.0625,
(5) 0.078125, 0.09375, 0.109375, 0.125, 0.140625,
(10) 0.15625, 0.171875, 0.1875, 0.203125, 0.21875,
(15) 0.234375, 0.25, 0.265625, 0.28125, 0.296875,
...
----------------------
./src/H5.c
Handle hid_t of type H5_TEMPBUF, arguments usually called tbuf_id.
Added array tracing where the array rank is stored in a simple
data space. Just use the name of the data space argument when
declaring the array argument:
herr_t
H5Sselect_hyperslab (hid_t space_id, H5S_seloper_t op,
const hssize_t start[/*space_id*/],
const hsize_t _stride[/*space_id*/],
const hsize_t count[/*space_id*/],
const hsize_t _block[/*space_id*/])
and when the program runs you'll see array values printed:
H5Sselect_hyperslab(space=218103813, op=H5S_SELECT_SET,
start=0xbfffef4c {0}, _stride=NULL,
count=0xbfffef44 {64},
_block=NULL) = SUCCEED;
Added more symbolic data types to the tracing output.
./src/H5A.c
./src/H5Apublic.h
./src/H5D.c
./src/H5Dpublic.h
./src/H5F.c
./src/H5Fpublic.h
./src/H5G.c
./src/H5Gpublic.h
./src/H5P.c
./src/H5Ppublic.h
./src/H5S.c
./src/H5Sall.c
./src/H5Shyper.c
./src/H5Spoint.c
./src/H5Spublic.h
./src/H5Sselect.c
./src/H5Ssimp.c
./src/H5TB.c
./src/H5V.c
Changed some API argument names to be more consistent with
other API functions and to produce better tracing output.
Reformatted some long lines. Indented printf statements.
./tools/h5ls.c
Fixed warnings about unsigned vs. signed comparisons.
----------------------
./tools/h5ls.c
If the dataset is of type H5T_NATIVE_CHAR then we print the
value as a string. This is temporary -- I plan to add better
control of this later but needed something now for debugging.
./src/H5Fistore.c
Squashed a bug in the chunk caching code that caused the wrong
chunk to be returned.
./bin/trace
./src/H5.c
Added support for printing values of array arguments when the
size of the array is supplied by some previous argument. You
must declare the argument as an array in order for the
automatic tracing stuff to work. For instance, the third
argument of H5Pset_chunk() is an array whose size is
determined by the second argument `ndims'. Here's how you
should declare it:
herr_t
H5Pset_chunk(hid_t plist_id, intn rank, hsize_t dims[/*rank*/])
The comment inside the `[]' is the name of some previous
integer argument (int, unsigned, size_t, ssize_t, hsize_t,
hssize_t). The trace output will look something like:
H5Pset_chunk(plist=1234567, rank=2, dims=0x112233 {11, 22})
Changed tracing so that data types are printed out
symbolically when possible.
Changed tracing so data type initializations are not printed.
This used to be confusing because lots of H5Tcopy() and
H5Tregister...() calls showed up before the applications first
explicit API call.
./src/H5Ipublic.h
Changed the file atom group from zero to one so printing of
atoms during tracing is more consistent -- they're all big
numbers now.
./src/H5A.c
./src/H5E.c
./src/H5F.c
./src/H5G.c
./src/H5Sselect.c
./src/H5T.c
./src/H5TB.c
./src/H5Z.c
Accidently modified these when working on the tracing, but
nothing should have changed.
./src/H5P.c
Changed the definition of H5Pset_chunk() for tracing.
./src/H5S.c
./src/H5Spublic.h
Changed the definitions of H5Sset_extent_simple() and
H5Screate_simple() for tracing. Changed the FUNC_ENTER() name
for H5Screate_simple() so tracing shows the correct name.
----------------------
./test/dtypes.c
We try to detect whether floating point overflow generates a
SIGFPE and if it does we don't test overflow cases.
./test/H5Sprivate.h
./test/H5S.c
./test/H5Oattr.c
Added an H5S_debug() which is called from H5O_attr_debug() and
which has a switch statement to handle the various data type
messages.
----------------------
./src/H5Gpublic.h
./src/H5Gprivate.h
./src/H5G.c
./test/dsets.c
./doc/html/Groups.html
Added the H5Gset_comment() and H5Gget_comment() functions
described in an earlier e-mail.
./src/H5.c
Fixed a bug in the tracing code that caused certain data space
enum types to not be printed. Nested case statements can get
confusing to the eyes!
./tools/h5ls.c
Prints the first 50 bytes or so of object comments.