Commit Graph

25 Commits

Author SHA1 Message Date
Quincey Koziol
ae782bd7ac [svn-r1132] Dataset region references are now finished and working correctly. Also, there
are five new API functions for querying selections:
    H5Sget_select_hyper_nblocks     - retrieves the number of hyperslab blocks
                                        in current hyperslab selection for a
                                        dataspace
    H5Sget_select_elem_npoints      - retrieves the number of element points
                                        in current element selection for a
                                        dataspace
    H5Sget_select_hyper_blocklist   - retrieves a list of the hyperslab blocks
                                        in current hyperslab selection for a
                                        dataspace
    H5Sget_select_elem_pointlist    - retrieves a list of the element points
                                        in current element selection for a
                                        dataspace
    H5Sget_select_bounds            - retrieves a n-dimensional bounding box
                                        containing current selection.
1999-03-10 18:50:03 -05:00
Robb Matzke
17535fbc17 [svn-r1101] Changes since 19990219
----------------------

./config/irix64
	The old (-32) compiler is now supported by setting envrionment
	CC='cc -32'. The -64 compiler is the default or you can set
	CC='cc -64'.

./src/H5A.c
./src/H5D.c
./src/H5F.c
./src/H5Fistore.c
./src/H5Flow.c
./src/H5G.c
./src/H5I.c
./src/H5Ocomp.c
./src/H5P.c
./src/H5R.c
./src/H5RA.c
./src/H5T.c
./src/H5Tbit.c
./src/H5Tconv.c
./src/H5Z.c
./src/H5detect.c
./test/big.c
./test/cmpd_dset.c
./test/dsets.c
./test/dtypes.c
./test/enum.c
./test/mtime.c
./test/ohdr.c
./tools/h5ls.c
	Fixed lots of warnings on Irix64. Mailed a few remaining
	warnings in H5S to Quincey and a few in the dumper to
	Ruey-Hsia.
1999-02-25 10:40:27 -05:00
Robb Matzke
e2e5476fa5 [svn-r1087] Changes since 19990218
----------------------

./src/H5F.c
./src/H5private.h
./src/H5Ipublic.h
./src/H5O.c
	Fixed a rather nasty bug with file closing that caused the
	file boot block to be updated incorrectly, effectively
	truncating the file.  The bug I fixed was triggered by:

	    1. Create a file, F
	    2. Open an object, X
	    3. Close file F
	    4. Reopen file F for read/write.
	    5. Create and close some objects
	    6. Close file F
	    7. Close library (exit).

	Step 3 pended the close because object X is still open, but
	the file ID was removed from the H5I_FILE ID group. Step 4
	created a new file because it didn't see any matching file on
	the H5I_FILE ID group.  Step 5 extends the file. Step 6 writes
	the new file boot block to disk. Step 7 closes object X and
	completes the close from step 3, writing the old boot block
	information to disk.

	The new behavior is that step 3 moves the file from the
	H5I_FILE group to the H5I_FILE_CLOSING group. Step 4 searches
	both groups and finds the file. Step 5 extends the file using
	the same H5F_file_t struct as step 3. Step 6 closes the H5F_t
	struct opened in step 3 but not the H5F_file_t struct shared
	by steps 1 and 3. Step 7 closes object X which closes the
	H5F_file_t from step 1, flushing the boot block which was
	shared by all steps.

./src/H5F.c
	Added some bulletproofing to file reference counting and
	removed comments which no longer apply.  Added H5F_flush_all()
	and H5F_close_all() which apply to all files.

