Commit Graph

76 Commits

Author SHA1 Message Date
Quincey Koziol
00909f278d [svn-r8901] Purpose:
Bug fix

Description:
    Allow buffer parameter to H5Dread & H5Dwrite to be NULL if there are no
elements to transfer.

Platforms tested:
    FreeBSD 4.10 (sleipnir) w/parallel
    Too minor to require h5committest
2004-07-20 12:11:36 -05:00
Quincey Koziol
987f5d5e4d [svn-r8048] Purpose:
Code cleanup & reorganization

Description:
    Move further in the testing framework cleanup, eliminating all the
global variables (moving them into testframe.c as static variables) from the
testing framework code and moving it into the libh5test.a.

Platforms tested:
    FreeBSD 4.9 (sleipnir) w & w/o thread-safety, c++ & parallel
    h5committested
2004-01-09 20:41:13 -05:00
Quincey Koziol
a8161177b9 [svn-r7943] Purpose:
Bug fix.

Description:
    Using a selection offset with hyperslab selections in chunked datasets
was getting into an infinite loop and hanging the application.

Solution:
    Apply the selection offset to the hyperslab selection properly.

Platforms tested:
    FreeBSD 4.9 (sleipnir) w & w/o parallel
    h5committest
2003-12-13 13:14:36 -05:00
Quincey Koziol
ccb5838240 [svn-r7734] Purpose:
Bug fix

Description:
    Single hyperslab selections (which were set with only one call to
H5Sselect_hyperslab) that had dimensions that could be "flattened" but were
interspersed with dimensions that could not be flattened were not correctly
handled, causing core dumps.

Solution:
    Re-work "flattening" code to handle this case properly.

Platforms tested:
    FreeBSD 4.9 (sleipnir) w/parallel
    h5committest
2003-10-25 11:41:20 -05:00
Quincey Koziol
c6ed9cbbae [svn-r7383] Purpose:
Bug fix

Description:
    I/O on chunked datasets with a scalar dataspace for the memory dataspace
was not working correctly.

