Commit Graph

230 Commits

Author SHA1 Message Date
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
1b3a1f8014 [svn-r437] Changes since 19980612
----------------------

./src/H5Tbit.c
./src/H5Tpkg.h
	Fixed a bug in H5T_bit_copy(). Added H5T_bit_get_d() and
	H5T_bit_set_d() which treat portions of a bit vector as an
	unsigned integer. Added H5T_bit_inc() that increments part of
	a bit vector and returns an indication of overflow.

./src/H5Tconv.c
./src/H5Tpkg.h
./test/dtypes.c
	Added a slow general floating point conversion which works so
	far on Intel, MIPS, and DEC but the test is turned off because
	a cast from double to float will cause a SIGFPE on some
	systems if an overflow occurs.

	Added fast hardware conversions between native floating point
	types.  This function is also subject to the SIGFPE problem.

./src/H5detect.c
	Removed the exponent bias adjustment when the significand
	isn't normalized.  This is now handled in the conversion
	functions instead.

./src/H5T.c
	Register new conversion functions.

	Plugged a memory leak in the library termination code.

./RELEASE
	Added a list of major changes since the first alpha.

./src/H5.c
./src/H5private.h
./src/H5A.c
./src/H5AC.c
./src/H5D.c
./src/H5Ffamily.c
./src/H5Fistore.c
./src/H5G.c
./src/H5Gprivate.h
./src/H5HG.c
./src/H5O.c
./src/H5T.c
./src/H5Tbit.c
./src/H5Tconv.c
	Fixed various compiler warnings on Irix64.

./src/H5MM.c
	Added PABLO_MASK to this file.

./test/chunk.c
	Removed a warning about memcpy().
1998-06-30 16:30:28 -05:00
Robb Matzke
4bf629adc9 [svn-r435] ./INSTALL
./INSTALL_MAINT
./README
./RELEASE
	Partially updated for second alpha, but haven't updated
	version numbers yet.

./src/H5.c
./src/H5A.c
./src/H5AC.c
./src/H5B.c
./src/H5D.c
./src/H5F.c
./src/H5Fcore.c
./src/H5Ffamily.c
./src/H5Fistore.c
./src/H5Fmpio.c
./src/H5Fsec2.c
./src/H5Fsplit.c
./src/H5Fstdio.c
./src/H5G.c
./src/H5Gnode.c
./src/H5HG.c
./src/H5HL.c
./src/H5I.c
./src/H5MM.c
./src/H5MMprivate.h
./src/H5O.c
./src/H5Oattr.c
./src/H5Ocomp.c
./src/H5Ocont.c
./src/H5Odtype.c
./src/H5Oefl.c
./src/H5Olayout.c
./src/H5Oname.c
./src/H5Osdspace.c
./src/H5Oshared.c
./src/H5Ostab.c
./src/H5P.c
./src/H5S.c
./src/H5T.c
./src/H5Tconv.c
./src/H5detect.c
./test/hyperslab.c
./test/istore.c
	Changed memory allocation functions so they fail instead of
	dumping core.  The `x' was removed from the name to remind us
	of that: H5MM_xmalloc() -> H5MM_malloc(), etc.

	H5MM_calloc() takes one argument like H5MM_malloc() instead of
	two like calloc() because we almost always called it with `1'
	for one of the arguments anyway.  The only difference between
	the two functions is that H5MM_calloc() returns memory which
	is initialized to zero.

./src/H5Gent.c
./src/H5Gprivate.h
	Removed H5G_ent_calloc() since it wasn't used.

./src/H5Fistore.c
	Fixed a bug found by Albert.  Thanks, Albert!  This fix
	combined with the changes to memory allocation prevent the
	library from failing an assertion if the application uses an
	unreasonable size for chunks (like Alberts 10000x10000x4).

./src/H5MF.c
./src/H5MFprivate.h
	Changed H5MF_free() to H5MF_xfree() since calling it with an
	undefined address is allowed.
1998-06-22 22:41:22 -05:00
Robb Matzke
22538a0c79 [svn-r429] Changes since 19980616
----------------------

./html/tracing.html	NEW
	This entire update is to make it possible for the library to
	print the name, arguments, and return value of every API call
	without requiring any extra work from developers or app
	programmers.  This file describes how this all works.