./src/H5A.c
./src/H5D.c
./src/H5F.c
./src/H5G.c
./src/H5I.c
./src/H5Iprivate.h
./src/H5R.c
./src/H5RA.c
./src/H5S.c
./src/H5T.c
	Added the new H5I_free_t data type to describe the function
	type to be passed as the `free_func' argument to
	H5I_init_group().

./src/H5I.c
	Bulletproofed the object removal functions. Removed comments
	which no longer apply. Changed global variable names so they
	don't violate the naming scheme. Added H5I_debug() that prints
	the contents of an ID group.  Removed H5I_inc_ref() because it
	isn't used. Reindented a couple of functions.

./src/H5.c
./src/H5G.c
./src/H5Ipublic.h
	Changed H5I_MAXID to H5I_NGROUPS to better relect the fact
	that it's the total number of valid ID groups.

./src/H5Shyper.c
	Changed hyperslab offset arrays to signed quantities to get
	rid of warnings on DEC cluster.

./src/H5Flow.c
./src/H5Fprivate.h
	Changed the objno argument of H5F_addr_pack() to be unsigned
	to get rid of warnings on DEC cluster.
1999-02-20 11:18:51 -05:00
Quincey Koziol
6d19719526 [svn-r956] Fixes for dataset region code. 1998-11-30 14:43:54 -05:00
Quincey Koziol
5d0938aba6 [svn-r947] Lots of patches to enable dataset region references. The testing for these
need to be finished and checked in still.
1998-11-24 19:29:09 -05:00
Robb Matzke
7488c6366e [svn-r936] Changes since 19981119
----------------------

./src/H5.c
./src/H5A.c
./src/H5AC.c
./src/H5B.c
./src/H5D.c
./src/H5E.c
./src/H5F.c
./src/H5Farray.c
./src/H5Fcore.c
./src/H5Ffamily.c
./src/H5Fistore.c
./src/H5Flow.c
./src/H5Fmpio.c
./src/H5Fsec2.c
./src/H5Fsplit.c
./src/H5Fstdio.c
./src/H5G.c
./src/H5Gent.c
./src/H5Gnode.c
./src/H5Gstab.c
./src/H5HG.c
./src/H5HL.c
./src/H5I.c
./src/H5Iprivate.h
./src/H5MF.c
./src/H5MM.c
./src/H5O.c
./src/H5Oattr.c
./src/H5Ocomp.c
./src/H5Ocont.c
./src/H5Odtype.c
./src/H5Oefl.c
./src/H5Ofill.c
./src/H5Olayout.c
./src/H5Omtime.c
./src/H5Oname.c
./src/H5Osdspace.c
./src/H5Oshared.c
./src/H5Ostab.c
./src/H5P.c
./src/H5R.c
./src/H5RA.c
./src/H5S.c
./src/H5Sall.c
./src/H5Shyper.c
./src/H5Smpio.c
./src/H5Snone.c
./src/H5Spoint.c
./src/H5Sselect.c
./src/H5T.c
./src/H5TB.c
./src/H5Tbit.c
./src/H5Tconv.c
./src/H5V.c
./src/H5Z.c
./src/H5detect.c
./src/H5private.h
	Most of these changes are because the `interface_initialize_g'
	variable change from hbool_t to int.  It's a one line change.

	Changed the way the library is closed so we have more control
	over the order the interfaces are shut down.  Instead of
	registering an atexit() function for every interface in some
	haphazard order we just register one: H5_term_library() which
	then calls the H5*_term_interface() functions in a
	well-defined order.

	If the library is closed and then reopened repeatedly by
	calling H5close() and H5open() in a loop we only add one copy
	of the library termination functions with atexit().

	Termination is a two-step process in order to help detect
	programming errors that would cause an infinite loop caused by
	the termination of one interface waking up some other
	previously terminated interface.  The first step terminates
	the interface and *marks it as unusable*.  After all
	interfaces are terminated then we mark them all as usable
	again.  The FUNC_ENTER() macro has been modified to return
	failure or to dump core (depending on whether NDEBUG is
	defined) if we try to call an interface while it's shutting
	down.

./src/H5.c
	The H5dont_atexit() function returns failure if it's called
	more than once or if it's called too late.  However, the error
	stack is not automatically printed on failure because the
	library might not be initialized yet

./test/chunk.c
./test/flush1.c
./test/flush2.c
./test/iopipe.c
./test/overhead.c
./test/ragged.c
	Changed the extra cast for Win32 so we do floating point
	division again -- it was just confusion about precedence and
	associativity of casting and the C coercion rules. Removed
	extra carriage returns inserted by broken operating system.

