Commit Graph

107 Commits

Author SHA1 Message Date
Quincey Koziol
9b934aa767 [svn-r1599] Changed return type of H5Tenum_nameof and H5Tenum_valueof from hid_t to herr_t 1999-08-25 17:01:41 -05:00
Robb Matzke
cc89b8a605 [svn-r1572] 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.
1999-08-17 14:12:59 -05:00
Quincey Koziol
650e29cff6 [svn-r1418] Modified H5Tconvert to require a dataset transfer property list ID as the
final parameter (so that VL datatypes have a way to pass in the custom memory
allocation routines).
    Fixed a conversion bug when VL fields were part of a compound datatype that
was causing the no-op conversion routine to be used instead of the vlen routine.
    Added the H5Pset_vlen_mem_manager and H5Pget_vlen_mem_manager routines to
allow users to provide their own custom memory allocation routines for VL data
read in from the file and reclaimed with H5Dvlen_reclaim.
    Finished coding on H5Dvlen_reclaim so it works now.
1999-07-03 05:31:26 -05:00
Robb Matzke
8baa675250 [svn-r1362]
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.
1999-06-18 10:12:18 -05:00
Robb Matzke
1c5f6ffb70 [svn-r1341]
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.
1999-06-14 10:07:58 -05:00
Robb Matzke
263bfa76ef [svn-r1328] 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').
1999-06-11 10:53:15 -05:00
Quincey Koziol
2a10e682a1 [svn-r1305] Checkpointing the VL datatype code. I believe the core functionality is here,
accessed with H5Tvlen_create, but I need to start writing tests now.  Also the
more esoteric API calls (such as H5Tget_vlen_buf_size and the memory management
calls) aren't implemented yet.
1999-06-04 17:27:28 -05:00
Robb Matzke
e352d29757 [svn-r1292] 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.
1999-06-02 08:59:35 -05:00
Robb Matzke
d534a4dd0d [svn-r1204] 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.
1999-04-23 07:31:21 -05:00
Robb Matzke
37cfaf1665 [svn-r1078] 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.
1999-02-18 11:21:34 -05:00
Patrick Lu
3d6d039b86 [svn-r1051] changed the HDF5DLL and HDF5GLOBAL to __DLL__ and __DLLVAR__
also exported all globals and non static functions to the dll
1999-02-02 10:52:59 -05:00
Robb Matzke
a2b8da49db [svn-r1032] 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 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'.
1999-01-21 13:33:39 -05:00
Patrick Lu
bb776bacbf [svn-r1031] added necessary info to export info to the dll 1999-01-21 11:49:37 -05:00
Robb Matzke
504aa95bd9 [svn-r1010] Changes since 19981217
----------------------

./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
        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.

./src/H5public.h
        Include <limits.h> because the H5T_NATIVE_CHAR macro needs the
        definition for CHAR_MIN.
1999-01-07 06:41:25 -05:00
Robb Matzke
09aaf83332 [svn-r971] 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.
1998-12-17 14:35:20 -05:00
Robb Matzke
ffcbc32d66 [svn-r952] 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.
1998-11-25 12:21:21 -05:00
Robb Matzke
68bff3d352 [svn-r928] 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.

./config/conclude.in
	Added a rule to make test programs depend on the hdf5 library. This
	fixes a minor 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.
1998-11-19 12:36:27 -05:00
Robb Matzke
8bb8649482 [svn-r925] 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 ;-)
1998-11-18 13:40:09 -05:00
Quincey Koziol
8f810273bb [svn-r904] Fixed bug in H5dont_atexit.
Plugged a memory leak in the union of hyperslabs code.