Solution:
    Translate the scalar dataspace into a n-dimensional (where n is the number
of dimensions of the file's dataspace) dataspace of dimensions 1x1x1...

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    h5committest (modulo modi4 which is not working correctly)
2003-08-19 07:18:37 -05:00
Quincey Koziol
b0e350c2d6 [svn-r7259] Purpose:
Bug fix

Description:
    I/O on chunked datasets with point selections was not working correctly.

Solution:
    Re-wrote some parts of raw data I/O routines that build the selections for
    each chunk to correctly handle point selections.

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    h5committest
2003-07-23 16:18:40 -05:00
Quincey Koziol
4e23c80758 [svn-r7181] Purpose:
Version update

Description:
    Removed 1.4 compatibility code in the library.

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    h5committest
2003-07-07 14:02:46 -05:00
Quincey Koziol
3fcef502ea [svn-r7001] Purpose:
Code cleanup

Description:
    Reduce warnings when compiled with --enable_hdf5v1_4 compatibility switch.

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    h5committest
2003-06-09 14:16:59 -05:00
Quincey Koziol
ab28d2c820 [svn-r6961] Purpose:
Bug fix

Description:
    An earlier checkin changed some of the assumptions about single block
hyperslabs, causing them to fail in odd ways.

Solution:
    Fix errors with single block hyperslabs by keying off of count==1 instead
of stride==1.

Platforms tested:
    FreeBSD 4.8 (sleipnir) w/parallel
    h5committested
2003-06-04 13:42:20 -05:00
Quincey Koziol
4d8f148d09 [svn-r6957] Purpose:
Code cleanup & performance improvements

Description:
    Optimize hyperslabs that are built to detect situations where "regular"
hyperslabs can be recovered from span tree descriptions.

    Also, improve "same shape" routine to correctly work with all the different
combinations of selections.

Platforms tested:
    FreeBSD 4.8 (sleipnir) w/C++
    FreeBSD 4.8 (sleipnir) w/parallel
    h5committested
2003-06-04 10:45:11 -05:00
Quincey Koziol
862520b80e [svn-r6941] Purpose:
Code cleanup

Description:
    Clean up older settings for strides of hyperslabs

Platforms tested:
    h5committestted (although Fortran tests failed for some reason)
2003-05-31 11:20:03 -05:00
Quincey Koziol
7d9c86097a [svn-r6843] Purpose:
Code cleanup

Description:
    Clean up warnings exposed by compiling on O2K.  Also, revert some of Bill
and my changes to the H5S_mpi_opt_types_g, etc. and settle them back into their
original location.

Platforms tested:
    h5committested.
2003-05-09 13:18:21 -05:00
Raymond Lu
224fae1bb2 [svn-r6839] Purpose: feature protection
Description: H5Sselect_hyperslab and H5Sselect_elements didn't check scalar
    dataspaces.

Solution: put error detection in those functions.

Platforms tested: eirene(simple change).
2003-05-08 16:12:32 -05:00
Quincey Koziol
43e3b45021 [svn-r6825] Purpose:
New feature/enhancement

Description:
    Chunked datasets are handled poorly in several circumstances involving
certain selections and chunks that are too large for the chunk cache and/or
chunks with filters, causing the chunk to be read from disk multiple times.

Solution:
    Rearrange raw data I/O infrastructure to handle chunked datasets in a much
more friendly way by creating a selection in memory and on disk for each chunk
in a chunked dataset and performing all of the I/O on that chunk at one time.

    There are still some scalability (the current code attempts to
create a selection for all the chunks in the dataset, instead of just the
chunks that are accessed, requiring portions of the istore.c and fillval.c
tests to be commented out) and performance issues, but checking this in will
allow the changes to be tested by a much wider audience while I address the
remaining issues.


Platforms tested:
    h5committested, FreeBSD 4.8 (sleipnir) serial & parallel, Linux 2.4 (eirene)
2003-05-07 16:52:24 -05:00
Bill Wendling
44022e598c [svn-r6538] Purpose:
Update

Description:
    Updated the Copyright statement

Platforms tested:
    Linux (This change is only in the comments, so I just check that the
    modules still compile)

Misc. update:
2003-03-31 12:59:04 -05:00
Quincey Koziol
22f38d627e [svn-r6055] Purpose:
New feature

Description:
    Add support for scalar dataspaces in parallel I/O.

Platforms tested:
    Tested h5committest {arabica (fortran), eirene (fortran, C++)
	modi4 (parallel, fortran)}
    Also, FreeBSD 4.7 (sleipnir) serial & parallel
Misc. update:
    Update release_docs/RELEASE for bug fixes, new features, etc.
2002-11-05 11:31:02 -05:00
Quincey Koziol
820f4b6fc6 [svn-r6043] Purpose:
Bug fix

Description:
    I/O using "none" selections in parallel wasn't working correctly.  Also,
    add serial "none" selection test.

Platforms tested:
    Tested h5committest {arabica (fortran), eirene (fortran, C++)
	modi4 (parallel, fortran)}
2002-10-29 14:42:10 -05:00
Quincey Koziol
c968525b29 [svn-r5833] Purpose:
Code cleanup

Description:
    Add a bit more debugging information to one failure mode.

Platforms tested:
    FreeBSD 4.6 (sleipnir)
2002-07-24 13:39:01 -05:00
Quincey Koziol
bdefbb5cba [svn-r5603] Purpose:
Bug fix

Description:
    I/O on "Regular" hyperslab selections could fail to transfer correctly
    if the number of elements in the selection's row did now fit "evenly"
    into the buffer being used for the transfer.

Solution:
    Correct the calculation of the block & count offsets within the optimized
    "regular" hyperslab routines.

Platforms tested:
    FreeBSD 4.5 (sleipnir)
2002-06-12 12:01:01 -05:00
Quincey Koziol
05e8b74a20 [svn-r5290] Purpose:
Bug Fix

Description:
    Corrected int vs. unsigned short error that only showed up on big-endian
    machines.

    Also, add more testing to verify that the coordinates reported for each
    element iterated through with H5Diterate are correct.

Platforms tested:
    FreeBSD 4.5 (sleipnir)
2002-04-30 09:46:18 -05:00
Quincey Koziol
a88d81f4ba [svn-r5286] Purpose:
Bug Fix

Description:
    Selection offsets were not being used correctly when iterating through
    all hyperslabs selections and point selections.

Solution:
    Use the selection offset appropriately.

Platforms tested:
    FreeBSD 4.5 (sleipnir)
2002-04-29 15:27:31 -05:00
Quincey Koziol
1ffe083f61 [svn-r5152] Purpose:
New Feature

Description:
    Added new H5Dfill() routine to fill the elements in a selection for a
    memory buffer with a fill value.  This is a user API wrapper around some
    internal routines which were needed for the fill-value modifications
    from Raymond as well as Pedro's code for reducing the size of a chunked
    dataset.

Platforms tested:
    FreeBSD 4.5 (sleipnir) [and IRIX64 6.5 (modi4) in parallel, in a few
    minutes]
2002-04-09 07:47:34 -05:00
Quincey Koziol
d2232a345f [svn-r5130] Purpose:
Bug Fix & Feature

Description:
    The selection offset was being ignored for optimized hyperslab selection
    I/O operations.

    Additionally, I've found that the restrictions on optimized selection
    I/O operations were too strict and found a way to allow more hyperslabs
    to use the optimized I/O routines.

Solution:
    Incorporate the selection offset into the selection location when performing
    optimized I/O operations.

    Allow optimized I/O on any single hyperslab selection and also allow
    hyperslab operations on chunked datasets.

Platforms tested:
    FreeBSD 4.5 (sleipnir)
2002-04-02 15:51:41 -05:00
Quincey Koziol
e23792a3f0 [svn-r5083] Purpose:
Bug Fix

Description:
    Regression test for following bug:

    When reading a contiguous hyperslab that spanned the entire dataset and
    was larger that the type conversion buffer, the hyperslab routines need
    to fill the type conversion buffer and then return to the I/O routines.

    When the I/O routines resume the hyperslab operation, it was possible to
    have a combination of coordinates which caused the hyperslab iterator
    to incorrectly advance in the file, causing some data to be re-read or
    re-written.

Platforms tested:
    Linux (eirene)
2002-03-26 14:55:44 -05:00
Quincey Koziol
b8dbd390db [svn-r4978] Purpose:
Code cleanup
Description:
    Cleanup compiler warnings found by the SGI compiler and gcc 3.0
Platforms tested:
    FreeBSD 4.5 w/gcc 3.0 (hack) && IRIX64 (modi4)
2002-02-16 21:51:21 -05:00
Quincey Koziol
6de47c9c54 [svn-r4915] Purpose:
Bug fix & feature add
Description:
    Added new API function H5Sget_select_type to determine type of selection in
    a dataspace.  Return values are defined by the H5S_sel_type enumerated type
    in H5Spublic.h

    Also, hyperslab operations involving a "all" or "none" selection are not
    generating the correct resulting selections.

Solution:
    Added regression tests to verify correction operation of hyperslab
    operations against "all" and "none" selections.  New tests also verify
    H5Sget_select_type() API call.

Platforms tested:
    FreeBSD 4.5 (sleipnir)
2002-02-07 11:22:42 -05:00
Quincey Koziol
3baaa562ee [svn-r4693] Purpose:
Bug Fix

Description:
    The code in H5Sselect_hyperslab_valid contained an fencepost error and is
    allowing selections which overlap the extent by exactly one element in any
    dimension to pass as valid instead of flagging the selection as invalid.

    This bug only affects hyperslabs which have been OR'ed together, not the
    selection from a single H5Sselect_hyperslab.

    This fixes bug #550.

Solution:
    Changed an '>' to an '>=' and added new regression test to check for error.

Platforms tested:
    FreeBSD 4.4 (sleipnir)
2001-12-11 13:26:40 -05:00
Quincey Koziol
7a30de3a2b [svn-r4680] Purpose:
Code cleanup
Description:
    Property that H5P(g|s)et_hyper_cache uses is no longer in use inside the
    library.
Solution:
    Removed H5P(g|s)et_hyper_cache API functions, except when backward
    compatibility is turned on.  When backward compatibility is turned on,
    the property is defined by the library, but unused internally.
Platforms tested:
    FreeBSD 4.4 (sleipnir)
2001-12-06 14:05:12 -05:00
Quincey Koziol
a9c747deba [svn-r4669] Purpose:
Backward Compatibility Fix
Description:
    One of H5P[gs]et_cache's parameters changed between v1.4 and the development
    branch.
Solution:
    Added v1.4 compat stuff around H5P[gs]et_cache implementation and testing
    to allow v1.4.x users to continue to use their source code without
    modification.

    These changes are for everything except the FORTRAN wrappers - I spoke with
    Elena and she will make the FORTRAN wrapper changes.
Platforms tested:
    FreeBSD 4.4 (hawkwind)
2001-12-05 11:12:32 -05:00
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
1a65aeeade [svn-r4587] Purpose:
Code speedups, etc.
Description:
    Add tests for new hyperslab API functions (currently ifdef'd out)
Platforms tested:
    FreeBSD 4.4 (hawkwind)
2001-11-02 15:32:11 -05:00
HDF Rational
7e811fe460 [svn-r4528] Purpose:
Code cleanup
Description:
    Purify detected an uninitialized memory read in test data.
Solution:
    Corrected parameters for initializing data array so entire array is
    initialized.
Platforms tested:
    Solaris 2.7 (arabica)
2001-10-05 17:30:27 -05:00
Quincey Koziol
7a96b1a0d2 [svn-r4482] Purpose:
Kludge
Description:
    Since we're only about halfway through converting the internal use of
    property lists from the "old way" to the generic property lists, we turned
    off snapshots to avoid exposing lots of API changes to users, until the
    APIs settled down.

    Getting the snapshots rolling again seems to have become a priority, so
    some changes are going to have to be made now that were going to be
    postponed until we were completely finished with the conversion.  This
    requires that the old API functions be able to deal with both the old
    and new property lists smoothly.

Solution:
    Kludge together the property list code so that they can transparently handle
    dealing with both the old and new property lists

Platforms tested:
    FreeBSD 4.4 (hawkwind)
2001-09-26 15:29:35 -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
d24ae52673 [svn-r4326] Purpose:
Code cleanups, mostly..
Description:
    Work on pacifying the SGI compiler to get the generic properties working
    correctly with --enable-parallel and --enable-fortran.  It's not quite
    fixed yet, but I need to head home and these patches help... :-/
Platforms tested:
    IRIX64 6.5 (modi4)
2001-08-10 17:30:01 -05:00
Quincey Koziol
95862451f7 [svn-r4324] Purpose:
New Features!
Description:
    Start migrating the internal use of property lists in the library from the
    older implementation to the new generic property lists.

    Currently, only the dataset transfer property lists are migrated to the
    new architecture, all the rest of the property list types are still using
    the older architecture.

    Also, the backward compatibility features are not implemented yet, so
    applications which use dataset transfer properties may need to make the
    following changes:
        H5Pcreate(H5P_DATASET_XFER) -> H5Pcreate_list(H5P_DATASET_XFER_NEW)
            and
        H5Pclose(<a dataset transfer property list>) -> H5Pclose_list(id)

    This still may have some bugs in it, especially with Fortran, but I should
    be wrapping up those later today.

Platforms tested:
    FreeBSD 4.4 (hawkwind)
2001-08-10 15:47:05 -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
d41b9fffdf [svn-r4012] Purpose:
Clean up compiler warnings.
Description:
    Just code neatening mostly, some casts, etc.
Platforms tested:
    FreeBSD 4.3 (hawkwind)
2001-06-18 15:22:10 -05:00
Quincey Koziol
b1fa7d9e9e [svn-r4003] Purpose:
Regression check added
Description:
    Added regression check to verify that the array reading code is now working
    correctly for small data transfer buffers.
Platforms tested:
    FreeBSD 4.3 (hawkwind)
2001-06-14 15:12:09 -05:00
Quincey Koziol
a780719ff4 [svn-r3962] Purpose:
Code cleanup
Description:
    Incremented error count when error conditions occur.
Platforms tested:
    FreeBSD 4.3 (hawkwind)
2001-06-05 17:59:47 -05:00
Bill Wendling
bfd983e7f4 [svn-r3770] Purpose:
Update
Description:
    Changed includes of the form:

            #include <hdf5_file.h>

    to

            #include "hdf5_file.h"

    so that gcc can pick them up easier without including the system
    header files since we don't care about them.
Platforms tested:
    Linux
2001-04-03 13:09:16 -05:00
Albert Cheng
cb876a28a1 [svn-r3677] Purpose:
Bug fix (sort of)
Description:
    The RCSID string in H5public.h was causing the C++ code problem as it
    was included multiple times and C++ did not like multiple definitions
    of the same static variable.
Solution:
    Since we don't really make use of the RCSID strings as we have not
    installed it in all source files, we decided to remove it.
Platforms tested:
    eirene (linux), modi4 (IRIX64-64) both serial and parallel modes.
2001-03-20 16:32:24 -05:00
Quincey Koziol
bc3d5215ab [svn-r3480] Purpose:
Bug Fixes
Description:
    Wrote test to exercise hyperslab I/O on chunked datasets where the
    hyperslabs aren't aligned on exact dimension boundaries.
Platforms tested:
    FreeBSD 4.2. (hawkwind)
2001-02-21 16:26:23 -05:00
Quincey Koziol
0059525322 [svn-r3303] Purpose:
Additional testing
Description:
    Added another random hyperslab test with smaller strip-mine buffers to
    force more errors conditions (if they exist).
Platforms tested:
    FreeBSD 4.2 (hawkwind)
2001-01-18 17:02:15 -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
0726621eaa [svn-r3005] Purpose:
Backward compatibility code
Description:
    Add in code to allow the library to emulate the v1.2 API and behavior.
Platforms tested:
    FreeBSD 4.2 (hawkwind)
2000-11-27 18:01:48 -05:00
Quincey Koziol
114ac60d1b [svn-r2708] Purpose:
Add test case for contiguous hyperslabs.
Platforms tested:
    FreeBSD 4.1.1 (hawkwind)
2000-10-19 15:53:07 -05:00
Quincey Koziol
6a3bebec59 [svn-r2545] Updated some printfs to be more informative when failures occur. 2000-09-13 16:58:44 -05:00
Quincey Koziol
ae68f0c63e [svn-r2112] Added random generator of 5-D hyperslabs to tests. 2000-04-11 13:24:08 -05:00
Quincey Koziol
423d36e616 [svn-r2099] Added test to check for correct staggered hyperslab iteration. 2000-04-07 15:40:24 -05:00