./src/H5Ffamily.c
	Fixed an bug where H5F_fam_write() lowered the EOF marker for
	one of the family members causing H5F_fam_read() to read
	zeros.

./test/h5test.h		[NEW]
./test/h5test.c		[NEW]
./test/Makefile.in
./test/bittests.c
./test/cmpd_dset.c
./test/dsets.c
./test/dtypes.c
./test/extend.c
./test/external.c
	Support library for test files.  This isn't done yet but
	Katie's contractions are ~10 minutes apart so I figured I
	better back this stuff up just in case I'm not here next
	week...

	Eventually all test files will understand HDF5_DRIVER to name
	the low level file driver and parameters so we can easily test
	various drivers.  They will also understand HDF5_PREFIX to
	prepend to the beginning of file names which is necessary for
	testing ROMIO with various drivers. Also, the cleanup function
	will know how to use the file name prefix and will understand
	different file driver naming schemes like file families. I'm
	not sure they'll understand the `gsf:' type prefixes yet.

	Note, the external test is completely commented out because
	I'm in the middle of modifying it.  It will still compile and
	run but it doesn't test anything at the moment.
1998-11-20 22:36:51 -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
5834d25997 [svn-r816] Fixed bug with references on certain platforms. 1998-10-28 13:51:20 -05:00
Quincey Koziol
69d3cf72b3 [svn-r797] Changed comments from returning "SUCCEED/FAIL" to "non-negative/negative"
and also fixed a few more explicit checks against FAIL.
1998-10-26 16:18:54 -05:00
Robb Matzke
f7545efc76 [svn-r795] Changes since 19981026
----------------------

./MANIFEST
./test/th5s.h5			[NEW]
./test/th5s.c
	Added a test to make sure that creating a data space with too
	large a rank fails.

	Added a test to make sure that reading a file that has a
	dataset with a space with too large a rank fails.  Actually,
	this one is a little weird: the code that reads the data space
	message assumes the space is scalar if the message cannot be
	read. Fortunately the layout message fails also, preventing
	the dataset from being opened.  However, since the data type
	message is still visible h5ls will report that the object is a
	named data type.

./test/space_overflow.c		[NEW]
	This is the little program that makes the th5s.h5 file.

./src/H5A.c
./src/H5R.c
./src/H5Sselect.c
	Updated trace info.

./src/H5Olayout.c
./src/H5Osdspace.c
	Added code to fail if the dimensionality is too large when
	decoding a layout or simple data space message.

./src/H5Oprivate.h
	Redefined H5O_LAYOUT_NDIMS in terms of H5S_MAX_RANK.

./src/H5P.c
./src/H5S.c
	Check for ndims>H5S_MAX_RANK in API function calls, added
	assert to internal functions.

./src/H5V.c
	Changed a `<' to an `<=' in an assert.

./test/flush2.c
	Includes stdlib.h for getenv().

./tools/h5tools.c
	Able to handle up to H5S_MAX_RANK dimensions during output.
1998-10-26 14:55:54 -05:00
Quincey Koziol
808847e0a1 [svn-r791] Internal API tweaks to H5D_open_oid 1998-10-26 12:23:29 -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
Robb Matzke
db9525c2a3 [svn-r789] Changes since 19981023
----------------------

./MANIFEST
./test/Makefile.in
./test/flush1.c			[NEW]
./test/flush2.c			[NEW]
	Test to see if calling H5Fflush() results in a consistent
	file.

./src/H5.c
./src/H5A.c
./src/H5D.c
./src/H5Fistore.c
./src/H5I.c
./src/H5S.c
./src/H5Shyper.c
./src/H5Sselect.c
./src/H5TB.c
	Changed comparisons against SUCCEED and FAIL to >=0 and <0 in
	about 15 places.

