Commit Graph

6681 Commits

Author SHA1 Message Date
Albert Cheng
bc62117924 [svn-r433] Added feature to print the maximum dimension sizes of datasets.
Platform tested: O2K.
1998-06-19 10:26:36 -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
Albert Cheng
d6f7fda058 [svn-r431] H5Sget_dims:
Added maxdims agrument to H5Sget_dims.  Also removed the check
of dims since H5Sget_dims can still return ndims even if both
*dims and *maxdims are NULLs.
1998-06-18 11:12:52 -05:00
Robb Matzke
dd23059807 [svn-r430] Changes since 19980617
----------------------

./src/H5T.c
	Fixed a potential division by zero error.

./src/H5Fistore.c
	Fixed an assertion failure that I accidently introduced with
	the previous changes.
1998-06-17 16:15:32 -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
Robert Kim Yates
1460b000d8 [svn-r426] Fixed processing of debug string gotten from MPI_Info_get in H5F_mpio_open. 1998-06-12 17:47:21 -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
Robert Kim Yates
f6ea1f45da [svn-r423] Added H5F_MPIO_DEBUG_KEY so application program can turn on debug flags
of H5Fmpio via the MPI_Info parameter to H5Fcreate and H5Fopen.
1998-06-11 17:01:12 -05:00
Robert Kim Yates
7f0e87fe2f [svn-r422] Added runtime debug flags for H5Fmpio routines,
which can be set by passing to H5Fcreate and H5Fopen
a string of characters (one character for each flag to turn on)
as the value of MPI_Info with key H5F_MPIO_DEBUG_KEY.
1998-06-11 16:57:48 -05:00
Robb Matzke
ac4c35cca5 [svn-r418] ./html/Files.html
./src/H5F.c
./src/HFcore.c
./src/H5Ffamily.c
./src/H5Flow.c
./src/H5Fmpio.c
./src/H5Fprivate.h
./src/H5Fsec2.c
./src/H5Fsplit.c
./src/H5Fstdio.c
./src/H5MF.c
./src/H5P.c
./src/H5Ppublic.h
	Added H5Pset_alignment() so that it is now possible to align
	file allocation requests on application-specified
	boundaries. Any request >= the specified threshold will begin
	on an address which is a multiple of the specified
	alignment. Defaults are one for threshold and alignment. The
	alignment is done on relative addresses, so the size of the
	user block can affect the location of the data in the file.

./src/H5D.c
./src/dsets.c
	Added a test for, and fixed the data space caching bug in
	datasets.  Extending a dataset through one handle will cause
	all other handles to the same dataset to get the new dataset
	size.

./src/H5S.c
./src/H5Sprivate.h
	Removed an unused argument from H5S_read() which duplicated
	information from the other argument.

