The "FILENAME" declared extern in h5test.h is not always used.
It was used in h5_cleanup to remove temporary files created
during tests. Not all tests codes have used this routine.
Indeed, quite a few of test programs do "#define FILENAME ".
Also, h5_cleanup needs to work in tandem with h5_fixname.
h5_fixname accepts an explicite base_name argument instead
of using the global variable FILENAME. That is cleaner.
Solution:
Added char *base_name[] as a new argument to h5_cleanup, in
the same style as h5_fixname. Removed "extern char *FILENAME..."
from use. Also, undo some unnecessary declaration of "char *FILENAME"
from some tests which don't use it at all (yet).
Platforms tested:
modi4-64(irix64), arabica(solari2.7), eirene(linux)
(arabica could not launch tests automatically. I had to hack
in LD_LIBRARY_PATH to make them run.)
** src/H5Tconv.c
** src/H5Tpkg.h
** src/H5Tpublic.h
The H5T_conv_struct_opt() function had a design flaw -- it
didn't keep information about the stride to use to step
through the temporary/background-value buffer and thus nested
invocations would clobber each other's temp buffers. This was
fixed by splitting the `stride' argument into `buf_stride' and
`bkg_stride' arguments for all the conversion functions. THIS
IS AN API CHANGE, but users will get a compiler warning when
they pass their conversion function pointer to H5Tregister().
** src/H5T.c
** src/H5Tprivate.h
Added a bkg_stride argument to the H5T_convert() definition in
order to fix a bug related to the optimized compound datatype
conversion function.
** src/H5T.c
** src/H5A.c
** src/H5D.c
** src/H5Ofill.c
** src/H5P.c
Added bkg_stride=0 argument to the H5T_convert() calls.
** test/dtypes.c
Added a test for the H5T_conv_struct_opt() bug fixed above.
** src/H5FL.c
The H5FL_term() function should return non-zero even when it
couldn't free all the free lists do to their being used by
some other package. When that other package terminates it
will return non-zero, causing H5FL_term() to be called
again. This fixes some of the `infinite loop closing library'
messages.
** tools/pdb2hdf
Uses print_version() instead of doing that itself.
** src/H5Ppublic.h
Renamed H5Pget_gc_reference() declaration to make it match the
definition.
** src/H5FDlog.c
Added API tracing macros.
Removed `const' qualifier from a `char*' member of a struct
which was allocated on the heap.
** src/H5TB.c
Added curly braces to a couple deeply-nested `if' statements
to make them clearer and to shut up the increadibly stupid and
just plain incorrect gcc warning about ambiguous `else'.
** test/titerate.c
Removed incomplete initialization in favor of memset() for one
auto variable to stop compiler warnings.
** tools/Depencencies
Regenerated to remove references to h5dumputil.c
----------------------
./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.
H5Tconvert calls.
Added tests to tvltypes.c which test arrays of VL compound datatypes,
array of compound datatypes with VL fields and arrays of nested VL sequences
of VL sequences of atomic types, all of which are working correctly.
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.
----------------------
./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.
----------------------
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.
----------------------
./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.
----------------------
./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.
----------------------
./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.
----------------------
./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.
----------------------
./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.
----------------------
./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 termal 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'.
----------------------
./test/dtypes.c
./test/enum.c [NEW]
Added support for enumeration data types.
./test/fillval.c
./test/istore.c
Fixed memory leaks during error handling.
----------------------
./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.
----------------------
./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.
----------------------
./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.
----------------------
./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.
----------------------
./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.
----------------------
./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.
----------------------
./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 ;-)
----------------------
./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.
----------------------
./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.
----------------------
./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
----------------------
./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.