./src/H5.c
./src/H5V.c
./src/H5detect.c
./src/H5private.h
./src/H5public.h
./test/big.c
./test/chunk.c
./test/cmpd_dset.c
./test/dsets.c
./test/dtypes.c
./test/external.c
./test/fillval.c
./test/iopipe.c
./test/links.c
./test/mount.c
./test/mtime.c
./test/ragged.c
./test/shtype.c
./test/unlink.c
	Removed ^M from the end of lines inserted on broken OS's ;-)

./src/H5private.h
	Changed c++ comments to c comments.

./src/H5R.c
	Added tracing macros.
1998-10-26 09:49:52 -05:00
Quincey Koziol
671ed57123 [svn-r776] Fixed references, object references should be working now. 1998-10-22 17:49:16 -05:00
Quincey Koziol
cd4af9da24 [svn-r766] Checkpointing the reference code. 1998-10-19 17:25:03 -05:00
Robb Matzke
cfb2a264f1 [svn-r761] Changes since 19981013
----------------------

./src/H5.c
	Fixed a signed vs. unsigned comparison.

./src/H5D.c
	Setting a fill value of all zeros will cause the fill value to
	be written to the dataset instead of relying on the low-level
	file driver initializing unwritten areas with zero.

./src/H5D.c
./src/H5F.c
./src/H5Fprivate.h
./src/H5G.c
./src/H5Gpkg.h
./src/H5Gprivate.h
./src/H5O.c
./src/H5T.c
	More file mounting stuff.

./src/H5I.c
	Fixed a bug where trying to close an invalid object id caused
	a core dump.  For instance, H5Gclose(-1).

./MANIFEST
./test/Makefile.in
./test/mount.c		[NEW]
	Mounting tests.

./src/H5R.c
	Fixed a couple (herr_t)NULL casts.
1998-10-14 14:35:08 -05:00
Quincey Koziol
5389806ce8 [svn-r757] Added code for object references. 1998-10-13 16:28:53 -05:00
Quincey Koziol
c4f1dfcf17 [svn-r743] Added H5I_type_t type to H5_trace and added H5Iget_type function call. Also
checked in H5R skeleton files.
1998-10-07 16:04:51 -05:00
Quincey Koziol
2c4af336d3 [svn-r739] Switched ragged array "H5R" API to "H5RA" to make room for the reference API. 1998-10-06 16:37:57 -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
Quincey Koziol
97f56b57a0 [svn-r654] Fixed last bug (hah! ;-) for beta release, changed H5Gget_stat to H5Gget_objinfo
and renamed internal functions to match up with the renamed API functions.
1998-09-02 16:16:24 -05:00
Robb Matzke
1e38c13785 [svn-r633] Changes since 19980828
----------------------

./RELEASE
	Updated with important changes I made since the second beta.

./src/H5A.c
./src/H5D.c
./src/H5Dprivate.h
./src/H5G.c
./src/H5Gprivate.h
./src/H5R.c
./src/H5Rprivate.h
./src/H5T.c
./src/H5Tprivate.h
	Any API function that used to take an `hid_t loc_id' followed
	by a `const char *name' can now take any type of object for
	the loc_id as long as the object is somehow associated with a
	file. Internally, H5G_loc() was modified to return an
	H5G_entry_t* instead of an H5G_t* so it's more general.

	Among other things, this allows one to retrieve information
	about an object like a named type or dataset without knowing
	the name of the type or dataset:

	    int
	    get_nlinks (hid_t obj)
	    {
	        H5G_stat_t	sb;
		if (H5Gstat(obj, ".", TRUE, &sb)<0) return -1;
		return sb.nlink;
	    }

./test/gheap.c
./test/istore.c
	These files needed a couple of changes because they call some
	of the internal functions whose H5G_t arguments changed to
	H5G_entry_t.

./src/H5A.c
	Got rid of all the switch statements for getting symbol table
	entries for varous objects and replaced them with a call to
	H5G_loc() allowing attributes to automatically apply to any
	type of object that belongs to a file.

