hdf5/Changes
Robb Matzke eb8747499d [svn-r1802] Changes since 19991019
----------------------

./MANIFEST
./configure.in
./configure			[REGENERATED]
	Added more checking for `make' features.

./Makefile.in
./doc/Makefile.in
./doc/html/Makefile.in
./doc/html/Tutor/Makefile.in
./examples/Makefile.in
./pablo/Makefile.in
./src/Makefile.in
./test/Makefile.in
./testpar/Makefile.in
./tools/Makefile.in
./config/commence.in
./config/conclude.in
./config/depend.in		[REMOVED]
./config/depend1.in		[NEW]
./config/depend2.in		[NEW]
./config/depend3.in		[NEW]
./config/depend4.in		[NEW]
./config/dependN.in		[NEW]
	The directory search stuff was moved into commence.in, thereby
	shortening the Makefile.in prologues.

./doc/html/Dependencies		[NEW]
./doc/html/Tutor/Dependencies	[NEW]
./examples/Dependencies		[NEW]
./src/Dependencies		[NEW]
./test/Dependencies		[NEW]
./testpar/Dependencies		[NEW]
./tools/Dependencies		[NEW]
	The `.distdep' files were all renamed to `Dependencies' to make them
	more obvious. They are required (but may be empty) in every directory
	that has a Makefile.in that ends with @CONCLUDE@ (you'll get an
	obvious error from make if you forgot to create one).

./bin/trace
./src/H5.c
	Added H5E_major_t and H5E_minor_t although tracing only prints the
	integer value.

./src/H5E.c
./src/H5Epublic.h
	Added tracing information.

./src/H5FDcore.c
./src/H5FDfamily.c
./src/H5FDgass.c
./src/H5FDmpio.c
./src/H5FDsec2.c
./src/H5FDstdio.c
	Fixed places where FUNC_LEAVE() evaluated it's argument more than
	once.

	Added tracing information.

	Wrapped long lines.

./config/gnu-flags
	Fixed a syntax error when we don't have a gnu compiler.
1999-11-01 10:21:16 -05:00

10677 lines
280 KiB
Plaintext