./configure.in
	Added the `--enable-tracing' switch.  If you use it then the
	library will include code to print API function names,
	argument names and values, and function return values.
	However, you must then turn on the tracing by setting the
	HDF5_TRACE environment variable to a file descriptor number.
	The default is `--disable-tracing' since enabling it causes a
	slight increase in library size and a slowdown resulting from
	an extra function call for each API function call (I couldn't
	even measure the slowdown :-)

./bin/trace		NEW
	A perl script that synchronizes the H5TRACE() macro calls in
	the *.c files with the function return type and formal
	argument names and types.  If you use GNU make and gcc then
	this will be done automatically, otherwise just invoke this
	script with the names of one or more .c files.  You could do
	it by hand to, but encoding argument types is a little tricky
	at first.

./config/commence.in
	Added the $(TRACE) macro, which defaults to the no-op.
	Added -D_POSIX_SOURCE to the compiler command line.

./src/Makefile.in
	Override the default for $(TRACE).

./config/depend.in
	Automatically calls $(TRACE) to synchronize the H5TRACE()
	macros in any source file that changed.  As with makefile
	dependencies, one way to force synchronization of all files is
	to remove the `.depend' file.

./MANIFEST
	Added new files.

./src/H5Eprivate.h
	Modified HRETURN_ERROR() and HRETURN() for tracing.

./src/H5.c
./src/H5private.h
	This is where the real tracing work really happens, in
	H5_trace().

./src/H5A.c
./src/H5D.c
./src/H5G.c
./src/H5P.c
./src/H5S.c
./src/H5Z.c
	Added H5TRACE() calls to all API functions.  You don't really
	need these changes if you don't want to merge your stuff
	because they can be generated automatically by going to the
	hdf5/src directory and saying ../bin/trace *.c

./src/H5T.c
	Added H5TRACE() calls.  Other stuff below.

./src/H5E.c
./src/H5Epublic.h
	Added H5TRACE() calls.  Created a type H5E_auto_t for the
	`func' argument of H5Eset_auto() and H5Eget_auto() to make
	those arguments easier to parse for tracing. It should also
	make it clearer for users that don't know how to read
	complicated ANSI data types.

./src/H5F.c
	Added H5TRACE() calls.  Changed a couple `uintn' argument
	types in API functions to `unsigned int' since `uintn' part of
	the API.  Changed a few "can't" and "cant" error messages to
	"unable to".

./src/H5Ipublic.h
	Removed H5_DIRECTORY from the H5I_group_t enum.  It wasn't
	used anywhere.

./src/H5Tconv.c
	Removed an unused label.

./src/H5Fistore.c
./src/H5Oattr.c
./src/H5Odtype.c
./src/H5T.c
./test/dsets.c
./test/dtypes.c
	Fixed a warning about a variable possibly used before it's
	initialized.  Added __unused__ to turn off some unused
	argument warnings that pop up when debugging is turned off and
	optimizations are turned on.
1998-06-17 15:46:29 -05:00
Robb Matzke
53916f4e59 [svn-r428] Changes since 19980612
----------------------

./src/H5Tbit.c
./MANIFEST
./test/Makefile.in
./test/bittests.c	NEW
	Finished the bit vector operations and added test cases.

./src/H5Tconv.c
./test/dtypes.c
	Finished integer->integer general conversion and added test
	cases. Overflows and underflows are handled by substituting
	the closest possible value.  Examples:

	   (unsigned)0xffff -> (unsigned)  0xff
	   (  signed)0xffff -> (unsigned)0x0000
	   (unsigned)0xffff -> (  signed)0x7fff
	   (  signed)0x7fff -> (  signed)  0x7f
	   (  signed)0xbfff -> (  signed)  0xbf
	   (  signed)0x8000 -> (  signed)  0x80

./src/H5private.h
	Added definitions for MIN and MAX that take 3 or 4 arguments:
	MIN3(), MIN4(), MAX3(), MAX4(). Also added MIN2() and MAX2()
	as aliases for MIN() and MAX().

./test/tattr.c
	Removed some redundant `&' operators.

./configure.in
./src/H5config.h.in	[regenerated]
./src/H5.c
	Fixed warnings on DEC where long double is the same as
	double.
1998-06-16 14:38:26 -05:00
Robb Matzke
d392756a1b [svn-r400] Changes since 19980513
----------------------

./html/Datasets.html
	Fixed a couple of typos.

./src/H5.c
	Added the `Z' modifier to HDfprintf() for `size_t' sizes.  Use
	it like this:
	   HDfprintf(stderr,"size is %Zd\n", (size_t)x);