./config/linux
	Made `--enable-parallel' the default on my system.  It used to
	be that way before but then I accidently turned it off and
	forgot about it.

./src/H5Fmpio.c
	Qualified some function arguments with __unused__.  Changed a
	couple places where NULL was returned on error for herr_t
	functions.

./src/H5P.c
	Removed unused autos from H5Pset_mpi().
1998-06-10 09:43:15 -05:00
Albert Cheng
5a1772b7ae [svn-r416] Moved H5Fmpio.c into LIB_SRC that is included in both serial
or parallel configurations.
Platform tested: O2K for both serial and parallel versions.
1998-06-10 00:56:33 -05:00
Albert Cheng
328097d60e [svn-r415] Problem:
H5Fmpio.c was not part of the serial distribution.  The auto-
    dependence configuration runs for serail distribution only, thus
    H5Fmpio.c has no dependence.  It ended up not recompiled even
    when header files it depends on are changed.
Solution:
    Changed configuration to always include this file.
    Enclosed the whole code in a big #ifdef HAVE_PARALLEL macro
    so that they would be compiled for parallel distribution only.
Platform tested:
    O2K
1998-06-10 00:20:20 -05:00
Albert Cheng
865a463b1f [svn-r414] Problem:
Parallel File open has a racing condition if file already exists.
    Some processes see file exists, then truncate it (some system
    by remove and create).  Some processes does not see the file
    exist, then attempt to just create it.  Inconsistency.
Solution:
    Instead of opening the file with COMM_SELF (which results in
    racing condition in routine that calls it), open it with the
    communicator in access_parms.  (This assumes this access call
    must be called collectively.)
Platform tested:
    O2K.
1998-06-09 23:17:18 -05:00
Albert Cheng
622f399a11 [svn-r413] Added in a minor error code H5E_MPI to indicate failures due
to MPI functions.  (Added by Kim Yates).
1998-06-09 15:09:25 -05:00
Albert Cheng
dadb964ba6 [svn-r411] Added data-transfer-mode to various function to specify which
mode to use for data transfer.  Currently, INDEPENDENT transfer
is the default mode.  Collective is supported for files opened
via the MPIO driver.  Specific changes to individual files follow.


H5D.c:
    Replaced previous kludge of passing xfer_mode via the file access_mode
    with xfer_mode function parameter all the way to the low level I/O
    drivers.

H5Dprivate.h:
    The H5D_xfer_t.xfer_mode is now used in serial and parallel modes.
    Removed the "HAVE_PARALLEL" macro condition to support it.

H5Dpublic.h:
    Added H5D_XFER_DFLT as a new value for H5D_transfer_t and removed
    the HAVE_PARALLEL condition macro to make the H5D_transfer_t
    definition available to both serial and parallel version.

H5B.c:
H5F.c:
H5Farray.c:
H5Fcore.c:
H5Ffamily.c:
H5Fistore.c:
H5Flow.c:
H5Fmpio.c:
H5Fsec2.c:
H5Fsplit.c:
H5Fstdio.c:
H5Gnode.c:
H5HG.c:
H5HL.c:
H5O.c:
H5Sprivate.h:
H5Ssimp.c:
debug.c:
    Added xfer_mode to the argument lists of the following routines to
    specify data transfer mode.  Then updated calls to these routines
    with appropriate transfer mode.  Whenever cases that collective
    mode is inappropriate (e.g. object header read-write, flush),
    H5D_XFER_DFLT is used.  The H5D_XFER_DFLT mode is currently
    acting the same as the independent mode.

    H5F_block_read
    H5F_block_write
    H5F_arr_read
    H5F_arr_write
    H5F_core_read
    H5F_core_write
    H5F_fam_read
    H5F_fam_write
    H5F_mpio_read
    H5F_mpio_write
    H5F_low_write
    H5F_low_read
    H5F_sec2_read
    H5F_sec2_write
    H5F_split_read
    H5F_split_write
    H5F_stdio_read
    H5F_stdio_write
    H5S_simp_fgath
    H5S_simp_fscat
    H5S_simp_read
    H5S_simp_write

H5Fprivate.h:
H5P.c:
    Removed access_mode field from struct H5F_access_t type.
    The access-mode was the initial design to control independent
    or collective I/O mode.  It is now supported by the data
    transfer mode.
1998-06-06 23:38:16 -05:00
Robb Matzke
1e8ebeecfc [svn-r410] Changes since 19980604
----------------------

./src/H5A.c
	Named data types can have attributes.

	Fixed bugs where the API functions didn't check the return
	values of their internal counterparts and thus the automatic
	error reporting didn't work.

	Fixed some places where the error stack wasn't cleared after a
	function returned failure.

	Data types returned by H5Aget_type() are always read-only.

	If the `attr_num' argument of H5Aiterate() is null then it
	acts like H5Giterate() instead of failing -- it begins
	processing attributes with the first one.

./src/H5D.c
	We check for allocation overruns when scalar datasets are
	stored in external files.

./src/H5O.c
	H5O_modify() will fail if the message is >=16kB.

./src/H5Oattr.c
	Split some long lines

./src/H5T.c
./src/H5Tprivate.h
	Added H5T_entof() to support attributes on named types.

./src/h5ls.c
	Prints the names of attributes and their sizes.

./test/cmpd_dset.c
./test/dsets.c
./test/dtypes.c
./test/extend.c
./test/external.c
./test/gheap.c
./test/istore.c
./test/links.c
./test/shtype.c
	If the environment variable HDF5_NOCLEANUP is defined then the
	temporary files are not removed.  The testhdf5 program still
	has the bug that it removes *.h5, clobbering test files from
	other programs... oh well.

