Commit Graph

149 Commits

Author SHA1 Message Date
Quincey Koziol
d456c2bb82 [svn-r4643] Purpose:
Code cleanup
Description:
    Windows is generating hundreds of warnings from some of the practices in
    the library.  Mostly, they are because size_t is 32-bit and hsize_t is
    64-bit on Windows and we were carelessly casting the larger values down to
    the smaller ones without checking for overflow.

    Also, some other small code cleanups,etc.

Solution:
    Re-worked some algorithms to eliminate the casts and also added more
    overflow checking for assignments and function parameters which needed
    casts.

    Kent did most of the work, I just went over his changes and fit them into
    the the library code a bit better.

Platforms tested:
    FreeBSD 4.4 (hawkwind)
2001-11-27 11:29:13 -05:00
Quincey Koziol
6ab0e9f092 [svn-r4620] Purpose:
Code cleanup
Description:
    Get rid of IDs from internal function calls and some small cleanups from
    the old-stype => generic property list conversion.
Platforms tested:
    FreeBSD 4.4 (hawkwind)
2001-11-20 14:07:22 -05:00
Quincey Koziol
1cd9eb7e0d [svn-r4586] Purpose:
Code speedups, etc.
Description:
    Bring in new algorithms and data structures for dealing with hyperslabs.

    This speeds up the hyperslab I/O for non-regular hyperslabs by a huge
    amount.

    Currently, the new API functions are ifdef'ed out, pending discussion
    and consensus approval.
Platforms tested:
    FreeBSD 4.4 (hawkwind)
2001-11-02 15:31:35 -05:00
Quincey Koziol
b8b6227850 [svn-r4506] Purpose:
Bug fix/optimization.
Description:
    Single, contiguous (in memory) hyperslabs are able to be transferred in one
    I/O operation, but weren't being detected correctly by the code in
    H5S_all_read()/H5S_all_write() and were getting routed into slower I/O
    routines.  (Or, possibly failing in some circumstances)
Solution:
    Wrote code to correctly detect single contiguous hyperslabs in memory and
    adjust arrays and buffer pointers describing the memory information so that
    the entire hyperslab can be transferred in one operation.
Platforms Tested:
    FreeBSD 4.4 (hawkwind)
2001-10-01 10:42:33 -05:00
Quincey Koziol
938be57841 [svn-r4494] Purpose:
Bug fix.

Problem:
    When an entire dataset was selected (through whatever means, H5S_ALL, making
    an explicit "all" selection, etc.), the code was not allowing the optimized
    routine to read the entire dataset in at once when the current dimensions
    did not match the maximum dimensions and instead was defaulting to a [much]
    slower method to read in the dataset.

Solution:
    Took out check which was requiring current dimensions to be equal to the
    maximum dimensions.

Platforms tested:
    FreeBSD 4.4 (hawkwind)
2001-09-28 14:46:04 -05:00
Quincey Koziol
ed663577a5 [svn-r4473] Purpose:
Code cleanup for better compatibility with C++ compilers
Description:
    C++ compilers are choking on our C code, for various reasons:
        we used our UNUSED macro incorrectly when referring to pointer types
        we used various C++ keywords as variables, etc.
        we incremented enum's with the ++ operator.
Solution:
    Changed variables, etc.to avoid C++ keywords (new, class, typename, typeid,
        template)

    Fixed usage of UNUSED macro from this:
        char UNUSED *c
    to this:
        char * UNUSED c

    Switched the enums from x++ to x=x+1
Platforms tested:
    FreeBSD 4.4 (hawkwind)
2001-09-25 12:46:32 -05:00
Quincey Koziol
e87fc517b8 [svn-r4355] Purpose:
Code cleanup (sorta)