./src/H5AC.c
./src/H5F.c
./src/H5Fprivate.h
	The maximum number of meta data objects that can be cached can
	be set from the application (but the library might not honor
	it every time; it's a hint).

./src/H5D.c
	Changed a warning message so it's not so alarming.

./src/H5Fistore.c
	Chunks can be cached.

./src/H5O.c
./src/H5Oprivate.h
	Added H5O_copy() and H5O_free() to copy and free messages.

./src/H5P.c
./src/H5Ppublic.h
	Added H5Pset_cache() and H5Pget_cache() and changed lots of
	"template" to "property list".

./src/H5Z.c
./src/H5Zpublic.h
	Miscellaneous little things to clean up.  Mostly just removed
	H5Z_MAXVAL and added H5Z_USERDEF_MIN and H5Z_USERDEF_MAX.

./MANIFEST
./test/Makefile.in
./test/chunk.c		[NEW]
	Added a performance test for chunk caching.  It looks at the
	amount of I/O instead of timing because timing is partly
	dependent on the chunk size and I wanted a measurement that
	was a function of only the cache size.  Run `chunk' with no
	arguments and then say `gnuplot x-gnuplot' to see the plots
	(press return between plots). Postscript files are created for
	each plot.

./test/big.c
./test/cmpd_dset.c
./test/extend.c
./test/external.c
./test/gheap.c
	Added H5F_ACC_DEBUG so we can see cache performance
	statistics.
1998-05-22 10:05:53 -05:00
Robb Matzke
34f5a59b9e [svn-r398] Changes since 19980501
----------------------

./src/H5Bprivate.h
./src/H5F.c
./src/H5Ffamily.c
./src/H5Fprivate.h
./src/H5Gpkg.h
./src/H5MF.c
./src/H5P.c
./src/H5Ppublic.h
./test/big.c
./html/Big.html
./html/Files.html
	Family members can now be any size >1kB.  Got rid of some
	places where we were reading a property list after it was
	closed.

./MANIFEST
./src/Makefile.in
./src/h5repart.c
	A program to repartition file families.  The source and/or
	destination may be files or file families.  Examples:

	   testhdf5 -c -o stab
	   h5repart -m 1m   tstab2.h5 x%05d.h5
	   h5repart -m 100k x%05d.h5  y%05d.h5
	   h5repart         y%05d.h5  z.h5
	   diff tstab2.h5 z.h5

./src/h5ls.c
	Added a usage message, replaced assertions with error
	messages.

./config/linux
	Made a warning message more obvious.  Added better
	optimization flags for Pentium-Pro's.
1998-05-13 12:58:24 -05:00
Robb Matzke
4dcf59ae44 [svn-r376] ./acconfig.h
./configure.in
./config/BlankForm
./src/H5.c
	Configure tries to figure out how to print `long long' types
	and then defines PRINTF_LL_WIDTH to be `ll' or `q' or
	something.  It does this by running little sprintf() programs
	with various formats until it gets one that works.  If this
	causes problems when cross compiling (like with parallel
	machines) then you may add the following to the appropriate
	config file:

	       hdf5_cv_printf_ll=${hdf5_cv_printf_ll='ll'}	or
	       hdf5_cv_printf_ll=${hdf5_cv_printf_ll='q'}	or
	       hdf5_cv_printf_ll=${hdf5_cv_printf_ll='l'}


./config/intel-osf1
./config/irix5.3
	Updated these config files to match the others.  This allows
	the `--enable-production' configure flag to work properly.
1998-04-24 16:26:32 -05:00
Quincey Koziol
f4c99bf7d5 [svn-r370] Fixed a couple of compiler warnings. 1998-04-24 09:25:17 -05:00
Robb Matzke
1c1679b2d4 [svn-r356] Changes since 19980421
----------------------

./bin/release
./src/H5.c
./src/H5private.h
./src/H5public.h
./src/H5Fpublic.h
        Changed the version number constants to names that begin with
        H5_VERS_ and added macros that check that the version numbers
        in the include files match the version number of the library.

./MANIFEST
./html/H5.user.html
./html/Version.html    [NEW]
./html/version.obj     [NEW]
./html/version.gif     [NEW]
        Documented version numbers and the macros, constants, and
        functions associated with them.

./bin/versinc
        A perl script that increments the minor version number and
        sets the patch level back to zero.  This is intended to be
        invoked from the top of the source tree by a cvs commit
        anywhere in the source tree. Quincey?

./src/H5O.c
./src/H5Oprivate.h
        Added H5O_count() to count the number of object header
        messages of a particular type.  Quincey needs this for the
        attribute package.

./test/dsets.c
        Fixed warnings. Enabled the small strip-mine buffer test.

./config/linux
        Added optimizations for the Pentium-Pro for production mode.
1998-04-22 12:26:01 -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
861d43c98a [svn-r341] Changes since 19980409
----------------------

./INSTALL
./INSTALL_MAINT
	Updated installation instructions.

./html/Big.html		     [NEW]
	A guide to using big datasets on small machines.

./MANIFEST
	Added Big.html and INSTALL.ascired.

./html/Datasets.html
./html/Dataspaces.html
./html/Datatypes.html
./html/Files.html
./html/H5.api.html
./html/H5.intro.html
./html/H5.sample_code.html
./html/H5.user.html
	Updated documentation by changing lots of `size_t' arguments
	to `hsize_t'.  Added line numbers to some examples.

./html/H5.intro.html
	Perhaps someone want's to volunteer to make this file
	human-readable?
1998-04-10 13:30:19 -05:00
Robb Matzke
c96611f8b5 [svn-r339] Changes since 19980408
----------------------

./src/H5Osdspace.c
./html/H5.format.html
	In the past we were allowed to have >2GB files on a 32-bit
	machine as long as no dataset within the file was larger than
	4GB (or whatever sizeof(size_t) is).  That's been fixed now.
	All dataset size calculations are done with `hsize_t' which is
	normally defined as `unsigned long long'.

./src/H5F.c
./src/H5Ffamily.c
./src/H5Fprivate.h
./src/H5P.c
./src/H5Ppublic.h
	The file family member size can now be set/queried.  The
	default is still 64MB, but it can be set to 1GB by saying:

	    H5Pset_family (plist, 30, H5P_DEFAULT);

	When opening an existing file family the specified
	bits-per-member is ignored and the first member of the family
	determines the bits-per-member, which can be retrieved with
	H5Pget_family().

./acconfig.h
./configure.in
./src/H5config.h
./src/H5public.h
	Added `--disable-hsizet' so that those with old GCC compilers
	(<2.8.1) can still compile the code.


./src/H5.c
./src/H5private.h
	Added HDfprintf() which works just like fprintf() except you
	can give `H' as a size modifier for the integer conversions
	and supply an `hsize_t' or `hssize_t' argument without casting
	it.  For instance:

	    hsize_t npoints = H5Sget_npoints(space);
	    HDfprintf(stdout,"Dataset has %Hd (%#018Hx) points\n",
		      npoints, npoints);

	You can now give `%a' as a format to print an address, but all
	formating flags are ignored and it causes the return value of
	HDfprintf() to not include the characters in the address (but
	who uses the return value anyway :-). Example:

	    H5G_t *grp;
	    HDfprintf(stdout, "Group object header at %a\n",
	              &(grp->ent.header));

	Added HDstrtoll() which works exactly like [HD]strtol() except
	the result is an int64.

./src/debug.c
	Large addresses can now be entered from the command-line.  Use
	either decimal, octal (leading `0') or hexadecimal (leading
	`0x') when giving the address.

./src/h5ls.c
	The printf format for dataset dimensions was changed to `%Hu'
	to support large datasets.

./test/big.c		[NEW]
	A test for big datasets on 32-bit machines.  This test is not
	run by default.  Don't try to run it on an nfs-mounted file
	system or other file system that doesn't support holes because
	it creates two 32GB datasets of all zero.
1998-04-09 15:22:11 -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
Robb Matzke
808a5e6be1 [svn-r302] Changes since 19980227
----------------------

./html/Errors.html		[NEW]
./html/H5.user.html
./MANIFEST
	Documents the new error handling interface and gives examples.

./src/H5.c
./src/H5private.h
./src/H5Apublic.h
./src/H5E.c
./src/H5Eprivate.h
./src/H5Epublic.h
	Rewrote error handling. Got rid of `push' overloading and
	added a few API functions.  The error stack is statically
	allocated and not entered into H5A, simplifying error handling
	within the error handler. Rudimentary support for threads.
	Changed the names of some errors.

./src/H5G.c
./src/H5Gnode.c
./src/H5H.c
./src/H5O.c
./src/H5T.c
	Changed H5ECLEAR to H5E_clear().

./src/Makefile.in
	Alphabetized source list.

./test/dsets.c
	Turned off error reporting around functions that are expected
	to fail.  Error messages are sent to stdout.

./test/testhdf5.c
./test/testhdf5.h
	Turned off automatic error reporting since this file mostly
	calls internal functions and does its own error reporting.
1998-02-28 13:19:05 -05:00
Robert Kim Yates
6cbd672251 [svn-r212] Fixed H5F_mpio_read's handling of number of bytes read,
and removed MPI_Init and MPI_Finalize from H5.c
(these should be done in the user program).
1998-02-03 10:29:05 -05:00
Robert Kim Yates
a6f59faa9d [svn-r211] Added hooks for MPI-IO low-level I/O module. 1998-02-02 11:26:49 -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
d4a3224c0f [svn-r193] Changes since 19980128
----------------------

./MANIFEST
	Added new config files.

./src/H5private.h
	Changed FUNC_ENTER() so it calls H5Eclear() for all API
	functions but not for any private functions.  It also prints
	the names of all API functions on file 55 (just for the
	prototype) so we can get a list of API functions called with
	the Bourne shell commands like:

		./testhdf5 55>api_list		or
		./testhdf5 55>&1 1>/dev/null 2>&1 | less

	Otherwise the names are silently discarded.

./src/H5.c
./src/H5C.c
./src/H5D.c
./src/H5F.c
./src/H5G.c
./src/H5M.c
./src/H5P.c
./src/H5T.c
	Removed `H5ECLEAR' from lots of places in the source code.

./src/H5E.c
./src/H5Eprivate.h
	Recursion is a problem here, so to disable a call to
	H5Eclear() from FUNC_ENTER just define a local variable like
	this before you call FUNC_ENTER:

	     const H5E_clearable_g = FALSE;

	Unfortunately this results in a warning: declaration of
	`H5E_clearable_g' shadows global declaration.  Good thing it's
	only used in two places.
1998-01-28 16:43:08 -05:00
Robb Matzke
dec0c95436 [svn-r165] Changes since 19980122
----------------------

./src/H5.c
./src/H5B.c
./src/H5Bprivate.h
	Changed `new' to something else in 6 places for Fabio.

./src/H5T.c
./src/H5Tconv.c
	Beginning to work on compound data type conversion. Don't look
	yet :-)