./test/dtypes.c
	Added attribute tests.
1998-06-05 16:03:49 -05:00
Robb Matzke
a63ccc0c6b [svn-r409] Changes since 19980604
----------------------

./html/Datatypes.html
	Updated documentation for named data types and type sharing.

./src/H5Farray.c
	Split a couple long lines.

./src/H5T.c
	The H5T_copy() demotes immutable types to read-only types so
	they're cleaned up properly and memory is not leaked.

./test/dtypes.c
	Modified to be more consistent with other tests.  Removed all
	internal header files, constants, types, and functions calls
	since the API is now complete enough to test
	everything. Temporary files are now removed.
1998-06-04 22:35:31 -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
Albert Cheng
fd2f6b9f7f [svn-r404] Updated parallel code to reflect the changes in the H5F_t structure
in which access_parms is now a pointer to a struct (was a struct
before.)
1998-05-29 14:59:42 -05:00
Albert Cheng
2a4d82a6ce [svn-r401] Changes to support parallel I/O when data conversion occurs. 1998-05-22 18:05:10 -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
05eeb4d25b [svn-r384] Changes since 19980430
----------------------

./src/H5G.c
        Fixed a read/write of free memory that my home-brew purify
        doesn't catch (yet :-)
1998-05-01 16:16:06 -05:00
Robb Matzke
65bb86375c [svn-r383] ./src/H5A.c
./src/H5F.c
./src/H5G.c
./src/H5O.c
./src/H5Osdspace.c
./src/H5T.c
./src/H5Tconv.c
./src/H5Z.c
./test/big.c
./test/cmpd_dset.c
./test/dsets.c
./test/extend.c
./test/istore.c
	Now that I have a home-grown version of Purify I fixed all the
	leaks in all the test files.
1998-05-01 00:16:50 -05:00
Quincey Koziol
21ac8a7f03 [svn-r381] Added "rank=0" for a scalar variable initialization. 1998-04-29 10:57:02 -05:00
Quincey Koziol
07ca2821d2 [svn-r379] Fleshed out code for scalar dataspace support. 1998-04-28 17:32:41 -05:00
Quincey Koziol
dce73e919f [svn-r378] Merged Robb's and my memory leak fixes into one set of common fixes. 1998-04-28 11:37:17 -05:00
Robb Matzke
66071d5078 [svn-r377] Changes since 19980424
----------------------

./src/H5A.c
./src/H5T.c
	Fixed memory leaks.  More to come later but PureAtria doesn't
	make a Linux version of purify and the free version doesn't
	compile with the new SMP Linux kernels so I had to debug over
	the internet on a day that Sprint seemed to be having routing
	problems... oh well.  I got rid of most of the leaks.

./src/H5Apublic.h
	Includes H5Ipublic.h for types in the header file.

./src/H5O.c
	Comments improved for H5O_read()

./test/tattr.c
	Removed a non-ANSI empty initializer.

./test/dsets.c
	Include <string.h>

./test/istore.c
	Fixed a non-ANSI pointer conversion.
1998-04-28 08:59:08 -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
Robb Matzke
efd9b6e525 [svn-r374] ./src/H5A.c
./src/H5D.c
./src/H5Dprivate.h
./src/H5Dpkg.h		[REMOVED]
./src/H5Tpkg.h
./src/H5Tprivate.h
	Rearranged some header stuff so H5A doesn't have to include
	the package-private header files that don't belong to it.

./src/H5E.c
	Added the H5E_ATTR message to the major error struct.
1998-04-24 12:19:49 -05:00
Robert Kim Yates
f0d63c94da [svn-r372] Removed redundant write from H5F_mpio_write. 1998-04-24 12:06:13 -05:00
Quincey Koziol
f4c99bf7d5 [svn-r370] Fixed a couple of compiler warnings. 1998-04-24 09:25:17 -05:00
Robert Kim Yates
27d6096b64 [svn-r369] Changed comments in H5Pset_mpi to reflect removal of access_mode argument. 1998-04-23 19:45:03 -05:00
Albert Cheng
12545e32a1 [svn-r365] Problems:
When data is read or written out, some layers did an immediate
return(SUCCEED) if number of elements to be accessed is zero.
This caused problems when collective access is used.  In a
collective call, all processes in a communicator must call
the lowest layer of MPIO routines even if some of them happen
to access no date.