Description:
    When the first versions of the HDF5 library were designed, I remembered
    vividly the difficulties of porting code from a 32-bit platform to a 16-bit
    platform and asked that people use intn & uintn instead of int & unsigned
    int, respectively.  However, in hindsight, this was overkill and
    unnecessary since we weren't going to be porting the HDF5 library to
    16-bit architectures.

    Currently, the extra uintn & intn typedefs are causing problems for users
    who'd like to include both the HDF5 and HDF4 header files in one source
    module (like Kent's h4toh5 library).

Solution:
    Changed the uintn & intn's to unsigned and int's respectively.

Platforms tested:
    FreeBSD 4.4 (hawkwind)
2001-08-14 17:09:56 -05:00
Quincey Koziol
990fadfbe5 [svn-r4181] Purpose:
Bug Fix, Code Cleanup, Code Optimization, etc.
Description:
    Fold in the hyperslab speedups, clean up compile warnings and change a
    few things from using 'unsigned' or 'hsize_t' to use 'size_t' instead.
Platforms tested:
    FreeBSD 4.3 (hawkwind), Solaris 2.7 (arabica), Irix64 6.5 (modi4)
2001-07-10 16:19:18 -05:00
Quincey Koziol
4d9cce57b4 [svn-r4002] Purpose:
Bug fix/code improvement.
Description:
    'all' selections were (ab)using the array reading code and required that
    the internal data transfer buffer size be big enough to hold the an entire
    slab of the data, which was confusing and limiting for users.
Solution:
    Changed 'all' selections to use sequence reading code instead of array
    reading code.
Platforms tested:
    FreeBSD 4.3 (hawkwind)
2001-06-14 15:11:19 -05:00
Bill Wendling
5e483d0184 [svn-r3781] Purpose:
Update
Description:
    Changed

        #include <hdf_file.h>

    construct to

        #include "hdf_file.h"

    so that the GNU compiler can more easily pick up the dependencies
    which it places in the .depend and Dependencies files. Also
    regenerated the Dependencies to go along with this.
Platforms tested:
    Linux
2001-04-05 12:29:14 -05:00
Quincey Koziol
35bc545296 [svn-r3252] Purpose:
Code cleanup.
Description:
    Fixed _lots_ (I mean _tons_) of warnings spit out by the gcc with the
    extra warnings.  Including a few show-stoppers for compression on IRIX
    machines.
Solution:
    Changed lots of variables' types to more sensible and consistent types,
    more range-checking, more variable typecasts, etc.
Platforms tested:
    FreeBSD 4.2 (hawkwind), IRIX64-64 (modi4)
2001-01-09 16:22:30 -05:00
Quincey Koziol
c3be99abb1 [svn-r3228] Purpose:
Bug fixes
Description:
    Fix two bugs:
        - Datasets with vlen datatype which were created but not written to
            were not being read back in correctly from the file.
        - If an existing space conversion path was found for a conversion, it
            was possible that the optimized read/write routines would be used
            inappropriately.
Solution:
    Patched vlen datatype conversion code to correctly handle zero-length
    sequences.

    Added a check to the space conversion code to make certain that the
    optimized conversion routines are still appropriate when an existing
    path is found.
Platforms tested:
    FreeBSD 4.2 (hawkwind)
2001-01-03 13:32:49 -05:00
Quincey Koziol
b524625fcb [svn-r2942] Purpose:
Bug fix
Description:
    When performing I/O on the entire dataset for datasets with the maximum
    number of dimensions, H5S_MAX_RANK, (32 currently), the dimension
    information was getting corrupted internally and causing no data to be
    actually written to the file.
Solution:
    Changed the internal array sizes from H5S_MAX_RANK to H5O_LAYOUT_NDIMS,
    which is one element larger to accomodate the size of the elements
    themselves.
Platforms tested:
    Solaris 2.7 (arabica)
2000-11-15 17:47:59 -05:00
Quincey Koziol
ba28c64ba7 [svn-r2652] Purpose:
Maintainance & performance enhancements
Description:
    Re-arranged header files to protect private symbols better.

    Changed optimized regular hyperslab I/O to compute the offsets more
    efficiently from previous method of using matrix operations.

    Added sequential I/O operations at a more abstract level (at the same level
    as H5F_arr_read/write), to support the optimized hyperslab I/O.

Platforms tested:
    Solaris 2.6 (baldric) & FreeBSD 4.1.1 (hawkwind)
2000-10-10 02:43:38 -05:00
Quincey Koziol
a4d73cc16b [svn-r2551] Purpose:
Fix last couple of errors from introducing "regular" hyperslab feature
into the library.

Description:
    Code was blindly dereferencing data structures which aren't defined when
operating on regular hyperslabs.

Solution:
    Check for regular hyperslab defined and retrieve information from regular
hyperslab info instead of mucking about in other hyperslab information.

Platforms:
    Solaris 2.6
2000-09-14 17:54:21 -05:00
Quincey Koziol
02e4ee5edf [svn-r2073] Added free-list code to the library and took out the older "temporary buffer"
code, since the functionality was superceded.  See the followup document for
details on the free-list code.
2000-04-04 16:00:31 -05:00
Quincey Koziol
85f55c4c95 [svn-r1759] Corrected a few more compiler warnings. 1999-10-15 14:04:01 -05:00
Quincey Koziol
4d5186a245 [svn-r1689] Mainly adding support for "native" variable-length strings (C only currently),
but I fixed lots of misc. compiler warnings in other code and also tracked down
the memory overwrite bug that was causing the development branch to core dump
on most machines.
1999-09-28 19:30:21 -05:00
Robb Matzke
cbf68fc824 [svn-r1568] Changes since 19990730
----------------------

This extensive change is the virtual file layer implementation. I've
ported and tested the sec2, family, and core drivers and only ported
the mpio driver (Albert will test it).  So if you need MPIO I would
recommend sticking with the previous version for a while.

You will get a few compile warnings about split and stdio drivers not
being implemented and possibly tracing information not inserted in
some of the drivers. You can safely ignore them but I plan to fix
them.

I'm still working on the split driver because I just realized that it
needs a part of the VFL that isn't written yet.

Documentation is being updated also because there were some minor
changes (mostly just name changes). It should be available on my web
site later this week.

./MANIFEST
./src/Makefile.in
./src/hdf5.h
./src/H5Flow.c			[REMOVED]
./src/H5Fstdio.c		[REMOVED]
./src/H5Fsec2.c			[REMOVED]
./src/H5Fsplit.c		[REMOVED]
./src/H5Fmpio.c			[REMOVED]
./src/H5Ffamily.c		[REMOVED]
./src/H5Fcore.c			[REMOVED]
./src/H5MFpublic.h		[REMOVED]
./src/H5FD.c			[NEW]
./src/H5FDcore.c		[NEW]
./src/H5FDcore.h		[NEW]
./src/H5FDfamily.c		[NEW]
./src/H5FDfamily.h		[NEW]
./src/H5FDmpio.c		[NEW]
./src/H5FDmpio.h		[NEW]
./src/H5FDprivate.h		[NEW]
./src/H5FDpublic.h		[NEW]
./src/H5FDsec2.c		[NEW]
./src/H5FDsec2.h		[NEW]
	Removed/added files for virtual file layer.

./bin/trace
./src/H5.c
	Removed unused public datatypes and added new VFL public
	datatypes.

	Changed an error message.

./config/BlankForm
./config/dec-flags
./config/gnu-flags
./config/hpux10.20
./config/hpux9.03
./config/irix5.x
./config/irix6.x
./config/solaris2.x
./config/unicosmk
	Removed the H5F_OPT_SEEK and H5F_LOW_DFLT constants from the
	configuration since they're no longer applicable. The default
	file driver is always the sec2 driver and it always optimizes
	calls to lseek() or lseek64().

./config/depend.in
	C preprocessor errors generated during automatic dependency
	building are sent to /dev/null to prevent them from appearing
	twice in the make output.

./src/H5AC.c
./src/H5B.c
./src/H5D.c
./src/H5F.c
./src/H5G.c
./src/H5Gent.c
./src/H5Gnode.c
./src/H5HG.c
./src/H5HL.c
./src/H5O.c
./src/H5Oattr.c
./src/H5Odtype.c
./src/H5Oefl.c
./src/H5Oshared.c
./src/H5T.c
./src/H5detect.c
./test/ohdr.c
	Changed H5F_ADDR_UNDEF to HADDR_UNDEF to be more consistent
	with the `haddr_t' datatype which is now a public type.

./src/H5D.c
./src/H5P.c
./src/H5Ppublic.h
./src/H5Tconv.c
./test/cmpd_dset.c
./test/dsets.c
./test/overhead.c
./test/tselect.c
./test/tvltypes.c
	The H5P_DATASET_XFER constant was changed to H5P_DATA_XFER
	because the properties apply to all types of I/O operations,
	not just datasets.

./src/H5B.c
./src/H5Bprivate.h
./src/H5D.c
./src/H5Dpublic.h
./src/H5F.c
./src/H5Farray.c
./src/H5Fistore.c
./src/H5Fprivate.h
./src/H5Fpublic.h
./src/H5Gnode.c
./src/H5Gpkg.h
./src/H5HG.c
./src/H5HL.c
./src/H5O.c
./src/H5R.c
./src/H5Sall.c
./src/H5Shyper.c
./src/H5Smpio.c
./src/H5Spoint.c
./src/H5Sprivate.h
./test/big.c
./test/h5test.c
./test/istore.c
./testpar/t_dset.c
./testpar/t_file.c
./tools/h5debug.c
./tools/h5ls.c
	Modified to work with the virtual file layer by calling H5FD_*
	functions instead of H5F_low_* functions and by passing file
	access and data transfer properties by object ID instead of
	pointer.

	Changed H5D_transfer_t to H5FD_mpio_xfer_t since the
	COLLECTIVE vs. INDEPENDENT transfer mode is specific to the
	MPIO file driver.

	Moved MPIO-specific stuff into the MPIO driver.

./src/H5B.c
./src/H5D.c
./src/H5Fprivate.h
	The H5F_mpio_* private functions were renamed and placed in
	the H5FDmpio driver except those which appeared in H5Smpio.c.

./src/H5E.c
./src/H5Epublic.h
	Added major error number H5E_VFL for virtual file layer
	related errors.

./src/H5F.c
./src/H5Fprivate.h
	Changed the logic that controls whether the boot block is
	written. Instead of assuming that the first call to write the
	boot block is only to allocate space, I've added a function
	argument which makes this explicit.

	Changed the way files are compared so that a driver-defined
	comparison function can be called.  Files which belong to
	different drivers are always considered different.

	Removed H5F_driver_t since file drivers are now identified by
	object ID instead of a special non-user-extendible datatype.

	Removed all the hard-coded low-level file properties which
	have been replaced by the various file drivers.

./src/H5I.c
./src/H5Iprivate.h
	Added the H5I_inc_ref() which was removed a few months ago
	since we finally have a use for it.

./src/H5Ipublic.h
	Added the H5I_VFL object ID type to identify file drivers in
	the virtual file layer.

./src/H5MF.c
./src/H5MFprivate.h
	Moved all the allocation/deallocation code into the virtual
	file layer which allows file drivers to override much of it.

./src/H5P.c
./src/H5Ppublic.h
	Moved file driver-specific code into the various file driver
	files.

	The H5Pcopy() and H5Pclose() functions make calls into the
	virtual file driver to manage the memory for driver-specific
	file access and data transfer properties.

./src/H5private.h
./src/H5public.h
	The `haddr_t' type is now public.

./test/tfile.c
	Added a few more comments.
1999-08-10 15:21:32 -05:00
Quincey Koziol
7d949c9da9 [svn-r1566] Changed C++ "operator" keyword to "op" 1999-08-10 13:54:06 -05:00
Quincey Koziol
d762ea6a31 [svn-r1494] Lots of various bug-fixes on VL datatypes. VL datatype fields in compound
datatypes aren't yet working, but other ways of using them (vlen atomic, vlen
compound and vlen vlen atomic, etc.) are working.
1999-07-16 13:11:52 -05:00
Robb Matzke
d9de869ef7 [svn-r1486] ./src/H5B.c [1.2, 1.3]
./src/H5Fistore.c	[1.2, 1.3]
./src/H5Sall.c		[1.2, 1.3]
	Replaced second argument of HGOTO_ERROR/HRETURN_ERROR with a
	minor error symbol (H5E_INTERNAL is a major error symbol).