Checkpointing dataset region references, which are working, but not stored in
file yet.
1998-11-12 19:28:29 -05:00
Quincey Koziol
7dcbae97f2 [svn-r800] Made a "htri_t" as a return value from "boolean" functions returning
TRUE/FALSE/FAIL, hbool_t is now strictly for true boolean values.
1998-10-26 17:44:13 -05:00
Quincey Koziol
5ff842ebef [svn-r790] Updated parameters for H5R API and changed constants from pointers to references 1998-10-26 12:14:00 -05:00
Quincey Koziol
cd4af9da24 [svn-r766] Checkpointing the reference code. 1998-10-19 17:25:03 -05:00
Quincey Koziol
9d11032a98 [svn-r737] Changed H5I groups to have a H5I_ prefix before them, to better align with the
library.
1998-10-05 18:41:30 -05:00
Robb Matzke
49133159c8 [svn-r609] Debugging.html
Fixed errors

H5.c
	Fixed core dump with setvbuf() for debugging.

H5Fistore.c
	Fixed bug with sparse datasets.

H5Omtime.c
	Found a typo in "Posix Programmer's Guide".  The `%z' in the
	strftime() should be `%Z' instead.

H5T.c
H5Tpublic.h
	Improved api tracing for H5Tinsert_array().

h5tools.c
	Doesn't dump core for empty datasets.
1998-08-20 17:57:35 -05:00
Robb Matzke
93e5190bb1 [svn-r603] 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.
1998-08-18 18:19:27 -05:00
Robb Matzke
9754e9373b [svn-r584] 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
1998-08-10 13:15:14 -05:00
Robb Matzke
6a1bea937d [svn-r469] 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).
1998-07-08 11:46:16 -05:00
Robb Matzke
bcf649388c [svn-r460] 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.
1998-07-07 15:13:31 -05:00
Robb Matzke
23465486ed [svn-r432] 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.
1998-06-18 16:03:30 -05:00
Robb Matzke
dd58a3ec29 [svn-r425] 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.
1998-06-12 12:31:06 -05:00
Robb Matzke
b4c5e3e009 [svn-r407] ./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.
1998-06-04 17:27:11 -05:00
Quincey Koziol
ca0a7c164e [svn-r361] Added Attribute (H5A) code. 1998-04-23 17:24:38 -05:00
Robb Matzke
011457075e [svn-r353] 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.
1998-04-17 16:29:43 -05:00
Robb Matzke
68fa66bf81 [svn-r337] 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.
1998-04-07 10:34:16 -05:00
Robb Matzke
92571bbe1d [svn-r336] 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).
1998-04-03 16:11:05 -05:00
Robb Matzke
a780cdd178 [svn-r335] 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.
1998-04-02 22:29:38 -05:00
Quincey Koziol
96dd634330 [svn-r324] Change H5A (atoms) to H5I (IDs) 1998-03-17 17:46:27 -05:00
Robb Matzke
4494348eb2 [svn-r323] 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).
1998-03-17 16:50:32 -05:00
Robb Matzke
7bdea74ca9 [svn-r303] 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.
1998-03-04 11:20:23 -05:00
Albert Cheng
7e8e3eec42 [svn-r230] Changes were actually made by Robb. I am commiting them for him
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.
1998-02-09 14:37:40 -05:00
Robb Matzke
b227b38853 [svn-r204] 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.
1998-01-30 14:25:44 -05:00
Robb Matzke
28e23330df [svn-r197] 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.
1998-01-29 14:36:16 -05:00
Robb Matzke
7aa4f57811 [svn-r178] 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.
1998-01-28 00:47:19 -05:00
Robb Matzke
5c6a3af396 [svn-r170] 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.
1998-01-26 15:56:18 -05:00
Robb Matzke
6ee36e2b3a [svn-r168] 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.
1998-01-23 14:53:37 -05:00
Robb Matzke
a0ee2c57e9 [svn-r164] 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'.
1998-01-22 11:41:32 -05:00
Quincey Koziol
c2c94c3187 [svn-r157] Reformatted code with indent... 1998-01-16 17:23:43 -05:00
Robb Matzke
d70c7d7a64 [svn-r153] 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.
1998-01-14 14:42:59 -05:00
Robb Matzke
1063eb8a1e [svn-r152] 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.
1998-01-09 12:49:23 -05:00
Robb Matzke
e615fc7a98 [svn-r146] ./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.
1997-12-16 16:08:26 -05:00