Solutions:
Eliminated all those pre-mature return if #element==0;
1998-04-23 18:03:07 -05:00
Paul Harten
647e187605 [svn-r364] Purpose:
Bug fix

Problem:
    Compiler complained about:
        "Wrong number of parameters to function (H5D.c: 1225)"
    and
        "Wrong number of parameters to function (H5D.c: 1520)"

Solution:
    In these two places, the read and write functions were missing the
    "compress" parameter, &(dataset->create_parms->compress).  I added it
    back in the same way it was used in other places.

Platform tested:
    ASCI Red machine
1998-04-23 17:41:15 -05:00
Quincey Koziol
ca0a7c164e [svn-r361] Added Attribute (H5A) code. 1998-04-23 17:24:38 -05:00
Albert Cheng
ee65e2eb8c [svn-r358] H5Fcreate did not accept EXCL creation flag correctly.
Fixed the typo where it should have checked exclusive
use of EXCL or TRUNC flags.
1998-04-23 17:02:30 -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
91a34f543d [svn-r355] Changes since 19980417
----------------------

This checkin completes the compression stuff almost two weeks ahead of
schedule.  It should now all be working and documented.

./Makefile.in
./config/commence.in
	A distclean causes the distribution makefile to be copied to
	Makefile again.

./src/H5D.c
	Opening a compressed dataset now works properly.

./src/H5P.c
./src/H5Ppublic.h
	The H5Pset_compression() and H5Pget_compression() now work as
	documented.

./src/H5T.c
	Fixed a bug that causes the library to crash sometimes if
	debugging is turned on for the `t' package.

./src/H5Z.c
	Fixed a bug where the number of bytes attributed to
	compression overruns was too low in the debugging output.

./test/dsets.c
	More compression tests: reading of uninitialized data, opening
	an existing dataset and reading it, partial I/O which isn't
	aligned on chunk boundaries, and use of application-defined
	compression methods.

./MANIFEST
	Removed ./test/dspace.c.
1998-04-21 15:32:07 -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
Albert Cheng
d6923f46e0 [svn-r351] Removed the access_mode argument from H5Pset_mpi which was later
used to open an HDF5 file with MPIO access.  The design has changed
to provide access-mode controll (independent or collective access)
as an argument in the H5D read/write calls.

Also removed the macros H5FACC_INDEPENDENT and H5FACC_COLLECTIVE.
The original thinking was to define how a file is independent or
collective access.  They are replaced by the enum H5D_transfer_t
with values of H5D_XFER_INDEPENDENT and H5D_XFER_COLLECTIVE.
These values are used in the H5Pset_xfer to setup a data transfer
property list to be used during the H5D read/write calls.

The original access_mode field in the File access structure is
still there.  It would be removed soon once the transfer control
can be passed down to the low level I/O routines.
1998-04-17 09:52:41 -05:00
Robb Matzke
b6fc6ede10 [svn-r346] Changes since 19980410
----------------------

./html/H5.format.html
./src/H5E.c
./src/H5Epublic.h
./src/H5F.c
./src/H5G.c
./src/H5Gent.c
./src/H5Gnode.c
./src/H5Gprivate.h
./src/h5ls.c
./test/Makefile.in
	Symbolic links are now supported.  The ./test/links program
	will create a `links.h5' file that demonstrates hard links,
	soft links, dangling links, and recursive links.  A symbolic
	link is a symbol table entity and doesn't have an object
	header.  It's format is described in H5.format.hml.

./src/H5G.c
./src/H5Gpublic.h
./src/h5ls.c
	Implemented H5Gstat() and H5Gget_linkval() as documented by
	Quincey.  The `H5G_type_t type' field of `H5G_stat_t' was
	changed to `int type' because H5G_type_t was already used and
	the `type' data type should be open-ended.

./src/H5Ffamily.c
	Removed an incorrect diagnostic message.