1999-07-16 10:02:04 -05:00
Quincey Koziol
21403c5ec4 [svn-r1385] Updated H5Rdereference, H5Rget_object_type and H5Rget_region to accept a
location ID (i.e. a file or group ID) as well as the dataset ID.  This should
allow Dave to get the palettes stored in the file correctly and also enable
Bob and/or Bruce's indexing stuff.  This change should be folded into the
documentation for these three functions for the release.
    Also, I fixed a number of bugs in the hyperslab and point selection
iterators for H5Diterate and they are working correctly now.
1999-06-25 14:36:54 -05:00
Quincey Koziol
c4c6318e6a [svn-r1374] Added in code to support the H5Diterate function, which I've got to add tests
for now.  Also, I revised some of the code for hyperslab I/O, which should
provide a modest speedup in situations with lots of hyperslabs.
1999-06-23 21:16:13 -05:00
Quincey Koziol
85d15667be [svn-r1279] Fixed bug in new optimized hyperslab code. 1999-05-25 21:43:38 -05:00
Albert Cheng
ac830927fb [svn-r1277] Added additional checks into the dataspace code to determine if the hyperslabs
being written out are contiguous in memory and on disk and write/read them as
one I/O operation (if the datatypes don't require conversion).  This should be
a good performance boost for those situations.  It's especially needed on the
ASCI Red (TFlops) machine.  - QAK (from Albert's account on modi4 :-)
1999-05-25 16:29:31 -05:00
Quincey Koziol
acbad9533e [svn-r1210] Changed parameters for function calls which figure out the buffer size for
H5Dread/H5Dwrite to use to allow the I/O calls to break up a user's buffer into
pieces that are at least as large as the sequence of bytes being written in the
fastest changing dimension.

Also fixed a hard-to-find bug in the hyperslab I/O routines which could cause
data to be corrupted when writing out fields to compound datatype data with
background preservation turned on and hyperslabs which were large enough to
require two I/O passes on a hyperslab block.  A pretty obscure situation, but
it would be worthwhile for users to upgrade to this code in order to be certain
that correct data is being written.
1999-04-23 16:11:27 -05:00
Robb Matzke
d534a4dd0d [svn-r1204] Changes since 19990415
----------------------

./config/depend.in
	Fixed automatic dependencies. We were storing dependencies for
	*.o files instead of *.lo files after shared libraries were
	added.

./config/gnu-flags
./config/linux-gnulibc1
	Moved `-march=pentiumpro -mcpu=pentiumpro -malign-double' from
	the linux file to this file and caused it to depend on the CPU
	name.  This fixes one of Elena's bugs.

./src/H5B.c
./src/H5Bprivate.h
./src/H5D.c
./src/H5Dprivate.h
./src/H5Dpublic.h
./src/H5F.c
./src/H5Farray.c
./src/H5Fistore.c
./src/H5Fmpio.c
./src/H5Fprivate.h
./src/H5Fpublic.h
./src/H5Gnode.c
./src/H5P.c
./src/H5RA.c
./src/H5Sall.c
./src/H5Shyper.c
./src/H5Smpio.c
./src/H5Spoint.c
./src/H5Sprivate.h
./src/H5Tpublic.h
./test/istore.c
	Added an H5Dget_storage_size() function that reports the
	amount of storage allocated for raw data in a dataset.

	Changed H5D_xfer_* to H5F_xfer_* because these properties are
	more general than datasets. This also allows some of the
	lower-level I/O functions to get this information easier.

./src/H5S.c
./src/H5Sall.c
	Added two new functions H5S_all_read() and H5S_all_write()
	which are optimizations that copy data directly between file
	and memory without having to go through the scatter gather
	step.  This knocks quite a bit of time off the I/O and
	reading/writing entire datasets is a fairly common operation.

./tools/h5ls.c
	Reports the logical size of data, the allocated size of data,
	and the percent utilization.

./MANIFEST
	Removed old pablo files, added new files. Snapshots should now
	start to work again.

./src/H5D.c
./src/H5Fmpio.c
	Removed two warnings signed vs. unsigned comparisons and check
	for overflow.
1999-04-23 07:31:21 -05:00
Robb Matzke
43c356f93d [svn-r1184] Changes since 19990402
----------------------

./config/commence.in
./config/conclude.in
./test/Makefile.in
./tools/Makefile.in
	Fixed so private libraries are not installed publicly.

	The installation directories `bin', `include', and `lib' are
	created mode 755.

./src/H5.c
./src/H5A.c
./src/H5F.c
./src/H5Fcore.c
./src/H5Fistore.c
./src/H5Flow.c
./src/H5Fmpio.c
./src/H5Fsec2.c
./src/H5Fstdio.c
./src/H5G.c
./src/H5Gent.c
./src/H5Gnode.c
./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/H5Osdspace.c
./src/H5Oshared.c
./src/H5Ostab.c
./src/H5R.c
./src/H5Sall.c
./src/H5Shyper.c
./src/H5Smpio.c
./src/H5Snone.c
./src/H5Spoint.c
./src/H5T.c
./src/H5Tconv.c
./src/H5Vprivate.h
./src/H5Z.c
./src/H5detect.c
./src/H5private.h
./test/chunk.c
./test/dsets.c
./test/dtypes.c
./test/h5test.c
./test/overhead.c
./test/ragged.c
./test/tattr.c
./tools/h5dump.c
./tools/h5findshd.c
./tools/h5ls.c
	Changed `__unused__' to `UNUSED' to fix a conflict with GNU
	header files.

./src/H5Tpkg.h
./test/h5test.h
	Removed __unused__ from forward function declarations.

./src/H5P.c
	Removed a comment about restrictions for the type conversion
	temporary buffers. Thanks to Quincey, the comment no longer
	applied.

./src/H5T.c
	Relaxed the H5Tpack() a little so it would pack compound data
	structures that had non-transient atomic members.

./tools/h5ls.c
	Added a `-g' (or `--group') flag that causes information to be
	printed about the specified group instead of the group's
	contents. (sort of like Unix's `ls -d'). The `-g' can be used
	in combination with `-r' to print information about the group
	and its contents.
1999-04-15 14:57:50 -05:00
Dan Wells
fe83d5e288 [svn-r1182] Changed name of PABLO Mask to simplify automatic definitions. 1999-04-14 16:48:05 -05:00
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
Albert Cheng
2c3234ef72 [svn-r1128] Changes for T3E port.
H5Flow.c:
    Document previous changes (same changes committed by Robb first.)

H5Fprivate.h:
    Change DECODE macros to do sign extension.
    (Sign extension can be skipped if machines use the exact sizes.)

H5Sall.c:
    Fixed a typo in return value.

H5private.h:
    Fixed a typo and also changed the strategy of the int16_t and
    uint16_t typedef.  Now will use short as long as it is at least
    2 bytes big.
1999-03-09 18:06:07 -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
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
849d36019d [svn-r733]
Changes since 19980930
----------------------

./MANIFEST
./doc/html/H5.format.html
./src/H5D.c
./src/H5Dprivate.h
./src/H5Farray.c
./src/H5Fistore.c
./src/H5Fprivate.h
./src/H5O.c
./src/H5Ofill.c		[NEW]
./src/H5Oprivate.h
./src/H5P.c
./src/H5Ppublic.h
./src/H5Sall.c
./src/H5Shyper.c
./src/H5Spoint.c
./src/H5Sprivate.h
./src/Makefile.in
	Added fill values as documented in previous e-mails. They only
	work for chunked datasets so far.

./src/H5E.c
./src/H5Epublic.h
./src/H5P.c
	Changed H5E_TEMPLATE to H5E_PLIST.

./src/H5Omtime.c
./src/H5V.c
	Fixed a typo in a comment.

./src/H5Tconv.c
	Fixed a bug in compound type conversions that caused an
	assertion to fail.
1998-10-01 13:56:51 -05:00
Robb Matzke
beab7f66e5 [svn-r730] Changes since 19980928
----------------------

./MANIFEST
	Changed freebsd2.2.1 to freebsd2.2.7 to match change in file name.

	Added a few missing files.  Are all of these supposed to be
	distributed?

	  ./tools/testfiles/h5dumptst.c
	+ ./tools/testfiles/tall-1.ddl
	+ ./tools/testfiles/tall-2.ddl
	+ ./tools/testfiles/tall-3.ddl
	  ./tools/testfiles/tall.ddl
	  ./tools/testfiles/tall.h5
	+ ./tools/testfiles/tattr-1.ddl
	+ ./tools/testfiles/tattr-2.ddl
	+ ./tools/testfiles/tattr-3.ddl
	+ ./tools/testfiles/tattr-4.ddl
	  ./tools/testfiles/tattr.ddl
	  ./tools/testfiles/tattr.h5
	+ ./tools/testfiles/tdset-1.ddl
	+ ./tools/testfiles/tdset-2.ddl
	+ ./tools/testfiles/tdset-3.ddl
	+ ./tools/testfiles/tdset-4.ddl
	  ./tools/testfiles/tdset.ddl
	  ./tools/testfiles/tdset.h5
	+ ./tools/testfiles/tgroup-1.ddl
	+ ./tools/testfiles/tgroup-2.ddl
	+ ./tools/testfiles/tgroup-3.ddl
	  ./tools/testfiles/tgroup.ddl
	  ./tools/testfiles/tgroup.h5
	+ ./tools/testfiles/tslink-1.ddl
	+ ./tools/testfiles/tslink-2.ddl
	  ./tools/testfiles/tslink.ddl
	  ./tools/testfiles/tslink.h5

./src/H5B.c
./src/H5Bprivate.h
./src/H5D.c
./src/H5Dprivate.h
./src/H5Farray.c
./src/H5Fistore.c
./src/H5Fprivate.h
./src/H5Gstab.c
./src/H5P.c
./src/H5Ppublic.h
./src/H5Sall.c
./src/H5Shyper.c
./src/H5Spoint.c
./src/H5Sprivate.h
./test/istore.c
	Implemented split ratios as documented in previous
	e-mails. Frank, the new API functions are H5Pget_btree_ratios()
	and H5Pset_btree_ratios().

./src/H5Sall.c
./src/H5Shyper.c
./src/H5Spoint.c
./src/H5Sprivate.h
	Added more type checking for the data transfer property list
	passed to these functions.

./src/H5D.c
	Added a dataset transfer property list as an argument to
	H5D_allocate() for the parallel version in order to pass split
	ratios down to H5F_istore_lock().  Eventually we won't need
	the split ratios for H5D_allocate() because we'll build a
	completely full B-tree from the leaves up, but it might be
	useful to have other transfer properties at that level
	anyway.  I always caled H5D_allocate() with &H5D_dflt_xfer.

./MANIFEST
./test/Makefile.in
./test/overhead.c	[NEW]
	Added an `overhead' test run by `make timings'.
1998-09-30 13:50:49 -05:00
Quincey Koziol
1fe48c7f19 [svn-r712] Added temporary buffer support to several places in the library which were
calling malloc too often.  Also, added caching of hyperslab blocks, which
improves performance _significantly_ for hyperslab I/O.
1998-09-21 18:43:19 -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
678eb19d71 [svn-r588] Changes since 19980810
----------------------

./MANIFEST
./src/H5Ssimp.c		[REMOVED]
./src/Makefile.in
	Removed H5Ssimp.c since it was no longer used.

./bin/snapshot
	Fixed a few minor things to make it work better.

./src/H5D.c
	Cleaned up H5D_read() and H5D_write() by combining some code
	in each. Added timing calls around the data space calls when
	H5S_DEBUG is defined.

./src/H5S.c
./src/H5Sall.c
./src/H5Shyper.c
./src/H5Spoint.c
./src/H5Sprivate.h
	Changed H5S_find() so it returns a table entry again instead
	of copying the data into a caller-supplied buffer.  This
	allows the timers to be stored in the table and updated by the
	caller.  Added H5S_register() to register new table entries
	and added entry creation to all the H5S selection
	methods. Also changed lots of global functions to static
	functions.

./src/H5Fistore.c
	Fixed a memory bug in the raw data cache.
1998-08-13 15:17:47 -05:00
Robb Matzke
002b1494b7 [svn-r569] Changes since 19980731
----------------------

./bin/release
	Added ./Makefile to the distribution again -- it got lost in
	the changes last week although it isn't all that important a
	file since it gets clobbered by configure anyway.

./bin/trace
./doc/html/Filters.html
./doc/html/H5.format.html
./doc/html/H5.user.html
./src/H5.c
./src/H5D.c
./src/H5Dprivate.h
./src/H5E.c
./src/H5Epublic.h
./src/H5Farray.c
./src/H5Fistore.c
./src/H5Fprivate.h
./src/H5O.c
./src/H5Ocomp.c
./src/H5Oprivate.h
./src/H5P.c
./src/H5Ppublic.h
./src/H5Sall.c
./src/H5Shyper.c
./src/H5Spoint.c
./src/H5Sprivate.h
./src/H5Ssimp.c
./src/H5Z.c
./src/H5Zprivate.h
./src/H5Zpublic.h
./src/hdf5.h
./test/dsets.c
./tools/h5ls.c
	Added the data filter pipeline, a generalization of the
	compression stuff which allows things like checksums,
	encryption, compression, performance monitoring, etc.  See
	./doc/html/Filters.html for details -- it replaces the
	Compression.html doc.

./src/H5T.c
	Cleaned up debugging output.

./config/linux
	Added checks for egcs and pgcc and changed optimization flags
	for the compilers.

./src/H5G.c
./tools/h5dump.c
	Fixed compiler warnings in these files and others.

./configure.in
./src/H5private.h
./test/mtime.c
	Added a check for difftime() and defined HDdifftime() to do
	something else on systems that don't have difftime().
1998-08-05 17:22:59 -05:00
Robb Matzke
29a029d7e7 [svn-r529] Changes since 19980722
----------------------

./src/H5.c
	Handle hid_t of type H5_TEMPBUF, arguments usually called tbuf_id.

	Added array tracing where the array rank is stored in a simple
	data space.  Just use the name of the data space argument when
	declaring the array argument:

	    herr_t
	    H5Sselect_hyperslab (hid_t space_id, H5S_seloper_t op,
				 const hssize_t start[/*space_id*/],
				 const hsize_t _stride[/*space_id*/],
				 const hsize_t count[/*space_id*/],
				 const hsize_t _block[/*space_id*/])

	and when the program runs you'll see array values printed:

	    H5Sselect_hyperslab(space=218103813, op=H5S_SELECT_SET,
                                start=0xbfffef4c {0}, _stride=NULL,
                                count=0xbfffef44 {64},
				_block=NULL) = SUCCEED;

	Added more symbolic data types to the tracing output.

./src/H5A.c
./src/H5Apublic.h
./src/H5D.c
./src/H5Dpublic.h
./src/H5F.c
./src/H5Fpublic.h
./src/H5G.c
./src/H5Gpublic.h
./src/H5P.c
./src/H5Ppublic.h
./src/H5S.c
./src/H5Sall.c
./src/H5Shyper.c
./src/H5Spoint.c
./src/H5Spublic.h
./src/H5Sselect.c
./src/H5Ssimp.c
./src/H5TB.c
./src/H5V.c
	Changed some API argument names to be more consistent with
	other API functions and to produce better tracing output.
	Reformatted some long lines. Indented printf statements.

./tools/h5ls.c
	Fixed warnings about unsigned vs. signed comparisons.
1998-07-22 13:45:46 -05:00
Quincey Koziol
c40c53d0af [svn-r512] Tracked down some problems with the number of dimensions used for point/element
selections and also fixed part of the problem with scalar dataspaces being
written/read from the file.
1998-07-15 16:23:25 -05:00
Quincey Koziol
13834c0d94 [svn-r490] Changed more API functions to the new names as documented. 1998-07-14 16:14:22 -05:00
Quincey Koziol
a67faf3172 [svn-r458] Changed H5Sget_npoints call to H5Sextent_npoints and H5Sselect_npoints calls. 1998-07-07 14:10:01 -05:00
Quincey Koziol
0f166ceda6 [svn-r455] Fixed various const and signed/unsigned problems and corrected one incorrect
type.  Should compile much cleaner now.
1998-07-07 11:14:49 -05:00
Quincey Koziol
43f13aeca2 [svn-r451] Completely tore out existing dataspace API and replaced with code to match
API defined in the html/Dataspaces.html document.  This code does not include
support for strides, merging selections, or permutations of coordinates yet,
but it's a drop-in replacement for the existing API with the same features.
1998-07-06 16:01:13 -05:00