----------------------
./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.
----------------------
./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.
----------------------
./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.
----------------------
./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.
----------------------
./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.
----------------------
./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.
----------------------
./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().
----------------------
./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.
----------------------
./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.
----------------------
./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.
----------------------
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.
----------------------
./src/H5A.c
Named data types can have attributes.
Fixed bugs where the API functions didn't check the return
values of their internal counterparts and thus the automatic
error reporting didn't work.
Fixed some places where the error stack wasn't cleared after a
function returned failure.
Data types returned by H5Aget_type() are always read-only.
If the `attr_num' argument of H5Aiterate() is null then it
acts like H5Giterate() instead of failing -- it begins
processing attributes with the first one.
./src/H5D.c
We check for allocation overruns when scalar datasets are
stored in external files.
./src/H5O.c
H5O_modify() will fail if the message is >=16kB.
./src/H5Oattr.c
Split some long lines
./src/H5T.c
./src/H5Tprivate.h
Added H5T_entof() to support attributes on named types.
./src/h5ls.c
Prints the names of attributes and their sizes.
./test/cmpd_dset.c
./test/dsets.c
./test/dtypes.c
./test/extend.c
./test/external.c
./test/gheap.c
./test/istore.c
./test/links.c
./test/shtype.c
If the environment variable HDF5_NOCLEANUP is defined then the
temporary files are not removed. The testhdf5 program still
has the bug that it removes *.h5, clobbering test files from
other programs... oh well.
./test/dtypes.c
Added attribute tests.
----------------------
./html/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.
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.
----------------------
./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.
while he is visiting LLNL. I changed the default creation template
offset and length to 4. Will fix the problem later.
Changes since 19980205
----------------------
./src/H5H.c
./src/H5Hprivate.h
./src/H5O.c
./src/H5Ocont.c
./src/H5Odtype.c
./src/H5Oefl.c
./src/H5Olayout.c
./src/H5Oname.c
./src/H5Onull.c
./src/H5Oprivate.h
./src/H5Odspace.c
./src/H5Ostab.c
./src/debug.c
./html/H5.format.html
Added an extra 4-byte field after the heap magic number for
alignment on the DEC alpha. Changed object header message
alignment to 8-bytes.
./src/H5F.c
./src/H5Farray.c
./src/H5Ffamily.c
./src/H5Fistore.c
./src/H5Flow.c
./src/H5Fprivate.h
./src/H5Fsec2.c
./src/H5Fstdio.c
./src/H5Gnode.c
./src/H5O.c
./src/H5Odtype.c
./src/H5P.c
./src/H5Pprivate.h
./src/H5T.c
./src/H5Tconv.c
./src/H5Tpkg.h
./src/H5Tpublic.h
./src/H5V.c
./src/H5detect.c
./test/cmpd_dset.c
./test/dsets.c
./test/dtypes.c
./test/extend.c
./test/hyperslab.c
./test/istore.c
./test/th5p.c
./test/theap.c
Fixed a few irix64 warnings regarding size_t vs. int,
variables set but not used, printf formats
./config/irix64
Added `-woff 1196' to get rid of errors about __vfork() being
implicitly defined in a system header file.
./src/H5B.c
Fixed a stack alignment problem.
----------------------
./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.
----------------------
./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'.
----------------------
./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.
./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.
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.