1998-01-22 14:57:48 -05:00
Quincey Koziol
c2c94c3187 [svn-r157] Reformatted code with indent... 1998-01-16 17:23:43 -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
Robb Matzke
faca6fbaa8 [svn-r145] ./src/H5Osdtyp.c -> H5Odtype.c
./src/H5Osdim.c		-> H5Osdspace.c
./src/Makefile.in
	Changed the names of these files to better reflect what they
	actually do.

./src/H5.c
./src/H5AC.c
./src/H5B.c
./src/H5C.c
./src/H5D.c
./src/H5E.c
./src/H5Eprivate.h
./src/H5Epublic.h
./src/H5F.c
./src/H5Fcore.c
./src/H5Ffamily.c
./src/H5Fistore.c
./src/H5Flow.c
./src/H5Fsec2.c
./src/H5Fsplit.c
./src/H5Fstdio.c
./src/H5G.c
./src/H5Gent.c
./src/H5Gnode.c
./src/H5Gshad.c
./src/H5Gstab.c
./src/H5H.c
./src/H5M.c
./src/H5MF.c
./src/H5O.c
./src/H5Osdtyp.c (./src/H5Odtype.c)
./src/H5P.c
./src/H5T.c
./src/H5detect.c
./src/H5private.h
	Added an argument to the HRETURN_ERROR(), HGOTO_ERROR(), and
	HERROR() macros which is a string error message.  This allows
	us to give extra information which can't be represented by the
	major and minor error numbers.  This information was
	previously in comments just before or after the macro call.
	The string isn't currently used, but I'm planning to change
	the test files so they print an error trace when something
	fails.  This should make debugging a little faster since it's
	often obvious what's wrong if we could just see the error
	stack without even having to start a debugger.