-*- indented-text -*-
==============================================================================
Changes since 19991019
----------------------
./MANIFEST
./configure.in
Added more checking for `make' features.
./Makefile.in
./doc/Makefile.in
./doc/html/Makefile.in
./doc/html/Tutor/Makefile.in
./examples/Makefile.in
./pablo/Makefile.in
./src/Makefile.in
./test/Makefile.in
./testpar/Makefile.in
./tools/Makefile.in
./config/commence.in
./config/conclude.in
./config/depend.in [REMOVED]
./config/depend1.in [NEW]
./config/depend2.in [NEW]
./config/depend3.in [NEW]
./config/depend4.in [NEW]
./config/dependN.in [NEW]
The directory search stuff was moved into commence.in, thereby
shortening the Makefile.in prologues.
./doc/html/Dependencies [NEW]
./doc/html/Tutor/Dependencies [NEW]
./examples/Dependencies [NEW]
./src/Dependencies [NEW]
./test/Dependencies [NEW]
./testpar/Dependencies [NEW]
./tools/Dependencies [NEW]
The `.distdep' files were all renamed to `Dependencies' to make them
more obvious. They are required (but may be empty) in every directory
that has a Makefile.in that ends with @CONCLUDE@ (you'll get an
obvious error from make if you forgot to create one).
./bin/trace
./src/H5.c
Added H5E_major_t and H5E_minor_t although tracing only prints the
integer value.
./src/H5E.c
./src/H5Epublic.h
Added tracing information.
./src/H5FDcore.c
./src/H5FDfamily.c
./src/H5FDgass.c
./src/H5FDmpio.c
./src/H5FDsec2.c
./src/H5FDstdio.c
Fixed places where FUNC_LEAVE() evaluated it's argument more than
once.
Added tracing information.
Wrapped long lines.
./config/gnu-flags
Fixed a syntax error when we don't have a gnu compiler.
Changes since 19991007
----------------------
./configure.in
./src/H5config.h.in [REGENERATED]
The /usr/ncsa/{include,lib} directories are only added if they
actually exist. This fixes a warning on some systems.
Checks for the <pdb.h> header file and also for either the PDB or Silo
library, and if found prepares to compile the pdb2hdf program.
./config/distdep
Relative path names for include files are changed to base names since
the makefile contains the logic for searching and since it's likely
that building the .distdep files happed from a location other than
where they would be used in the file system.
./config/conclude.in
Fixed shell errors when `for' loops iterate over nothing for the
`uninstall' target.
./src/H5D.c
./src/H5Oefl.c
File names for the external files are added to the heap when the
dataset is created instead of when the object header is written. This
fixes a rare infinite recursion bug.
./src/H5FD.c
./src/H5FDpublic.h
Optimization to the free list causes H5FD_alloc() usage to go from >10
seconds to <0.4 second for one example (converting a 30MB equation of
state file from PDB to HDF5 format). The optimization is to simply
keep track of the largest item in the free list and not search the
free list when the largest item is not big enough to satisfy the
request.
./src/H5FDcore.c
./src/H5FDcore.h
./test/h5test.c
If the `backing_store' property is true then a flush causes the entire
contents of memory to be written to the specified file. This is in
preparation for the ASCI/red optimizations and is currently tested by
the pdb2hdf `--cached' switch.
./src/H5Odtypes.c
Wrapped three long lines.
./tools/Makefile.in
./tools/pdb2hdf.c [NEW]
A PDB-to-HDF5 translator. It only translates meta data -- the
resulting HDF5 points into the PDB file for the raw data.
Changes since 19991007
----------------------
./src/H5FDcore.c
Includes private headers instead of public in order to use the
`UNUSED' macro.
./src/H5FDpublic.h
Includes H5public.h just in case.
./src/H5P.c
Removed two unused variables in H5P_copy()
./src/H5FDgass.h
Fixed a C++ comment after a `#endif'
./src/Makefile.in
The H5FDgass.h file is public and must be installed in order for
applications to be able to use HDF5.
./tools/h5tools.c
Removed an unused variable.
./tools/h5ls.c
Fixed an error message when the file cannot be opened.
./src/Makefile.in
H5FDgass.h is a public header file that needs to be installed.
Changes since 19990915
----------------------
./src/H5public.h
We undefine a bunch of things that could get redefined in the config
file because some customers have applications that include headers
from multiple packages, all of which might be using autoconf.
Include <stdint.h> for the C9x types.
./test/h5test.h
More flushing of stdout for when testing is redirected down a pipe.
./tools/h5ls.c
Added a `-S' or `--simple' switch which causes the output to be
simplified somewhat for easier parsing by other scripts. For instance,
characters are escaped using a very simple mechanism instead of C's
more complicated backslash notation, data doesn't have `{}' or `[]'
characters interspersed for compound and array types, and data is
printed with exactly one element per line. This switch is now used by
an HDF5-to-HTML CGI script being developed for the DMF people.
./tools/h5tools.c
./tools/h5tools.h
The repeat threshold which controls how strings are printed when a
character repeats a bunch of times is now settable at runtime instead
of compile time. The default is to show all characters, like
"abceeeeeeeeeeeeeeeeeeeeeeeeeeeeeefgh"
But if you set it to something like 5 then any sequence of 5 or more
characters is replaced by something shorter, like:
"abc" 'e'x30 "fgh" or
Added an `str_locale' property which describes how to escape special
characters in strings. The default is C-like escapes but an
alternative is ESCAPE_HTML which replaces all non-alphanumeric
characters with a 3-character HTML escape of the form `%XX'
Fixed a bug where empty strings didn't even have the quote characters
printed. Now empty strings show up as `""' instead of absolutely
nothing.
Added a `per_line' property which controls the maximum number of
elements which will appear per line of output. The default is infinity
but in practice the right margin causes line breaks. By setting the
`per_line' value to one and the right margin to a very large value one
can achieve output with exactly one element per line.
Changes since 19990826
----------------------
./src/H5O.c [1.2, 1.3]
Fixed a read-uninitialized-memory error that resulted in the
file containing small amounts (<8 bytes each) of uninitialized
data. These padding areas (which are never read by hdf5) are
initialized to zero now.
./MANIFEST
./src/H5Z.c
./src/H5Zdeflate.c [NEW]
./src/H5Zprivate.h
./src/H5Zpublic.h
./src/Makefile.in
The zlib filter was moved to a separate file but is still
automatically defined.
Changes since 19990826
----------------------
./src/libhdf5.settings.in [1.2, 1.3]
Added C proprocessor flags and non-library linker flags to the
description.
./src/H5T.c [1.2, 1.3]
Changed return type in tracing macros to H5Tenum_nameof() and
H5Tenum_valueof().
Changes since 19990825
----------------------
./src/H5O.c [1.2, 1.3]
Initialzed the padding area between the end of a message and
the end of the space allocated for that message. This
hopefully fixes an UMR error found by Quincey and prevents the
file from containing unwanted data.
./tools/h5ls.c [1.2, 1.3]
Fixed a bug where the `Data:' tag didn't get printed for
attributes that have more than five values.
Changes since 19990824
----------------------
./src/H5private.h
Re-committed recent changes that got clobbered in the pablo update.
Albert, the source tree should be compilable again now...
./configure.in [1.2, 1.3]
./configure [REGENERATED]
./Makefile.in
Fixed a couple spelling errors.
Changes since 19990820
----------------------
./src/H5D.c
Added additional elements to a variable initializer in
H5Dvlen_get_buf_size() to shut up a warning message. Also
added the API tracing call.
./src/H5F.c
Added file opening optimizations. If the driver doesn't
support the ability to determine when two file handles refer
to the same file (like MPIO and GASS) then H5F_open() makes
fewer calls to the driver's open callback. Also, if the
tentative file access flags are the same as the original flags
then H5F_open() makes fewer calls to the file device.
./src/H5FD.c
./src/H5FDprivate.h
./src/H5FDpublic.h
Added H5FD_get_class() so the library can get information
about what file driver callbacks are defined. This will be
useful when more optimization functions are added to the VFL,
such as for MPIO derived datatype I/O.
./src/H5FDcore.c
./src/H5FDfamily.c
./src/H5FDmpio.c
./src/H5FDmulti.c
./src/H5FDsec2.c
The driver symbols (like H5FD_CORE, etc) are actually function
calls. The functions were fixed to return correct values even
after calling H5close().
./src/H5FDmulti.c
./src/H5FDmulti.h
Added support for opening a file when parts are missing (only
if the caller explicitly allows that in the file access
property list).
Moved some common code sequences into macros or functions.
Added better support for reopening files. All the application
has to know is that the file is a multi file and the base name
from which all the member names are created.
More debugging output when the file is opened with the
H5F_ACC_DEBUG flag.
Fixed various bugs.
./src/H5Fistore.c
Chunked raw data was accidently allocated as meta data instead
of raw data.
./src/H5I.c
The H5Iget_type() function fails when invoked with an old
object ID (an ID which has been closed down).
./test/h5test.c
Added an extra argument when setting the multi file access
property lists so the test fails if it can't open one of the
sub-files.
./tools/h5ls.c
Improved the algorithm for deciding what file driver to
use. It basically tries all of the predefined drivers and is
now able to open family, split, and multi files without
looking for special characters in the file name.
Added `-e' and `--errors' switches which cause errors from
libhdf5 to be reported on stderr in addition to the simple
error message displayed by h5ls.
Changes since 19990817
----------------------
./configure.in [1.2, 1.3]
./configure [REGENERATED]
The checking for C9x types includes <stdint.h> if it
exists. This should fix a bug on Linux RedHat 6.0 (untested).
./src/H5private.h [1.2, 1.3]
The prototype for strdup() is protected in case strdup is also
a macro. This should fix a bug on Linux RedHat 6.0 (untested).
Changes since 19990817
----------------------
./src/H5D.c
./src/H5F.c
./src/H5FDmpio.c
./src/H5Fistore.c
./src/H5Fprivate.h
./src/H5Smpio.c
The `driver_id' for a file was accidently put in two
structs. I removed it from the H5F_file_t struct since it's
really an attribute of the VFL stuff.
More careful incrementing/decrementing the driver ID to fix a
memory leak.
./src/H5P.c
Rewrote H5Pcreate() in terms of H5P_copy() of a default
property list. This fixes some referencing counting bugs.
Changes since 19990817
----------------------
./src/H5D.c
./src/H5F.c
./src/H5Fistore.c
./src/H5Smpio.c
Incorporated previous changes into MPIO special cases. These
are mostly due to the fact that most of the members of the
file->shared->fapl struct have been moved into the
file->shared->file->shared struct (`file' is an H5F_t*).
./src/H5I.c
Fixed a bug with closing the library w.r.t. the VFL stuff. The
VFL layer introduced reference counts on object ID's and the
library termination functions freed these objects in the wrong
order. Now H5I_clear_group() does not normally remove objects
with a reference count larger than one because it assumes that
those objects are currently in use by the library.
Changes since 19990810
----------------------
./MANIFEST
./src/H5FDmulti.c [NEW]
./src/H5FDmulti.h [NEW]
./src/Makefile.in
./src/hdf5.h
The split driver was reimplemented as a more general "multi"
driver which is capable of splitting data into multiple files
like the family driver except the partioning is done by memory
usage type instead of address. The H5Pset_fapl_split()
function just calls H5Pset_fapl_multi() with arguments which
prepare to split the address space into two files: meta and
raw data.
This is the first version. I plan to allow the open() call to
relax a bit which would allow one to open an hdf5 file when
only the meta-data file is present. This would allow a very
large file to be split and stored on tape and the relatively
small meta file to be mirrored on disk to allow limited
browsing of the file (any request for raw data would fail).
./src/H5private.h
./src/H5F.c
./src/H5FD.c
./src/H5FDprivate.h
./src/H5FDpublic.h
./src/H5FDcore.c
./src/H5FDfamily.c
./src/H5FDmpio.c
./src/H5FDsec2.c
Added the ability for a file driver to store information in
the superblock which would be needed if the file were opened
again later for reading. The format is driver-defined which
allows users to extend it however they like.
./doc/html/H5.format.html
Added information about the new driver information block of
the superblock. This is where file drivers store information
they need in order to reopen the file later.
./src/H5F.c
./src/H5Fprivate.h
./src/H5FD.c
./src/H5FDprivate.h
./src/H5FDpublic.h
./src/H5FDcore.c
./src/H5FDfamily.c
./src/H5FDmpio.c
./src/H5FDsec2.c
./src/H5Fistore.c
./src/H5R.c
The file access properties and the file access property list
were decoupled, which allows the property list to more cleanly
contain properties for various levels of the file and which
allows the property list to be modified more cleanly when
opening files.
./src/H5.c
./src/H5FDpublic.h
Removed H5FD_MEM_META and H5FD_MEM_GROUP since they're never
used.
./src/H5D.c
Changed the way we detect the MPIO driver in all these special
cases.
./src/H5F.c
./src/H5Rpublic.h
./test/tfile.c
The default file sizeof(offset) was changed to be a function
of haddr_t instead of hsize_t.
THE H5RPUBLIC.H DEFINITIONS WILL HAVE PROBLEMS IF THE USER
CREATES A FILE WITH NON-DEFAULT OFFSET AND SIZE SIZES!
./src/H5F.c
Fixed an uninitialized memory access bug in file closing
related to the VFL.
./src/H5T.c
./src/H5Tpublic.h
Added an H5T_NATIVE_HADDR predefined datatype which
corresponds to the `haddr_t' type.
./test/Makefile.in
Reformatted long lines.
./test/big.c
./test/cmpd_dset.c
./test/dsets.c
./test/dtypes.c
./test/extend.c
./test/external.c
Removed the H5F_ACC_DEBUG flag from file creation/open calls.
./test/big.c
Plugged a memory leak.
./test/h5test.c
Added support for the `multi' driver.
Removed #warning about not having the stdio driver. Plans are
to not implement it since the sec2 driver serves the same
purpose and testing didn't show any difference in execution
times between the two.
Changes since 19990810
----------------------
./src/H5Sprivate.h
Fixed merge conflicts that I missed earlier.
Changes since 19990730
----------------------
This extensive change is the virtual file layer implementation. I've
ported and tested the sec2, family, and core drivers and only ported
the mpio driver (Albert will test it). So if you need MPIO I would
recommend sticking with the previous version for a while.
You will get a few compile warnings about split and stdio drivers not
being implemented and possibly tracing information not inserted in
some of the drivers. You can safely ignore them but I plan to fix
them.
I'm still working on the split driver because I just realized that it
needs a part of the VFL that isn't written yet.
Documentation is being updated also because there were some minor
changes (mostly just name changes). It should be available on my web
site later this week.
./MANIFEST
./src/Makefile.in
./src/hdf5.h
./src/H5Flow.c [REMOVED]
./src/H5Fstdio.c [REMOVED]
./src/H5Fsec2.c [REMOVED]
./src/H5Fsplit.c [REMOVED]
./src/H5Fmpio.c [REMOVED]
./src/H5Ffamily.c [REMOVED]
./src/H5Fcore.c [REMOVED]
./src/H5MFpublic.h [REMOVED]
./src/H5FD.c [NEW]
./src/H5FDcore.c [NEW]
./src/H5FDcore.h [NEW]
./src/H5FDfamily.c [NEW]
./src/H5FDfamily.h [NEW]
./src/H5FDmpio.c [NEW]
./src/H5FDmpio.h [NEW]
./src/H5FDprivate.h [NEW]
./src/H5FDpublic.h [NEW]
./src/H5FDsec2.c [NEW]
./src/H5FDsec2.h [NEW]
Removed/added files for virtual file layer.
./bin/trace
./src/H5.c
Removed unused public datatypes and added new VFL public
datatypes.
Changed an error message.
./config/BlankForm
./config/dec-flags
./config/gnu-flags
./config/hpux10.20
./config/hpux9.03
./config/irix5.x
./config/irix6.x
./config/solaris2.x
./config/unicosmk
Removed the H5F_OPT_SEEK and H5F_LOW_DFLT constants from the
configuration since they're no longer applicable. The default
file driver is always the sec2 driver and it always optimizes
calls to lseek() or lseek64().
./config/depend.in
C preprocessor errors generated during automatic dependency
building are sent to /dev/null to prevent them from appearing
twice in the make output.
./src/H5AC.c
./src/H5B.c
./src/H5D.c
./src/H5F.c
./src/H5G.c
./src/H5Gent.c
./src/H5Gnode.c
./src/H5HG.c
./src/H5HL.c
./src/H5O.c
./src/H5Oattr.c
./src/H5Odtype.c
./src/H5Oefl.c
./src/H5Oshared.c
./src/H5T.c
./src/H5detect.c
./test/ohdr.c
Changed H5F_ADDR_UNDEF to HADDR_UNDEF to be more consistent
with the `haddr_t' datatype which is now a public type.
./src/H5D.c
./src/H5P.c
./src/H5Ppublic.h
./src/H5Tconv.c
./test/cmpd_dset.c
./test/dsets.c
./test/overhead.c
./test/tselect.c
./test/tvltypes.c
The H5P_DATASET_XFER constant was changed to H5P_DATA_XFER
because the properties apply to all types of I/O operations,
not just datasets.
./src/H5B.c
./src/H5Bprivate.h
./src/H5D.c
./src/H5Dpublic.h
./src/H5F.c
./src/H5Farray.c
./src/H5Fistore.c
./src/H5Fprivate.h
./src/H5Fpublic.h
./src/H5Gnode.c
./src/H5Gpkg.h
./src/H5HG.c
./src/H5HL.c
./src/H5O.c
./src/H5R.c
./src/H5Sall.c
./src/H5Shyper.c
./src/H5Smpio.c
./src/H5Spoint.c
./src/H5Sprivate.h
./test/big.c
./test/h5test.c
./test/istore.c
./testpar/t_dset.c
./testpar/t_file.c
./tools/h5debug.c
./tools/h5ls.c
Modified to work with the virtual file layer by calling H5FD_*
functions instead of H5F_low_* functions and by passing file
access and data transfer properties by object ID instead of
pointer.
Changed H5D_transfer_t to H5FD_mpio_xfer_t since the
COLLECTIVE vs. INDEPENDENT transfer mode is specific to the
MPIO file driver.
Moved MPIO-specific stuff into the MPIO driver.
./src/H5B.c
./src/H5D.c
./src/H5Fprivate.h
The H5F_mpio_* private functions were renamed and placed in
the H5FDmpio driver except those which appeared in H5Smpio.c.
./src/H5E.c
./src/H5Epublic.h
Added major error number H5E_VFL for virtual file layer
related errors.
./src/H5F.c
./src/H5Fprivate.h
Changed the logic that controls whether the boot block is
written. Instead of assuming that the first call to write the
boot block is only to allocate space, I've added a function
argument which makes this explicit.
Changed the way files are compared so that a driver-defined
comparison function can be called. Files which belong to
different drivers are always considered different.
Removed H5F_driver_t since file drivers are now identified by
object ID instead of a special non-user-extendible datatype.
Removed all the hard-coded low-level file properties which
have been replaced by the various file drivers.
./src/H5I.c
./src/H5Iprivate.h
Added the H5I_inc_ref() which was removed a few months ago
since we finally have a use for it.
./src/H5Ipublic.h
Added the H5I_VFL object ID type to identify file drivers in
the virtual file layer.
./src/H5MF.c
./src/H5MFprivate.h
Moved all the allocation/deallocation code into the virtual
file layer which allows file drivers to override much of it.
./src/H5P.c
./src/H5Ppublic.h
Moved file driver-specific code into the various file driver
files.
The H5Pcopy() and H5Pclose() functions make calls into the
virtual file driver to manage the memory for driver-specific
file access and data transfer properties.
./src/H5private.h
./src/H5public.h
The `haddr_t' type is now public.
./test/tfile.c
Added a few more comments.
Changes since 19990728
----------------------
./RELEASE [1.2,1.3]
Updated release notes for 1.2.0 release
Changes since 19990728
----------------------
./src/H5B.c [1.3]
./src/H5D.c [1.3]
./src/H5F.c [1.3]
./src/H5Farray.c [1.3]
./src/H5Fcore.c [1.3]
./src/H5Ffamily.c [1.3]
./src/H5Fistore.c [1.3]
./src/H5Flow.c [1.3]
./src/H5Fmpio.c [1.3]
./src/H5Fprivate.h [1.3]
./src/H5Fsplit.c [1.3]
./src/H5Fstdio.c [1.3]
./src/H5G.c [1.3]
./src/H5HG.c [1.3]
./src/H5HL.c [1.3]
./src/H5MF.c [1.3]
./src/H5O.c [1.3]
./src/H5Odtype.c [1.3]
./src/H5Oefl.c [1.3]
./src/H5P.c [1.3]
./src/H5Smpio.c [1.3]
./src/H5T.c [1.3]
./src/H5detect.c [1.3]
./tools/h5debug.c [1.3]
Some of the H5F_addr_* functions were optimized away.
./src/H5D.c [1.3]
Fixed the return values from NULL to FAIL on one MPI-IO
function.
Changes since 19990727
----------------------
./src/H5.c [1.3]
./src/H5AC.c [1.3]
./src/H5ACprivate.h [1.3]
./src/H5B.c [1.3]
./src/H5Bprivate.h [1.3]
./src/H5D.c [1.3]
./src/H5F.c [1.3]
./src/H5Farray.c [1.3]
./src/H5Fcore.c [1.3]
./src/H5Ffamily.c [1.3]
./src/H5Fistore.c [1.3]
./src/H5Flow.c [1.3]
./src/H5Fmpio.c [1.3]
./src/H5Fprivate.h [1.3]
./src/H5Fsec2.c [1.3]
./src/H5Fsplit.c [1.3]
./src/H5Fstdio.c [1.3]
./src/H5G.c [1.3]
./src/H5Gent.c [1.3]
./src/H5Gnode.c [1.3]
./src/H5Gprivate.h [1.3]
./src/H5Gstab.c [1.3]
./src/H5HG.c [1.3]
./src/H5HGprivate.h [1.3]
./src/H5HL.c [1.3]
./src/H5HLprivate.h [1.3]
./src/H5MF.c [1.3]
./src/H5MFprivate.h [1.3]
./src/H5O.c [1.3]
./src/H5Oattr.c [1.3]
./src/H5Ocont.c [1.3]
./src/H5Odtype.c [1.3]
./src/H5Oefl.c [1.3]
./src/H5Olayout.c [1.3]
./src/H5Oprivate.h [1.3]
./src/H5Oshared.c [1.3]
./src/H5Ostab.c [1.3]
./src/H5P.c [1.3]
./src/H5R.c [1.3]
./src/H5Smpio.c [1.3]
./src/H5T.c [1.3]
./src/H5Tvlen.c [1.3]
./src/H5private.h [1.3]
./test/dtypes.c [1.3]
./test/gheap.c [1.3]
./test/istore.c [1.3]
./test/lheap.c [1.3]
./test/ohdr.c [1.3]
./tools/h5debug.c [1.3]
File addresses (the `haddr_t' type) are passed by value
instead of by reference. The type is no longer a struct. This
is one of the preliminary changes needed for the Virtual File
Layer stuff.
./src/H5Fprivate.h [1.3]
./src/H5Flow.c [1.3]
Some address functions were rewritten as macros.
Changes since 19990723
----------------------
NOTE: These bug fixes but have been applied only to the 1.3 branch per
Albert's request.
./config/gnu-flags [1.3]
Added support for gcc-2.95 by adding full optimization and
debugging flags and applied a patch from Marcus Daniels.
./src/Makefile.in [1.3]
Removes the `libhdf5.settings' file for `make clean'.
Changes since 19990719
----------------------
./configure.in [1.2, 1.3]
./configure [REGENERATED]
Changed $USER to `whoami` for setting the user name in
libhdf5.settings.
./test/dtypes.c [1.2, 1.3]
Fixed the decimal value which is printed for `dst' when an
error is detected. The hexadecimal value was correct.
Changes since 19990715
----------------------
./Makefile.in [1.3]
./examples/Makefile.in [1.3]
./pablo/Makefile.in [1.3]
./src/Makefile.in [1.3]
./test/Makefile.in [1.3]
./testpar/Makefile.in [1.3]
./tools/Makefile.in [1.3]
./config/commence.in [1.3]
./config/conclude.in [1.3]
./config/depend.in [1.3]
Added a `.PATH' target for Irix pmake which is identical to
the VPATH used by most other `make' programs. Irix 6.5 (or
6.4?) and later `make' ignores VPATH.
Started all beginning-of-line comments with `##' instead of
just `#' because Irix `pmake' barfs on things like the
following because it sees the `# if' as a directive:
# make will barf on the following line
# if running Irix pmake
./config/commence.in [1.3]
Added empty definitions for optional `make' macros because
Irix pmake complains if it sees a macro which has never been
defined. The main body of the Makefiles can redefine these
macros to whatever they need.
./bin/release [1.2, 1.3]
The SunOS 5.6 version of `sed' must have slashes as delimiters
so I made sure that's all that's used in this script even
though it makes one pattern almost unreadable.
Changes since 19990715
----------------------
./src/H5B.c [1.2, 1.3]
./src/H5Fistore.c [1.2, 1.3]
./src/H5Sall.c [1.2, 1.3]
Replaced second argument of HGOTO_ERROR/HRETURN_ERROR with a
minor error symbol (H5E_INTERNAL is a major error symbol).
Changes since 19990713
----------------------
./tools/h5tools.c [1.2, 1.3]
Fixed a bug reported by Albert: the indices for data printed
by h5ls were starting over at zero for each pass through the
strip mining loop.
Fixed indentation in one function.
Replaced commented-out code by #if 0
Changes since 19990623
----------------------
./bin/trace [1.2, 1.3]
./src/H5D.c [1.2, 1.3]
./src/H5P.c [1.2, 1.3]
./src/H5T.c [1.2, 1.3]
Added definitions for H5D_operator_t, H5MM_allocate_t, and
H5MM_free_t and regenerated tracing calls for the affected API
functions.
./config/gnu-flags [1.2, 1.3]
A warning is printed for all versions of EGCS before 2.91.67.
./configure.in [1.2]
./configure [REGENERATED]
Changed defaults: optimizations on, debugging and tracing off.
./bin/h5vers [1.3]
Added `use strict' and declared some variables.
./INSTALL [1.2, 1.3]
Updated version numbers. Fixed a couple typos.
./h5ls.c [1.2, 1.3]
Fixed usage message.
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.
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.
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.
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...
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.
Changes since 19990608
----------------------
./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').
Changes since 19990607
----------------------
./configure.in
./configure [REGENERATED]
./src/libhdf5.settings.in [NEW]
./config/conclude.in
./INSTALL
./MANIFEST
A file called `libhdf5.settings' is installed along with the
libraries and it contains a list of various things that might
be of interest to someone using the library (such as what
compiler/options were used and what other libraries might need
to be linked to satisfy external references). We can add more
things as it becomes necessary. Here's a sample...
SUMMARY OF THE HDF5 CONFIGURATION
=================================
HDF5 Version: hdf5-1.1.106
Configured on: Tue Jun 8 11:38:52 EDT 1999
Configured by: matzke@llnl.gov at Spizella Software
Configure mode: development
Host system: i686-pc-linux-gnulibc1
Byte sex: little-endian
Libraries: static, shared
Parallel support: mpicc
Installation point: /usr/local
Compiler: mpicc (egcs-2.91.66)
Compiler switches: -Wall -g
Extra libraries: -lmfhdf -ldf -lz -ljpeg -lm
Archiver: ar
Ranlib: ranlib
Debugged Packages: d,e,f,g,hg,i,mm,o,p,s,v,z
API Tracing: yes
File addresses: large
Changes since 19990607
----------------------
./tools/h5ls.c
./tools/h5tools.c
Added support for printing bitfields and opaque data.
./test/dsets.c
Added bitfield and opaque datasets to the output file so h5ls
has something interesting to print.
./test/trefer.c
Resync'd
./src/H5Tconv.c
Fixed bitfield conversion which resulted in possible garbage
in high-order bits of destination when the destination type is
larger than the source type. Thanks for spotting it, Quincey.
Changes since 19990607
----------------------
./tools/h5tools.c
Finished code which prints references (object and dataset
region). Patrick, if you tell me how h5dump should (or might
want to) print references I can make some changes to support
various formats...
You can try it out with:
cd test
env HDF5_NOCLEANUP=yes ./testhdf5
../tools/h5ls -dvr trefer1.h5
../tools/h5ls -dvr trefer2.h5
(run h5ls with no arguments if you forgot what the switches do)
./test/trefer.c
Call calloc instead of malloc in one place to prevent
uninitialized data from being written into the file.
Changes since 19990607
----------------------
./tools/h5ls.c
./tools/h5tools.c
./tools/h5tools.h
Finished the `-x' or `--hexdump' switch, which causes all data
to be printed in hexadecimal format with no translation from
file to memory data type.
Changes since 19990602
----------------------
./doc/html/Datatypes.html
./test/dtypes.c
Added documentation and tests for opaque types.
./tools/h5ls.c
Added a `-x' or `--hexdump' argument which is not fully
implemented (because I want to synchronize h5tools.c first)
but which will eventually print raw data in hexadecimal format
without any translation from disk. This would be useful for
debugging references and VL types.
./tools/h5tools.c
Added support for references (not quite finished yet, but
compiles -- I wanted to sync up this file before Patrick and I
got too far apart...)
./src/H5R.c
Checked for error return value from H5R_get_object_type()
./src/H5A.c
./src/H5D.c
Changed error return values from NULL to FAIL
./test/Makefile.in
./test/trefer.c
Creates trefer1.h5 and trefer2.h5 so that the second test
doesn't clobber the first file since the files might be useful
for debugging.
Changes since 19990430
----------------------
Remove changes from CVS
./bin/release
Added a `--nocheck' switch which causes the script to not
check the contents of the MANIFEST file against CVS. This is
sometimes useful when you need to make a quick snapshot but
the MANIFEST file is not quite up to date.
./src/H5D.c
Removed warnings for unused variables
./src/H5Fprivate.h
Removed the WIN32 definition for `uint' and changed the data
type for `eof_written' from `uint' to `uintn'. Shouldn't this
really be `hbool_t'?
./src/H5Odtype.c
./src/H5T.c
./src/H5Tconv.c
./src/H5Tpkg.h
./src/H5Tpublic.h
./test/dtypes.c
./doc/html/H5.format.html
Added support for bitfields and opaque data types.
Changes since 19990427
----------------------
./tools/h5ls.c
Added a `--address' (`-a') switch which causes h5ls to display
file addresses for raw data. For contiguous datasets it's just
a nice simple number, but for chunked datasets it's a list of
logical dataset coordinates, file addresses, filter masks, and
storage sizes.
Changed `--dump' switch to `--data'.
./src/H5D.c
./src/H5F.c
./src/H5Fprivate.h
Enhanced the indexed-storage B-tree iterator so it can dump
raw data addresses (and other info) to the standard error
stream.
Added H5Ddebug() so h5ls has a way to dump addresses for
datasets. I'm not sure what else this API function should do,
so I think we should discuss it before we document it. So far,
h5ls is the only thing that uses it, and we can easily change
that.
./src/H5Tconv.c
./test/dtypes.c
Finally had a chance to verify Paul's H5T_conv_s_s (general
string to string conversions) bug fixes and incorporate them
into H5T_conv_f_f (general floating-point to floating-point
conversions) and H5T_conv_i_i (general integer to integer
conversons). Thanks Paul.
./src/H5D.c
./src/H5S.c
./src/H5Sprivate.h
Added performance timers around data space read and write
callbacks. They were already there for the gather/scatter
callbacks.
The timings for read/write callbacks are displayed along with
gather/scatter when data space debugging is turned on.
./bin/iostats
Updated to print totals. Added a `--fast' option that doesn't
do any output except the totals and is much faster.
./bin/trace
Changed __unused__ to UNUSED to match source code.
./config/gnu-flags
Updated error message for pgcc. I've sent bug reports to the
pgcc people but the new version still has the same bug.
./configure.in
./config/conclude.in
./config/depend.in
Fixed dependencies for non-GNU makes when run in a directory
other than the hdf5 source tree.
Updated GNU `make dep' rules to copy the distributed
dependencies for non-GNU makes into the source tree when run
in some other directory.
Changes since 19990426
----------------------
./tools/h5tools.c
./tools/h5tools.h
Finally fixed a long-standing bug that caused core dumps if
a compound datum rendered to more than some number of
characters (we kept bumping up the limit at the risk of
violating stack size limits on some machines). The fix works
only on systems that have the vsnprintf() function (otherwise
a 4kB limit is imposed, which if violated probably dumps
core). If vsnprintf() is present then the library dynamically
allocates space for the output string.
Also made it possible to control how compound data is rendered
across multiple lines of output by allowing the caller to
specify where optional line-breaks get inserted. The output
functions split up the value at one or more optional
line-breaks to prevent it from wrapping around the screen.
If a datum doesn't fit on the current line but would fit on
the next line then it is printed on the next line regardless
of whether optional line-breaks would have prevent wrapping
around the screen. This makes it easier to find the beginnings
of compound data values. This feature is disabled by default
but can be enabled by the application.
If a datum doesn't fit on the current line and the previous
datum also occupied more than one line then we move to the
next line before printing. This makes it easier to find the
beginnings of compound data values but prevents the output
from looking fragmented if there are only a few long values
among mostly short values. This feature is disabled by
default but can be enabled by the application.
The application can control the printf() formats used for all
the native data types. The defaults are what the library used
to use: %g, %ld, %lu, %d, and %u
./tools/h5ls.c
Compound datatype values can now be split across multiple
lines of output instead of just wrapping. Also, when lots of
compound values are too long they all start at the beginning
of a line. This only required about 10 lines of changes in the
setup for tools library calls (I didn't modify the h5dump
program because it uses its own version of the tools library
that forked off long ago).
Added code for Win32 which is unable to cast `unsigned long
long' to `double'. If the dataset size exceeds (2^63)-1 then
the percent utilization is not displayed (this is easily
possible with chunked datasets). This is untested yet.
./configure.in
./src/H5config.h.in
./src/H5.c
./src/H5private.h
Check for vsnprintf() and provide a simple, stupid definition
if it isn't available. The stupid definition just calls
vsprintf() and ignores the second argument. This can result in
buffer overflows in h5ls and h5dump since vsprintf() is an
unsafe function (and anyone can create an hdf5 file that runs
an arbitrary command from h5ls and h5dump in that case)!
./config/conclude.in
Remove more *.o files for `make clean'
./src/H5A.c
./src/H5D.c
./src/H5F.c
./src/H5I.c
./src/H5Iprivate.h
./src/H5P.c
./src/H5R.c
./src/H5RA.c
./src/H5S.c
./src/H5T.c
./src/H5TB.c
Cleaned up a memory leak during H5_term_library() by allowing
H5I_clear_group() to skip items that couldn't be freed. This
allows the item to remain in the group until we can free it
later.
./src/H5F.c
The H5F_close_all() function fails if a file cannot be closed.
Changes since 19990426
----------------------
./config/commence.in
./examples/Makefile.in
./test/Makefile.in
./testpar/Makefile.in
./tools/Makefile.in
Fixed some dependency problems in Makefiles. If the library
version is updated then everything gets recompiled.
./src/H5G.c
./src/H5R.c
Failure return value for object type functions is now
H5G_UNKNOWN as documented.
./src/H5Shyper.c
./src/H5Spoint.c
Fixed an unused argument warning.
./tools/h5debug.c
Fixed a call to H5F_block_read() since the 4th argument is
different now.
./tools/h5ls.c
Added a space between the object name and class to make the
output readable when the object name is longer than 24
characters.
Changes since 19990423
----------------------
./src/H5B.c
./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/H5Gnode.c
./src/H5HG.c
./src/H5HL.c
./src/H5O.c
Changed H5F_block_read/write() to take a file transfer
property list instead of just a parallel I/O mode. This will
allow us to pass additional parameters to the I/O functions
without having so many arguments to worry about.
This fixes a bug I introduced last Friday for parallel HDF5
./src/H5B.c
Fixed decoding of B-tree keys when iterating through the
leaves of the B-tree. This fixes a bug for applications that are
adding new entries to groups and also listing the groups.
Changes since 19990415
----------------------
./config/depend.in
Fixed automatic dependencies. We were storing dependencies for
*.o files instead of *.lo files after shared libraries were
added.
./config/gnu-flags
./config/linux-gnulibc1
Moved `-march=pentiumpro -mcpu=pentiumpro -malign-double' from
the linux file to this file and caused it to depend on the CPU
name. This fixes one of Elena's bugs.
./src/H5B.c
./src/H5Bprivate.h
./src/H5D.c
./src/H5Dprivate.h
./src/H5Dpublic.h
./src/H5F.c
./src/H5Farray.c
./src/H5Fistore.c
./src/H5Fmpio.c
./src/H5Fprivate.h
./src/H5Fpublic.h
./src/H5Gnode.c
./src/H5P.c
./src/H5RA.c
./src/H5Sall.c
./src/H5Shyper.c
./src/H5Smpio.c
./src/H5Spoint.c
./src/H5Sprivate.h
./src/H5Tpublic.h
./test/istore.c
Added an H5Dget_storage_size() function that reports the
amount of storage allocated for raw data in a dataset.
Changed H5D_xfer_* to H5F_xfer_* because these properties are
more general than datasets. This also allows some of the
lower-level I/O functions to get this information easier.
./src/H5S.c
./src/H5Sall.c
Added two new functions H5S_all_read() and H5S_all_write()
which are optimizations that copy data directly between file
and memory without having to go through the scatter gather
step. This knocks quite a bit of time off the I/O and
reading/writing entire datasets is a fairly common operation.
./tools/h5ls.c
Reports the logical size of data, the allocated size of data,
and the percent utilization.
./MANIFEST
Removed old pablo files, added new files. Snapshots should now
start to work again.
./src/H5D.c
./src/H5Fmpio.c
Removed two warnings signed vs. unsigned comparisons and check
for overflow.
Changes since 19990402
----------------------
./config/commence.in
./config/conclude.in
./test/Makefile.in
./tools/Makefile.in
Fixed so private libraries are not installed publicly.
The installation directories `bin', `include', and `lib' are
created mode 755.
./src/H5.c
./src/H5A.c
./src/H5F.c
./src/H5Fcore.c
./src/H5Fistore.c
./src/H5Flow.c
./src/H5Fmpio.c
./src/H5Fsec2.c
./src/H5Fstdio.c
./src/H5G.c
./src/H5Gent.c
./src/H5Gnode.c
./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/H5Osdspace.c
./src/H5Oshared.c
./src/H5Ostab.c
./src/H5R.c
./src/H5Sall.c
./src/H5Shyper.c
./src/H5Smpio.c
./src/H5Snone.c
./src/H5Spoint.c
./src/H5T.c
./src/H5Tconv.c
./src/H5Vprivate.h
./src/H5Z.c
./src/H5detect.c
./src/H5private.h
./test/chunk.c
./test/dsets.c
./test/dtypes.c
./test/h5test.c
./test/overhead.c
./test/ragged.c
./test/tattr.c
./tools/h5dump.c
./tools/h5findshd.c
./tools/h5ls.c
Changed `__unused__' to `UNUSED' to fix a conflict with GNU
header files.
./src/H5Tpkg.h
./test/h5test.h
Removed __unused__ from forward function declarations.
./src/H5P.c
Removed a comment about restrictions for the type conversion
temporary buffers. Thanks to Quincey, the comment no longer
applied.
./src/H5T.c
Relaxed the H5Tpack() a little so it would pack compound data
structures that had non-transient atomic members.
./tools/h5ls.c
Added a `-g' (or `--group') flag that causes information to be
printed about the specified group instead of the group's
contents. (sort of like Unix's `ls -d'). The `-g' can be used
in combination with `-r' to print information about the group
and its contents.
Changes since 19990330
----------------------
./src/H5A.c
./src/H5D.c
The `bkg' buffers are zeroed before calling the type
conversion function. This fixes a problem where reading a file
compound data structure into memory results in garbage between
the members.
./src/H5I.c
Fixed H5I_clear_group() so it removes entries even when a free
callback is not registered. This fixes fixes an `infinite loop
closing library' warning message.
./src/H5.c
Added ellipses to the end of the infinite loop message.
Changes since 19990322
----------------------
./configure.in
./configure [REGENERATED]
./src/H5D.c
./src/H5O.c
Removed H5AC, H5B, and H5T from the default list of packages
to debug (because they're pretty expensive debugging), and
added H5O. Also fixed a bug for undefined variable in H5D when
H5S debugging is turned on but H5T debugging is turned off.
./config/conclude.in
Fixed installation of header files for building in a directory
other than the source directory. This fixes a bug where
H5config.h wasn't being installed.
./src/H5.c
./src/H5A.c
./src/H5D.c
./src/H5F.c
./src/H5G.c
./src/H5I.c
./src/H5Iprivate.h
./src/H5P.c
./src/H5R.c
./src/H5RA.c
./src/H5S.c
./src/H5T.c
./src/H5TB.c
./src/H5Tprivate.h
./src/H5Z.c
./src/H5detect.c
./src/H5private.h
Changed the way the library shuts down again. Now it handles
cycles between packages and isn't so sensitive to dependencies
between packages. A package might shut down only to be
restarted to process a request from some other package being
shut down. Loops are detected after 100 iterations and the
shutdown is aborted with a message on standard error. This
also makes it a lot easier to debug.
./src/H5A.c
Fixed H5A_write() and H5A_read() so they pass a non-null
background buffer to the conversion functions. This is
necessary when an attribute has a compound data type.
./src/H5Flow.c
./src/H5Fprivate.h
./src/H5Fsec2.c
Reindented new Win32 stuff.
./src/H5Odtype.c
Fixed a bug when enumeration types are used in a compound data
type. The byte pointer wasn't incremented after the type
information was written.
./tools/h5ls.c
Compound data types display their total size because it's not
always obvious from looking at the members.
Scalar attributes show their space as `scalar' instead of
`{}'.
The index value is not printed for attributes that have only a
few values. Instead the word `Data:' is printed on the first
line of attribute data.
Named types display their data type only if verbose output was
requested.
Changes since 19990319
----------------------
./configure.in
./configure [REGENERATED]
./config/commence.in
A few tweaks to the makefile rules for rebuilding makefiles.
./src/H5detect.c
Fixed a really stupid mistake: resetting the signal handler
after a longjmp(). This should fix Bob's SIGBUS on Solaris.
Changes since 19990318
----------------------
./Makefile.in
./configure.in
./configure [REGENERATED]
./src/H5config.h.in [REGENERATED]
./config/commence.in
./config/conclude.in
./config/dec-osf4.x
./config/depend.in
./config/freebsd
./config/linux-gnu
./config/linux-gnulibc1
./config/linux-gnulibc2
./config/solaris2.x
./examples/Makefile.in
./src/Makefile.in
./test/Makefile.in
./testpar/Makefile.in
./tools/Makefile.in
./tools/testh5dump.sh
Changes that allow hdf5 to be configured and compiled in a
directory other than the source directory. This is especially
useful if you want to concurrently compile with different
compilers and/or compile flags, or if the hdf5 source is on
read-only media like a CDROM. The changes were surprisingly
easy ;-) Here's what you can do now...
$ mkdir /tmp/build1 # or something
$ cd /tmp/build1
$ /cdrom/hdf5/configure # where ever the source is
$ make
Paul, you'll have to change the testh5toh4 script similar to
the way I changed testh5dump.sh. I started working on it but
then gave up because of a number of problems: (1) I had to
comment out all the tests that let h5toh4 choose the output
file name because it always tried to put the output file in
the same directory as the input file, (2) if path names are
used during the h4 dump then they interfere with the
diff. The test works fine when run in the source directory,
but try this instead:
$ gunzip <hdf5-1.1.67.tar.gz |tar xf -
$ chmod -R ugo-w hdf5-1.1.67
$ mkdir build
$ cd build
$ ../hdf5-1.1.67/configure
$ make check
Dan, I didn't modify the pablo/Makefile.in because I have no
way to test it. I think all you need to do is add a couple
lines before the @COMMENCE@ line and add a couple search
directories for header files. Anyway, it seems like almost an
exact duplicate of the src/Makefile.in, so it shouldn't be a
problem...
./Makefile.in
Removes a few more temporary files during make clean and
distclean.
./configure.in
I fixed the creation of the time-stamp files so that the
initial make doesn't have to regenerated all the makefiles
(only GNU make users will see any change).
./src/H5R.c
Changed a return type from `intn' to `int' for an API
function.
./src/H5detect.c
Added the volatile qualifier to a couple more variables.
./tools/h5tools.c
Fixed a compiler warning about an unused local.
./tools/h5toh4.c
Initialized `optind' to 1 because it's zero on my system. It
should always be one on a unix system.
./tools/testh5toh4
Redirected "broken pipe" messages to /dev/null so outut is
formatted correctly.
Changes since 19990312
----------------------
./configure.in
./configure [REGENERATED]
./src/H5config.h.in [REGENERATED]
./src/H5private.h
Temporarily commented out the code that tries to link a simple
MPI-IO application because I'm not sure how to pass $LDFLAGS
and $LIBS to the compiler.
Removed the `--enable-parallel=ibm' switch because the library
we link with is either -lmpcc or -lmpcc_r but not both. The
only way to tell is to see what compiler was specified (mpcc
or mpcc_r) but if that compiler is specified then we don't
need any libraries (the compiler script supplies them). That
leaves just two choices: the user must use a compiler script:
CC=mpcc ./configure
or the user must state which library is desired:
LDFLAGS='-lmpcc' ./configure --enable-parallel
Checks for <setjmp.h>, longjmp(), and signal(). We don't check
for setjmp() because it could be a macro (in fact, Posix
requires it to be a macro) and if longjmp() is present then
setjmp() is probably present too ;-)
./src/H5detect.c
The alignment detection loop uses SIGBUS and setjmp/longjmp
instead of fork/wait in order to get around bugs with forking
in conjunction with mpich.
./test/Makefile.in
./testpar/Makefile.in
./tools/Makefile.in
Changed the order that libraries are linked so -lhdf5 is
always before $LDFLAGS.
Changes since 19990304
----------------------
./config/*-aix4.* [REMOVED]
./config/*-aix4.x [NEW]
./config/solaris2.5 [REMOVED]
./config/solaris2.x [NEW]
./configure.in
./configure [REGENERATED]
./MANIFEST
Changed the names of the IBM-SP2 config files by replacing the
minor version numbers with an `x'. The solaris config warns
about old versions of gcc.
The RUNSERIAL value is set to the empty string by default. The
config/* file (or user) can override it by setting it to some
other value.
The `--enable-parallel' with no flags turns on the
HAVE_PARALLEL constant in the source code but doesn't add any
MPI or MPI-IO libraries to the link line.
If we are compiling for parallel then configure checks that we
can actually link a very simple program. This has the benefit
of detecting config errors before we waste time compiling the
entire library.
Configure recognizes `mpcc_r' as a parallel compiler.
./src/H5A.c
./src/H5Apublic.c
Fixed some compiler warnings. Changed the return type of
H5Aget_name() from hssize_t to ssize_t because the name can
never be larger then memory.
Changes since 19990303
----------------------
./configure.in
./configure [REGENERATED]
The path for a command is calculated explicitly the hard way
because `type -path' isn't portable.
./config/freebsd
./config/linux-gnu
./config/linux-gnulibc2
Changed the way files reference each other.
./config/gnu-flags [NEW]
./config/dec-flags [NEW]
These files figure out what flags to pass to certain compilers
so we can reuse code in more than one config/* file. They
also have better warning messages when old compilers are used.
./config/linux-gnulibc1
./config/dec-osf4.x
These files use the new *-flags files.
./src/H5D.c
./src/H5Onull.c
./src/H5Tconv.c
./tools/h5ls.c
Fixed a compiler warning.
./src/H5detect.c
Added a better comment to the top of the generated file.
Changes since 19990302
----------------------
./INSTALL
./configure.in
./configure [REGENERATED]
./src/H5config.h.in [REGENERATED]
Improvements for parallel library. If you have a properly
working mpicc you should be able to just say:
$ CC=mpicc ./configure
and you will see
checking for mpirun... /usr/local/mpi/bin/mpirun
checking for parallel support files... skipped
checking how to run on one processor...
/usr/local/mpi/bin/mpirun -np 1
checking how to run in parallel...
/usr/local/mpi/bin/mpirun -np $$NPROCS
To quote from the INSTALL file....
*** Parallel vs. serial library
The HDF5 library can be configured to use MPI and MPI-IO for
parallelizm on a distributed multi-processor system. The easy
way to do this is to have a properly installed parallel
compiler (e.g., MPICH's mpicc or IBM's mpcc) and supply that
executable as the value of the CC environment variable:
[NOTE: mpcc is not tested yet]
$ CC=mpcc ./configure
$ CC=/usr/local/mpi/bin/mpicc ./configure
If no such wrapper script is available then you must specify
your normal C compiler along with the distribution of
MPI/MPI-IO which is to be used (values other than `mpich' will
be added at a later date):
$ ./configure --enable-parallel=mpich
If the MPI/MPI-IO include files and/or libraries cannot be
found by the compiler then their directories must be given as
arguments to CPPFLAGS and/or LDFLAGS:
$ CPPFLAGS=-I/usr/local/mpi/include \
LDFLAGS=-L/usr/local/mpi/lib/LINUX/ch_p4 \
./configure --enable-parallel=mpich
If a parallel library is being built then configure attempts
to determine how to run a parallel application on one
processor and on many processors. If the compiler is mpicc
and the user hasn't specified values for RUNSERIAL and
RUNPARALLEL then configure chooses `mpirun' from the same
directory as `mpicc':
RUNSERIAL: /usr/local/mpi/bin/mpirun -np 1
RUNPARALLEL: /usr/local/mpi/bin/mpirun -np $${NPROCS:=2}
The `$${NPROCS:=2}' will be substituted with the value of the
NPROCS environment variable at the time `make check' is run
(or the value 2).
./testpar/Makefile.in
Saying `make check' (or `make test') will run the tests on two
processors by default. If you define NPROCS then that many
processors are used instead:
$ NPROCS=4 make check
./configure.in
Fixed (hopefully) bugs with detecting whether __attribute__
and __FUNCTION__ are special keywords for the compiler.
./Makefile.in
Saying `make install' from the top level directory shows
instructions for using shared libraries.
./config/commence.in
./src/Makefile.in
./test/Makefile.in
./testpar/Makefile.in
./tools/Makefile.in
Moved the @top_srcdir@ into the makefiles because it was
expanded too early and had the wrong value.
./INSTALL
Added a warning that if the wrong version of hdf4 tools are
installed then `make check' will fail in the tools directory.
Changes since 19990301
----------------------
./INSTALL
Reorganized and added some additional examples.
./MANIFEST
./aclocal.m4 [NEW]
./configure.in
./configure [REGENERATED]
./src/H5config.h.in [REGENERATED]
./bin/ltconfig [NEW]
./bin/ltmain.sh [NEW]
Added tests to determine how to compile shared libraries and
how to link programs with them before the libraries are
installed. Also how to install and uninstall shared
libraries. The configure step also prints the names of the
config files it's trying to load for easier debugging.
./bin/config.guess
./bin/config.sub
Replaced with a newer version from GNU. The changes we made
to that file to report `irix6.x' and `FreeBSD' without version
numbers have been incorporated into configure.in instead. In
the future, do not change these two files (see the top of
configure.in instead). By the way, this update was required to
get shared libraries working.
./config/linux [REMOVED]
./config/linux-gnulibc1 [NEW]
./config/linux-gnu [NEW]
./config/alpha-dec [REMOVED]
./config/alpha-dec-osf4.0 [REMOVED]
./config/dec-osf4.x [NEW]
./config/irix5.3 [REMOVED]
./config/irix5.x [NEW]
./config/irix64 [REMOVED]
./config/freebsd
Moved config files around to agree with output from the new
config.guess. The linux file was split into gnu (RedHat),
gnulibc1, and gnulibc2 versions. The alpha-dec file was
removed (I think it was unused) and the alpha-dec-osf4.0 was
changed to dec-osf4.x. The irix5.3 file renamed to irix5.x and
the irix64 file was renamed to irix6.x. The freebsd file was
changed to point to linux-gnulibc1. These changes were tested
on:
Linux 2.0
Linux 2.1
FreeBSD 3.2
Irix 5.3
Irix64 6.2
Irix64 6.4
HP/UX 10.20
OSF1 4.0
./config/alphaev56-dec-osf4.x
./config/irix64
Added warnings similar to linux/freebsd about using compilers
with known bugs.
./config/commence.in
./config/conclude.in
./src/Makefile.in
./test/Makefile.in
./testpar/Makefile.in
./tools/Makefile.in
Added definitions for shared libraries. This has been tested
on the following systems:
Linux 2.0
Linux 2.1
FreeBSD 3.2
Irix 5.3
Irix64 6.2
Irix64 6.4
HP/UX 10.20 static only
OSF1 4.0
If you want to disable use of shared libraries (you probably
do for development purposes since it takes a lot longer to
compile and because you have to run dynamically linked
programs in a special way if the library hasn't been
installed) then add `--disable-shared' to the configure
command line. This is all documented in the INSTALL file.
./bin/release
Temprarily commented out the MANIFEST checking when running
under svf since svf is about to be replaced by a newer
version. This change only affects error checking during the
release process.
./Makefile.dist
./Makefile.in
Added `make check' which does the same thing as `make _test'
since the former is endorsed by the GNU coding style and
people are used to it. The old `make _test' still works too
(and so does `make test' if you use GNU make).
Changes since 19990226
----------------------
./INSTALL
Added instructions for using other compilers on Irix platforms.
./configure.in
./configure [REGENERATED]
./src/H5config.h.in [REGENERATED]
./src/H5private.h
The presence of <sys/sysinfo.h> and <sys/proc.h> is only
checked on DEC/Alpha because there are too many problems
including these headers on other systems.
./config/irix6.x
./config/irix64
Removed `-ansi' and added a comment. Converting an ASCII UTC date
and time to a time_t value is not defined by ANSI or Posix but
is available if we don't use `-ansi'. This allows the dataset
modification time messages to be read properly by
H5Gget_objinfo().
./src/H5Tconv.c
Fixed a compiler warning.
./test/dtypes.c
./test/hyperslab.c
./test/istore.c
Fixed compiler warnings in printf() statements.
Changes since 19990225
----------------------
./INSTALL
Added warnings and a disclaimer about GNU, DEC, Irix64, and NT
compilers that generate incorrect machine code.
./configure.in
./src/H5private.h
Detects and includes <sys/param.h> which is needed on FreeBSD
before <sys/proc.h> even though we only really using anything
from <sys/proc.h> on the DEC Alpha.
./config/irix64
Turned off warnings for duplicate definitions from the linker
because -lnsl on irix has the same stuff in it as -lc.
./config/irix6.x
Split up the CC and CFLAGS settings like with irix64 so that
compilers besides `-n32' can be used.
./bin/snapshot
The snapshots are tagged with names like hdf5-1_1_52 which is
similar to the way the releases are tagged (cvs doesn't allow
dots in tags).
./test/dtypes.c
./src/H5private.h
./src/H5Tconv.c
Fixed some alignment violations on the DEC when using high
optimization levels. The DEC incorrectly optimizes certain
memcpy() and memmove() calls when the source argument is not
word aligned if the call looks like it's copying an atomic
data type.
./test/hyperslab
Worked around code generation bugs in the Irix64 Mongoose 7.00
compiler by casting some `unsigned long' values to `unsigned'
in an expression.
./src/H5Ocomp.c
Fixed a place where %d was used to print a size_t.
Changes since 19990225
----------------------
./configre.in
./configure [REGENERATED]
./src/H5config.h.in [REGENERATED]
./src/H5detect.c
./src/H5private.h
Checks for existence of <sys/sysinfo.h>, <sys/proc.h> and
setsysinfo() needed on the DEC Alpha to turn off UAC fixing by
the OS.
Changes since 19990219
----------------------
./config/irix64
The old (-32) compiler is now supported by setting envrionment
CC='cc -32'. The -64 compiler is the default or you can set
CC='cc -64'.
./src/H5A.c
./src/H5D.c
./src/H5F.c
./src/H5Fistore.c
./src/H5Flow.c
./src/H5G.c
./src/H5I.c
./src/H5Ocomp.c
./src/H5P.c
./src/H5R.c
./src/H5RA.c
./src/H5T.c
./src/H5Tbit.c
./src/H5Tconv.c
./src/H5Z.c
./src/H5detect.c
./test/big.c
./test/cmpd_dset.c
./test/dsets.c
./test/dtypes.c
./test/enum.c
./test/mtime.c
./test/ohdr.c
./tools/h5ls.c
Fixed lots of warnings on Irix64. Mailed a few remaining
warnings in H5S to Quincey and a few in the dumper to
Ruey-Hsia.
Changes since 19990218
----------------------
./src/H5F.c
./src/H5private.h
./src/H5Ipublic.h
./src/H5O.c
Fixed a rather nasty bug with file closing that caused the
file boot block to be updated incorrectly, effectively
truncating the file. The bug I fixed was triggered by:
1. Create a file, F
2. Open an object, X
3. Close file F
4. Reopen file F for read/write.
5. Create and close some objects
6. Close file F
7. Close library (exit).
Step 3 pended the close because object X is still open, but
the file ID was removed from the H5I_FILE ID group. Step 4
created a new file because it didn't see any matching file on
the H5I_FILE ID group. Step 5 extends the file. Step 6 writes
the new file boot block to disk. Step 7 closes object X and
completes the close from step 3, writing the old boot block
information to disk.
The new behavior is that step 3 moves the file from the
H5I_FILE group to the H5I_FILE_CLOSING group. Step 4 searches
both groups and finds the file. Step 5 extends the file using
the same H5F_file_t struct as step 3. Step 6 closes the H5F_t
struct opened in step 3 but not the H5F_file_t struct shared
by steps 1 and 3. Step 7 closes object X which closes the
H5F_file_t from step 1, flushing the boot block which was
shared by all steps.
./src/H5F.c
Added some bulletproofing to file reference counting and
removed comments which no longer apply. Added H5F_flush_all()
and H5F_close_all() which apply to all files.
./src/H5A.c
./src/H5D.c
./src/H5F.c
./src/H5G.c
./src/H5I.c
./src/H5Iprivate.h
./src/H5R.c
./src/H5RA.c
./src/H5S.c
./src/H5T.c
Added the new H5I_free_t data type to describe the function
type to be passed as the `free_func' argument to
H5I_init_group().
./src/H5I.c
Bulletproofed the object removal functions. Removed comments
which no longer apply. Changed global variable names so they
don't violate the naming scheme. Added H5I_debug() that prints
the contents of an ID group. Removed H5I_inc_ref() because it
isn't used. Reindented a couple of functions.
./src/H5.c
./src/H5G.c
./src/H5Ipublic.h
Changed H5I_MAXID to H5I_NGROUPS to better relect the fact
that it's the total number of valid ID groups.
./src/H5Shyper.c
Changed hyperslab offset arrays to signed quantities to get
rid of warnings on DEC cluster.
./src/H5Flow.c
./src/H5Fprivate.h
Changed the objno argument of H5F_addr_pack() to be unsigned
to get rid of warnings on DEC cluster.
Changes since 19990215
----------------------
./src/H5.c
Fixed more dependency problems in H5_term_library(). There was
a bug in the previous version that could cause the wrong EOF
marker to be written to the boot block under certain
circumstances. Hopefully this fixes it although I don't ready
access to a test case (Mark Miller will test it).
./src/H5F.c
./src/H5Fprivate.h
Added an H5F_close_all() that is similar to
H5F_term_interface() but which doesn't close the
interface. Files that don't have open object headers are
closed, others are delayed until all object headers close. All
files are flushed.
./src/H5ACprivate.h
./src/H5Bprivate.h
./src/H5Dprivate.h
./src/H5Eprivate.h
./src/H5Fprivate.h
./src/H5Gpkg.h
./src/H5Gprivate.h
./src/H5Gpublic.h
./src/H5HGprivate.h
./src/H5HLprivate.h
./src/H5Iprivate.h
./src/H5MFprivate.h
./src/H5MMprivate.h
./src/H5Oprivate.h
./src/H5Pprivate.h
./src/H5Ppublic.h
./src/H5RAprivate.h
./src/H5Sprivate.h
./src/H5Spublic.h
./src/H5Tpkg.h
./src/H5Tprivate.h
./src/H5Tpublic.h
./src/H5Vprivate.h
./src/H5Zprivate.h
./src/H5private.h
./src/H5public.h
Reindented after __DLL__ was added.
Changes since 19990121
----------------------
./configure.in
./acconfig.h
./configure [REGENERATED]
./src/H5config.h.in [REGENERATED]
./src/H5public.h
./src/H5Omtime.c
Check for <stddef.h>
Checks for `__tm_gmtoff' in `struct tm' because old versions
of GNU libc are different than recent versions. This fixes the
failing mtime test.
./bin/config.guess
./config/freebsd2.2.7 [REMOVED]
./config/freebsd [ADDED]
Changed the name so it works with all versions of FreeBSD.
./src/H5.c
Moved H5F after H5T and H5G in H5_term_library() to satisfy
dependencies.
./src/H5G.c
Fixed a bug that caused H5Gcreate() to fail if the group name
had trailing slashes.
./src/H5Gpublic.h
Changed `group_name' to `name' in a prototype.
./src/Makefile.in
Dynamic library on Linux, but needs for work to be generally
useful.
./src/H5HG.c
./src/H5HGprivate.h
Fixed alignment problems when using old GCC compilers (like
the one shipped with RedHad Linux).
./tools/h5ls.c
Fixed a bug where the contents of the root group could be
listed twice if there was a link back to the root
group. Similarly for groups that are mentioned on the command
line.
Fixed a bug where unknown types were printed with a random
type class number.
./src/H5T.c
./src/H5Tconv.c
./src/H5Tprivate.h
Fixed O(log N) conversion bugs.
Changes since 19990118
----------------------
./tools/h5tools.c
Strings are not converted to null-padding before being
printed; they are printed with whatever byte values appear in
the file.
./tools/h5ls.c
Now able to display attribute data type and data.
Added a `-f' or `--full' switch which causes the full name of
each object to be displayed instead of just the base name.
Added a `-r' or `--recursive' switch that recursively prints
the contents of groups, avoiding cycles.
More bulletproofing for non-printable characters in things
like object names, attribute names, and comment strings. We
don't want listing a file to send terminal escape sequences
because it's sometimes possible to execute commands that way.
Since h5ls doesn't usually use quotes around object names we
must sometimes escape space characters.
External files are listed in a table to make the output less
confusing.
./tools/h5tools.c
./tools/h5tools.h
Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also
make h5dump_fixtype() public.
./test/dtypes.c
Wrote some data to an attribute to test h5ls attribute
printing.
./src/H5ACprivate.h
./src/H5Apublic.h
./src/H5Dprivate.h
./src/H5Dpublic.h
./src/H5Epublic.h
./src/H5Fprivate.h
./src/H5Fpublic.h
./src/H5Gprivate.h
./src/H5HLprivate.h
./src/H5Oprivate.h
./src/H5Ppublic.h
./src/H5RApublic.h
./src/H5Rpublic.h
./src/H5Spublic.h
./src/H5Tpkg.h
./src/H5Tpublic.h
./src/H5Vprivate.h
./src/H5Zpublic.h
./src/H5private.h
./src/H5public.h
Reindented function prototypes after `HDF5API' was added. Also
rewrapped long lines.
./src/H5Flow.c
Added an `#ifdef WIN32' around an unused variable.
./src/H5api_adpt.h
Removed extra carriage returns inserted by "broken" operating
system.
./src/H5Dprivate.h
./src/H5Oprivate.h
./src/H5Vprivate.h
./src/H5private.h
Removed extraneous inclusion of H5api_adpt.h since it's
included in H5public.h which is included by everything.
./src/Makefile.in
Added H5api_adpt.h to the list of public header files to fix
broken `make install'.
Changes since 19990105
----------------------
./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.
Changes since 19981217
----------------------
./MANIFEST
Removed some ddl files from tools/testfiles that are no longer
part of CVS. Added new enum.c test.
./configure [REGENERATED]
./configure.in
Changed printf long long format detection to favor `L' over
`ll'.
./src/H5.c
./src/H5private.h
Renamed `library_initialize_g' to `H5_libinit_g' to make it
conform to our naming scheme.
./src/H5I.c
Fixed a bug in H5I_dec_ref() that caused the return value to
always be zero instead of the new reference count.
./src/H5.c
./src/H5Odtype.c
./src/H5T.c
./src/H5Tconv.c
./src/H5Tpkg.h
./src/H5Tprivate.h
./src/H5Tpublic.h
./test/Makefile.in
./test/dtypes.c
./test/enum.c [NEW]
Added support for enumeration data types.
./src/H5RA.c
Renamed H5T_insert() to H5T_struct_insert() and added
H5T_enum_insert().
./src/H5RA.c
./src/H5Shyper.c
Added casts to size_t for the third argument of memcpy() to
shut up a warning message from insure++.
./src/H5T.c
Changed "can't" to "unable to" in some error messages to be
more consistent.
./src/H5detect.c
If fork() or waitpid() are unavailable then we assume no
alignment constraints. Hopefully this is the case only on NT
and Intel CPU's don't have alignment constraints.
./test/fillval.c
./test/istore.c
Fixed memory leaks during error handling.
./tools/h5ls.c
Displays enumeration type information.
./tools/h5tools.c
Displays enumerated data using symbol names.
./src/H5public.h
Include <limits.h> because the H5T_NATIVE_CHAR macro needs the
definition for CHAR_MIN.
Changes since 19981214
----------------------
./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.
Changes since 19981207
----------------------
./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.
Changes since 19981125
----------------------
./src/H5HG.c
Fixed a bug in the alignment calculation for the heap free
space. The reference test passes now.
Changes since 19981125
----------------------
./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.
Changes since 19981124
----------------------
./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.
Changes since 19981121
----------------------
./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.
Changes since 19981120
----------------------
./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.
Changes since 19981119
----------------------
./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.
Changes since 19981119
----------------------
./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.
Changes since 19981118
----------------------
./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 size.
./config/conclude.in
Added a rule to make test programs depend on the hdf5 library. This
fixes a make 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.
Changes since 19981116
----------------------
./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 ;-)
Changes since 19981113
----------------------
./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.
Changes since 19981111
----------------------
./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.
Changes since 19981106
----------------------
./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'.
Changes since 19981105
----------------------
./configure.in
./acconfig.h
./configure [REGENERATED]
./src/H5config.h.in [REGENERATED]
Added checks for functions, structs, constants, and header
files used in h5ls.c to determine the output width with
various Windows compilers and Unix variants.
Added check for <sys/stat.h> and defined
HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside
the Posix.1 #include's section.
./src/H5RA.c
Less aggressive about failing -- rather returns false, which
allows type detection to continue.
./src/h5ls.c
Data types are displayed for datasets and named data types when
`-v' or `--verbose' is specified on the command-line. The
algorithm is a little different than the dumper because we're
trying to be human-friendly, not necessarily machine-friendly.
* Any data type which matches a native C type gets printed
something like `native double'.
* A floating point type that matches one of the IEEE standard
types but not one of the native types gets printed like `IEEE
64-bit big-endian float'.
* Other floating point values have information about sign bit
location; exponent size, location, and bias; and significand
size, location, and normalization.
* Padding and offsets are displayed for types that have
padding (precision != size), including internal padding for
some floating point data types.
* Non-native integer types are displayed like `32-bit
little-endian unsigned integer'.
* Compound data types have each member displayed including the
member name, byte offset within the struct, dimensions, index
permutation, and data type.
* String types are displayed like `256-byte null-terminated
ASCII string'.
* References are displayed like `8-byte unknown reference'
until the reference interface stabilizes a little.
* All other types including types not yet defined will be
printed like `4-byte class-9 unknown'.
The dimensionality of scalar datasets is printed like `{SCALAR}'
instead of just `{}'.
If external raw files are used to store a dataset then the offsets,
sizes, and file names of each are printed if `-v' or `--verbose'
was given on the command-line.
If an object is found and h5ls can't determine the object type then
it still tries to print the number of hard links, the OID, and any
comment that might be present if `-v' or `--verbose' was specified.
If the `-d' or `--dump' switch is turned on then ragged arrays will
report that the data can only be dumped by dumping the component
datasets explicitly. I'm not planning to implement this since
we're going to eventually change the whole way ragged arrays are
stored.
Compound data values do not have the component names displayed by
default when `-v' or `--verbose' is turned on. Instead, the names
can be displayed with `-l' or `--label'.
The output width is determined by the first rule that applies:
* If the `-wN', `-w N' or `--width=N' switch appeared on
the command line then use N for the output width.
* Query the OS for the tty width in a highly unportable way
borrowed from GNU `less' depending on what functions and
data structures were found during configuration (if any):
_getvideoconfig(), gettextinfo(), _srcsize(), ioctl(),
GetConsoleScreenBufferInfo(), struct videoconfig, struct
text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl.
* If the `COLUMNS' environment variable is set then use
its value.
* Use the value 80.
Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv
test.vbt'. You can also try it on the various *.h5 files in the
test/example directories.
./config/linux
Removed turning on parallel by default on Robb's macine.
Changes since 19981102
----------------------
./bin/snapshot
Made same fix as for the release script yesterday.
./src/H5D.c
./src/H5Dprivate.h
./src/H5G.c
./src/H5Gprivate.h
./src/H5Gpublic.h
./src/H5O.c
./src/H5Oprivate.h
./src/H5RA.c
./src/H5RAprivate.h
./src/H5T.c
./src/H5Tprivate.h
Improved object type checking. Instead of determining the
object type by trying to open each of the possible types, we
keep a table of associations between object type number (like
H5G_GROUP, H5G_DATASET, H5D_TYPE, and H5D_RAGGED) and an `isa'
function that returns true if the object header has the right
messages to make the object a particular type. This mechanism
also allows specialization of object types by permitting an
object to satisfy more than one `isa' function.
Added `isa' functions for groups, datasets, ragged arrays, and
committed data types.
./src/H5config.h.in
Added HAVE_STAT_ST_BLOCKS. I thought this had already been
added, but apparently not.
./tools/h5ls.c
Removed system include files since they're already included by
H5private.h and since I wasn't including them portably anyway.
By default, 1-byte integer types are printed as integer values
instead of ASCII characters. However, the `-s' or `--string'
command-line switch causes the data to be interpretted as
ASCII. String data types are always printed as character
data.
Ragged arrays are now identified as ragged arrays and h5ls
doesn't descend into the group automatically. This uses the
new object type specialization stuff.
./tools/h5tools.c
./tools/h5tools.h
Added the ability to print 1-byte integer types as either
ASCII or numeric data instead of always ASCII. The default is
to print as numeric data.
Changes since 19981030
----------------------
./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.
Changes since 19981026
----------------------
./INSTALL
Updated version number. Negated information about debugging
and optimizations.
./RELEASE
Updated version number. Added a `Changes since the Beta
Release' section. Please fill in with anything appropriate.
./README
Ran bin/release to update the first two lines with the correct
version number.
./doc/html/Version.html
Added comment about rewinding the version number to 1.0 for
the initial release.
Changes since 19981026
----------------------
./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.
Changes since 19981023
----------------------
./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.
Changes since 19981022
----------------------
./MANIFEST
./doc/html/study.html [DELETED]
./doc/html/study_1000x1000.gif [DELETED]
./doc/html/study_250x250.gif [DELETED]
./doc/html/study_499x499.gif [DELETED]
./doc/html/study_5000x1000.gif [DELETED]
./doc/html/study_500x500.gif [DELETED]
./doc/html/study_p1.gif [DELETED]
./doc/html/study_p1.obj [DELETED]
Removed these old files -- the data was from before the chunk
cache was implemented and therefore the whole file was pretty
much garbage.
./MANIFEST
./doc/html/Chunking.html [NEW]
./doc/html/Chunk_f1.gif [NEW]
./doc/html/Chunk_f1.obj [NEW]
./doc/html/Chunk_f2.gif [NEW]
./doc/html/Chunk_f2.obj [NEW]
./doc/html/Chunk_f3.gif [NEW]
./doc/html/Chunk_f4.gif [NEW]
./doc/html/Chunk_f5.gif [NEW]
./doc/html/Chunk_f6.gif [NEW]
./doc/html/Chunk_f6.obj [NEW]
New documentation for chunking. It's not quite complete but
it gives a pretty good idea of some of the issues affecting
performance.
Changes since 19981021
----------------------
./src/H5I.c
If we ran out of object ID's (which happens after about 67
million requests) then we'd wrap back to the first possible ID
but if we ran out a second time (after ~134 million requests)
then H5I_register() failed. Now it continues to wrap as often
as needed.
If we wrapped to the beginning of the possible ID's and then
requested ID's till we got toward the end of the list then
H5I_register() failed if the last possible ID's were in use.
The new behavior is to try all possible ID's (not just higher
ID's) before giving up.
Changes since 19981019
----------------------
./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.
Changes since 19981016
----------------------
./src/H5F.c
./src/H5Fpublic.h
Added H5Freopen() as documented in earlier e-mails. This is
really just a wrapper around H5F_new().
Changes since 19981014
----------------------
./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.
Changes since 19981013
----------------------
./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.
Changes since 19981008
----------------------
./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...
Changes since 19981002
----------------------
./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.
Changes since 19981005
----------------------
./src/H5D.c
Fill values are working for contiguous datasets now except
there are two things that need more support from the data
space layer, specifically the ability to form a selection from
the difference of two selections. They are (1) extending an
external contiguous dataset, (2) optimization by delaying the
fill until after the first H5Dwrite().
Renamed H5D_allocate() to H5D_init_storage() since allocation
is only part of the story. Added a data space argument so it
doesn't have to query the space from the object header -- the
space is always available in the caller anyway.
Removed `#ifdef HAVE_PARALLEL' from a few places where it
wasn't necessary. We don't need it around code that doesn't
compile anything from mpi.h or mpio.h.
./src/H5Fistore.c
Uncommented H5F_istore_alloc() for non-parallel and moved the
`#ifdef HAVE_PARALLEL' just around Kim's barrier.
./src/H5Fmpio.c
Wrapped a couple long lines.
Got rid of two signed vs. unsigned comparison warnings.
./MANIFEST
./test/Makefile.in
./test/fillval.c [NEW]
Added tests for fill values. The contiguous dataset extend
test is disabled until H5S_SELECT_DIFF is implemented.
./tools/Makefile.in
Fixed a bug where `make test' didn't build the executables
first. This should cause the snapshots to start up again.
./Makefile.in
Changed to build in `test' directory before `tools'
directory. We want the library tests to pass before we even
start considering the tools. You can still build and/or test
the tools independent of the library tests passing.
Changes since 19981001
----------------------
./src/H5D.c
./src/H5Fistore.c
./src/H5Fprivate.h
Fixed a couple things for parallel hdf5 that I broke with the
last checkin.
./src/H5Ofill.c
If no fill value is specified it isn't added to the object
header.
./tools/h5ls.c
Added a line-feed after `Unknown object' is printed.
./tools/h5tools.c
Fixed printing of scalar values. Need to still track down a
failed assertion when H5Sselect_hyperslab() is called with a
zero size....
Changes since 19980930
----------------------
./MANIFEST
./doc/html/H5.format.html
./src/H5D.c
./src/H5Dprivate.h
./src/H5Farray.c
./src/H5Fistore.c
./src/H5Fprivate.h
./src/H5O.c
./src/H5Ofill.c [NEW]
./src/H5Oprivate.h
./src/H5P.c
./src/H5Ppublic.h
./src/H5Sall.c
./src/H5Shyper.c
./src/H5Spoint.c
./src/H5Sprivate.h
./src/Makefile.in
Added fill values as documented in previous e-mails. They only
work for chunked datasets so far.
./src/H5E.c
./src/H5Epublic.h
./src/H5P.c
Changed H5E_TEMPLATE to H5E_PLIST.
./src/H5Omtime.c
./src/H5V.c
Fixed a typo in a comment.
./src/H5Tconv.c
Fixed a bug in compound type conversions that caused an
assertion to fail.
Changes since 19980930
----------------------
./src/H5G.c
./test/unlink.c
Renaming a symbolic link works like on Unix: the link is
renamed but the link value is unchanged.
Changes since 19980928
----------------------
./MANIFEST
Changed freebsd2.2.1 to freebsd2.2.7 to match change in file name.
Added a few missing files. Are all of these supposed to be
distributed?
./tools/testfiles/h5dumptst.c
+ ./tools/testfiles/tall-1.ddl
+ ./tools/testfiles/tall-2.ddl
+ ./tools/testfiles/tall-3.ddl
./tools/testfiles/tall.ddl
./tools/testfiles/tall.h5
+ ./tools/testfiles/tattr-1.ddl
+ ./tools/testfiles/tattr-2.ddl
+ ./tools/testfiles/tattr-3.ddl
+ ./tools/testfiles/tattr-4.ddl
./tools/testfiles/tattr.ddl
./tools/testfiles/tattr.h5
+ ./tools/testfiles/tdset-1.ddl
+ ./tools/testfiles/tdset-2.ddl
+ ./tools/testfiles/tdset-3.ddl
+ ./tools/testfiles/tdset-4.ddl
./tools/testfiles/tdset.ddl
./tools/testfiles/tdset.h5
+ ./tools/testfiles/tgroup-1.ddl
+ ./tools/testfiles/tgroup-2.ddl
+ ./tools/testfiles/tgroup-3.ddl
./tools/testfiles/tgroup.ddl
./tools/testfiles/tgroup.h5
+ ./tools/testfiles/tslink-1.ddl
+ ./tools/testfiles/tslink-2.ddl
./tools/testfiles/tslink.ddl
./tools/testfiles/tslink.h5
./src/H5B.c
./src/H5Bprivate.h
./src/H5D.c
./src/H5Dprivate.h
./src/H5Farray.c
./src/H5Fistore.c
./src/H5Fprivate.h
./src/H5Gstab.c
./src/H5P.c
./src/H5Ppublic.h
./src/H5Sall.c
./src/H5Shyper.c
./src/H5Spoint.c
./src/H5Sprivate.h
./test/istore.c
Implemented split ratios as documented in previous
e-mails. Frank, the new API functions are H5Pget_btree_ratios()
and H5Pset_btree_ratios().
./src/H5Sall.c
./src/H5Shyper.c
./src/H5Spoint.c
./src/H5Sprivate.h
Added more type checking for the data transfer property list
passed to these functions.
./src/H5D.c
Added a dataset transfer property list as an argument to
H5D_allocate() for the parallel version in order to pass split
ratios down to H5F_istore_lock(). Eventually we won't need
the split ratios for H5D_allocate() because we'll build a
completely full B-tree from the leaves up, but it might be
useful to have other transfer properties at that level
anyway. I always caled H5D_allocate() with &H5D_dflt_xfer.
./MANIFEST
./test/Makefile.in
./test/overhead.c [NEW]
Added an `overhead' test run by `make timings'.
Changes since 19980924
----------------------
./MANIFEST
./src/H5B.c
./src/H5Bprivate.h
./src/H5G.c
./src/H5Gnode.c
./src/H5Gprivate.h
./test/Makefile.in
./test/unlink.c
Finished H5Gunlink() and H5Grename().
./src/H5F.c
./src/H5Fistore.c
./src/H5Fprivate.h
Removed the last memcpy() from the chunk cache.
./src/H5Fistore.c
The offset of a chunk within a dataset is an 8-byte quantity
per dimension instead of 4 bytes.
./src/H5HL.c
Fixed infinite loops in H5HL_remove().
Changes since 19980922
----------------------
./src/H5F.c
./src/H5Fprivate.h
./src/H5P.c
./src/H5Ppublic.h
./test/chunk.c
./test/dsets.c
The number of slots in the raw data cache can be queried or
set with H5Pget/set_cache(), which now take an extra argument.
The default number of slots is 521 and the default maximum
size is 1MB.
./src/H5Fistore.c
./src/H5Fprivate.h
Finished optimizations. The cache is now a hash and a linked
list instead of an array. The cpu time on my machine for
H5F_istore_lock() has been cut by 60% and H5F_istore_unlock() by
35%.
Changes since 19980911
----------------------
This checkin is to fix a couple bugs for Jim Reus. Some features are
not fully implemented but it shouldn't break anything.
./config/conclude.in
./test/Makefile.in
`make clean' removes object files from the test directory as
well as a couple more *.h5 temp files.
./config/hpux9.03 [NEW]
New config file for HP/UX 9.03
./src/H5B.c
./src/H5Bprivate.h
./src/H5Fistore.c
./src/H5G.c
./src/H5Gnode.c
./src/H5Gpkg.h
./src/H5Gprivate.h
./src/H5Gstab.c
Not-yet-complete version of object removal.
./src/H5Fistore.c
./src/H5Fprivate.h
Experimental optimizations, disabled by default.
./src/H5Fprivate.h
Default low-level driver was changed to H5F_LOW_SEC instead of
H5F_LOW_STDIO because the sec2 driver is much easier to debug.
./src/H5Fsplit.c
./src/H5G.c
./src/H5Z.c
Changed a couple return statements to HRETURN.
./src/H5Odtype.c
Removed a check for nested compound data types from back when
they weren't implemented that raised an error.
./tools/h5tools.c
Increased temp buffer sizes and added a check for buffer
overflow so we fail an assertion (hopefully). This really
needs to be fixed sometime.
Added support for printing H5T_STRING data types.
Changes since 19980910
----------------------
./MANIFEST
Removed duplicate Ragged.html
./doc/src/Glossary.html
Changed 1.0 to 1.2 since 1.0 is the current development
branch, 1.1 will be development after beta release, and 1.2
will be the first complete release (see Version.html).
./test/dsets.c
./test/tstab.c
Added more tests.
Changes since 19980909
----------------------
./tools/h5ls.c
Changed usage message.
Changes since 19980908
----------------------
./MANIFEST
Removed ./doc/html/H5.api.html
./bin/h5vers
./bin/release
Fixed some minor things to make them work better.
Changes since 19980908
----------------------
./COPYING
Reformatted as text instead of C. Removed zlib crew from the
list of contributors since no zlib code is actually in the
hdf5 library.
./INSTALL
./INSTALL.ascired
./MANIFEST
Minor updates for Beta release including version number
change.
./INSTALL_MAINT
Added information about making a release.
./RELEASE
Updated function list based on public header files.
./bin/checkposix
Got rid of complaints about some obvious things.
./doc/html/H5.api.html
./doc/html/RM_H5F.html
./src/H5F.c
./src/H5Fpublic.h
./test/tfile.c
Changed H5Fget_create_template() and H5Fget_access_template()
to H5Fget_create_plist() and H5Fget_access_plist() since that
conforms better to lots of other names.
./doc/html/Datatypes.html
./doc/html/ExternalFiles.html
./doc/html/Files.html
./doc/html/H5.api.html
./doc/html/H5.sample_code.html
./doc/html/RM_H5F.html
./doc/html/RM_H5Front.html
Changed `template' to `property list', etc.
./doc/html/Ragged.html [NEW]
Documentation for ragged arrays.
./src/H5Iprivate.h
./src/H5Ipublic.h
./src/H5I.c
Changed the scope of some symbols to be more local.
./src/H5.c
./src/H5AC.c
./src/H5D.c
./src/H5E.c
./src/H5F.c
./src/H5Ffamily.c
./src/H5Fistore.c
./src/H5Flow.c
./src/H5Fsec2.c
./src/H5Fsplit.c
./src/H5Fstdio.c
./src/H5G.c
./src/H5Gnode.c
./src/H5HG.c
./src/H5I.c
./src/H5O.c
./src/H5Ocomp.c
./src/H5Odtype.c
./src/H5Oefl.c
./src/H5Omtime.c
./src/H5Oname.c
./src/H5P.c
./src/H5S.c
./src/H5Shyper.c
./src/H5Tbit.c
./src/H5Tconv.c
./src/H5V.c
./src/H5Z.c
./src/H5private.h
Fixed some violations of our naming scheme by adding HD to the
beginning of all Posix functions.
Changes since 19980904
----------------------
./MANIFEST
./bin/release
./bin/snapshot
The format of the MANIFEST file has been relaxed -- comments
and blank lines should no longer confuse the tools that use
it.
As before, this file should contain a list of *all* files that
are part of HDF5, which means all files which are managed by
CVS/SVF. However, files can be marked so they're not part of
a release by adding _DO_NOT_DISTRIBUTE_ after the file name.
I've removed all the *.obj files from the distribution by
adding _DO_NOT_DISTRIBUTE_ after their names. I also removed
the old white-papers that might not apply to the current
version of the library and documentation about chunking
performance since it's wrong now that chunk caching is
implemented. Everyone please check the files you're
responsible for to make sure that they should really be part
of a release.
To get a list of all files use
grep '^\.' MANIFEST | cut -f1
To get a list of files for distribution use:
grep '^\.' MANIFEST | grep -v _DO_NOT_DISTRIBUTE_
(These commands assume tabs in the MANIFEST file. If the file
might contain spaces then run it through `unexpand' or `tr'
first).
./configure.in
./configure
./src/H5config.h.in
./test/ragged.c
Check for sigaction().
./test/Makefile.in
The `clean' target removes the timing tests.
./bin/checkposix
Got rid of complaints about some obvious things.
./doc/html/H5.api.html
./doc/html/RM_H5F.html
./src/H5F.c
./src/H5Fpublic.h
./test/tfile.c
Changed H5Fget_create_template() and H5Fget_access_template()
to H5Fget_create_plist() and H5Fget_access_plist() since that
conforms better to lots of other names.
./src/H5Iprivate.h
./src/H5Ipublic.h
./src/H5I.c
Changed the scope of some symbols to be more local.
./src/H5.c
./src/H5AC.c
./src/H5D.c
./src/H5E.c
./src/H5F.c
./src/H5Ffamily.c
./src/H5Fistore.c
./src/H5Flow.c
./src/H5Fsec2.c
./src/H5Fsplit.c
./src/H5Fstdio.c
./src/H5G.c
./src/H5Gnode.c
./src/H5HG.c
./src/H5I.c
./src/H5O.c
./src/H5Ocomp.c
./src/H5Odtype.c
./src/H5Oefl.c
./src/H5Omtime.c
./src/H5Oname.c
./src/H5P.c
./src/H5S.c
./src/H5Shyper.c
./src/H5Tbit.c
./src/H5Tconv.c
./src/H5V.c
./src/H5Z.c
./src/H5private.h
Fixed some violations of our naming scheme by adding HD to the
beginning of all Posix functions.
Changes since 19980901
----------------------
./test/dtypes.c
Got rid of one of some of the `increases alignment' warnings.
./test/tselect.c
Got rid of an unused variable.
Changes since 19980931
----------------------
./test/cmpd_dset.c
Uncommented the last test again and there are still bugs.
Changes since 19980831
----------------------
./Makefile.in
Running `make distclean' will not fail if one of the
subdirectories has already been cleaned.
./config/BlankForm
./config/irix5.3
Cleaned it up more. Added better support/documentation for
systems that have more than one compiler.
./config/alpha-dec-osf4.0 [NEW]
Added a new config file as a result of testing on Jim Reus's
machine.
./test/chunk.c
Scaled down the testing range so we can actually run it
interactively.
./tools/h5import.c
Included <unistd.h> to get rid of warning for close().
./src/H5detect.c
Seg-faults on Linux for some reason when NDEBUG is defined, so
I just undef it at the top of the source.
./test/big.c
Added a fflush().
./tools/h5ls.c
The `-d' flag now works even when `-v' isn't specified.
./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
Indented according to hdf5 standards.
Fixed compiler warnings
Changes since 19980828
----------------------
./RELEASE
Updated with important changes I made since the second beta.
./src/H5A.c
./src/H5D.c
./src/H5Dprivate.h
./src/H5G.c
./src/H5Gprivate.h
./src/H5R.c
./src/H5Rprivate.h
./src/H5T.c
./src/H5Tprivate.h
Any API function that used to take an `hid_t loc_id' followed
by a `const char *name' can now take any type of object for
the loc_id as long as the object is somehow associated with a
file. Internally, H5G_loc() was modified to return an
H5G_entry_t* instead of an H5G_t* so it's more general.
Among other things, this allows one to retrieve information
about an object like a named type or dataset without knowing
the name of the type or dataset:
int
get_nlinks (hid_t obj)
{
H5G_stat_t sb;
if (H5Gstat(obj, ".", TRUE, &sb)<0) return -1;
return sb.nlink;
}
./test/gheap.c
./test/istore.c
These files needed a couple of changes because they call some
of the internal functions whose H5G_t arguments changed to
H5G_entry_t.
./src/H5A.c
Got rid of all the switch statements for getting symbol table
entries for varous objects and replaced them with a call to
H5G_loc() allowing attributes to automatically apply to any
type of object that belongs to a file.
./test/Makefile.in
Moved the ragged array tests from the normal list of tests to
the `make timings' target.
./test/ragged.c
Added rewrite tests -- rewrite the rows of a dataset changing
the number of rows and the length of each row.
./test/mtime.c
Added a test that checks that H5Gstat() can be called with a
dataset as the first argument.
./src/H5S.c
Added #ifdef HAVE_PARALLEL around code to check for the
HDF5_MPI_OPT_TYPES environment variable because the global
variable that gets set is #ifdef'd.
./bin/release
bzip2 uses .bz2 as the file extension.
Changes since 19980827
----------------------
./src/H5G.c
Fixed a link count on groups. Groups were always created with
a link count of zero instead of one.
./src/H5Gpublic.h
Added H5G_NTYPES so applications can easily declare arrays
which are indexed by object type.
./src/H5O.c
Calling `H5O_link(&ent,0)' will succeed when the file is open
for read only because it's the only way to get the object's
current link count.
./tools/h5ls.c
Can take non-group object names on the command line (and
multiple objects). Reorganized to be more extendible. The
link count is displayed for `-v'.
./src/H5F.c
Dumping of cache statistics is controlled by only the
HDF5_DEBUG environment variable and not the H5F_ACC_DEBUG flag
for H5Fopen() and H5Fcreate() since this makes it similar to
the other debugging options.
./src/H5R.c
./test/ragged.c
./test/Makefile.in
Tests pass but still a little work left to be done.
Changes since 19980825
----------------------
./MANIFEST
./src/H5R.c [NEW]
./src/H5Rprivate.h [NEW]
./src/H5Rpublic.h [NEW]
./src/Makefile.in
./src/hdf5.h
./test/ragged.c [NEW]
Preliminary support for 2d ragged arrays for Mark Miller and
Jim Reus. Not fully implemented yet. The test is not actually
part of `make test' because we still have some memory problems.
./src/H5E.c
./src/H5Epublic.h
Added H5E_RAGGED as a major error number.
./bin/release
Checks the MANIFEST file against `svf ls' on systems that have
it.
./bin/trace
Fixed a bug that caused arguments of type `void *x[]' to not
be handled.
./src/H5.c
Removed unused variables and changed a couple types to
fix compiler warnings.
Added tracing support for ragged array object ID's and arrays
of pointers.
./src/H5D.c
H5Dcreate() will complain if either of the property lists are
invalid (instead of using the default).
./src/H5D.c
./src/H5Dprivate.h
Split H5Dget_space() into an API and internal function so it
can be called from the new ragged array layer.
./src/H5Fistore.c
Fixed warnings about unsigned vs. signed comparisons.
./src/H5Flow.c
Fixed a warning about a variable being shadowed in the MPI-IO
stuff.
./src/H5Iprivate.h
./src/H5Ipublic.h
Added the H5_RAGGED atom group.
./src/H5Shyper.c
Fixed some freeing-free-memory errors that resulted when
certain arrays were freed but the pointers were left in the
data structures. I simply set the pointers to null after they
were freed.
./src/H5Sprivate.h
./src/H5Sselect.c
Split the H5Sselect_hyperslab() function into an API and a
private function so it could be called from the ragged array
layer.
Added H5S_SEL_ERROR and H5S_SEL_N to the switch statements to
get rid or compiler warnings.
./src/H5Tconv.c
Removed a misleading comment.
./test/bittests.c
Fixed a warning about a printf().
./test/cmpd_dset.c
Fixed warnings about unused variables because of test #11
being commented out.
./bin/trace
Shortened the right margin for the output to allow room for
the `);' at the end of the TRACE() macros.
Changes since 19980824
----------------------
Undocumented changes while at Livermore.
Changes since 19980818
----------------------
./src/H5.c
Fixed an argument promotion bug in HDfprintf()
./src/H5Fistore.c
Fixed a array bounds read error.
./src/H5HG.c
Fixed uninitialized (but unused) data appearing in the hdf5
file, a potential security problem.
./src/H5T.c
./src/H5Tpublic.h
Added new data types for hdf5 types: H5T_NATIVE_HSIZE,
H5T_NATIVE_HSSIZE, H5T_NATIVE_HERR, and H5T_NATIVE_HBOOL. I
did not add H5T_NATIVE_HID since I couldn't think of a reason
that it would be stored in a file anyway.
Changes since 19980814
----------------------
./src/H5Fistore.c
Fixed a bug that caused the wrong number of chunk offsets to
be read or written from the file.
./src/H5Z.c
Fixed a memory bug.
./test/dtypes.c
Removed redundant tests.
./bin/snapshot
Removed Perl code from a shell script. Oops :-)
./src/H5D.c
Removed cvs merge conflicts.
./src/H5Omtime.c
Fixed a typo in the Irix5.3 code.
./src/H5S.c
Fixed a memory leak.
./src/H5Shyper.c
Fixed a bad call to malloc() that didn't allocate enough
memory. Reordered a comparison to eliminate an array bounds
read error.
Changes since 19980813
----------------------
./src/H5G.c
./src/H5Gpublic.h
./test/links.c
Fixed a bug in H5Gstat() that caused the wrong information to
be returned sometimes. Added check for named data types.
./test/extend.c
./test/links.c
./test/mtime.c
Added `all tests passed' messages.
Changes since 19980810
----------------------
./MANIFEST
./src/H5Ssimp.c [REMOVED]
./src/Makefile.in
Removed H5Ssimp.c since it was no longer used.
./bin/snapshot
Fixed a few minor things to make it work better.
./src/H5D.c
Cleaned up H5D_read() and H5D_write() by combining some code
in each. Added timing calls around the data space calls when
H5S_DEBUG is defined.
./src/H5S.c
./src/H5Sall.c
./src/H5Shyper.c
./src/H5Spoint.c
./src/H5Sprivate.h
Changed H5S_find() so it returns a table entry again instead
of copying the data into a caller-supplied buffer. This
allows the timers to be stored in the table and updated by the
caller. Added H5S_register() to register new table entries
and added entry creation to all the H5S selection
methods. Also changed lots of global functions to static
functions.
./src/H5Fistore.c
Fixed a memory bug in the raw data cache.
Changes since 19980806
----------------------
./doc/html/Datatypes.html
./doc/html/H5.format.html
./src/H5.c
./src/H5Odtype.c
./src/H5T.c
./src/H5Tconv.c
./src/H5Tpkg.h
./src/H5Tpublic.h
./test/dtypes.c
Changed the values of the H5T_str_t type in order to make a
distinction between C's null terminated strings and strings
which are not null terminated.
The string character set and padding method are saved to the
hdf5 file instead of using defaults.
Added conversion function from one fixed-length string type
to another.
./test/chunk.c
Fixed to work with new filter API
./bin/snapshot
Better `diff' of two releases.
Skip release if `make _test' fails.
Changes since 19980806
----------------------
./config/solaris2.5
Hopefully set up now so it honors the CC and CFLAGS variables
and understands solaris cc flags.
./test/big.c
Checks to see if creating lots of large sparse files exceeds
the user disk quota and skips the test. It also checks that
we can actually open ~64 files at once.
./doc/html/Files.html
./src/H5A.c
./src/H5Aprivate.h
./src/H5F.c
./src/H5Fpublic.h
Added the H5Fflush() function which takes any object as an
argument as long as the object is in some way associated with
a file. This required an H5A_entof()
./src/H5.c
./src/H5Flow.c
The `%a' format of HDfprintf() now allows a field width and
justification flag etc, like the other formats. The old
H5F_addr_print() was recoded to call HDfprintf() instead of
vice versa.
Changes since 19980805
----------------------
./MANIFEST
Replaced Compression.html with Filters.html
./doc/html/Filters.html
./src/H5Ocomp.c
./src/H5P.c
./src/H5Ppublic.h
./src/H5Z.c
./src/H5Zprivate.h
Added two extra arguments to H5Pget_filter() in order to
retrieve the filter name. The name is the name registered for
the filter with H5Zregister(), but if the dataset creation
property originally came from an existing file then the name
is that which is stored in the file.
./tools/h5ls.c
The `-v' option now prints the names of the filters.
./src/H5B.c
./src/H5Fistore.c
./src/H5O.c
./src/H5Oefl.c
./src/H5Oprivate.h
./src/H5P.c
Plugged a memory leak.
./src/H5MMprivate.h
H5MM_malloc(0) and H5MM_calloc(0) actually allocate a single
byte in order to be sure that we get a valid pointer.
./src/H5S.c
./src/H5Sselect.c
Fixed pointer->integer conversions in error return values in
three places.
Changes since 19980731
----------------------
./bin/release
Added ./Makefile to the distribution again -- it got lost in
the changes last week although it isn't all that important a
file since it gets clobbered by configure anyway.
./bin/trace
./doc/html/Filters.html
./doc/html/H5.format.html
./doc/html/H5.user.html
./src/H5.c
./src/H5D.c
./src/H5Dprivate.h
./src/H5E.c
./src/H5Epublic.h
./src/H5Farray.c
./src/H5Fistore.c
./src/H5Fprivate.h
./src/H5O.c
./src/H5Ocomp.c
./src/H5Oprivate.h
./src/H5P.c
./src/H5Ppublic.h
./src/H5Sall.c
./src/H5Shyper.c
./src/H5Spoint.c
./src/H5Sprivate.h
./src/H5Ssimp.c
./src/H5Z.c
./src/H5Zprivate.h
./src/H5Zpublic.h
./src/hdf5.h
./test/dsets.c
./tools/h5ls.c
Added the data filter pipeline, a generalization of the
compression stuff which allows things like checksums,
encryption, compression, performance monitoring, etc. See
./doc/html/Filters.html for details -- it replaces the
Compression.html doc.
./src/H5T.c
Cleaned up debugging output.
./config/linux
Added checks for egcs and pgcc and changed optimization flags
for the compilers.
./src/H5G.c
./tools/h5dump.c
Fixed compiler warnings in these files and others.
./configure.in
./src/H5private.h
./test/mtime.c
Added a check for difftime() and defined HDdifftime() to do
something else on systems that don't have difftime().
Changes since 19980730
----------------------
./bin/release
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.
./bin/h5vers
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.
Changes since 19980729
----------------------
./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.
Changes since 19980724
----------------------
./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.
Changes since 19980723
----------------------
./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)
Changes since 19980722
----------------------
./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,
...
Changes since 19980722
----------------------
./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.
Changes since 19980721
----------------------
./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.
Changes since 19980720
----------------------
./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.
Changes since 19980720
----------------------
./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.
Changes since 19980720
----------------------
./doc/html/H5.format.html
./src/H5Oattr.c
./src/H5Odtype.c
./src/H5Oefl.c
./src/H5Olayout.c
./src/H5Osdspace.c
./src/H5Oshared.c
Added version numbers to some object header messages so we can
update them easier in the future. The library currently just
gives up if the version numbers don't match, but in the future
the library could handle multiple versions of a message.
./test/testhdf5.c
Removed an argument from the H5version() call that I missed
last time.
Changes since 19980720
----------------------
./bin/release
The archive names have only three parts to a version number.
Instead of `hdf5-1.2.3d.tar.gz' they will be named like
`hdf5-1.2.3.tar.gz'.
./src/H5public.h
./src/H5.c
Dropped the patch level from the version number. The version
number is now a major number, a minor number, and a release
number.
./doc/html/Version.html
Updated to get rid of patch numbers.
./tools/h5repart.c
Added a `-V' flag like for `h5ls' that prints the version number.
Changes since 19980720
----------------------
./doc/html/H5.format.html
./src/H5F.c
./src/H5Gprivate.h
./src/H5Oshared.c
Added file alignment fields: the boot block has an extra
reserved address field. The symbol table entry scratch pad
space was reduced from 24 bytes to 16 bytes. The index
permutation was moved earlier in the data type message for
compound data types and extra padding was added. Four bytes
of padding was added to the shared message format.
Changes since 19980715
----------------------
./doc/html/H5.format.html
./src/H5Gent.c
./src/H5Gprivate.h
./src/H5Oattr.c
./src/H5Oprivate.h
./src/H5Oshared.c
./src/H5HG.c
./src/H5HGprivate.h
Added padding fields in symbol table entries, attribute
messages, shared messages, and global heap objects to insure
that things are aligned on 8-byte boundaries in the file, and
thus in memory. Otherwise some little endian machines
complain (DEC Alpha) during encoding/decoding of file meta
data. I chose to add alignment to the file rather than
rewriting the ENCODE/DECODE macros for the little endian case.
Completely rewrote the section on attribute messages.
More alignment stuff will follow.
./src/H5detect.c
Fixed a typo `nd'->`dn'
./test/dtypes.c
Commented out conversion tests to/from `long double' on
machines where it's the same size as `double' to get rid of
compiler warnings.
./doc/html/Big.html
Fixed a couple typos.
Changes since 19980715
----------------------
./src/H5Flow.c
./src/H5Fprivate.h
./src/H5Fsplit.c
Changed the allocation size request from `size_t' to `hsize_t'
because it was overflowing for the `big' test.
./src/H5detect.c
If `long double' and `double' are the same size then we define
H5T_NATIVE_LDOUBLE to be the same as H5T_NATIVE_DOUBLE.
Similarly for `long' vs. `long long' and `unsigned long' vs.
`unsigned long long'.
./test/Makefile.in
Added `big' to the list of tests to normally run.
./test/big.c
Added a check to see if the file system supports holes and if
it doesn't then the test is skipped.
./RELEASE
Added a couple minor details details about API tracing and
symbolic links.
./src/H5public.h
Added comments about the use of hbool_t. Fixed a comment
spelling error.
./test/testhdf5.h
Changed the way the version number is printed. The old method
was `hdf5-1.2.3d' and the new method is `hdf5 version 1.2
release 3'
./tools/h5ls.c
Only prints the max dimension if it differs from the current
dimension or if verbose mode is enabled. Added switches `-?',
`-h', and `--help' to print a usage message. Added switches
`-v' and `--verbose' to generate more verbose output. Added
switches `-V' and `--version' to print the version number and
exit. The version number is printed like: This is h5ls
version 1.0 release 24'
./bin/h5vers [NEW]
This script prints, sets, and/or increments the hdf5 version
number. It can be run from the top directory or any of the
child directories like src, tools, test, etc. Some examples:
$ h5vers # Display current version
1.0.24
$ h5vers -v
version 1.0 release 24 # Display current version.
$ h5vers -s 5.2.8 # Set version and display
5.2.8
$ h5vers -s 2.1
2.1.0
$ h5vers -s hdf5-1.0.24a.tar.bz2
1.0.24
$ h5vers -s 'version 2.0 release 8'
2.0.8
$ h5vers -s 'junk 22 junk 33 more junk 66 and 99 junk'
33.66.99
$ h5vers -i major # Increment from 1.0.24
2.0.0
$ h5vers -i minor # Increment from 1.0.24
1.1.0
$ h5vers -i release # Increment from 1.0.24
1.0.25
$ h5vers ~/hdf5/src/H5public.h # Use an alternate file
1.0.24
./bin/checkapi [NEW]
Run from the src directory with arguments H5[A-Z]*.c and it
will print the locations of each place where an API function
was called from within the library. Use it as the compile or
grep command under Emacs and you can C-x ` through the list.
./bin/debug-ohdr [NEW]
Keeps track of H5O_open() and H5O_close() debugging messages
and lists the file addresses of the object headers that are
opened but never closed. You must enable the `o' debugging at
configuration time and pipe stderr into this script.
./bin/errors
Added a note to indicate that this script no longer works
because of changes in the HRETURN_ERROR() and HGOTO_ERROR()
macros.
./bin/iostats [NEW]
Watches output from the Linux strace program and accumulates
statistics about low-level access to an hdf5 file. The output
is a list of 2d data points which can be plotted by gnuplot to
show file seeking behavior.
./MANIFEST
Added new files.
Changes since 19980713
----------------------
./config/conclude.in
Fixed so `make test' and `make progs' work on a clean source tree.
Changes since 19980710
----------------------
./Makefile.in
./config/commence.in
./config/conclude.in
./config/depend.in
./src/Makefile.in
./test/Makefile.in
Tests are no longer installed for `make install'. Added a new
target `make tests' that builds the tests but doesn't run them.
./configure.in
./configure [REGENERATED]
./src/H5config.h.in [REGENERATED]
Added detection of fork() and waitpid(). If present the
contants HAVE_FORK and HAVE_WAITPID will be defined in
H5config.h.
./test/dtypes.c
Minor tweaks for systems that don't have fork() or waitpid().
./MANIFEST
./tools [NEW]
./tools/Makefile.in [NEW]
./tools/h5debug.c [NEW]
./tools/h5import.c [NEW]
./tools/h5ls.c [NEW]
./tools/h5repart.c [NEW]
Added a tools directory and moved tools from the src directory
to here.
Changes since 19980709
----------------------
./README
./bin/release
The first line of the README file is updated automatically
by the `release' script to associate a date with a release
number. For example:
This is hdf5-1.0.9a released on 1998-06-09 18:00 UTC
Please refer to the INSTALL file for installation instructions.
./src/H5public.h
Release number incremented. This happens automatically now if
you run the `release' script in `-batch' mode. I'll stop
documenting changes to this file unless they're something
other than a release number change.
./MANIFEST
Added Elena's new files.
Changes since 19980708
----------------------
./src/Makefile.in
Fixed missing H5Zpublic.h header file.
./src/H5Fistore.c
Indented some printf's in the left margin so various C source
tools work correctly.
Changes since 19980708
----------------------
./src/H5Fistore.c
./src/H5S.c
Fixed places where `herr_t' functions returned NULL for
failure: H5F_istore_get_addr() and printf(?!?) (probably
because a printf() was in the first column :-/ so I don't know
what function it really was that I fixed), and H5S_extent_copy().
./src/H5Fprivate.h
Added declarations for H5F_istore_get_addr() and
H5F_istore_allocate().
./src/H5S.c
./src/H5Sprivate.h
Split H5Sset_extent_simple() into H5S_set_extent_simple() and
replaced calls to the API function with calls to the internal
function.
Changed calls to H5Screate() to H5S_create() and H5Sclose() to
H5S_close().
./src/H5Shyper.c
./src/H5Spoint.c
Removed unused labels and variable.
./src/H5T.c
./src/H5Tconv.c
Changed calls to H5Tfind() to H5T_find().
./src/H5TB.c
Split function return type onto a separate line for five
functions and added API tracing calls.
Changes since 19980708
----------------------
./MANIFEST
Alphabetized. `d' comes before `e' :-)
./bin/release
Added the `-batch' option which causes the script to not ask
questions and to automatically update the minor version
number and set the patch level back to `a'. This is intended
to be used for the daily snapshots:
#! /bin/sh
set -e
cd ~/hdf5
make distclean
make test
bin/release -batch tar compress gzip bzip2
mv ./releases/* /repository
./src/H5Z.c
Removed warnings about unused variables when the zlib.h header
file is present but libz.a isn't.
./INSTALL
./configure.in
./doc/html/tracing.html
Made API tracing the default (you still need to define the
HDF5_TRACE environment variable to get results) and change the
name from `--disable-tracing' to `--disable-trace' to make it
consistent with the other switches.
Changed `site config file' to `host config file' to match the
documentation.
./doc/html/H5.user.html
Added a reference to the `tracing.html' file.
Changes since 19980707
----------------------
./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).
Changes since 19980707
----------------------
./bin/trace
./src/H5.c
./src/H5private.h
./src/H5A.c
./src/H5D.c
./src/H5F.c
./src/H5G.c
./src/H5P.c
./src/H5Pprivate.h
./src/H5S.c
./src/H5T.c
Output-only arguments have their addresses printed during
tracing and added symbolic output for the H5F_driver_t
arguments. That's another reason that we should be careful to
add `/*out*/' after arguments that are output-only and
`/*in,out*/' after arguments that are used for both input and
output values.
No internal function calls H5Pget_class() anymore.
./src/H5T.c
./src/H5Tconv.c
./src/H5Tpkg.h
./src/H5Tpublic.h
Added H5Tget_overflow() and H5Tset_overflow() so the
application can query or set a function that will be called
whenever an overflow occurs. Implemented as documented in
previous e-mail except the overflow handler gets two buffers:
one that contains the source value and one to receive the
optional destination value.
./test/dtypes.c
Tests overflow handler.
./src/H5.c
We have to declare fdopen() because I'm getting errors when
compiling on Irix64 even though we include <stdio.h> as
documented in the fdopen() man page.
Changes since 19980706
----------------------
./src/H5public.h
If sizeof(size_t)==sizeof(long long) then we define `hsize_t'
in terms of size_t to get rid of warnings on systems that
treat `long long' the same as `long'.
Changes since 19980702
----------------------
./src/H5T.c
Prints statistics for no-op conversions also.
For now, hardware floating point conversions may or may not
raise SIGFPE depending on the hardware, operating system,
etc. Software conversions never raise SIGFPE and use +Inf or
-Inf for overflow.
./test/dtypes.c
Catches SIGFPE and causes the test to be skipped. Better test
for NaN.
./config/irix5.3
Removed the -U_POSIX_SOURCE because it was removed from the
main makefiles.
./bin/trace
./src/H5S.c
Fixed a typo that prevented tracing info from being added to
new API functions.
Changes since 19980702
----------------------
./MANIFEST
Added new files from testpar directory.
./config/commence.in
Removed -D_POSIX_SOURCE because hdf5 uses a couple of
non-Posix things when certain debugging flags are switched on.
Changes since 19980630
----------------------
./MANIFEST
./configure.in
./examples/Makefile.in [NEW]
Added a Makefile.in for the examples directory. To generate
the Makefile run configure again.
Changes since 19980612
----------------------
./src/H5Tbit.c
./src/H5Tpkg.h
Fixed a bug in H5T_bit_copy(). Added H5T_bit_get_d() and
H5T_bit_set_d() which treat portions of a bit vector as an
unsigned integer. Added H5T_bit_inc() that increments part of
a bit vector and returns an indication of overflow.
./src/H5Tconv.c
./src/H5Tpkg.h
./test/dtypes.c
Added a slow general floating point conversion which works so
far on Intel, MIPS, and DEC but the test is turned off because
a cast from double to float will cause a SIGFPE on some
systems if an overflow occurs.
Added fast hardware conversions between native floating point
types. This function is also subject to the SIGFPE problem.
./src/H5detect.c
Removed the exponent bias adjustment when the significand
isn't normalized. This is now handled in the conversion
functions instead.
./src/H5T.c
Register new conversion functions.
Plugged a memory leak in the library termination code.
./RELEASE
Added a list of major changes since the first alpha.
./src/H5.c
./src/H5private.h
./src/H5A.c
./src/H5AC.c
./src/H5D.c
./src/H5Ffamily.c
./src/H5Fistore.c
./src/H5G.c
./src/H5Gprivate.h
./src/H5HG.c
./src/H5O.c
./src/H5T.c
./src/H5Tbit.c
./src/H5Tconv.c
Fixed various compiler warnings on Irix64.
./src/H5MM.c
Added PABLO_MASK to this file.
./test/chunk.c
Removed a warning about memcpy().
Changes since 19980618
----------------------
./INSTALL
./INSTALL_MAINT
./README
./RELEASE
Partially updated for second alpha, but haven't updated
version numbers yet.
./src/H5.c
./src/H5A.c
./src/H5AC.c
./src/H5B.c
./src/H5D.c
./src/H5F.c
./src/H5Fcore.c
./src/H5Ffamily.c
./src/H5Fistore.c
./src/H5Fmpio.c
./src/H5Fsec2.c
./src/H5Fsplit.c
./src/H5Fstdio.c
./src/H5G.c
./src/H5Gnode.c
./src/H5HG.c
./src/H5HL.c
./src/H5I.c
./src/H5MM.c
./src/H5MMprivate.h
./src/H5O.c
./src/H5Oattr.c
./src/H5Ocomp.c
./src/H5Ocont.c
./src/H5Odtype.c
./src/H5Oefl.c
./src/H5Olayout.c
./src/H5Oname.c
./src/H5Osdspace.c
./src/H5Oshared.c
./src/H5Ostab.c
./src/H5P.c
./src/H5S.c
./src/H5T.c
./src/H5Tconv.c
./src/H5detect.c
./test/hyperslab.c
./test/istore.c
Changed memory allocation functions so they fail instead of
dumping core. The `x' was removed from the name to remind us
of that: H5MM_xmalloc() -> H5MM_malloc(), etc.
H5MM_calloc() takes one argument like H5MM_malloc() instead of
two like calloc() because we almost always called it with `1'
for one of the arguments anyway. The only difference between
the two functions is that H5MM_calloc() returns memory which
is initialized to zero.
./src/H5Gent.c
./src/H5Gprivate.h
Removed H5G_ent_calloc() since it wasn't used.
./src/H5Fistore.c
Fixed a bug found by Albert. Thanks, Albert! This fix
combined with the changes to memory allocation prevent the
library from failing an assertion if the application uses an
unreasonable size for chunks (like Alberts 10000x10000x4).
./src/H5MF.c
./src/H5MFprivate.h
Changed H5MF_free() to H5MF_xfree() since calling it with an
undefined address is allowed.
Changes since 19980617
----------------------
./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.
Changes since 19980617
----------------------
./src/H5T.c
Fixed a potential division by zero error.
./src/H5Fistore.c
Fixed an assertion failure that I accidently introduced with
the previous changes.
Changes since 19980616
----------------------
./html/tracing.html NEW
This entire update is to make it possible for the library to
print the name, arguments, and return value of every API call
without requiring any extra work from developers or app
programmers. This file describes how this all works.
./configure.in
Added the `--enable-tracing' switch. If you use it then the
library will include code to print API function names,
argument names and values, and function return values.
However, you must then turn on the tracing by setting the
HDF5_TRACE environment variable to a file descriptor number.
The default is `--disable-tracing' since enabling it causes a
slight increase in library size and a slowdown resulting from
an extra function call for each API function call (I couldn't
even measure the slowdown :-)
./bin/trace NEW
A perl script that synchronizes the H5TRACE() macro calls in
the *.c files with the function return type and formal
argument names and types. If you use GNU make and gcc then
this will be done automatically, otherwise just invoke this
script with the names of one or more .c files. You could do
it by hand to, but encoding argument types is a little tricky
at first.
./config/commence.in
Added the $(TRACE) macro, which defaults to the no-op.
Added -D_POSIX_SOURCE to the compiler command line.
./src/Makefile.in
Override the default for $(TRACE).
./config/depend.in
Automatically calls $(TRACE) to synchronize the H5TRACE()
macros in any source file that changed. As with makefile
dependencies, one way to force synchronization of all files is
to remove the `.depend' file.
./MANIFEST
Added new files.
./src/H5Eprivate.h
Modified HRETURN_ERROR() and HRETURN() for tracing.
./src/H5.c
./src/H5private.h
This is where the real tracing work really happens, in
H5_trace().
./src/H5A.c
./src/H5D.c
./src/H5G.c
./src/H5P.c
./src/H5S.c
./src/H5Z.c
Added H5TRACE() calls to all API functions. You don't really
need these changes if you don't want to merge your stuff
because they can be generated automatically by going to the
hdf5/src directory and saying ../bin/trace *.c
./src/H5T.c
Added H5TRACE() calls. Other stuff below.
./src/H5E.c
./src/H5Epublic.h
Added H5TRACE() calls. Created a type H5E_auto_t for the
`func' argument of H5Eset_auto() and H5Eget_auto() to make
those arguments easier to parse for tracing. It should also
make it clearer for users that don't know how to read
complicated ANSI data types.
./src/H5F.c
Added H5TRACE() calls. Changed a couple `uintn' argument
types in API functions to `unsigned int' since `uintn' part of
the API. Changed a few "can't" and "cant" error messages to
"unable to".
./src/H5Ipublic.h
Removed H5_DIRECTORY from the H5I_group_t enum. It wasn't
used anywhere.
./src/H5Tconv.c
Removed an unused label.
./src/H5Fistore.c
./src/H5Oattr.c
./src/H5Odtype.c
./src/H5T.c
./test/dsets.c
./test/dtypes.c
Fixed a warning about a variable possibly used before it's
initialized. Added __unused__ to turn off some unused
argument warnings that pop up when debugging is turned off and
optimizations are turned on.
Changes since 19980612
----------------------
./src/H5Tbit.c
./MANIFEST
./test/Makefile.in
./test/bittests.c NEW
Finished the bit vector operations and added test cases.
./src/H5Tconv.c
./test/dtypes.c
Finished integer->integer general conversion and added test
cases. Overflows and underflows are handled by substituting
the closest possible value. Examples:
(unsigned)0xffff -> (unsigned) 0xff
( signed)0xffff -> (unsigned)0x0000
(unsigned)0xffff -> ( signed)0x7fff
( signed)0x7fff -> ( signed) 0x7f
( signed)0xbfff -> ( signed) 0xbf
( signed)0x8000 -> ( signed) 0x80
./src/H5private.h
Added definitions for MIN and MAX that take 3 or 4 arguments:
MIN3(), MIN4(), MAX3(), MAX4(). Also added MIN2() and MAX2()
as aliases for MIN() and MAX().
./test/tattr.c
Removed some redundant `&' operators.
./configure.in
./src/H5config.h.in [regenerated]
./src/H5.c
Fixed warnings on DEC where long double is the same as
double.
Changes since 19980610
----------------------
THIS CHECKIN IS FOR QUINCEY -- NOT EVERYTHING WORKS (but it compiles)
MOST OF THE CHANGES ARE FOR BETTER TYPE CONVERSION IN THE NEXT ALPHA
./MANIFEST
./src/H5Tbit.c NEW
./src/Makefile.in
Bit vector operations (not done yet)
./configure.in
Added -lm to the library list, needed by bit-vector operations
and conversion functions.
Removed vestiges of PARALLEL_SRC no longer used by the
makefiles. Albert came up with a better way (that actually
works :-)
./src/H5D.c
No code changes. Split a couple of long lines, refilled a
couple multi-line comments.
./src/H5T.c
./src/H5Tpublic.h
Fixed a bug reported by Jim Reus regarding conversion of
compound data types whose members require conversions which
are satisfied by as-yet unregistered soft conversion
functions.
Added H5T_IEEE architecture, but the funny-looking integer
types will be changed to H5T_BE_ and H5T_LE_ architectures
with the type names changed to match the H5T_NATIVE_ integers.
Added an H5Tconvert() but it hasn't been documented or tested
yet.
./src/H5Tconv.c
./src/H5Tpkg.h
Registered conversion functions integer->integer (a general
case) and integer->float (for a specific case). The
integer->integer conversion depends on the bitvector
operations which aren't finished yet and the int->float
conversion hasn't been retested since it was borrowed from
AIO. Don't look at them yet, they're ugly :-)
./src/H5detect.c
Fixed a typo which caused the msb_pad field of an atomic type
to not be initialized.
./test/dtypes.c
Added a test for number conversions but it's commented out
until the conversion stuff is truly working.
Changes since 19980605
----------------------
./html/Files.html
./src/H5F.c
./src/HFcore.c
./src/H5Ffamily.c
./src/H5Flow.c
./src/H5Fmpio.c
./src/H5Fprivate.h
./src/H5Fsec2.c
./src/H5Fsplit.c
./src/H5Fstdio.c
./src/H5MF.c
./src/H5P.c
./src/H5Ppublic.h
Added H5Pset_alignment() so that it is now possible to align
file allocation requests on application-specified
boundaries. Any request >= the specified threshold will begin
on an address which is a multiple of the specified
alignment. Defaults are one for threshold and alignment. The
alignment is done on relative addresses, so the size of the
user block can affect the location of the data in the file.
./src/H5D.c
./src/dsets.c
Added a test for, and fixed the data space caching bug in
datasets. Extending a dataset through one handle will cause
all other handles to the same dataset to get the new dataset
size.
./src/H5S.c
./src/H5Sprivate.h
Removed an unused argument from H5S_read() which duplicated
information from the other argument.
./config/linux
Made `--enable-parallel' the default on my system. It used to
be that way before but then I accidently turned it off and
forgot about it.
./src/H5Fmpio.c
Qualified some function arguments with __unused__. Changed a
couple places where NULL was returned on error for herr_t
functions.
./src/H5P.c
Removed unused autos from H5Pset_mpi().
Changes since 19980604
----------------------
./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.
Changes since 19980604
----------------------
./html/Datatypes.html
Updated documentation for named data types and type sharing.
./src/H5Farray.c
Split a couple long lines.
./src/H5T.c
The H5T_copy() demotes immutable types to read-only types so
they're cleaned up properly and memory is not leaked.
./test/dtypes.c
Modified to be more consistent with other tests. Removed all
internal header files, constants, types, and functions calls
since the API is now complete enough to test
everything. Temporary files are now removed.
Changes since 19980526
----------------------
./MANIFEST
Added ./html/h5s.examples.
./html/H5.format.html
Added new information about object header message sharing.
Reformatted and indented some old stuff.
./src/H5A.c
./src/H5D.c
./src/H5Tconv.c
./src/H5detect.c
Updated to work with new internal H5T functions. Fixed some
data type memory leaks during error recovery.
./src/H5Dprivate.h
Added H5D_typeof() similar to H5D_entof() that returns a
pointer directly to the dataset's type. This is used by
H5Tcopy() when invoked on a dataset (see below).
./src/H5Epublic.h
Fixed typos in H5E_BEGIN_TRY and H5E_END_TRY macros.
./src/H5F.c
Closing a file with objects still open reports the file name
in the warning message. Removed unnecessary invalidation of
shared data types.
./src/H5Gent.c
./src/H5Gpkg.h
./src/H5Gprivate.h
Added `const' to some arguments.
./src/H5O.c
./src/H5Oprivate.h
./src/H5Oshared.c
An object header message can now be a pointer to a message in
some other object header. The pointer is to the first message
of the appropriate type in the other object header and hard
link counts are maintained automatically to prevent dangling
pointers. The old global heap method of message sharing is
also supported although nothing actually uses it.
./src/H5Oattr.c
./src/H5Ocomp.c
./src/H5Ocont.c
./src/H5Odtype.c
./src/H5Oefl.c
./src/H5Olayout.c
./src/H5Oname.c
./src/H5Osdspace.c
./src/H5Oshare.c
./src/H5Ostab.c
Changed the data type for the shared message info struct to
H5O_shared_t and added an extra initializer to the class
methods struct for the set_share method.
./src/H5Odtype.c
Added the ability to share data type messages by pointing to
other object headers.
./src/H5T.c
./src/H5Tpkg.h
./src/H5Tprivate.h
./src/H5Tpublic.h
Added named data types and changed the functionality of some
API functions as follows:
* The term `read-only' means that a type handle cannot be
modified with functions like H5Tset_*() or H5Tinsert().
* The term `immutable' means the same as `read-only' with the
added restriction that H5Tclose() cannot be called for the
type. A transient type is made immutable by calling
H5Tlock().
* Handles to named types are always read-only.
* Handles to predefined types are immutable.
* A transient type can be converted to a named type by calling
H5Tcommit(). This function will fail if the type is already
named or is immutable.
* The API function H5Tcommitted() returns an indication of
whether a data type has been commited (or is named). If
H5Tcommitted() returns TRUE for a data type obtained by
calling H5Dget_type() on a dataset, then the dataset is
using a shared data type.
* H5Topen() returns a handle to a named type.
* H5Tcopy() always returns a handle to a modifiable transient
type even when invoked on a named type. Also, when invoked
on a dataset it returns a modifiable transient type which is
a copy of the dataset's data type.
* Using a named data type in the call to H5Dcreate() causes
the dataset object header to point to the named data type,
but using a transient type causes the type to be copied into
the dataset's object header.
* The data type returned from H5Dget_type() is a named data
type or a read-only transient data type depending on whether
the dataset points to a named data type. The old behavior,
to return a modifiable transient type, is accomplished by
overloading H5Tcopy() to operate on datasets (see above).
* H5Tshare(), H5Tunshare(), and H5Tis_shared() have been
removed from the API.
The following features were *not* implemented because they
need more discussion:
* A named data type can be opened by applying H5Topen() to a
dataset in which case the data type is the data type of the
dataset (or the data type to which the dataset points if the
dataset has a shared data type).
* A named data type can have attributes like groups or
datasets.
* The members of a compound data type can point to named data
types.
./src/h5ls.c
Reports `Data type' for named data type objects in the file.
./test/dtypes.c
Added tests for transient and named types and their use in
datasets.
./test/shtype.c
Commented out all the tests since they no longer apply.
./test/chunk.c
Removed a couple int->double coercion warnings.
Still to come:
Documentation
Changes since 19980522
----------------------
./MANIFEST
./html/Caching.html [NEW]
./html/H5.user.html
Added some info about caching.
Changes since 19980513
----------------------
./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.
Changes since 19980501
----------------------
./src/H5Bprivate.h
./src/H5F.c
./src/H5Ffamily.c
./src/H5Fprivate.h
./src/H5Gpkg.h
./src/H5MF.c
./src/H5P.c
./src/H5Ppublic.h
./test/big.c
./html/Big.html
./html/Files.html
Family members can now be any size >1kB. Got rid of some
places where we were reading a property list after it was
closed.
./MANIFEST
./src/Makefile.in
./src/h5repart.c
A program to repartition file families. The source and/or
destination may be files or file families. Examples:
testhdf5 -c -o stab
h5repart -m 1m tstab2.h5 x%05d.h5
h5repart -m 100k x%05d.h5 y%05d.h5
h5repart y%05d.h5 z.h5
diff tstab2.h5 z.h5
./src/h5ls.c
Added a usage message, replaced assertions with error
messages.
./config/linux
Made a warning message more obvious. Added better
optimization flags for Pentium-Pro's.
Changes since 19980430
----------------------
./src/H5G.c
Fixed a read/write of free memory that my home-brew purify
doesn't catch (yet :-)
Changes since 19980428
----------------------
./src/H5A.c
./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.
Changes since 19980424
----------------------
./src/H5A.c
./src/H5T.c
Fixed memory leaks. More to come later but PureAtria doesn't
make a Linux version of purify and the free version doesn't
compile with the new SMP Linux kernels so I had to debug over
the internet on a day that Sprint seemed to be having routing
problems... oh well. I got rid of most of the leaks.
./src/H5Apublic.h
Includes H5Ipublic.h for types in the header file.
./src/H5O.c
Comments improved for H5O_read()
./test/tattr.c
Removed a non-ANSI empty initializer.
./test/dsets.c
Include <string.h>
./test/istore.c
Fixed a non-ANSI pointer conversion.
Changes since 19980424
----------------------
./src/H5F.c
./src/H5Ffamily.c
./src/H5Fsplit.c
./src/H5P.c
The H5Pget_family() and H5Pget_split() always return a file
access property list even if it's the default.
It is an error to set the default low-level driver to a
composite driver at compile time.
./src/H5T.c
Fixed a memory leak associated with compound data types.
Changes since 19980422
----------------------
./acconfig.h
./configure.in
./config/BlankForm
./src/H5.c
Configure tries to figure out how to print `long long' types
and then defines PRINTF_LL_WIDTH to be `ll' or `q' or
something. It does this by running little sprintf() programs
with various formats until it gets one that works. If this
causes problems when cross compiling (like with parallel
machines) then you may add the following to the appropriate
config file:
hdf5_cv_printf_ll=${hdf5_cv_printf_ll='ll'} or
hdf5_cv_printf_ll=${hdf5_cv_printf_ll='q'} or
hdf5_cv_printf_ll=${hdf5_cv_printf_ll='l'}
./config/intel-osf1
./config/irix5.3
Updated these config files to match the others. This allows
the `--enable-production' configure flag to work properly.
./MANIFEST
Added INSTALL_parallel.ascired, examples/Attributes.txt,
html/Attributes.html, testpar/Makefile.ascired. Removed
H5Dpkg.h
./src/H5A.c
./src/H5D.c
./src/H5Dprivate.h
./src/H5Dpkg.h [REMOVED]
./src/H5Tpkg.h
./src/H5Tprivate.h
Rearranged some header stuff so H5A doesn't have to include
the package-private header files that don't belong to it.
./src/H5E.c
Added the H5E_ATTR message to the major error struct.
Changes since 19980421
----------------------
./bin/release
./src/H5.c
./src/H5private.h
./src/H5public.h
./src/H5Fpublic.h
Changed the version number constants to names that begin with
H5_VERS_ and added macros that check that the version numbers
in the include files match the version number of the library.
./MANIFEST
./html/H5.user.html
./html/Version.html [NEW]
./html/version.obj [NEW]
./html/version.gif [NEW]
Documented version numbers and the macros, constants, and
functions associated with them.
./bin/versinc
A perl script that increments the minor version number and
sets the patch level back to zero. This is intended to be
invoked from the top of the source tree by a cvs commit
anywhere in the source tree. Quincey?
./src/H5O.c
./src/H5Oprivate.h
Added H5O_count() to count the number of object header
messages of a particular type. Quincey needs this for the
attribute package.
./test/dsets.c
Fixed warnings. Enabled the small strip-mine buffer test.
./config/linux
Added optimizations for the Pentium-Pro for production mode.
Changes since 19980417
----------------------
This checkin completes the compression stuff almost two weeks ahead of
schedule. It should now all be working and documented.
./Makefile.in
./config/commence.in
A distclean causes the distribution makefile to be copied to
Makefile again.
./src/H5D.c
Opening a compressed dataset now works properly.
./src/H5P.c
./src/H5Ppublic.h
The H5Pset_compression() and H5Pget_compression() now work as
documented.
./src/H5T.c
Fixed a bug that causes the library to crash sometimes if
debugging is turned on for the `t' package.
./src/H5Z.c
Fixed a bug where the number of bytes attributed to
compression overruns was too low in the debugging output.
./test/dsets.c
More compression tests: reading of uninitialized data, opening
an existing dataset and reading it, partial I/O which isn't
aligned on chunk boundaries, and use of application-defined
compression methods.
./MANIFEST
Removed ./test/dspace.c.
Changes since 19980414
----------------------
./html/Compression.html [NEW]
./html/Datasets.html
./html/H5.format.html
./html/H5.user.html
Documented compression. A couple of the H5P functions aren't
quite implemented yet but they're coming soon...
./src/H5Dprivate.h
./src/H5E.c
./src/H5Epublic.h
./src/H5Farray.c
./src/H5Fistore.c
./src/H5Fprivate.h
./src/H5MF.c
./src/H5MFprivate.h
./src/H5O.c
./src/H5Ocomp.c [NEW]
./src/H5Oprivate.h
./src/H5P.c
./src/H5Ppublic.h
./src/H5Sprivate.h
./src/H5Ssimp.c
./src/H5Z.c [NEW]
./src/H5Zprivate.h [NEW]
./src/H5Zpublic.h [NEW]
./src/Makefile.in
./src/hdf5.h
./test/dsets.c
./test/istore.c
Compression is now mostly working. Don't try to open a
compressed dataset though because the compression message
won't be read.
./html/Datatypes.html
./html/H5.api.html
./src/H5.c
./src/H5private.h
./src/H5D.c
./src/H5T.c
./src/H5Tconv.c
./src/H5Tpkg.h
./src/H5Tprivate.h
./src/H5Tpublic.h
Added timing support. When compiled with H5T_DEBUG defined
the library will print conversion bandwidths when the library
closes. The H5Tregister functions take a string as the first
argument so the statistics output is meaningful.
./MANIFEST
Added new files.
./configure.in
./src/H5config.h.in
Check for getrusage(). Check for compress2() in libz.a and
the zlib.h header file. Added `z' to the debug list.
./src/H5B.c
./src/H5Bprivate.h
./src/H5Gnode.c
./src/debug.c
Cleaned up some indentation and added support to print istore
B-trees. From the debugger, give the B-tree address and the
dimensionality from the layout message of the object header.
./src/h5ls.c
The oid is printed as w:x:y:z where w and x are the file ID
and y and z are the OID within the file. You can give z or
y*2^32+z as an argument to the debugger to print the object
header for the object.
./src/H5AC.c
Cleaned up statistics and made them match those reported by
H5T and H5Z.
./src/H5MM.c
./src/H5MMprivate.h
./src/H5Fistore.c
Finally got rid of a couple of long-standing const cast
warnings.
Changes since 19980410
----------------------
./html/H5.format.html
./src/H5E.c
./src/H5Epublic.h
./src/H5F.c
./src/H5G.c
./src/H5Gent.c
./src/H5Gnode.c
./src/H5Gprivate.h
./src/h5ls.c
./test/Makefile.in
Symbolic links are now supported. The ./test/links program
will create a `links.h5' file that demonstrates hard links,
soft links, dangling links, and recursive links. A symbolic
link is a symbol table entity and doesn't have an object
header. It's format is described in H5.format.hml.
./src/H5G.c
./src/H5Gpublic.h
./src/h5ls.c
Implemented H5Gstat() and H5Gget_linkval() as documented by
Quincey. The `H5G_type_t type' field of `H5G_stat_t' was
changed to `int type' because H5G_type_t was already used and
the `type' data type should be open-ended.
./src/H5Ffamily.c
Removed an incorrect diagnostic message.
./test/big.c
Added read/write calls to test partial I/O to big contiguous
datasets. With no arguments it writes to a dataset and prints
the list of points written which should be redirected to a
file. With an argument (the name of a file containing the
stdout of a run with no arguments) values are read from the
dataset. One would typically say `big >x && big x'.
Changes since 19980409
----------------------
./INSTALL
./INSTALL_MAINT
Updated installation instructions.
./html/Big.html [NEW]
A guide to using big datasets on small machines.
./MANIFEST
Added Big.html and INSTALL.ascired.
./html/Datasets.html
./html/Dataspaces.html
./html/Datatypes.html
./html/Files.html
./html/H5.api.html
./html/H5.intro.html
./html/H5.sample_code.html
./html/H5.user.html
Updated documentation by changing lots of `size_t' arguments
to `hsize_t'. Added line numbers to some examples.
./html/H5.intro.html
Perhaps someone want's to volunteer to make this file
human-readable?
Changes since 19980408
----------------------
./src/H5Osdspace.c
./html/H5.format.html
In the past we were allowed to have >2GB files on a 32-bit
machine as long as no dataset within the file was larger than
4GB (or whatever sizeof(size_t) is). That's been fixed now.
All dataset size calculations are done with `hsize_t' which is
normally defined as `unsigned long long'.
./src/H5F.c
./src/H5Ffamily.c
./src/H5Fprivate.h
./src/H5P.c
./src/H5Ppublic.h
The file family member size can now be set/queried. The
default is still 64MB, but it can be set to 1GB by saying:
H5Pset_family (plist, 30, H5P_DEFAULT);
When opening an existing file family the specified
bits-per-member is ignored and the first member of the family
determines the bits-per-member, which can be retrieved with
H5Pget_family().
./acconfig.h
./configure.in
./src/H5config.h
./src/H5public.h
Added `--disable-hsizet' so that those with old GCC compilers
(<2.8.1) can still compile the code.
./src/H5.c
./src/H5private.h
Added HDfprintf() which works just like fprintf() except you
can give `H' as a size modifier for the integer conversions
and supply an `hsize_t' or `hssize_t' argument without casting
it. For instance:
hsize_t npoints = H5Sget_npoints(space);
HDfprintf(stdout,"Dataset has %Hd (%#018Hx) points\n",
npoints, npoints);
You can now give `%a' as a format to print an address, but all
formating flags are ignored and it causes the return value of
HDfprintf() to not include the characters in the address (but
who uses the return value anyway :-). Example:
H5G_t *grp;
HDfprintf(stdout, "Group object header at %a\n",
&(grp->ent.header));
Added HDstrtoll() which works exactly like [HD]strtol() except
the result is an int64.
./src/debug.c
Large addresses can now be entered from the command-line. Use
either decimal, octal (leading `0') or hexadecimal (leading
`0x') when giving the address.
./src/h5ls.c
The printf format for dataset dimensions was changed to `%Hu'
to support large datasets.
./test/big.c [NEW]
A test for big datasets on 32-bit machines. This test is not
run by default. Don't try to run it on an nfs-mounted file
system or other file system that doesn't support holes because
it creates two 32GB datasets of all zero.
Changes since 19980407
----------------------
./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.
Changes since 19980403
----------------------
./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.
Changes since 19980402
----------------------
./MANIFEST
./test/Makefile.in
./test/shtype.c [NEW]
Added some tests for shared data types.
./configure.in
Removed MF and HL from the default debug list since. MF
because it hasn't been implemented yet and HL because it
produces lots of annoying messages about adjusting the size of
local heaps.
./src/H5F.c
./src/H5T.c
./src/H5Tprivate.h
Fixed a bug with opening the same file twice. The first close
on the file_id incorrectly closed shared data structs.
Closing a file now correctly unshares data types that might be
pointing into that file.
./src/H5T.c
./src/H5Tpublic.h
Added an H5Tis_shared(). The caller supplies a file and a
data type and the function returns true if the data type is
currently marked for sharing in that file.
./src/H5AC.c
./src/H5F.c
./src/H5HL.c
./src/H5HG.c
./src/H5MF.c
./src/H5O.c
We now detect errors sooner when writing to a read-only
file. In the past, the error might not show up until the
cached item was flushed, and it was sometimes possible to not
even get an error!
./src/H5I.c
./src/H5Iprivate.h
If the search function fails then H5I_search() returns
failure. Also, the first argument for the search function
isn't const anymore because we might want the search to have
side effects (like calling H5T_unshare() for all shared data
types whose file just closed).
Changes since 19980330
----------------------
./MANIFEST
./src/Makefile.in
./test/Makefile.in
Added new files.
./config/linux
./src/H5HL.c
./src/H5HLprivate.h
./src/H5MF.c
./src/H5MFprivate.h
Added `-DH5HL_DEBUG -DH5MF_DEBUG' to the debug list.
./html/H5.format.html
Updated shared object message information.
./src/H5D.c
Datasets can now share data types.
./src/H5F.c
Updated a comment that referred to H5ACC_WRITE.
./src/H5HG.c
./src/H5HGprivate.h
Moved a few things around. Made debugging better so you can
now give a collection address to ./src/debug and it shows some
useful stuff.
./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/H5Osdspace.c
./src/H5Oshared.c [NEW]
./src/H5Ostab.c
Supports shared messages.
./src/H5T.c
./src/H5Tpkg.h
./src/H5Tprivate.h
./src/H5Tpublic.h
The H5Tshare() function allows the user to give the library
hints about how a data type will be used.
./test/shtype.c
Tests the H5Tshare() function.
./test/gheap.c
Tests the global heap.
./configure.in
./config/BlankForm [NEW]
./config/alpha-dec
./config/freebsd2.2.1
./config/hpux10.20
./config/irix6.2
./config/irix64
./config/linux
./config/powerpc-ibm-aix4.2.1.0
./config/rs6000-ibm-aix4.1.4.0
./config/solaris2.5
Cleaned up lots of configuration stuff and made the site
configuration files lots easier and more uniform. To make a
new file grab the BlankForm and modify it.
By default, debugging is turned on for most packages. Within
a package one can use `#ifdef H5AC_DEBUG' to wrap debugging
code. Other options are:
--enable-debug
--enable-debug=yes
The default, most but not all packages.
--disable-debug
--enable-debug=no
--enable-debug=none
The symbol NDEBUG is defined and none of the package
debug symbols.
--enable-debug=all
Debugging is turned on for all packages. This might
produce lots of output.
--enable-debug=g,d
Debugging is turned on for H5G and H5D.
A compile mode is also now supported
--enable-production
--enable-production=yes
The library is compiled with optimizations turned on.
The compiler flags are augmented by adding PROD_CFLAGS
and PROD_CPPFLAGS which are defined in the site config
file.
--disable-production
--enable-production=no
The default. The library is compiled for development
by including DEBUG_CFLAGS and DEBUG_CPPFLAGS defined in
the site config file. This is usually just `-g'.
--enable-production=profile
--enable-production=pg
Builds a library for profiling by including the flags
from PROFILE_CFLAGS and PROFILE_CPPFLAGS defined in the
site config file. This is usullay just `-pg' but it
could include optimization flags as well depending on
the type of profile one wants.
In summary, configure by saying `./configure' and you'll get a
development version of the library. Configure by saying
`./configure --enable-production --disable-debug' and you'll
get a production version with no debugging code.
Changes since 19980324
----------------------
./MANIFEST
./src/H5HG.c [new]
./src/H5HGprivate.h [new]
./src/H5HGpublic.h [new]
./src/Makefile.in
Added global heaps, H5HG. This compiles but is untested.
./src/H5D.c
./src/H5G.c
./src/H5Gnode.c
./src/H5Gstab.c
./src/H5HL.c [renamed from H5H.c]
./src/H5HLprivate.h [renamed from H5Hprivate.h]
./src/H5HLpublic.h [renamed from H5Hpublic.h]
./src/H5Oefl.c
./src/Makefile.in
./src/hdf5.h
./test/theap.c
Renamed local heaps from H5H to H5HL.
./src/H5AC.c
./src/H5ACprivate.h
./src/debug.c
Added debugging support for global heap collections.
./html/H5.format.html
Ripped out the old small object heap documentation and added
documentation for the new global heap.
./html/H5.api.html
./src/H5P.c
./src/H5Ppublic.h
./src/H5F.c
./src/H5Fprivate.h
./src/H5private.h
The H5Pget_version() function no longer returns a small object
heap version number. Instead, each collection of the global
heap has its own version number instead of a single number in
the file boot block.
./bin/release
Omit files marked for removal by CVS even though the removal
hasn't been committed yet.
./test/iopipe.c
Removed warnings about casting unsigned int to double on Irix64.
./MANIFEST
Removed ./test/testpar/phdf5sup.c
Changes since 19980324
----------------------
./src/H5D.c
Zero element requests for H5Dread() and H5Dwrite() succeed.
./src/H5F.c
./src/H5Fprivate.h
All files will have a root group. This greatly simplifies the
library at the expense of ~1k extra bytes in files that have
only one object.
./src/H5D.c
./src/H5Dprivate.h
./html/Groups.html
Functions that used to take a file ID and an object name can
now take a group ID instead of a file ID. This doesn't change
the API, only it's documentation.
./src/H5G.c
./src/H5Gprivate.h
./src/H5O.c
./src/H5Oprivate.h
Removed extra file arguments from some internal functions
since the file pointer can be found from the group pointer or
a symbol table entry (ent->file or H5G_fileof(group)).
Besides, when we eventually implement mounting one file on
another, H5G_namei() might return a different file than what
you gave it, and that file is part of the returned symbol
table entry.
./src/H5G.c
Fixed bug with `.' appearing in a name. It used to hang the
library.
./src/Makefile.in
./src/h5ls.c [NEW]
./MANIFEST
Added `h5ls' a simple program that takes a file name and a
directory and lists the contents of that directory using
H5Giterate().
./test/istore.c
Changed an argument to H5G_create().
./test/tstab.c
Removed test_1 which was testing that files with a single
object don't have a root group. This no longer applies.
Changes since 19980318
----------------------
./src/H5B.c
./src/H5Bprivate.h
./src/H5G.c
./src/H5Gnode.c
./src/H5Gpkg.h
./src/H5Gpublic.h
./src/H5Gstab.c
Implemented H5Giterate(). However, since most functions can't
take a group ID in place of a file ID yet, there's not a whole
lot that the operator can do besides print the name or something.
./test/H5O.c
Fixed writing of four uninitialized bytes to the file as part
of an object header.
./test/istore.c
For some reason, `mpirun -np 1 istore' results in extra
arguments on the command line that istore doesn't understand.
I'm probably forgetting to call some MPI function in
main(). Albert, Kim? So I commented out the `exit(1)' for the
time being.
Changes since 19980318
----------------------
./config/linux
Turned on MPIO if the host name is `arborea' so I always
compile it and realize when I break something instead of
waiting for Albert or Kim to find it.
./MANIFEST
./html/H5.user.html
./html/IOPipe.html [NEW]
./html/pipe1.gif [NEW]
./html/pipe1.obj [NEW]
./html/pipe2.gif [NEW]
./html/pipe2.obj [NEW]
./html/pipe3.gif [NEW]
./html/pipe3.obj [NEW]
./html/pipe4.gif [NEW]
./html/pipe4.obj [NEW]
./html/pipe5.gif [NEW]
./html/pipe5.obj [NEW]
Documented the raw data I/O pipeline.
Changes since 19980317
----------------------
./MANIFEST
./configure.in
./configure
./Makefile.in
./bin/distdep [NEW]
./config/conclude.in
./config/depend.in
./src/.distdep [NEW]
./test/.distdep [NEW]
Added some code so non-GNU systems have a list of dependencies
between the .c files and the .h files. Hopefully this works
and y'all don't have to keep saying `make clean' each time you
change a header.
On systems with GNU make, GCC, and Perl, the dependency
information is generated automatically from rules in
config/depend.in as has always been done. But now extra files
called `.distdep' (for `distributable dependencies) are left
in each directory and these are part of CVS and thus
releases. (A `make dep' will create dependencies on demand
without doing anything else.)
On systems lacking one or more of the tools above, the various
`.distdep' files are inserted into the end of the Makefiles.
If you do developement on one of these systems you'll have to
update the `.distdep' and/or Makefile by hand, or wait until
you have access to a GNU system and do a `make dep'.
Changes since 19980316
----------------------
./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).
Changes since 19980313
----------------------
./configure.in
./configure
./test/iopipe.c
Added check for system(3)
./config/freebsd2.2.1
./config/linux
Added -DH5D_DEBUG to the debug flags.
./src/H5D.c
./src/H5Dprivate.h
./src/H5P.c
./src/H5Ppublic.h
./src/H5Sprivate.h
./src/H5Ssimp.c
./html/Datasets.html
Finally implemented strip mining in the I/O pipeline, placing
a user-defined upper bound on the amount of temporary memory
used by the pipeline. The default is 1MB type conversion and
background buffers allocated/freed on demand. However, the
size can be changed and/or application-allocated buffers
supplied with H5Pset_buffers() called on the data transfer
property list passed to H5Dread() and H5Dwrite().
Minor optimizations to H5Dread() and H5Dwrite(). More coming
later...
./test/dsets.c
Added calls to H5Pset_buffer() to test application-defined
temporary buffers in the I/O pipeline.
./test/Makefile.in
Removed `iopipe' from the list of confidence tests. Saying
`make timings' in the test directory runs timing tests. I did
this because (1) they don't really test anything new, and (2)
they can take a long time to run.
Changes since 19980306
----------------------
./MANIFEST
./src/H5D.c
./src/H5S.c
./src/H5Sprivate.h
./src/H5Ssimp.c
./src/H5Tpkg.h
./src/H5Tprivate.h
./src/H5V.c
./test/Makefile.in
./test/iopipe.c [NEW]
Optimizations to the I/O pipeline.
./src/H5Fistore.c
./src/H5Oefl.c
Fixed a few compiler warnings.
./MANIFEST
Added entries for ./config/{intel-osf1,irix5.3}
Changes since 19980305
----------------------
./configure.in
./configure
./config/commence.in
Added checking for `ar' then `xar' and set the $(AR) variable
in the Makefiles. The check is not performed if $AR is
already defined in the environment (including being set in a
config file). We check for `-lcoug' for ASCI/Red.
Changes since 19980305
----------------------
./src/H5D.c
./test/external.c
A contiguous dataset can now be stored in external files in
such a way that the slowest varying dimension can be increased
after the dataset is created and even written. The user must
have reserved enough space in the external file and the data
space must allow an increase the the slowest varying dimension.
See test_3() of ./test/external.c
./src/H5Oefl.c
Fixed an overflow bug with unlimited external storage.
./src/H5V.c
Fixed a cast warning.
./test/dsets.c
Make better use of automatic error reporting.
Changes since 19980304
----------------------
./MANIFEST
New files
./html/extern1.gif [NEW]
./html/extern1.obj [NEW]
./html/extern2.gif [NEW]
./html/extern2.obj [NEW]
./html/Datasets.html
Documented external raw data storage.
./html/Datasets.html
./html/chunk1.gif [NEW]
./html/chunk1.obj [NEW]
Added a picture and better description for chunking since it
seems that people are thinking chunks are fixed-size at the
file level instead of at the array level.
./src/H5D.c
./src/H5Dpublic.h
./test/external.c
Changed H5Dget_create_parms() to H5Dget_create_plist().
./src/H5D.c
./src/H5Farray.c
./src/H5Fprivate.h
./src/H5Oefl.c
./src/H5Oprivate.h
./src/H5Sprivate.h
./src/H5Ssimp.c
./test/external.c
./test/istore.c
External raw data file I/O for contiguous storage is now
working. The library supports segments of various sizes which
can be scattered throughout multiple files in any order.
./test/Makefile.in
Remove more temporary files.
Changes since 19980228
----------------------
./html/Dataspaces.html
./html/Errors.html
./html/Files.html
./html/H5.api.html
./html/review1.html
./src/H5private.h
./src/H5public.h
./test/dsets.c
./test/dtypes.c
Removed all the types like `int32' and `intn' into private
headers since they violate the naming scheme and pollute
application name space. Besides, our test files only use them
in a handful of places and it's probably useless to export
them to the app. The app is always written in terms of
standard numeric types or its own numeric types and probably
never in terms of HDF5 numeric types. If it were, then the
user would have to copy from their type to hdf5 type for
almost every hdf5 API function call! Same goes for return
values. I also removed SUCCEED/FAIL from the API since apps
should be checking against zero anyway.
if (FAIL==(space=H5Screate_simple(...))) /*wrong*/
if ((space=H5Fcreate_simple(...)<0)) /*right*/
./src/H5.c
Changed arguments of H5version() from `uintn' to `unsigned'.
./src/H5Tpublic.h
./src/H5T.c
Changed return type of H5Tget_nmembers() from `intn' to `int'
./src/H5A.c
./src/H5Aprivate.h
./src/H5Apublic.h
Changed `H5Asearch_func_t' to `H5A_search_func_t' and moved
its definition from the public to the private header file.
./html/H5.format.html
Documented changes made to the external file list (H5O_EFL)
message.
./src/H5D.c
./src/H5Dprivate.h
./src/H5E.c
./src/H5Epublic.h
./src/H5O.c
./src/H5Oefl.c
./src/H5Oprivate.h
./src/H5P.c
./src/H5Ppublic.h
Added partial support for external raw data files. HDF5 can
now describe external raw data files by listing the file
names, offsets, and size for a dataset. However, we will
restrict a dataset to be stored "contiguously" when the
external file list is viewed as a single address space. The
current implementation is unable to read/write to external
files--that will come later this week as will documentation.
For now, take a look at ./test/external.c, particularly the
calls to H5Pset_external().
./test/Makefile.in
./test/external.c [NEW]
./MANIFEST
Added tests for external storage. Note: the read test is
supposed to fail at this point since reading external datasets
is not implemented yet. There is no write test.
./src/H5S.c
./src/H5Sprivate.h
./src/H5Ssimp.c
Added H5S_get_npoints_max() to return the maximum possible
number of data points in a data space.
Added an extra argument to H5S_get_dims() which returns the
maximum dims.
./src/H5F.c
./src/H5Fprivate.h
./src/H5Fpublic.h
./src/H5M.c [DEPRICATED]
./src/H5Mpublic.h [DEPRICATED]
Changed `template' to `property list' in lots of places.
./src/H5Osdspace.c
Removed an extra `\n' from a print statement.
./src/H5S_public.h
Changed H5S_UNLIMITED to the maximum size_t value.
./test/extend.c
"Extendable" is spelled "extendible".
./src/H5Farray.c
./src/H5V.c
./src/H5Vprivate.h
./test/hyperslab.c
Strides are now type ssize_t instead of int. These have
nothing to do with the sample granularity arguments for
hyperslabs, which are also called "strides" in the code.
./test/tstab.c
Changed assumptions about default address and length sizes.
Changes since 19980227
----------------------
./html/Errors.html [NEW]
./html/H5.user.html
./MANIFEST
Documents the new error handling interface and gives examples.
./src/H5.c
./src/H5private.h
./src/H5Apublic.h
./src/H5E.c
./src/H5Eprivate.h
./src/H5Epublic.h
Rewrote error handling. Got rid of `push' overloading and
added a few API functions. The error stack is statically
allocated and not entered into H5A, simplifying error handling
within the error handler. Rudimentary support for threads.
Changed the names of some errors.
./src/H5G.c
./src/H5Gnode.c
./src/H5H.c
./src/H5O.c
./src/H5T.c
Changed H5ECLEAR to H5E_clear().
./src/Makefile.in
Alphabetized source list.
./test/dsets.c
Turned off error reporting around functions that are expected
to fail. Error messages are sent to stdout.
./test/testhdf5.c
./test/testhdf5.h
Turned off automatic error reporting since this file mostly
calls internal functions and does its own error reporting.
Changes since 19980226
----------------------
./bin/release
Changed default to not tag CVS sources.
./src/H5F.c
Replaced a constant switch with preprocessor directives.
Removed a local variable which was set but not used.
./src/H5Fprivate.h
Changed `long long' to `int64' to get rid of ansi warnings in
a few places.
Fixed bugs in INT64DECODE() and UINT64DECODE() for big-endian
architectures. This fixes all the bugs with the Irix -64
compile.
./src/H5F.c
The default address and length sizes are set according to the
sizeof(size_t) now that the bugs have been fixed.
./src/H5Fpublic.h
Removed a trailing comma in an enumerated type.
./src/H5Fstdio.c
./src/H5Fsec2.c
Added two more calls to fseek64() and lseek64(). Removed `long
long' in place of `int64' to suppress -ansi warnings.
./src/H5P.c
Replaced a FAIL with H5F_LOW_ERROR.
./src/H5private.h
./configure.in
Increased version number to hdf5-1.0.1a since we've already
released hdf5-1.0.0a. Include <sys/types.h>. Fixed
indentation. Fixed detection of off64_t for old Irix systems
where it might be a struct.
./src/Makefile.in
Moved a comment from the shell to the makefile since some
versions of sh barf on interactive comments.
./config/linux
Allow overriding of the CC variable from the command-line. It
still defaults to gcc but this allows us to specify a complete
path from test scripts by saying:
CC=/usr/local/tools/gnu/gcc sh configure
Changes since 19980224
----------------------
./MANIFEST
Changed names for P->S and C->P changes.
./INSTALL
Added a note.
./html/Files.html
Added a few details for some of the new H5Pset/get functions.
./src/H5F.c
./src/H5Fpublic.h
Fixed automatic closing of files on exit().
Added public H5F_ACC_DEBUG. Using it to create or open a file
turns on debugging for that file, which currently just prints
cache statistics when the file is closed.
./src/H5G.c
An error is returned if one tries to set the current working
group to something other than a group.
./src/H5Gnode.c
Fixed a symbol table bug. Under certain circumstances it was
possible to enter a symbol in such a way that lookup of that
symbol failed. A bug report was sent to hdf5dev.
./src/H5P.c
./src/H5Ppublic.h
Added the H5Pget_...() functions for file drivers. The
H5Pget_mpi() is a no-op that always fails.
Changes since 19980219
----------------------
./html/Files.html
./src/H5C.c
./src/H5Cpublic.h
./src/H5Ffamily.c
./src/H5Fprivate.h
./src/H5Fsplit.c
./test/tstab.c
Added file-access property functions.
The split driver takes file extensions as properties.
./src/H5A.c
./src/H5Aprivate.h
Added some comments. Changed H5A_destroy() to call the free
function on all the atoms that are destroyed. This fixes a bug
where the file boot block isn't updated if the file isn't
closed before calling exit().
Removed extra `*' and `&' from some places.
./src/H5AC.c
Replaced an occurrence of NO_ADDR with NULL.
./src/H5Odtype.c
./src/H5T.c
./src/H5Tconv.c
./src/H5Tpkg.h
Data types of compound members are pointers.
./H5private.h
Some changes to make lseek64() work on Irix 5.3 where header
files don't realize that `long long' works.
./acconfig.h
./configure.in
Removed definition for PHDF5 since it looks like everyone is
useing HAVE_PARALLEL now.
./configure.in
./src/H5detec.c
Added checks for gethostname() and getpwuid().
Changes since 19980219
----------------------
./src/H5A.c
./src/H5C.c
Objects are removed from the group when there reference count
hits zero regardless of whether H5A knows how to free the
object.
./src/debug.c
./test/tstab.c
Changed a zero to H5C_DEFAULT.
Changes since 19980206
----------------------
./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.
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.
Changes since 19980204
----------------------
./src/H5H.c
Changed a temporary buffer from 20 bytes to 52 bytes.
./test/tfile.c
Default sizes for file addresses and sizes are the same as
sizeof(size_t) on the machine that creates the file.
Changes since 19980204
----------------------
./src/H5Odtype.c
Compound data type names weren't aligned correctly. Thanks to
Elena for finding this bug.
Changes since 19980203
----------------------
./src/H5F.c
The default file addr and size sizes for new files are the
same as sizeof(size_t) on the machine that creates the
file. They used to always be 4.
./src/H5Pprivate.h
./src/H5Psimp.c
Fixed `start' and `nelmts' arguments to be `size_t'.
Changes since 19980203
----------------------
./src/H5C.c
./src/H5Cprivate.h
./src/H5D.c
./src/H5Dpublic.h
Added H5Dget_create_parms(), trying to stay one step ahead of
Elena ;-)
Changes since 19980130
----------------------
./MANIFEST
Added H5Fmpio.c. One way to check that you've properly
included new files is to run `./bin/release none', then unpack
the resulting tar file somewhere and try to compile it. The
tar file will be ./releases/hdf-5.0.0a.tar.
./config/freebsd2.2.1
./config/linux
Added `-ansi'
./acconfig.h
Added definitions for PHDF5 and HAVE_PARALLEL.
./configure.in
Added minimal support for parallel build. Kim and Albert will
have to flesh this out or I can do it if they're more specific
about what they need.
./config/commence.in
Added default value for $(RUNTEST)
./config/conclude.in
`make test' uses value of $(RUNTEST) to run test cases.
./src/Makefile.in
Added PARALLEL_SRC for conditional compilation of H5Fmpio.c
./src/H5D.c
./src/H5Dpublic.h
Added H5Dget_type() for Elena
NOTE: These changes require that configure be rerun. If you're using
GNU make it will happen automatically, otherwise do it by
hand.
Changes since 19980130
----------------------
./MANIFEST
./html/study.html [NEW]
./html/study_1000x1000.gif [NEW]
./html/study_250x250.gif [NEW]
./html/study_499x499.gif [NEW]
./html/study_5000x1000.gif [NEW]
./html/study_500x500.gif [NEW]
./html/study_p1.gif [NEW]
./html/study_p1.obj [NEW]
The conclusions from a study of the HDF5 chunking
layout. Shows overhead and disk seeking.
Changes since 19980130
----------------------
./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.
Changes since 19980130
----------------------
./INSTALL
./Makefile.dist
./Makefile.in
./config/conclude.in
Some stupid make's don't know what PHONY means. I added
changed config to _config in the default makefile and added
_test to the other makefiles.
./src/H5Psim.c
A `file_offset' argument got changed to `int' accidently that
causes tests to fail on 64-bit machines. I changed it back to
size_t.
./src/H5T.c
Changed a couple printf formats.
Changes since 19980129
----------------------
./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.
Changes since 19980129
----------------------
./INSTALL
./INSTALL_MAINT
./README
Updated installation instructions for hdf-5.0.0a.
./RELEASE
Updated release notes. Needs more work.
./bin/release
The tarballs include the name of the root directory like
hdf-5.0.0a so it doesn't have to be explicitly created when
the files are extracted.
Changes since 19980129
----------------------
./config/freebds2.2.1
./config/irix64
./config/linux
Added -DH5T_DEBUG to the debugging flags. Also changed `true'
to `:' for the Irix64 ranlib program. This turns on printing
of data type conversion statistics when the program exits.
./html/Datatypes.html
Fixed documentation for data conversion functions and updated
examples.
./src/H5D.c
The I/O pipeline updates data type conversion statistics.
./src/H5T.c
./src/H5Tconv.c
./src/H5Tpkg.h
./src/H5Tpublic.h
Cleaned up data type conversion registration interface.
Changes since 19980128
----------------------
./MANIFEST
Added new files.
./bin/Makefile.dist [NEW]
This file becomes the default top-level Makefile which invokes
configure with no arguments and then re-runs make. It's for
those people that don't read the INSTALL file.
./bin/release [NEW]
Build HDF release tarballs. Arguments are a list of tarball
types and are: tar, compress, gzip, or bzip2. The default is
gzip. If the only argument is `all' then all types of tarballs
are created. The results are put in the `releases' directory.
Make sure you keep MANIFEST up to date. This program requires
perl-5.003 or better.
./src/H5AC.c
Fixed a printf format.
Changes since 19980128
----------------------
./src/H5P.c
Removed H5Pcreate()
./src/H5Psimp.c
Copy int[] return value from H5P_get_hyperslab() to size_t[]
argument to pass to other hyperslab functions.
./test/dsets.c
Added a call to H5Eprint() to help track down Alberts O2k bug.
Changes since 19980128
----------------------
./MANIFEST
Added new config files.
./src/H5private.h
Changed FUNC_ENTER() so it calls H5Eclear() for all API
functions but not for any private functions. It also prints
the names of all API functions on file 55 (just for the
prototype) so we can get a list of API functions called with
the Bourne shell commands like:
./testhdf5 55>api_list or
./testhdf5 55>&1 1>/dev/null 2>&1 | less
Otherwise the names are silently discarded.
./src/H5.c
./src/H5C.c
./src/H5D.c
./src/H5F.c
./src/H5G.c
./src/H5M.c
./src/H5P.c
./src/H5T.c
Removed `H5ECLEAR' from lots of places in the source code.
./src/H5E.c
./src/H5Eprivate.h
Recursion is a problem here, so to disable a call to
H5Eclear() from FUNC_ENTER just define a local variable like
this before you call FUNC_ENTER:
const H5E_clearable_g = FALSE;
Unfortunately this results in a warning: declaration of
`H5E_clearable_g' shadows global declaration. Good thing it's
only used in two places.
Changes since 19980128
----------------------
./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!
Changes since 19980128
----------------------
./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.
Changes since 19980127
----------------------
./Makefile.in
./config/commence.in
With GNU make you can now use `-j' and `-l' options and things
get built correctly. I can do a `make -j -l6 test' from a
clean hdf5 source tree (after configure) in 45 seconds (8 to
build dependencies, 26 to compile everything, and 11 to run
the tests).
./src/H5Gnode.c
Removed a comment that no longer applies.
./src/H5P.c
./src/H5Pprivate.h
./src/H5Ppublic.h
Changed H5Pselect_hyperslab() to H5Pset_hyperslab() and added
H5Pget_hyperslab() and H5P_get_hyperslab().
Replaced a couple short memset() calls with a for loop.
Removed `if (foo!=NULL)' from around H5MM_xfree() calls.
Clear hslab_def when the hyperslab disappears.
./src/H5Tpublic.h
Removed trailing enum comma.
Changes since 19980126
----------------------
./MANIFEST
Added new files.
./config/linux
Added `-pipe' to the default GCC flags since this is supposed
to result in better performance on a multi-processor machine.
./html/Datasets.html
./html/dataset_p1.gif [NEW]
./html/dataset_p1.obj [NEW]
Updated to match source. The things which aren't part of the
Feb-1 prototype are marked in bold. Added an example for
partial I/O.
./html/Groups.html [NEW]
./html/group_p1.gif [NEW]
./html/group_p1.obj [NEW]
./html/group_p2.gif [NEW]
./html/group_p2.obj [NEW]
./html/group_p3.gif [NEW]
./html/group_p3.obj [NEW]
New documentation for groups.
./html/H5.sample_code.html
Updated two examples to match code.
Changes since 19980123
----------------------
./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.
Changes since 19980122
----------------------
./MANIFEST
Added new files.
./src/H5D.c
Added support for partial datatype I/O which is needed when
merging struct members between file and disk. This isn't the
efficient version because the merge requires an extra gather
(step 1b in my pipeline diagram) that isn't turned off when it
isn't needed.
./src/H5T.c
./src/H5Tpkg.h
./src/H5Tprivate.h
./src/H5Tpublic.h
Conversion functions take an extra argument which is a pointer
to a blob of private data that can be used by the conversion
function to save anything that's expensive to compute and
is constant for a particular conversion path.
./src/H5Tconv.c
Compound data type conversion is beginning to work! We can
handle conversions between compound types that have members
which are not arrays. It also supports partial conversion so
we can omit certain members of the source and not clobber
extra members in the destination.
./test/Makefile.in
./test/cmpd_dset.c [NEW]
Added a test case that demonstrates how to use compound data
types in a dataset. The output doesn't match the output of
the other test cases yet, the the entire example is more
readable and written entirely with the API.
Changes since 19980122
----------------------
./src/H5.c
./src/H5B.c
./src/H5Bprivate.h
Changed `new' to something else in 6 places for Fabio.
./src/H5T.c
./src/H5Tconv.c
Beginning to work on compound data type conversion. Don't look
yet :-)
Changes since 19980122
----------------------
./src/*.h
Fixed indentation where indent(1) screwed up. This isn't by
any means the final say, but it's better than it was.
./src/H5A.c
./src/H5Aprivate.h
./src/H5Apublic.h
./src/H5C.c
./src/H5D.c
./src/H5E.c
./src/H5F.c
./src/H5G.c
./src/H5M.c
./src/H5P.c
./src/H5T.c
./src/H5Tconv.c
./src/debug.c
./test/dtypes.c
./test/istore.c
./test/theap.c
./test/tohdr.c
./test/tstab.c
Removed some atom functions from the API and made them
library-scope. Also changed some names by removing the
redundant `atom' from the name and by adding a `_' after the
`H5A'.
Changes since 19980121
----------------------
./Makefile.in
Added more dependencies to .PHONY.
./src/H5D.c
The write side of the I/O pipeline is implemented now too.
Things are looking good for the prototype and it's just a
matter of populating the library with the data type and data
space conversion functions.
./src/H5Farray.c
./src/H5Fprivate.h
./test/istore.c
Changed the order of the arguments for H5F_arr_read() and
H5F_arr_write().
./src/H5P.c
./src/H5Pprivate.h
Changed the names of the arguments of H5P_find(). Fleshed out
the mgath and fscat callback types.
./src/H5Psimp.c
Added stubs for H5P_simp_mgath() and H5P_simp_fscat() that
operate on the entire data space. Quincey, once you have the
data space hyperslab stuff in place let me know and I'll
finish the H5P_simp_*() functions to do partial I/O. Or you
can take a look at it too if you like; there's some comments
in there for you.
./src/H5V.c
./src/H5Vprivate.h
Changed dimensionality arguments from `size_t' to `intn' to be
consistent with the rest of the library and to get rid of
warnings on 64-bit Irix.
Changes since 19980121
----------------------
./MANIFEST
./src/H5Psimp.c [NEW]
./src/Makefile.in
Added H5Psimp.c and populated it with some conversion
functions. Eventually the parts of H5P.c that operate on
simple data spaces will be migrated to H5Psimp.c and other
files will be created for other types of data spaces.
./src/H5D.c
The read pipeline, H5Dread(), has been updated to handle data
space conversion although the actual simple data space
conversion functions don't do anything yet. But we're getting
really close!
./src/H5P.c
./src/H5Pprivate.h
Added H5P_find() to locate data space conversion functions.
Added typedefs for structs related to data space conversion.
Changes since 19980120
----------------------
./src/H5D.c
Fixed a rather major bug when reading/writing a chunked dataset.
Changes since 19980116
----------------------
./src/H5AC.c
./src/H5ACprivate.h
./src/H5B.c
./src/H5D.c
./src/H5Farray.c
./src/H5Fprivate.h
./src/H5V.c
./src/H5Vprivate.h
Fixed indent oopses.
./src/H5D.c
./src/H5Fprivate.h
./src/H5Farray.c
./test/istore.c
We can now perform partial I/O on contiguous storage
transferring between a hyperslab of file storage and a
hyperslab of memory. However, partial I/O hasn't been added
to the I/O pipeline yet in H5D.c
Changes since 19980114
----------------------
./html/Datasets.html
Removed some archaic comments about data spaces. Fixed example
code.
./MANIFEST
./html/H5.format.html
./src/H5O.c
./src/H5Oprivate.h
./src/H5Ocstore.c [DELETED]
./src/H5Oistore.c [DELETED]
./src/H5Olayout.c [NEW]
./src/Makefile.in
./test/istore.c
Replaced H5O_CSTORE and H5O_ISTORE messages with a more
general H5O_LAYOUT message.
./src/H5D.c
./src/H5Dprivate.h
./src/H5Dpublic.h
A little more work on the pipeline. Access to the file data
is through the new H5F_arr_read() and H5F_arr_write() which do
I/O on hyperslabs of byte arrays and don't depend on data
layout. This should simplify the I/O pipeline quite a bit.
I also added another argument to H5Dread() and H5Dwrite() to
describe the hyerslab of the file array on which I/O is
occuring. We discussed this at last week's meeting.
./src/H5Farray.c [NEW]
Added functions that sit on top of H5F_block_read() and
H5F_istore_read() and implement a common set of functions
between all layouts. This means I/O of hyperslabs of
byte-arrays in the file to arrays of bytes in memory. When
operating on arrays of elements (>1byte) then we just add
another dimension. That is, a 10x20 array of int32 becomes a
10x20x4 array of bytes.
[This is the area I'll be working on most of next week to
implement partial I/O for contiguous data and to improve
performance for chunked data.]
./src/H5Fistore.c
./src/H5Fprivate.h
Replaced the H5F_istore_t data type with the layout message
H5O_layout_t which looks almost the same. Eventually I'd like
to rename `istore' to `chunked' everywhere and use `istore'
for 1-d storage where the chunks are all different sizes like
in the small object heap where each object is a chunk.
./src/H5V.c
Changed ISTORE to LAYOUT in one place.
./test/dsets.c
Fixed for extra argument to H5Dread() and H5Dwrite().
Changes since 19980108
----------------------
./MANIFEST
./src/H5Dconv.c [REMOVED]
./src/H5Tconv.c [NEW]
./src/Makefile.in
Changed H5Dconv.c to H5Tconv.c
./html/Datatypes.html
Updated data type conversion section.
./html/H5.apiv2.html
Removed sections about datasets and data types since they're
covered in their own chapters.
./src/H5D.c
Supports data type conversion.
./src/H5Odtype.c
./src/H5Tpkg.h
Changed `lo_pad' and `hi_pad' to `lsb_pad' and `msb_pad'.
./src/H5T.c
./src/H5Tpkg.h
./src/H5Tprivate.h
./src/H5Tpublic.h
./src/H5detect.c
Added predefined data types. Added query/set more
properties. Added type conversion infrastructure.
./test/dsets.c
Tests data type conversion during read.
Changes since 19980107
----------------------
./html/Datatypes.html
Updated to match code.
./src/H5Odtype.c
./src/H5Oprivate.h
./src/H5Tpkg.h
./src/H5detect.c
Changed H5T_FIXED to H5T_INTEGER.
./src/H5T.c
./src/H5Tprivate.h
./src/H5Tpublic.h
./test/dtypes.c
Implemented lots of type properties.
./src/H5detect.c
./src/H5Tpublic.h
It is no longer necessary to call H5init() before using a
predefined data type.
Changes since 19980105
----------------------
./config/freebsd2.2.1
./config/linux
Added -UH5O_DEBUG to the debug flags. Turn this on to get
lots of lines on stderr to show what objects are opened and
closed.
./src/H5C.o
./src/H5Cpublic.h
./test/dsets.c
./test/tfile.c
Split H5Cget_prop() and H5Cset_prop() into functions for each
property.
./src/H5D.c
./src/H5Dpublic.h
./src/H5Gstab.c
./src/H5O.c
./src/H5Ocont.c
./src/H5Ocstore.c
./src/H5Odtype.c
./src/H5Oefl.c
./src/H5Oistore.c
./src/H5Oname.c
./src/H5Onull.c
./src/H5Oprivate.h
./src/H5Osdspace.c
./src/H5Ostab.c
./src/H5P.c
./src/istore.c
./test/tohdr.c
Object header functions now understand constant
vs. non-constant messages.
./src/H5F.c
./src/H5Fprivate.h
The file OID can be closed before other OID's.
./src/H5Flow.c
H5F_addr_defined() is a macro in this file.
./src/H5G.c
./src/H5Gpublic.h
./test/tstab.c
A current working group cannot be deleted.
./src/H5Gent.c
./src/H5Gpkg.h
Removed unused functionality.
./src/H5public.h
Includes <sys/types.h> for size_t.
Changes since 19971219
----------------------
./src/H5private.h
Changed HDF5_MAJOR_VERSION to 5
./src/H5Aprivate.h
./src/H5Apublic.h
Added group atoms.
./src/H5D.c
./src/H5P.c
./test/istore.c
./test/tohdr.c
./test/tstab.c
Updated for symbol table interface changes.
./src/H5F.c
./src/H5Fprivate.h
Simpler handling of special case files: empty files and files
with a single object.
./src/H5G.c
./src/H5Gent.c
./src/H5Gnode.c
./src/H5Gpkg.h
./src/H5Gprivate.h
./src/H5Gpublic.h
./src/H5Gshad.c (DELETED)
./src/H5Gstab.c
./src/Makefile.in
Removed shadows, simplifying code. Symbol table entries are
allowed to cache only constant meta data. Fixed naming.
./src/H5O.c
./src/H5Oprivate.h
Access to object headers is always done through a symbol table
entry instead of a file address. Added stubs for opening and
closing object headers to be used when deletion is implemented.
Changes since 19971216
----------------------
./html/Datatypes.html
Fixed some spelling errors, added information from 12/19
developers' meeting, added compound data types defined in
terms of other compound data types.
./html/H5.format.html
Some formatting changes and some minor updating.
./src/H5ACprivate.h
Removed some debugging fields from a struct when debugging is
turned off.
./src/H5H.c
Reformatted a couple long lines.
./test/istore.c
Flipped a couple constants for testing. Nothing important.
Changes since 19971211
----------------------
./html/Datasets.html
Updated from Friday's discussion.
./html/Datatypes.html
Ready for review.
./html/H5.format.html
Updated boot block to match source. Removed unused object
header messages.
./src/H5.c
Changes to error handling.
./src/H5B.c
Increased size of internal static buffers.
./src/H5C.c
Fixed syntax error when NDEBUG is defined.
./src/H5E.c
./src/H5Eprivate.h
./src/H5Epublic.h
Errors can now be printed with H5Eprint(). Other minor
changes to names and arg types.
./src/H5F.c
The base address is now stored in the boot block. The user
block size and the base address are synonyms.
./src/H5Fstdio.c
Fixed a bug with a return value from fseek().
./src/H5H.c
Added alignment constraints to get rid of unaligned access
errors on the DEC alpha having to do with the heap free list.
./src/H5P.c
./src/H5Ppublic.h
Changed some size arguments from int to size_t and fixed
memory allocation calls.
./src/H5T.c
./src/H5Tpublic.h
Changed the order of functions so all the public ones are at
the top of the file. Other minor changes.
./src/H5detect.c
Added a newline to a string constant.
./test/dsets.c
./test/dtypes.c
./test/hyperslab.c
./test/istore.c
Added a definition for __FUNCTION__. Changed a couple
variable types.
./test/testhdf5.h
The error stack is printed when something goes wrong.
Changes since 19971211
----------------------
./MANIFEST
./src/H5Osdtyp.c -> H5Odtype.c
./src/H5Osdim.c -> H5Osdspace.c
./src/Makefile.in
Changed the names of these files to better reflect what they
actually do.
./src/H5.c
./src/H5AC.c
./src/H5B.c
./src/H5C.c
./src/H5D.c
./src/H5E.c
./src/H5Eprivate.h
./src/H5Epublic.h
./src/H5F.c
./src/H5Fcore.c
./src/H5Ffamily.c
./src/H5Fistore.c
./src/H5Flow.c
./src/H5Fsec2.c
./src/H5Fsplit.c
./src/H5Fstdio.c
./src/H5G.c
./src/H5Gent.c
./src/H5Gnode.c
./src/H5Gshad.c
./src/H5Gstab.c
./src/H5H.c
./src/H5M.c
./src/H5MF.c
./src/H5O.c
./src/H5Osdtyp.c (./src/H5Odtype.c)
./src/H5P.c
./src/H5T.c
./src/H5detect.c
./src/H5private.h
Added an argument to the HRETURN_ERROR(), HGOTO_ERROR(), and
HERROR() macros which is a string error message. This allows
us to give extra information which can't be represented by the
major and minor error numbers. This information was
previously in comments just before or after the macro call.
The string isn't currently used, but I'm planning to change
the test files so they print an error trace when something
fails. This should make debugging a little faster since it's
often obvious what's wrong if we could just see the error
stack without even having to start a debugger.
./html/Datasets.html
Updated the example to use H5Cset_prop().
Changes since 19971210
----------------------
./MANIFEST
Removed H5config.h since it's generated from H5config.h.in.
./src/H5C.c
./src/H5Cprivate.h
Changed H5Csetparm() to H5Cset_prop() and changed it to pass
property values by value instead of reference. Changed
H5Cgetparm() to H5Cget_prop(). Changed data types of file
creation properties so the application can use `int' or
`size_t' for most properties. Properties and their types are
documented in H5Cget_prop().
Changed H5C_class() to H5Cget_class() to make the naming more
uniform across packages.
./src/H5Cpublic.h
Changed names of properties to make them more uniform across
packages: H5F_USERBLOCK_SIZE became H5F_SIZEOF_USERBLOCK,
H5F_OFFSET_SIZE became H5F_SIZEOF_ADDR, H5F_LENGTH_SIZE became
H5F_SIZEOF_SIZE.
./src/H5D.c
./src/H5Dprivate.h
Added support for chunked data storage. There still isn't any
support for data type conversion or data space conversion, so
chunked storage doesn't do much at this time.
./src/H5E.c
./src/H5Epublic.h
Added the H5E_TEMPLATE major error number. I'm about the
change the HGOTO_ERROR() and HRETURN_ERROR() macros to take an
error string as an additional argument instead of specifying
it as a comment.
./src/H5Fistore.c
Added `const' to the `buf' argument of H5F_istore_write()
although this temporarily causes a compiler warning.
./src/H5Fprivate.h
Changed data types of certain file-related variables from
types like `uint8' to `uintn' since the library data types
should not depend on the file data types.
./src/H5P.c
./src/H5Pprivate.h
./src/H5Ppublic.h
Moved H5Pget_lrank() to H5Pget_ndims(), and H5Pget_ldims() to
H5Pget_dims() to make naming more uniform. Dimensions should
always be of type `size_t'. Similarly for H5P_get_lrank() and
H5P_get_ldims().
./test/dsets.c
Added test for creation of chunked datasets.
./test/dsets.c
./test/istore.c
./test/tfile.c
Template changes.
./test/th5p.c
Accommodated changes to H5P.
Changes since 19971114
----------------------
./MANIFEST
Added/removed files
./config/conclude.in
Added ability to clean other files. The extra files to remove
should be listed in a make variable with the same name as the
target. For instance, $(MOSTLYCLEAN) is a list of files in
addition to the normal files that should be removed when the
user types `make mostlyclean'.
./html/Datasets.html NEW
Documents the dataset interface (H5D).
./html/Datatypes.html NEW
Documents the data type interface (H5T).
./html/H5.format.html
./html/storage.html
Updated to reflect source changes, including the data type
message. The byte layout tables were also reformatted
slightly.
./src/*.[ch]
Removed the interface initialization argument from
FUNC_ENTER() and made it a locally-defined preprocessor
symbol, INTERFACE_INIT.
Changed `offset' to `address' and `length' to `size' in
documentation so it's more consistent. `Offset' still appears
occassionally when it refers to a byte offset within some
other data structure.
Moved interface termination function prototypes from public
header files to .c files and made them static.
./src/H5.c
./src/H5public.h
Added H5init() because it's possible that the predefined data
types are not initialized. This happens only if the first
call to the hdf5 library passes a predefined data type symbol
as an argument. There should be some way to fix this...
./src/H5A.c
./src/H5Aprivate.h
./src/H5Apublic.h
The free_func returns SUCCEED or FAIL, although the return
value is ignored by H5A. This is so we can use the various
H5*_close() functions to free things.
H5Ainc_ref() and H5Adec_ref() are no longer public. Many of
the other atom functions should also be made private, but I'll
save that for later...
Added additional template groups called H5_TEMPLATE_0 through
H5_TEMPLATE_7 that are used by the various template
subclasses.
Increased the number of bits used for atom groups to prevent
negative atoms.
./src/H5AC.c
./src/H5ACprivate.h
Changed H5AC_new() to H5AC_create() to make names more consistent.
./src/H5B.c
./src/H5Bprivate.h
Changed H5B_new() to H5B_create() to make names more consistent.
./src/H5C.c
./src/H5Cprivate.h
./src/H5Cpublic.h
Now supports multiple subclasses of templates, although it's
done with big switch statements. The default values for
templates are defined in the source file to which that
template belongs. This got rid of lots of needless
preprocessor constants.
Added H5Ccreate() to create a new template. Changed
H5C_release() to H5Cclose() to make the naming more
consistent.
./src/H5D.c
./src/H5Dprivate.h
./src/H5Dpublic.h
Enhanced to use the new dataset interface, and uses the enhanced
data type and data space interfaces, which haven't been
completely implemented. The dataset interface doesn't handle
non-contiguous storage, compression, or data type and space
conversions yet.
./src/H5F.c
./src/H5Fprivate.h
./src/H5Fpublic.h
Removed H5Fflush() since just calls H5F_flush(), which doesn't
do what the user would probably think it does, namely, flush
everything. It only flushes those things sitting in the H5AC
cache and the boot block.
Changed the `file_create_parms' field of H5F_low_t to just
`create_parms' since the `file' part is obvious.
./src/H5Fistore.c
Added some support for external files. Mostly just in the
file format and not supported much by the library yet. I need
to finish some dataset functions first.
Changed H5F_istore_new() to H5F_istore_create() to make names
more uniform across packages.
./src/H5Flow.c
Flushing a file causes the file to be physically extended to
the logical eof. This prevents H5F_open() from thinking a
file has been truncated. Most of the time the file will
already be that large, and when it isn't Unix will often just
allocate the final block anyway.
./src/H5G.c
./src/H5Gent.c
./src/H5Gnode.c
./src/H5Gpkg.h
./src/H5Gprivate.h
./src/H5Gstab.c
Removed H5G_basename()
Removed (temporarily) data type information from symbol table
entries and renamed H5G_CACHED_SDATA to H5G_CACHED_SDSPACE to
reflect that it's a simple data space and has nothing to do
with raw data.
Changed H5G_node_new() to H5G_node_create() and H5G_stab_new()
to H5G_stab_create() to make names more uniform across
packages.
Fixed an undefined address bug that happens when H5G_node_debug()
program doesn't pass enough info to H5G_node_load().
./src/H5H.c
./src/H5Hprivate.h
Changed H5H_new() to H5H_create() to make the names more
uniform across packages.
./src/H5M.c
./src/H5Mprivate.h
./src/H5Mpublic.h
Nulled all the create functions. Most of the other callbacks
are to public functions. Removed H5Mcreate().
Changed hobjtype_t to group_t since it has to be the same
thing anyway.
./src/H5O.c
./src/H5Oprivate.h
./src/H5Osdim.c
./src/H5Osdtyp.c
Changed H5O_SIM_DIM to H5O_SDSPACE (simple data space) since
`simple data space' is its official name, not `simple
dimensions'. Will eventually add H5O_CDSPACE for comples data
spaces. Changed _sim_dim_ to _dspace_.
Replaced H5O_SIM_DTYPE and the compound data type messages
with a single H5O_DTYPE message. Changed _sim_dtype_ to _dtype_.
Changed H5O_STD_STORE to H5O_CSTORE (contiguous storage) since
contiguous storage is not necessarily standard. Changed
_std_store_ to _cstore_ in H5Ocstore.c
Added the H5O_EFL (external file list) message.
Changed H5O_new() to H5O_create() to make names more uniform
across packages.
./src/H5Oefl.c NEW
External file list message for specifying which non-hdf5 files
contain raw data for a dataset.
./src/H5P.c
./src/H5Pprivate.h
./src/H5Ppublic.h
Renamed and moved data structures to make the names conform to
our naming scheme.
./src/H5T.c
./src/H5Tprivate.h
./src/H5Tpublic.h
./src/H5Tpkg.h NEW
Data structures redesigned to be more flexible. The interface
was redesigned to make it more regular and to make some names
more uniform across packages.
./src/H5detect.c
Output was changed to produce a file that conforms to the hdf5
coding standard.
./src/Makefile.in
Generates H5Tinit.c by running H5detect.
./src/debug.c
Moved command argument processing.
./test/Makefile.in
Added new tests.
./test/dsets.c NEW
Tests datasets.
./test/dspace.c NEW
Tests data spaces.
./test/dtypes.c NEW
Tests data types.
./test/istore.c
./test/tfile.c
./test/th5p.c
./test/theap.c
./test/tohdr.c
Changed to work with new function names.
./test/testhdf5.c
Removed the data type and dataset tests since they're now in
their own files. They had to be rewritten because of extensive
changes to those interfaces.
Changes since 19971106
----------------------
./MANIFEST
./src/Makefile.in
Added H5Ffamily.c and H5Fsplit.c
./src/H5B.c
./src/H5Bprivate.h
./src/H5Gnode.c
Added `const' to sublass arguments.
./src/H5F.c
./src/H5Flow.c
./src/H5Fsec2.c
Make sure file buffers get flushed during a call to
H5Fflush(). Check for overflow in address encoding and decoding.
./src/H5Ffam.c
./src/H5Fprivate.c
./test/istore.c
Implementation of file families so 32-bit machines can access
64-bit files.
./src/H5Oprivate.h
Removed H5O_NO_ADDR constant.
./config/freebsd2.2.1
./config/linux
Added -DH5G_DEBUG and -DH5F_DEBUG to the list of debugging flags.
./html/H5.format.html
Changed some <offset>-sized things to <length>-sized things.
./src/H5AC.c
./src/H5ACprivate.h
./src/H5B.c
./src/H5Bprivate.h
./src/H5C.c
./src/H5D.c
./src/H5F.c
./src/H5Fcore.c
./src/H5Fistore.c
./src/H5Flow.c
./src/H5Fprivate.h
./src/H5Fsec2.c
./src/H5Fstdio.c
./src/H5G.c
./src/H5Gent.c
./src/H5Gnode.c
./src/H5Gpkg.h
./src/H5Gprivate.h
./src/H5Gshad.c
./src/H5Gstab.c
./src/H5H.c
./src/H5Hprivate.h
./src/H5MF.c
./src/H5MFprivate.h
./src/H5O.c
./src/H5Ocont.c
./src/H5Oistore.c
./src/H5Oprivate.h
./src/H5Ostab.c
./src/H5Ostdst.c
./src/H5pivate.h
./src/debug.c
./test/istore.c
./test/theap.c
./test/tohdr.c
./test/tstab.c
Lots of changes caused by generalizing addresses. The haddr_t
is now a struct, so you can no longer perform arithmetic on
it. But since it's small, simple, and often used, storage is
allocated like with an integer. But we always pass them
around by reference. That is, when using an address in
another struct, allocate space:
struct my_struct {
char *name;
haddr_t address;
} x;
But when passing it to a function, pass by reference:
H5F_addr_print (stderr, &(x.address));
Addresses should be initialized with
H5F_addr_undef (&(x.address));
Functions for operating on addresses are in H5Flow.c and begin
with H5F_addr_... Functions never return haddr_t or haddr_t*;
they always pass them through arguments instead. A function
that returns an address through an argument does so with its
last argument and it is marked with `/*out*/'. Calls to such
functions also mark output-only arguments with `/*out*/'
./src/H5Fsplit.c (new)
A two-member family where all meta data goes in the first
member and all raw data goes in the second member.
./src/H5B.c
./src/H5D.c
./src/H5F.c
./src/H5Ffamily.c
./src/H5Fistore.c
./src/H5Flow.c
./src/H5Fprivate.h
./src/H5Fsec2.c
./src/H5Fstdio.c
./src/H5Gnode.c
./src/H5H.c
./src/H5MF.c
./src/H5MFprivate.h
./src/H5O.c
Differentiate between meta data storage and raw data
storage. Provide a mechanism so that the file driver can
extend the file to allocate more memory.
./src/H5E.c
./src/H5Epublic.c
Added the error H5E_TRUNCATED to be reported when the file is
shorter than the length recorded in the boot block.
./src/H5F.c
Added H5F_locate_signature() so we only do it in one place
now.
./INSTALL
./INSTALL_MAINT
Just a couple clarifications.
./html/ExternalFiles.html
./html/storage.html
Documents how external files work.
./test/hyperslab.c
./test/istore.c
Fixed printf's on 64-bit machines.
./test/istore.c
Added ifdef's to test the split file driver.
Changes since 19971024
----------------------
./config/linux
./config/freebsd2.2.1
Rewritten to be more flexible.
./src/H5AC.c
./src/H5ACprivate.h
./src/H5F.c
./src/H5H.c
./src/H5Gpkg.h
./src/H5Gshad.c
./src/H5O.c
./test/istore.c
./test/tstab.c
Accumulates cache statistics and displays the results on
stderr when the file is closed if it was opened with
H5F_ACC_DEBUG passed into H5F_open()
./src/H5B.c
./src/H5Bprivate.h
./src/H5Fistore.c
./src/H5Gnode.c
Added more debugging which is turned on if H5B_DEBUG is
defined on the compile command (see config/linux).
Fixed a couple of bugs with left insertions which are used by
the indexed storage stuff.
./src/H5Flow.c
Fixed a memory leak.
./src/H5Fprivate.h
Fixed warnings about shifting more than size of object.
./src/H5Fstdio.c
Fixed seek optimizations back to the way Quincey originally
had them.
./src/H5V.c
Removed unused variables.
Changes since 19971023
----------------------
./config/conclude.in
Test work when `.' isn't in $PATH.
./src/H5F.c
./src/H5Fcore.c NEW
./src/H5Flow.c
./src/H5Fprivate.h
./src/H5Fsec2.c
./src/H5Fstdio.c
./src/Makefile.in
./MANIFEST
Added the in-core temporary file driver as an exercise to
clean up some of the H5F package. It speeds up `testhdf5 -o
stab' by 25 percent! If you want to try it you'll need to
recompile everything with `-DH5F_LOW_DFLT=H5F_LOW_CORE'.
Don't expect testhdf5 to ever work since creating a file,
closing it, and then opening it for read-only will fail.
Changes since 19971021
----------------------
./MANIFEST
./src/Makefile.in
Added new files.
./html/H5.apiv2.html
Added documentation for group stuff.
./src/H5private.h
./src/H5E.c
./src/H5Epublic.h
./src/H5F.c
./src/H5Flow.c NEW
./src/H5Fprivate.h
./src/H5Fsec2.c NEW
./src/H5Fstdio.c NEW
Low-level file driver is selected at runtime.
./src/H5Fprivate.h
Got rid of `shift >= sizeof operand' warnings on big endian
machines.
./src/H5Fistore.c
./test/istore.c
Still working on indexed storage...
./src/H5H.c
./src/H5Hprivate.h
Removed alignment constraints.
Changes since 19970916
----------------------
./config/depend.in
Fixed backslashes in sed script because the H5Gnode.c
dependency info was disappearing. You'll have to rerun
config.status to rebuild the Makefiles unless you use gnu
make.
./config/conclude.in
Also removes emacs backup files, TAGS, and svf backup files.
./config/linux
Grouped gcc flags and added provisions for debugging vs. production.
./html/H5.format.html
Updated messages 0x0008, 0x0009, and 0x000A.
./html/storage.html
Documentation describing storage schemes.
./src/Makefile.in
./test/Makefile.in
New source files.
./src/H5A.c
./src/H5Apublic.h
./src/H5C.c
Changed VOIDP to void* in a couple places.
./src/H5AC.c
./src/H5ACprivate.h
./src/H5B.c
./src/H5Bprivate.h
./src/H5G.c
./src/H5Gnode.c
./src/H5Gprivate.h
./src/H5H.c
./src/H5O.c
Removed `const' from some variables because H5G_node_found() wanted
to modify it's udata argument. Removing const there caused it
to cascade to these other locations.
./src/H5AC.c
./src/H5ACprivate.h
./src/H5B.c
./src/H5Gnode.c
./src/H5Gstab.c
./src/H5H.c
./src/H5O.c
Added an extra argument to H5AC_find_f() and H5AC_protect(). This
arg gets passed to the load() method. Also added an extra
argument to the H5AC_find() macro.
./src/H5B.c
./src/H5Bprivate.h
./src/H5Gnode.c
Extra argument passed to the sizeof_rkey() method.
./src/H5Fprivate.c
./src/H5Fistore.c (new)
Added indexed I/O operations.
./src/H5G.c
./src/H5Gnode.c
./src/H5Gprivate.h
Beginning to add H5G_open/close and related bug fixes.
./src/H5Oprivate.h
./src/H5Oistore.c (new)
Added the H5O_ISTORE messsage (0x0008) for indexed storage of
objects.
./src/H5private.h
Added extra braces around both sides of the FUNC_ENTER() and
FUNC_LEAVE() macros so FUNC_ENTER() can appear before
declarations or after executable statements the second case is
used by H5G_namei() to initialize output arguments to sane
values before FUNC_ENTER() might return failure.
int f ()
{
int decl1;
printf ("This happens before FUNC_ENTER()\n");
FUNC_ENTER (...);
int another_declaration;
./src/H5B.c
./src/H5Bprivate.h
./src/H5Gnode.c
Extra arguments for key encoding and decoding.
./src/H5E.c
./src/H5Epublic.h
./src/H5Fistore.c
./src/H5Oistore.c
./src/H5Oprivate.h
Indexed, chunked, sparse storage (not ready for general consumption
yet).
./src/H5V.c (new)
./src/H5Vprivate.h (new)
./test/hyperslab.c (new)
Vector, array, and hyperslab functions.
./src/H5B.c
./src/H5Bprivate.h
./src/H5Fistore.c
./src/H5Gnode.c
./src/H5V.c
./src/H5Vprivate.h
./test/hyperslab.c
Added functionality for indexed storage.
./src/H5F.c
Fixed problems with seek optimizing. Recommend we disable it
until we can implement it in the file/address class since all
of HDF5 must be aware of it.
./src/H5O.c
Fixed comeent speling erorr :-)
./MANIFEST
Added new files.
./config/conclude.in
Added the word `Testing' to the test cases. So if a test
program is called hyperslab then the make output will contain
the line `Testing hyperslab'.
./config/linux
The default file I/O library is Posix section 2 on my linux
machine so I can do some I/O performance testing.
./src/H5C.c
./src/H5Cprivate.h
./src/H5Cpublic.h
Added ability to set size of indexed-storage B-tree.
./src/H5D.c
./src/H5E.c
./src/H5Epublic.h
./src/H5F.c
./src/H5Fprivate.h
./src/H5G.c
./src/H5Gnode.c
./src/H5Gpkg.h
./src/H5Gprivate.h
./src/H5Gpublic.h
./src/H5Gshad.c
./src/H5Gstab.c
./test/stab.c
Changed `directory' to `group' in numerous places.
./src/H5private.h
The FILELIB constant can be set on the compile command-line.
./src/istore.c NEW
Tests for indexed storage.
Changes since 19970915
----------------------
./src/H5Apublic.h
Removed H5_OID.
./src/H5D.c
Fixed a few things to work better with symbol tables. Combined
the H5D_oid_t and H5D_dataset_t structs.
./src/H5Dprivate.c
Combined the H5D_oid_t and H5D_dataset_t types.
./src/H5M.c
Removed the callback list for H5_OID.
./test/th5d.c
Changed the H5Mfind_name() return value and removed the call
to H5Maccess().
./test/th5p.c
Removed unused variables.
Changes since ????????
----------------------
./src/H5G.c
Fixed an error in H5G_namei() that ignored the object name
when the object was the only thing in a file.
./test/th5d.c
Changed and object name for a read request.
Changes since 19970813
----------------------
./html/H5.format.html
Changed the format of the boot block to get rid of the B-tree
size and replace it with K values for the various types of
B-trees.
./src/H5B.c
./src/H5Bprivate.h
The B-tree K value comes from a combination of the B-tree
subclass and the file.
./src/H5C.c
./src/H5F.c
./src/hdf5lims.h
./src/hdf5type.h
Removed the B-tree size parameter and added an array of B-tree
K values. Also added symbol table node K value.
./src/H5Eprivate.h
./src/H5Eproto.h
Added H5E_LINK for errors involving link counts.
./src/H5G.c
Inserting something into a directory with H5G_insert()
increments the link count in the object header. The root
object should always have a link count of at least 1.
./src/H5Gnode.c
./src/H5Gprivate.h
The symbol table node K value comes from the file instead of
being a constant.
./src/H5Olink.c
Added an assert(), fixed a hard-link bug.
./test/tfile.c
Removed tests for H5_BTREEPAGE_SIZE and added tests for
H5_SYM_LEAF_K and H5_SYM_INTERN_K.
./test/tstab.c
Removed call to H5O_link() since it's handled by H5G_insert().
Changes since 19970812
----------------------
Changes since 19970811
----------------------
./src/H5AC.c
We sort the cache before a complete flush because it might be
more efficient to write things back to disk in order of
increasing address. If you want the old way then undef the
SORT_BY_ADDR constant at the top of H5AC.c I haven't
determined which systems and I/O libraries this helps or
hurts. (This is currently off because of a bug I need to track
down that causes qsort() to run for a really long time).
./src/H5B.c
Fixed a couple more bugs.
./src/H5Eprivate.h
./src/H5Eproto.h
Added major H5E_DIRECTORY and minor H5E_EXISTS, H5E_COMPLEN.
./src/H5G.c
Added directory-aware functions.
The heap and B-tree are created when a directory is created
instead of when the first symbol is added. This simplifies
symbol table entry caching for the directory since the cached
value never changes now.
./src/H5Gnode.c
./src/H5Gprivate.h
Fine tuned the B-tree K values for symbol tables assuming an
average number of symbols is about 100 per directory. The
tuning minimizes storage space.
Fixed a return value in H5G_node_cmp().
./src/H5H.c
./src/H5Hprivate.h
Moved some macros the the header file.
./src/H5O.c
./src/H5Ocont.c
./src/H5Onull.c
./src/H5Ostab.c
Changed the arguments for the decode method for messages. The
second argument is the raw message size.
Added a class variable for native message size.
Added H5O_reset() to free memory used internally by a message.
./src/H5Oname.c NEW
./src/H5Oprivate.h
./src/Makefile
The object name message.
./src/hdf5port.h
Added defn for HDstrdup()
./test/tfile.h
Removed unused local variables.
./test/tstab.c
Now uses directory-aware functions which in turn call the
unaware functions.
Changes since 19970808
----------------------
./src/H5B.c
./src/H5Bprivate.h
./src/H5G.c
H5B_new() only takes two arguments.
./src/H5C.c
Fixed initializer for default_file_create to be the same order
as it's definition.
./src/H5D.c
Changed commented-out code to #if 0/#endif. #if'd out a
variable that was unused because of #if'd out code.
./src/H5Dproto.c
Added a prototype for H5Dwrite().
./src/H5F.c
Changed parentheses to fix precedence problems from:
flags & (~H5AC_OVERWRITE) != 0
to
(flags & ~H5AC_OVERWRITE) != 0
./src/H5H.c
Heap reallocation doubles the heap size instead of tripling it.
./src/H5O.c
Got rid of a statement with no effect.
./src/hdf5port.h
Indented a few #defines. Added a defn for MAX3().
Changes since 19970807
----------------------
./src/H5AC.c
Renamed H5AC_find() to H5AC_find_f() which is invoked from the
H5AC_find() macro.
Changed HASH() to H5AC_HASH().
./src/H5ACprivate.h
Increased the number of cache slots from 1033 to 10330 to see
how it affects performance. This should probably be
changeable on a per-file basis.
./src/H5B.c
Fixed some bugs now that symbol tables are actually using the
stuff.
Improved debugging a little.
Fixed uninitialized memory appearing in the file.
./src/H5D.c
Changed a FUNC_ENTER() argument from H5Dset_info to H5Dwrite.
./src/H5F.c
Plugged a memory leak in H5F_dest().
./src/H5G.c
./src/H5Gprivate.h
Many of these functions take a symbol table entry which
describes the symbol table rather than just the symbol table
address.
Moved some functions to make room for the ones that understand
directory names:
H5G_new() -> H5G_stab_new()
H5G_find() -> H5G_stab_find()
H5G_modify() -> H5G_stab_modify()
H5G_insert() -> H5G_stab_insert()
H5G_list() -> H5G_stab_list()
./src/H5Gnode.c
Added more assertions.
Zero new memory so junk doesn't appear in the data file. This
is a problem when one tries to declassify a classified data
file.
H5G_node_debug() can take an extra argument which is the
address of the heap for the symbol table. If supplied, the
symbol names are printed along with the heap offsets.
./src/H5H.c
./src/H5Hprivate.h
Fixed a bug with the free blocks by forcing things to align on
even boundaries. It's still possible to lose heap memory if
the hole is smaller than the free list header. The
alternative is to align heap objects on 12 or 20 byte
boundaries, but this tends to waste to much space.
Zero new memory like with H5Gnode.c.
Fixed a "mispeling" of NDEBUG.
./src/H5Ocont.c
./src/H5Onull.c
Added the pablo mask defn.
./src/H5Ostab.c
Added the pablo mask defn.
Fixed a read from uninitialized memory.
./src/H5Oprivate.h
Tuned some parameters to see how they affect performance.
./src/debug.c
An optional third argument can be supplied which is the
address of a heap to use to display names in a symbol table.
./src/hdf5pabl.h
Changed `int' to `intn'.
./src/hdf5plat.h
Added defn for int64 and uint64 on irix. It seems to be
wrong, but at least things compile and run. This file will go
away with autoconf anyway.
./test/testhdf5.c
./test/Makefile
Added tstab.c
./test/testhdf5.h
Added tstab.c
Fixed bugs with CHECK_I() and CHECK_PTR().
Changes since 19970804
----------------------
./html/H5.format.html
Added documentation for the symbol table message, 0x0011.
./src/H5AC.c
./src/H5ACprivate.h
./src/H5ACproto.h
./src/H5Bproto.h
./src/H5Gproto.h
./src/H5Hproto.h
./src/H5MFprivate.h
./src/H5MFproto.h
./src/H5MM.c
./src/H5MMprivate.h
./src/H5MMproto.h
Changed my e-mail address.
./src/H5O.c NEW
./src/H5Onull.c NEW
./src/H5Ocont. NEW
./src/H5Ostab.c NEW
New functions for dealing with object headers. The H5O.c is
the generic stuff, and each particular message has a source
file for the specific stuff.
Use ./src/H5Ostab.c as a model for implementing other messages.
./src/Makefile
./src/test/Makefile
Added new files
./src/debug.c
Added debugging calls for object headers.
./src/H5B.c
./src/H5Bprivate.h
./src/H5Gnode.c
./src/H5MF.c
Changed my e-mail address.
Improved error handling.
./src/H5Eprivate.h
./src/H5Eproto.h
Added more error symbols
./src/H5F.c
Changed my e-mail address.
Used macros for sizeof offsets and lengths.
Added the interface initialization function to
H5F_block_read() and H5F_block_write().
Updated H5F_debug()
./src/H5Fprivate.h
Got rid of H5F_symbol_table_size(). Use H5G_SIZEOF_ENTRY()
instead.
Reformatted H5F_decode_offset() for readability.
./src/H5G.c
Changed my e-mail address.
Improved error handling.
Replaced not_implemented_yet__*() with real functions from
H5O.
./src/H5Gprivate.h
Changed `symtab' to `stab' to be consistent with other stuff.
./src/H5H.c
./src/H5Hprivate.h
Changed my e-mail address.
Improved error handling.
Added an extra argument to H5H_new() to indicate whether you
want a global heap or a local heap.
./src/hdf5gen.h
Added NELMTS()
Fixed FUNC_ENTER()
Rewrote FUNC_LEAVE() in terms of HRETURN().
./src/hdf5meta.h
Added `const' to the decode macros.
./src/hdf5pabl.h
Added PABLO_SAVE()
./test/testhdf5.c
./test/testhdf5.h
Added calls for object header testing.
./test/theap.c
Turned off some output.
Changes since 19970804
----------------------
./html/H5.format.html
Indented the first few hundred lines as I cleaned some stuff
up.
./src/H5.c
Added an `_g' to the end of library_initialize,
thread_initialize, and interface_initialize to abide by the
naming convention. Removed setting of these variables from
the various initialization functions since it happens in the
FUNC_ENTER() macro now.
Defined PABLO_MASK.
Removed `CONSTR(FUNC,"function_name")' everywhere since it's
handled by the various FUNC_ENTER macros.
Fixed calls to FUNC_ENTER(), FUNC_LEAVE(), and HRETURN_ERROR()
so they don't need so many arguments.
Changed PABLO_TRACE_ON() to FUNC_ENTER() since there is no
longer any danger of infinite recursion.
H5_term_library() now returns SUCCEED/FAIL and uses
FUNC_ENTER/FUNC_EXIT macros.
./src/H5A.c
Changes similar to H5.c.
Most (all?) of the functions called PABLO_TRACE_ON() and the
package doesn't have an interface initializer that I can see,
so the second argument to FUNC_ENTER() is always NULL.
H5A_release_atom_node() returns SUCCEED/FAIL.
./src/H5AC.c
Added error handling.
Arguments for internal functions are checked with assert().
./src/H5C.c
Changes similar to H5.c
Fixed the FUNC variable in H5C_get_default_atom() since it was
initialized to the wrong name.
./src/H5D.c
Changes similar to H5.c
./src/H5E.c
Changes similar to H5.c
Changed the pablo mask from H5_mask to H5E_mask in
H5E_init_interface().
H5Eclear(), H5E_store(), and H5Epush() return SUCCEED/FAIL.
Changed PABLO_TRACE_OFF() calls to FUNC_LEAVE() calls in the
same functions.
./src/H5Eprivate.h
./src/H5Eproto.h
Added additional error symbols for the H5AC package.
Changed prototypes for H5Eclear() and H5Epush().
Changes to HRETURN_ERROR() and HGOTO_ERROR() to reduce the
number of arguments.
./src/H5F.c
Changes similr to H5.c
Changed the pablo mask from H5_mask to H5F_mask for the
FUNC_LEAVE() call of H5F_init_interface().
Added FUNC_ENTER() and FUNC_LEAVE() calls to some functions
that didn't have them.
./src/H5M.c
Changes similar to H5.c
Fixed the FUNC variable in H5M_init_interface() since it was
initialized to the wrong name.
./src/H5P.c
Changes similar to H5.c
./src/H5T.c
Changes similar to H5.c
./src/hdf5gen.c
Changes to FUNC_ENTER() and FUNC_EXIT() to reduce the number
of arguments. FUNC_ENTER() is now safe from infinite
recursion since it updates the library_initialize_g,
thread_initialize_g, or interface_initialize_g variables
before calling the appropriate initialize function.
Changes since 19970731
----------------------
./src/H5AC.c
Fails sooner if the type of object requested doesn't match
the type of object cached.
./src/H5B.c
./src/H5Bprivate.h
./src/H5Fprivate.h
./src/H5G.c
./src/H5Gnode.c
./src/H5Gprivate.h
./src/H5H.c
./src/H5Hprivate.h
Changed lots of `H5*_HDR_SIZE' macros to `H5*_SIZEOF_HDR' to make
things more consistent.
Added H5*_SIZEOF_MAGIC macros.
Added debugging functions to some of the packages.
./src/H5F.c
Fixed a bug with reading past the end of a buffer.
./src/H5Tproto.h
Added prototypes for H5Tadd_field() and H5Tget_fields().
./src/debug.c
Low-level file debugging program.
./src/Makefile
Builds `debug' as one of the main targets. The target is
called `debug_hdf5' so it doesn't conflict with the `debug'
target that was already there. But the executable is called
`debug'.
Changes since 19970718
----------------------
./src/H5B.c
./src/H5G.c
./src/H5Gnode.c
./src/H5H.c
Changed SIZEOF_OFFSET and SIZEOF_SIZE to H5F_SIZEOF_OFFSET and
H5F_SIZEOF_SIZE. Modified files to use these instead of
accessing the hdf5_file_t struct directly.
Changed address return values from H5B to -1 for error.
Changed off_t to haddr_t for anything that's a file address.
Changes since 19970718
----------------------
./src/GNUmakefile
./src/Makefile
Added H5G.c
./src/H5F.c
Moved creation and destruction of hdf5_file_t structs into
H5F_new() and H5F_dest() since these tasks are becoming more
and more complicated.
./src/H5Fprivate.h
./src/H5Gprivate.h
Moved the h5_symbol_type_t and h5_symentry_t typedefs to
H5Gprivate.h and called them H5G_type_t and H5G_entry_t.
./src/H5Gnode.c
Now uses H5G_entry_t in a way that makes it easy to change the
definition of that structure.
./src/H5H.c
Changed the size hint code so that if you don't give a size
hint, it's less likely that 8 bytes of the file are
wasted. Also fixed some debugging code so it doesn't dump
core.
./src/H5MF.c
Freeing something of zero length, or freeing something with a
file address of zero or negative, is a no-op.
Changes since 19970716
----------------------
./html/H5.format.html
Added documentation for the small heap object with some notes
about using B-link trees for large heaps. Also updated the
symbol table stuff to reflect recent changes to the source
code.
./src/GNUmakefile
./src/Makefile
Added small heaps.
./src/H5.c
./src/H5AC.c
./src/H5ACprivate.h
./src/H5ACproto.h
./src/H5B.c
./src/H5Bprivate.h
./src/H5Bproto.h
./src/H5Cprivate.h
./src/H5F.c
./src/H5Fprivate.h
./src/H5Gnode.c
./src/H5Gprivate.h
./src/H5Gproto.h
./src/H5MFprivate.h
./src/H5MFproto.h
./src/H5MMprivate.h
./src/H5MMproto.h
./src/H5private.h
Fixed include files. The H5*.c file contains constants,
typedefs, and prototypes for things with file scope. The
H5*private.h file contains things with library scope. The
H5*proto.h file contains things with API scope.
The H5*private.h file should include H5*proto.h. The H5*.c
file should include any H5*private.h files it needs.
./src/H5MF.c
Implemented H5MF_alloc() and a stub for H5MF_free().
./src/H5MM.c
Added `const' to an argument.
./test/Makefile
./test/testhdf5.c
./test/testhdf5.h
./test/theap.c
Added heap tests.
Changes since 19970713
----------------------
./src/H5.c
./src/H5AC.c
./src/H5ACprivate.h
./src/H5ACproto.h
./src/H5B.c
./src/H5Bprivate.h
./src/H5Bproto.h
No longer need to initialize H5AC or H5B at run time.
./src/H5F.c
Second argument to H5AC_flush changed.
./src/H5MM.c
uses H5MM_xstrdup
./src/Makefile
Added H5Gnode.o
./src/hdf5port.h
Added HDmemmove
./src/H5Gnode.c
./src/H5Gprivate.h
./src/H5Gproto.h
Symbol table stuff. The H5Gnode.c file contains functions for
dealing with symbol table nodes. This code isn't complete
yet, so ignore the warnings for implicit function declarations
and casting of integer to pointer.
Changes since 19970710
----------------------
./src/Makefile
Added new source files.
./src/hdf5file.c
./src/h5proto.h
Added H5F_block_read() and H5F_block_write() convenience functions
that seek and then read/write.
./src/hdf5.c
Added includes for cache and B-link trees.
./src/hdf5.h
Removed include for cache.
./src/hdf5file.h
Added the H5FPdecode_offset macro (and then removed it :-)
./src/H5AC NEW
./src/H5ACprivate.h NEW
./src/H5ACproto.h NEW
Cache files. H5AC.c was renamed from hdf5cache.c and
H5ACprivate.h was renamed from hdf5cache.h.
./src/H5B.c NEW
./src/H5Bprivate.c NEW
./src/H5Bproto.c NEW
B-link tree functions. Not tested yet since we don't have
anything that gets pointed to by a B-tree.
./src/H5MF.c NEW
./src/H5MFprivate.h NEW
./src/H5MFproto.h NEW
File memory management functions needed by B-link trees but
not fully implemented.
./src/H5MM.c NEW
./src/H5MMprivate.h NEW
./src/H5MMproto.h NEW
Core memory management functions same as the HD... macros but
assert that memory was allocated. Also fixes problems with
some versions of realloc().
Changes since 19970709
----------------------
./src/hdf5cache.c NEW
./src/hdf5cache.h NEW
Implements a memory cache for objects that exist in the HDF5
file. All exported symbols begin with `H5AC_'.
./src/hdf5file.c
The cache is created and destroyed when the hdf5 file structure
is created and destroyed. The cache is flushed when H5Fclose()
is called and the reference count is zero.
./src/hdf5file.h
The hdf5_file_t struct has a cache.
./src/hdf5.h
Includes hdf5cache.h
./src/h5proto.h
Added function prototypes from hdf5cache.c
./src/Makefile
Added hdf5cache.o as a library object.