./test/big.c
	Added read/write calls to test partial I/O to big contiguous
	datasets.  With no arguments it writes to a dataset and prints
	the list of points written which should be redirected to a
	file.  With an argument (the name of a file containing the
	stdout of a run with no arguments) values are read from the
	dataset.  One would typically say `big >x && big x'.
1998-04-14 11:44:46 -05:00
Albert Cheng
3f571b6b44 [svn-r345] Updated the comment block of H5Pset_xfer. 1998-04-13 00:46:30 -05:00
Albert Cheng
33a49221fc [svn-r343] First implementation of collective access support.
H5D.c
    Changed H5D_write and H5D_read to recognize collective transfer
    requests.  Current algorithm puts the xfer-mode in the file->mpio
    structure.  Not thread safe.  Need to revise it to pass transfer
    parameter as a function parameters to the lower levels.

H5Dprivate.h
H5Dpublic.h
    Added xfer_mode to the transfer property list structure.
    Added defination of transfer modes, H5D_XFER_INDEPENDENT and
    H5D_XFER_COLLECTIVE.

H5Farray.c
    Added code to handle collective access requests.  Currently
    works for one contiguous block at a time.  Need to revise
    it with the MPIO low level calls to combine all blocks as
    one truely collective call.

H5P.c
H5Ppublic.h
    Added H5Pset_xfer and H5Pget_xfer routines that can set and get
    the transfer mode of a data transfer property list.
1998-04-12 23:31:23 -05:00
Robert Kim Yates
1a7e4bcd6c [svn-r342] H5F_mpio_write and H5F_mpio_read now do collective versions of MPI-IO
write and read based on the value of the access_parms.
1998-04-10 17:44:17 -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
c01750fa74 [svn-r338] Changes since 19980407
----------------------

./src/H5B.c
./src/H5D.c
./src/H5Dprivate.h
./src/H5Dpublic.h
./src/H5F.c
./src/H5Farray.c
./src/H5Fcore.c
./src/H5Ffamily.c
./src/H5Fistore.c
./src/H5Flow.c
./src/H5Fprivate.h
./src/H5Fpublic.h
./src/H5Fsec2.c
./src/H5Fsplit.c
./src/H5Fstdio.c
./src/H5G.c
./src/H5Gent.c
./src/H5Gnode.c
./src/H5HG.c
./src/H5HL.c
./src/H5MF.c
./src/H5MFprivate.h
./src/H5O.c
./src/H5Ocont.c
./src/H5Odtype.c
./src/H5Oefl.c
./src/H5Olayout.c
./src/H5Oname.c
./src/H5Oprivate.h
./src/H5Osdspace.c
./src/H5Oshared.c
./src/H5Ostab.c
./src/H5P.c
./src/H5Ppublic.h
./src/H5S.c
./src/H5Sprivate.h
./src/H5Spublic.h
./src/H5Ssimp.c
./src/H5Tconv.c
./src/H5Tpkg.h
./src/H5V.c
./src/H5Vprivate.h
./src/H5private.h
./src/H5public.h
./src/h5ls.c
./test/cmpd_dset.c
./test/dsets.c
./test/extend.c
./test/external.c
./test/hyperslab.c
./test/iopipe.c
./test/istore.c
./test/shtype.c
./test/tfile.c
./test/th5s.c
	Anything having to do with the size of a dataset now uses the
	types `hsize_t' and `hssize_t' which must be the same size and
	at least as large as `size_t'.  This isn't fully tested yet,
	so hsize_t and hssize_t are defined as size_t and ssize_t in
	H5public.h.  Setting them to larger values will trip up gcc
	versions less than 2.8.1 on x86 platforms.

	Documented unused function formals with `__unused__' before
	the formal name.  This also has the effect of supressing
	warning messages for gcc since it's defined to be
	`__attribute__((unused))' in the H5private.h file.

./src/debug.c
./src/h5ls.c
	If the file name contains a `%' then the file is opened as a
	file family with H5P_DEFAULT for the file member access
	property list.

./src/h5ls.c
	The group name is optional, defaulting to `/'.

./src/hdf5.h
	Added some missing public header files.
1998-04-08 16:43:02 -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