1997-12-11 16:35:46 -05:00
Robb Matzke
082dd8cda9 [svn-r139] ./src/*.[ch]
Removed the interface initialization argument from
	FUNC_ENTER() and made it a locally-defined preprocessor
	symbol, INTERFACE_INIT.

	Changed `offset' to `address' and `length' to `size' in
	documentation so it's more consistent.  `Offset' still appears
	occassionally when it refers to a byte offset within some
	other data structure.

	Moved interface termination function prototypes from public
	header files to .c files and made them static.

./src/H5.c
./src/H5public.h
	Added H5init() because it's possible that the predefined data
	types are not initialized.  This happens only if the first
	call to the hdf5 library passes a predefined data type symbol
	as an argument.  There should be some way to fix this...

./src/H5A.c
./src/H5Aprivate.h
./src/H5Apublic.h
	The free_func returns SUCCEED or FAIL, although the return
	value is ignored by H5A.  This is so we can use the various
	H5*_close() functions to free things.

	H5Ainc_ref() and H5Adec_ref() are no longer public.  Many of
	the other atom functions should also be made private, but I'll
	save that for later...

	Added additional template groups called H5_TEMPLATE_0 through
	H5_TEMPLATE_7 that are used by the various template
	subclasses.

	Increased the number of bits used for atom groups to prevent
	negative atoms.

./src/H5AC.c
./src/H5ACprivate.h
	Changed H5AC_new() to H5AC_create() to make names more consistent.

./src/H5B.c
./src/H5Bprivate.h
	Changed H5B_new() to H5B_create() to make names more consistent.

./src/H5C.c
./src/H5Cprivate.h
./src/H5Cpublic.h
	Now supports multiple subclasses of templates, although it's
	done with big switch statements.  The default values for
	templates are defined in the source file to which that
	template belongs.  This got rid of lots of needless
	preprocessor constants.

	Added H5Ccreate() to create a new template.  Changed
	H5C_release() to H5Cclose() to make the naming more
	consistent.

./src/H5D.c
./src/H5Dprivate.h
./src/H5Dpublic.h
	Enhanced to use the new dataset interface, and uses the enhanced
	data type and data space interfaces, which haven't been
	completely implemented.  The dataset interface doesn't handle
	non-contiguous storage, compression, or data type and space
	conversions yet.

./src/H5F.c
./src/H5Fprivate.h
./src/H5Fpublic.h
	Removed H5Fflush() since just calls H5F_flush(), which doesn't
	do what the user would probably think it does, namely, flush
	everything.  It only flushes those things sitting in the H5AC
	cache and the boot block.

	Changed the `file_create_parms' field of H5F_low_t to just
	`create_parms' since the `file' part is obvious.

./src/H5Fistore.c
	Added some support for external files.  Mostly just in the
	file format and not supported much by the library yet. I need
	to finish some dataset functions first.

	Changed H5F_istore_new() to H5F_istore_create() to make names
	more uniform across packages.

./src/H5Flow.c
	Flushing a file causes the file to be physically extended to
	the logical eof.  This prevents H5F_open() from thinking a
	file has been truncated.  Most of the time the file will
	already be that large, and when it isn't Unix will often just
	allocate the final block anyway.

./src/H5G.c
./src/H5Gent.c
./src/H5Gnode.c
./src/H5Gpkg.h
./src/H5Gprivate.h
./src/H5Gstab.c
	Removed H5G_basename()

	Removed (temporarily) data type information from symbol table
	entries and renamed H5G_CACHED_SDATA to H5G_CACHED_SDSPACE to
	reflect that it's a simple data space and has nothing to do
	with raw data.

	Changed H5G_node_new() to H5G_node_create() and H5G_stab_new()
	to H5G_stab_create() to make names more uniform across
	packages.

	Fixed an undefined address bug that happens when H5G_node_debug()
	program doesn't pass enough info to H5G_node_load().

./src/H5H.c
./src/H5Hprivate.h
	Changed H5H_new() to H5H_create() to make the names more
	uniform across packages.

./src/H5M.c
./src/H5Mprivate.h
./src/H5Mpublic.h
	Nulled all the create functions.  Most of the other callbacks
	are to public functions.  Removed H5Mcreate().

	Changed hobjtype_t to group_t since it has to be the same
	thing anyway.

./src/H5O.c
./src/H5Oprivate.h
./src/H5Osdim.c
./src/H5Osdtyp.c
	Changed H5O_SIM_DIM to H5O_SDSPACE (simple data space) since
	`simple data space' is its official name, not `simple
	dimensions'.  Will eventually add H5O_CDSPACE for comples data
	spaces. Changed _sim_dim_ to _dspace_.

	Replaced H5O_SIM_DTYPE and the compound data type messages
	with a single H5O_DTYPE message. Changed _sim_dtype_ to _dtype_.

	Changed H5O_STD_STORE to H5O_CSTORE (contiguous storage) since
	contiguous storage is not necessarily standard.  Changed
	_std_store_ to _cstore_ in H5Ocstore.c

	Added the H5O_EFL (external file list) message.

	Changed H5O_new() to H5O_create() to make names more uniform
	across packages.

./src/H5Oefl.c		NEW
	External file list message for specifying which non-hdf5 files
	contain raw data for a dataset.

./src/H5P.c
./src/H5Pprivate.h
./src/H5Ppublic.h
	Renamed and moved data structures to make the names conform to
	our naming scheme.

./src/H5T.c
./src/H5Tprivate.h
./src/H5Tpublic.h
./src/H5Tpkg.h		NEW
	Data structures redesigned to be more flexible.  The interface
	was redesigned to make it more regular and to make some names
	more uniform across packages.

./src/H5detect.c
	Output was changed to produce a file that conforms to the hdf5
	coding standard.

./src/Makefile.in
	Generates H5Tinit.c by running H5detect.

./src/debug.c
	Moved command argument processing.
1997-12-10 17:41:07 -05:00
Quincey Koziol
ef8604f348 [svn-r96] Added "atexit" routines to each interface to free buffers allocated during
runtime.  Isolated but can't figure out how to fix bug reported with purify.
1997-09-18 16:06:11 -05:00
Robb Matzke
9d41d3679e [svn-r61] ./src/H5.c
Changed atexit() to HDatexit().

./src/H5AC.c
        Changed qsort() to HDqsort().

./src/H5B.c
        Changed memcmp() to HDmemcmp().

./src/H5E.c
./src/H5M.c
        Added parentheses around indirect function calls so that
        checkposix doesn't complain and to advertise that it's an
        indirect function call.

./src/H5F.c
./src/H5G.c
        Added errors field to each function prologue to test the
        script mentioned above.

./src/H5H.c
        Changed fputc() to HDfputc().

./src/H5MM.c
./src/H5MMprivate.h
        The argument for H5MM_xfree() is a pointer to a constant even
        though the argument to free() isn't.  This reduces the number
        of warnings in other parts of the code but creates a new
        warning in this file.

./src/H5O.c
        Plugged a few memory leaks that happen during error handling.

./src/H5Oname.c
./src/debug.c
        Added `HD' to the beginning of some posix functions.
1997-09-02 10:38:26 -05:00
Robb Matzke
bc2b9d9dea [svn-r35] ./src/H5ACproto.h
./src/H5Aproto.h
./src/H5Bproto.h
./src/H5Cproto.h
./src/H5Dproto.h
./src/H5Eproto.h
./src/H5Fproto.h
./src/H5Gproto.h
./src/H5Hproto.h
./src/H5MFproto.h
./src/H5MMproto.h
./src/H5Mproto.h
./src/H5Oproto.h
./src/H5Pproto.h
./src/H5Tproto.h
./src/H5proto.h
	These files were removed from the library and renamed by
	changing `proto' to `public'.

./src/H5ACpublic.h	NEW
./src/H5Apublic.h	NEW
./src/H5Bpublic.h	NEW
./src/H5Cpublic.h	NEW
./src/H5Dpublic.h	NEW
./src/H5Epublic.h	NEW
./src/H5Fpublic.h	NEW
./src/H5Gpublic.h	NEW
./src/H5Hpublic.h	NEW
./src/H5MFpublic.h	NEW
./src/H5MMpublic.h	NEW
./src/H5Mpublic.h	NEW
./src/H5Opublic.h	NEW
./src/H5Ppublic.h	NEW
./src/H5Tpublic.h	NEW
./src/H5public.h	NEW
	These files came from the old H5*proto.h files.

./src/Makefile
./src/Makefile.in	NEW
	Removed.  Now generated automatically from Makefile.in by
	running configure.

./src/h5oplat.h
./src/hdf5fort.h
./src/hdf5gen.h
./src/hdf5glob.h
./src/hdf5lims.h
./src/hdf5meta.h
./src/hdf5pabl.h
./src/hdf5plat.h
./src/hdf5port.h
./src/hdf5type.h
	Removed.  The contents of these files has moved to other
	header files or source files depending on it's nature.

./src/H5.c
./src/H5A.c
./src/H5B.c
./src/H5C.c
./src/H5D.c
./src/H5E.c
./src/H5F.c
./src/H5G.c
./src/H5H.c
./src/H5M.c
./src/H5MF.c
./src/H5MM.c
./src/H5O.c
./src/H5Ocont.c
./src/H5Oname.c
./src/H5Onull.c
./src/H5Ostab.c
./src/H5P.c
./src/H5T.c
	Fixed include files.  Moved some things from old headers into
	these files.

./src/H5ACprivate.h
./src/H5Aprivate.h
./src/H5Bprivate.h
./src/H5Cprivate.h
./src/H5Dprivate.h
./src/H5Eprivate.h
./src/H5Fprivate.h
./src/H5Gprivate.h
./src/H5Hprivate.h
./src/H5MFprivate.h
./src/H5MMprivate.h
./src/H5Mprivate.h
./src/H5Oprivate.h
./src/H5Pprivate.h
./src/H5Tprivate.h
./src/H5private.h
./src/debug.c
	Fixed include files.

./src/hdf5.h
	This is now the top-level *PUBLIC* include file.  It should
	never appear in the library *.c files.
1997-08-15 11:51:34 -05:00
Robb Matzke
e251f45b87 [svn-r13] ./src/H5.c
Added an `_g' to the end of library_initialize,
	thread_initialize, and interface_initialize to abide by the
	naming convention.  Removed setting of these variables from
	the various initialization functions since it happens in the
	FUNC_ENTER() macro now.

	Defined PABLO_MASK.

	Removed `CONSTR(FUNC,"function_name")' everywhere since it's
	handled by the various FUNC_ENTER macros.

	Fixed calls to FUNC_ENTER(), FUNC_LEAVE(), and HRETURN_ERROR()
	so they don't need so many arguments.

	Changed PABLO_TRACE_ON() to FUNC_ENTER() since there is no
	longer any danger of infinite recursion.

	H5_term_library() now returns SUCCEED/FAIL and uses
	FUNC_ENTER/FUNC_EXIT macros.

./src/H5A.c
	Changes similar to H5.c.

	Most (all?) of the functions called PABLO_TRACE_ON() and the
	package doesn't have an interface initializer that I can see,
	so the second argument to FUNC_ENTER() is always NULL.

	H5A_release_atom_node() returns SUCCEED/FAIL.

./src/H5AC.c
	Added error handling.

	Arguments for internal functions are checked with assert().

./src/H5C.c
	Changes similar to H5.c

	Fixed the FUNC variable in H5C_get_default_atom() since it was
	initialized to the wrong name.

./src/H5D.c
	Changes similar to H5.c

./src/H5E.c
	Changes similar to H5.c

	Changed the pablo mask from H5_mask to H5E_mask in
	H5E_init_interface().

	H5Eclear(), H5E_store(), and H5Epush() return SUCCEED/FAIL.
	Changed PABLO_TRACE_OFF() calls to FUNC_LEAVE() calls in the
	same functions.

./src/H5Eprivate.h
./src/H5Eproto.h
	Added additional error symbols for the H5AC package.

	Changed prototypes for H5Eclear() and H5Epush().

	Changes to HRETURN_ERROR() and HGOTO_ERROR() to reduce the
	number of arguments.

./src/H5F.c
	Changes similr to H5.c

	Changed the pablo mask from H5_mask to H5F_mask for the
	FUNC_LEAVE() call of H5F_init_interface().

	Added FUNC_ENTER() and FUNC_LEAVE() calls to some functions
	that didn't have them.

./src/H5M.c
	Changes similar to H5.c

	Fixed the FUNC variable in H5M_init_interface() since it was
	initialized to the wrong name.

./src/H5P.c
	Changes similar to H5.c

./src/H5T.c
	Changes similar to H5.c

./src/hdf5gen.c
	Changes to FUNC_ENTER() and FUNC_EXIT() to reduce the number
	of arguments.  FUNC_ENTER() is now safe from infinite
	recursion since it updates the library_initialize_g,
	thread_initialize_g, or interface_initialize_g variables
	before calling the appropriate initialize function.
1997-08-04 21:07:08 -05:00
Quincey Koziol
03997b1f36 [svn-r2] Oops... 1997-07-30 16:17:56 -05:00