summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* [svn-r438] Changes for PHDF5 to support extendable datasets.Albert Cheng1998-07-014-2/+666
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | H5D.c: If a dataset, using chunk storage, is created/opened and if its data file is accessed via MPIO, allocate file space for the chunks immediately. Also do the allocation when a dataset is extended. Must do it at these points because H5Dcreate, H5Dopen and H5Dextend are collective calls in MPIO access mode and are the only chance to get all MPI processes to synchonize their meta-data. Also disallow opening/creating datasets with compression option if MPIO is used. Not easy to support concurrent compression writes in an efficient way. But read-only access should be fine. Will implement that later. H5F.c: Disable file cache if MPIO is used by forcing cache size and number of elements to zero. H5Fistore.c: Added two new routines, H5F_istore_get_addr and H5F_istore_allocate. H5F_istore_allocate supports allocating file space for the chunks of a dataset. H5F_istore_get_addr returns the file space address of a chunk that has been allocated. Changed H5F_istore_read and H5F_istore_write to bypass the chunk cache read/write mechanism. Instead, they do read/write directly with the file for only the elements requested. (Some debug statements, enclosed by #ifdef AKC, are still in the file. I am still working on some code. They would be cleaned out soon.)
* [svn-r437] Changes since 19980612Robb Matzke1998-06-3018-50/+721
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ---------------------- ./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().
* [svn-r436] H5Pset_cache() did not save the value of rdcc_w0. Fixed it.Albert Cheng1998-06-261-5/+6
|
* [svn-r435] ./INSTALLRobb Matzke1998-06-2341-450/+1047
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ./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.
* [svn-r433] Added feature to print the maximum dimension sizes of datasets.Albert Cheng1998-06-191-2/+7
| | | | Platform tested: O2K.
* [svn-r432] Changes since 19980617Robb Matzke1998-06-187-477/+636
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | ---------------------- ./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.
* [svn-r431] H5Sget_dims:Albert Cheng1998-06-182-8/+9
| | | | | | 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.
* [svn-r430] Changes since 19980617Robb Matzke1998-06-173-5/+10
| | | | | | | | | | | ---------------------- ./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.
* [svn-r429] Changes since 19980616Robb Matzke1998-06-1721-147/+1051
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ---------------------- ./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.
* [svn-r428] Changes since 19980612Robb Matzke1998-06-165-37/+205
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ---------------------- ./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.
* [svn-r426] Fixed processing of debug string gotten from MPI_Info_get in ↵Robert Kim Yates1998-06-121-4/+9
| | | | H5F_mpio_open.
* [svn-r425] Changes since 19980610Robb Matzke1998-06-128-65/+1272
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ---------------------- 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.
* [svn-r423] Added H5F_MPIO_DEBUG_KEY so application program can turn on debug ↵Robert Kim Yates1998-06-111-0/+7
| | | | | | flags of H5Fmpio via the MPI_Info parameter to H5Fcreate and H5Fopen.
* [svn-r422] Added runtime debug flags for H5Fmpio routines,Robert Kim Yates1998-06-111-47/+103
| | | | | | 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.
* [svn-r418] ./html/Files.htmlRobb Matzke1998-06-1015-106/+508
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ./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().
* [svn-r416] Moved H5Fmpio.c into LIB_SRC that is included in both serialAlbert Cheng1998-06-101-3/+3
| | | | | or parallel configurations. Platform tested: O2K for both serial and parallel versions.
* [svn-r415] Problem:Albert Cheng1998-06-101-3/+17
| | | | | | | | | | | | | 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
* [svn-r414] Problem:Albert Cheng1998-06-101-14/+25
| | | | | | | | | | | | | | 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.
* [svn-r413] Added in a minor error code H5E_MPI to indicate failures dueAlbert Cheng1998-06-091-1/+4
| | | | to MPI functions. (Added by Kim Yates).
* [svn-r411] Added data-transfer-mode to various function to specify whichAlbert Cheng1998-06-0724-201/+218
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* [svn-r410] Changes since 19980604Robb Matzke1998-06-058-230/+418
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ---------------------- ./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.
* [svn-r409] Changes since 19980604Robb Matzke1998-06-052-5/+9
| | | | | | | | | | | | | | | | | | | | ---------------------- ./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.
* [svn-r407] ./src/H5A.cRobb Matzke1998-06-0427-526/+924
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ./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.
* [svn-r404] Updated parallel code to reflect the changes in the H5F_t structureAlbert Cheng1998-05-292-16/+16
| | | | | in which access_parms is now a pointer to a struct (was a struct before.)
* [svn-r401] Changes to support parallel I/O when data conversion occurs.Albert Cheng1998-05-221-55/+76
|
* [svn-r400] Changes since 19980513Robb Matzke1998-05-2215-632/+1942
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ---------------------- ./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.
* [svn-r398] Changes since 19980501Robb Matzke1998-05-1312-148/+588
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ---------------------- ./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.
* [svn-r384] Changes since 19980430Robb Matzke1998-05-011-1/+3
| | | | | | | | ---------------------- ./src/H5G.c Fixed a read/write of free memory that my home-brew purify doesn't catch (yet :-)
* [svn-r383] ./src/H5A.cRobb Matzke1998-05-019-143/+229
| | | | | | | | | | | | | | | | | ./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.
* [svn-r381] Added "rank=0" for a scalar variable initialization.Quincey Koziol1998-04-291-0/+1
|
* [svn-r379] Fleshed out code for scalar dataspace support.Quincey Koziol1998-04-282-58/+53
|
* [svn-r378] Merged Robb's and my memory leak fixes into one set of common fixes.Quincey Koziol1998-04-285-68/+70
|
* [svn-r377] Changes since 19980424Robb Matzke1998-04-289-145/+586
| | | | | | | | | | | | | | | | | | | | | | | | | | | ---------------------- ./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.
* [svn-r376] ./acconfig.hRobb Matzke1998-04-242-17/+21
| | | | | | | | | | | | | | | | | | | | | | | ./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.
* [svn-r374] ./src/H5A.cRobb Matzke1998-04-248-72/+69
| | | | | | | | | | | | | ./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.
* [svn-r372] Removed redundant write from H5F_mpio_write.Robert Kim Yates1998-04-241-2/+3
|
* [svn-r370] Fixed a couple of compiler warnings.Quincey Koziol1998-04-242-4/+4
|
* [svn-r369] Changed comments in H5Pset_mpi to reflect removal of access_mode ↵Robert Kim Yates1998-04-241-8/+1
| | | | argument.
* [svn-r365] Problems:Albert Cheng1998-04-232-10/+0
| | | | | | | | | | | | 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;
* [svn-r364] Purpose:Paul Harten1998-04-231-4/+17
| | | | | | | | | | | | | | | | | | 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
* [svn-r361] Added Attribute (H5A) code.Quincey Koziol1998-04-2320-37/+2124
|
* [svn-r358] H5Fcreate did not accept EXCL creation flag correctly.Albert Cheng1998-04-231-3/+1
| | | | | Fixed the typo where it should have checked exclusive use of EXCL or TRUNC flags.
* [svn-r356] Changes since 19980421Robb Matzke1998-04-227-23/+128
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ---------------------- ./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.
* [svn-r355] Changes since 19980417Robb Matzke1998-04-215-7/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ---------------------- 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.
* [svn-r353] Changes since 19980414Robb Matzke1998-04-1740-670/+2461
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ---------------------- ./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.
* [svn-r351] Removed the access_mode argument from H5Pset_mpi which was laterAlbert Cheng1998-04-177-67/+38
| | | | | | | | | | | | | | | | | 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.
* [svn-r346] Changes since 19980410Robb Matzke1998-04-1411-81/+554
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ---------------------- ./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'.
* [svn-r345] Updated the comment block of H5Pset_xfer.Albert Cheng1998-04-131-3/+3
|
* [svn-r343] First implementation of collective access support.Albert Cheng1998-04-136-2/+313
| | | | | | | | | | | | | | | | | | | | | | | | | 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.
* [svn-r342] H5F_mpio_write and H5F_mpio_read now do collective versions of MPI-IORobert Kim Yates1998-04-101-7/+40
| | | | write and read based on the value of the access_parms.