./test/Makefile.in
	Moved the ragged array tests from the normal list of tests to
	the `make timings' target.

./test/ragged.c
	Added rewrite tests -- rewrite the rows of a dataset changing
	the number of rows and the length of each row.

./test/mtime.c
	Added a test that checks that H5Gstat() can be called with a
	dataset as the first argument.

./src/H5S.c
	Added #ifdef HAVE_PARALLEL around code to check for the
	HDF5_MPI_OPT_TYPES environment variable because the global
	variable that gets set is #ifdef'd.

./bin/release
	bzip2 uses .bz2 as the file extension.
1998-08-31 08:46:47 -05:00
Robb Matzke
1b1be9918c [svn-r627] Changes since 19980827
----------------------

./src/H5G.c
	Fixed a link count on groups.  Groups were always created with
	a link count of zero instead of one.

./src/H5Gpublic.h
	Added H5G_NTYPES so applications can easily declare arrays
	which are indexed by object type.

./src/H5O.c
	Calling `H5O_link(&ent,0)' will succeed when the file is open
	for read only because it's the only way to get the object's
	current link count.

./tools/h5ls.c
	Can take non-group object names on the command line (and
	multiple objects).  Reorganized to be more extendible. The
	link count is displayed for `-v'.

./src/H5F.c
	Dumping of cache statistics is controlled by only the
	HDF5_DEBUG environment variable and not the H5F_ACC_DEBUG flag
	for H5Fopen() and H5Fcreate() since this makes it similar to
	the other debugging options.

./src/H5R.c
./test/ragged.c
./test/Makefile.in
	Tests pass but still a little work left to be done.
1998-08-28 10:24:12 -05:00
Robb Matzke
eb5e01d37c [svn-r620] Changes since 19980825
----------------------

./MANIFEST
./src/H5R.c		[NEW]
./src/H5Rprivate.h	[NEW]
./src/H5Rpublic.h	[NEW]
./src/Makefile.in
./src/hdf5.h
./test/ragged.c		[NEW]
	Preliminary support for 2d ragged arrays for Mark Miller and
	Jim Reus.  Not fully implemented yet. The test is not actually
	part of `make test' because we still have some memory problems.

./src/H5E.c
./src/H5Epublic.h
	Added H5E_RAGGED as a major error number.

./bin/release
	Checks the MANIFEST file against `svf ls' on systems that have
	it.

./bin/trace
	Fixed a bug that caused arguments of type `void *x[]' to not
	be handled.

./src/H5.c
	Removed unused variables and changed a couple types to
	fix compiler warnings.

	Added tracing support for ragged array object ID's and arrays
	of pointers.

./src/H5D.c
	H5Dcreate() will complain if either of the property lists are
	invalid (instead of using the default).

./src/H5D.c
./src/H5Dprivate.h
	Split H5Dget_space() into an API and internal function so it
	can be called from the new ragged array layer.

./src/H5Fistore.c
	Fixed warnings about unsigned vs. signed comparisons.

./src/H5Flow.c
	Fixed a warning about a variable being shadowed in the MPI-IO
	stuff.

./src/H5Iprivate.h
./src/H5Ipublic.h
	Added the H5_RAGGED atom group.

./src/H5Shyper.c
	Fixed some freeing-free-memory errors that resulted when
	certain arrays were freed but the pointers were left in the
	data structures.  I simply set the pointers to null after they
	were freed.

./src/H5Sprivate.h
./src/H5Sselect.c
	Split the H5Sselect_hyperslab() function into an API and a
	private function so it could be called from the ragged array
	layer.

	Added H5S_SEL_ERROR and H5S_SEL_N to the switch statements to
	get rid or compiler warnings.

./src/H5Tconv.c
	Removed a misleading comment.

./test/bittests.c
	Fixed a warning about a printf().

./test/cmpd_dset.c
	Fixed warnings about unused variables because of test #11
	being commented out.

./bin/trace
	Shortened the right margin for the output to allow room for
	the `);' at the end of the TRACE() macros.
1998-08-27 11:48:50 -05:00