Commit Graph

3340 Commits

Author SHA1 Message Date
Quincey Koziol
51b427848d [svn-r6974] Purpose:
Bump version #

Description:
    Bump the version # of the library after creating snapshot for SAF developers
to test with.
2003-06-05 12:44:43 -05:00
Quincey Koziol
2e07d8035f [svn-r6970] Purpose:
Twist code

Description:
    Try to find a happy definition of HSSIZET_MAX, HSSIZET_MIN and HSIZET_MAX
for all platforms.

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    h5committested
2003-06-05 09:53:21 -05:00
Quincey Koziol
6924dc6453 [svn-r6969] Purpose:
Code cleanup

Description:
    Correct a couple of mistakes in error macros.

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    triple check not necesssary.
2003-06-05 09:51:14 -05:00
Quincey Koziol
c508e1ddc4 [svn-r6963] Purpose:
Code cleanup

Description:
    Fix HSIZET_MAX, HSSIZET_MAX and HSSIZET_MIN to work with Windows (hopefully)

Platforms tested:
    h5committested
2003-06-04 15:26:35 -05:00
Quincey Koziol
bdf3620e62 [svn-r6962] Purpose:
Code cleanup

Description:
    Update dependencies and tracing information

Platforms tested:
    h5committested
2003-06-04 15:25:43 -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
a43876da02 [svn-r6958] Purpose:
Code cleanup

Description:
    Move dataspace testing code into separate module to avoid linking it into
user's applications.

Platforms tested:
    FreeBSD 4.8 (sleipnir) w/C++
    FreeBSD 4.8 (sleipnir) w/parallel
    h5committested
2003-06-04 10:47:17 -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
2a7cf2ea94 [svn-r6956] Purpose:
Code cleanup

Description:
    Add another error code...

Platforms tested:
    FreeBSD 4.8 (sleipnir) w/C++
    FreeBSD 4.8 (sleipnir) w/parallel
    h5committested
2003-06-04 10:35:22 -05:00
Quincey Koziol
a3f07ee927 [svn-r6955] Purpose:
Code cleanup

Description:
    Tweak HSIZET_MAX macro and add HSSIZE_MAX and HSSIZET_MIN macros.

Platforms tested:
    FreeBSD 4.8 (sleipnir) w/C++
    FreeBSD 4.8 (sleipnir) w/parallel
    h5committested
2003-06-04 10:33:24 -05:00
Quincey Koziol
d1042619ae [svn-r6952] Purpose:
Code cleanup

Description:
    Move testing routines into their own module, to avoid linking them into
user's applications needlessly.

Platforms tested:
    FreeBSD 4.8 (sleipnir) w/C++
    FreeBSD 4.8 (sleipnir) w/parallel
    h5committested
2003-06-04 10:28:04 -05:00
Quincey Koziol
b56429d086 [svn-r6951] Purpose:
Code cleanup

Description:
    Clean up various warnings & comment out unused code.

Platforms tested:
    FreeBSD 4.8 (sleipnir) w/C++
    FreeBSD 4.8 (sleipnir) w/parallel
    h5committested
2003-06-04 10:25:23 -05:00
Quincey Koziol
bb042d83c7 [svn-r6950] Purpose:
API tweak.

Description:
    The H5Sget_select_bounds() API call was using hsize_t arrays for retrieving
the 'start' and 'end' coordinates, which is counter to the rest of the dataspace
API.

Solution:
    Change the arrays to be hssize_t instead.

Platforms tested:
    FreeBSD 4.8 (sleipnir) w/C++
    FreeBSD 4.8 (sleipnir) w/parallel
    h5committested

Misc. update:
    Updated all docs for this change.

    Added 1.4 compatibility #ifdef's
2003-06-04 10:22:23 -05:00
Quincey Koziol
f04d4aea61 [svn-r6942] Purpose:
Performance improment

Description:
    Speed up chunked dataset I/O.  This breaks down into several areas:
        - Compute chunk selections in the file by using hyperslab operations
            instead of iterating over each element in the selection.
        - If the file and memory selections are the same shape, use the file
            chunk selections to compute the memory chunk selections.

    This required several additional dataspace, dataspace selection and
        hyperslab routines.

Platforms tested:
    h5committestted (although Fortran tests failed for some reason)
2003-05-31 11:26:19 -05:00
Quincey Koziol
119891e4b6 [svn-r6936] Purpose:
Bug fix

Description:
    When free lists where disabled, the macros for array free list operations
could possibly expand in ways that allowed incorrect numbers of objects to be
operated on.

Solution:
    Put parentheses around macro arguments when performing operations with them.

Platforms tested:
    h5committestted (although Fortran tests failed for some reason)
2003-05-31 11:15:19 -05:00
Quincey Koziol
f148235ef3 [svn-r6920] Purpose:
Bug fix

Description:
    (void *)~((size_t)NULL) on the Cray is a different value than
    (foo *)~((size_t)NULL) and causes some of the hyperslab algorithms to
    fail.

Solution:
    Change all the 'void *' forms to 'foo *' forms.

Platforms tested:
    Cray SV1
    h5committest not needed.
2003-05-28 07:38:36 -05:00
Quincey Koziol
d0d12ca2a5 [svn-r6909] Purpose:
Bug fix

Description:
    Correct typo which didn't show up during my previous testing in production
mode.

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    h5committest not necessary.
2003-05-21 15:38:04 -05:00
Quincey Koziol
a46932d679 [svn-r6908] Purpose:
Code cleanup

Description:
    Fix some unused parameter warnings.

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    h5committest not necessary.
2003-05-21 12:15:21 -05:00
Quincey Koziol
2e3cd3e57b [svn-r6907] Purpose:
Bug fix

Description:
    The chunk dataspace selection information for raw data I/O are being leaked.

Solution:
    Free the chunk information during the cleanup code.

Platforms tested:
    Solaris 2.6 (baldric) w/purify
    h5committest not needed.
2003-05-20 15:18:51 -05:00
Elena Pourmal
01f6493cd0 [svn-r6905]
Purpose: Maintenance for the second round of testing

Description: Used bin/h5vers to change version number to 1.5.55

Solution:

Platforms tested: arabica

Misc. update:
2003-05-20 08:44:58 -05:00
Quincey Koziol
2f8c23b903 [svn-r6900] Purpose:
Bug fix

Description:
    Fix three (!) bugs in szip filter:
        - we were using bytes per pixel instead of bits per pixel
        - we were using the size of the slowest changing dimension instead of
            the fastest changing dimension to compute the blocks per scanline
            parameter
        - we swapped two parameters when setting up szip_options block.

Solution:
    Addressed bugs above.

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    h5committest not needed
2003-05-19 14:21:35 -05:00
Quincey Koziol
16b13faaac [svn-r6898] Purpose:
Code cleanup

Description:
    Improve error reporting for pixels per scanline check.

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    h5committest not needed.
2003-05-19 14:18:17 -05:00
Quincey Koziol
ad3ace3d16 [svn-r6891] Purpose:
Bug fix

Description:
    Raw data I/O on chunked datasets would attempt to allocate data structures
proportional to the number of chunks in the dataset on disk, instead of just
the number of chunks that the I/O operation would interact with, causing
operations on datasets with large #'s of chunks to fail (or become very slow),
even though the actual I/O operation was very modest.

Solution:
    This is the "scalability fix" for chunked datasets that I've mentioned
we need to do, althought it's not the complete fix for the issue.  Read on
for the details...
    Only create data structures for the chunks that the I/O operation will
actually act on, reducing the amount of information allocated in memory,
normally.
    I say "normally", because this algorithm has the same problems as the
original algorithm (worse actually, since the data structure for each chunk
is larger now) if _all_ the chunks in a dataset with a lot of chunks are
actually involved in the I/O operation.  If that is the case, this code
will fail in a similar way.
    To truly fix the problem, we would need to only create data structures for
a particular number of chunks, perform the I/O on just those chunks, then
release the data structures for those chunks and create data structures for
the next set of chunks to access, etc.  However, I think this case is pretty
rare right now and we should worry about it after the 1.6.0 release.

Platforms tested:
    h5committested
2003-05-17 16:50:55 -05:00
Quincey Koziol
dddf167923 [svn-r6890] Purpose:
New feature

Description:
    Added "fast comparison" code for hsize_t's, since they are used in th
raw data chunking I/O code now.

Platforms tested:
    h5committested
2003-05-17 16:40:47 -05:00
Quincey Koziol
9aba174ba5 [svn-r6889] Purpose:
Code cleanup

Description:
    Clean up comment

Platforms tested:
    h5committested
2003-05-17 16:37:41 -05:00
Raymond Lu
3edbf40ed2 [svn-r6884] Purpose: bug fix
Description: H5Tget_native_type didn't handle special platform like Cray properly.

Solution: modify algorithm and test

Platforms tested: h5committest
2003-05-16 10:18:10 -05:00
Bill Wendling
f5500a0051 [svn-r6882] Purpose:
Bug Fix

Description:
    The H5HG module had a couple of lines like the following:

        HDmemcpy(foo + 1, foo, size);

    This would overwrite the first character of "foo" for the total of
    "size" bytes.

    The H5Pfapl.c is an update of the trace information.

Solution:
    Use HDmemmove instead. (Suggested by George Lewandowski at Boeing.
    Thanks! :-)


Platforms tested:
    Modi4 (Fortran & Parallel)
    Verbena (Fortran & C++)
    Arabica (Fortran)

Misc. update:
2003-05-15 18:28:15 -05:00
Quincey Koziol
b496ac1482 [svn-r6878] Purpose:
Code cleanup

Description:
    Limit the scope on more function prototypes/macros/typedefs.

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    h5committest not necessary.
2003-05-15 14:22:33 -05:00
Quincey Koziol
a0f76b8768 [svn-r6875] Purpose:
Code cleanup

Description:
    Improve information output from h5debug.

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    h5committest not needed.
2003-05-15 11:17:13 -05:00
Quincey Koziol
c09dbf5185 [svn-r6869] Purpose:
Bug fix.

Description:
    When the same dataset is opened more than once and those references to the
object are left dangling, the library would not correctly shut down the dataset
API, potentially allowing the file to be truncated.

Solution:
    "force" the dataset IDs to be released when the dataset API is being shut
down by the library.

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    h5committested
2003-05-13 15:05:51 -05:00
Quincey Koziol
394656ceba [svn-r6868] Purpose:
Bug fix.

Description:
    If the buffer holding the list of interfaces that are attempting to be
closed down becomes full, the library stops recording that an infinite loop has
occurred when shutting down the interfaces.

Solution:
    Always return the correct "pending" information.

    Also added ellipsis to the string of interfaces to try to make it more
obvious that the buffer became full.

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    h5committested
2003-05-13 15:03:45 -05:00
Quincey Koziol
dedf73d7d2 [svn-r6864] Purpose:
Bug fix

Description:
    Added missing line for file close degree setting for this VFD.

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    h5committested
    (Unfortunately, none of these tests actually exercised this driver... :-(
2003-05-13 14:49:49 -05:00
Quincey Koziol
460a897e0e [svn-r6861] Purpose:
Bug fix

Description:
    Iterating over the attributes of an object without any attributes was
returning FAIL instead of 0 as the RM states.

Solution:
    Changed return value of H5Aiterate for objects without attributes to be 0
and added regression tests for this.

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    h5committest not needed.
2003-05-13 13:54:25 -05:00
Quincey Koziol
51d29f215c [svn-r6860] Purpose:
Small code cleanup

Description:
    Remove redundant sanity check.

    Added a note about a potential bug.

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    h5committest not necessary.
2003-05-13 13:31:57 -05:00
Raymond Lu
27c6327973 [svn-r6857] Purpose: bug fix
Description: when a datatype element size is bigger than I/O datatype
    conversion buffer(1MB), library reports failure.

Solution: adjust conversion buffer to be at least equal to one element size

Platforms tested: h5committest
2003-05-13 11:49:38 -05:00
Bill Wendling
699d1727e0 [svn-r6855] Purpose:
Bug Fix

Description:
    The newly added H5TEST_DLL{VAR} macros weren't defined if it wasn't
    a Windows environment.

Solution:
    "#define" them to "" and "extern" if not a WIN32 environment.

Platforms tested:
    Linux (small change not needing full testing)

Misc. update:
2003-05-13 10:50:31 -05:00
MuQun Yang
f666340233 [svn-r6851] Purpose:
To add macro HDF5TESTDLL for windows libtest library.

Description:
Many HDF5 tests will use h5test.c.
So we create a libtest library to
1) make tests more organized and
2) make tests more consistent with other platforms
3) reduce compiling times
4) reduce dumplicated warnings possibily generated by h5test.c
However, we didn't create the corresponding libtest DLL correctly,
now, some warnings are generated because of this; so for this release,
we follow exactly DLL-DLL rules, to create an internal libtest DLL for
our test suites.
The application who used HDF5DLL will not have extra burdens to add
HDF5TESTDLL and this will reflect in the release.txt


Solution:
USE DLL import and export library by defining macro HDF5TESTDLL and HDF5TESTUSEDLL

Platforms tested:
Windows 2000(the macro will not affect on non-WIN32 platforms).

Misc. update:
2003-05-13 09:26:44 -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
Bill Wendling
6af5ba7c56 [svn-r6841] Purpose:
Bug Fix

Description:
    A variable wasn't declared in this file.

Solution:
    Put the extern declaration of the variable in this file. It's defined
    in the H5S.c module.

Platforms tested:
    Modi4 (This affects only parallel platforms)

Misc. update:
2003-05-08 17:25:08 -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
390f1d0284 [svn-r6837] Purpose:
Code cleanup.

Description:
    Move many package or internal function prototypes and macro definitions
into tighter scope according to their current use.
    Added more comments where appropriate.
    Eliminate ancient, unused functions.
    Added a couple "accessor" functions to get parts of data structures which
were moved out of scope.

Platforms tested:
    h5committested
2003-05-08 15:09:07 -05:00
Quincey Koziol
3fff86acfa [svn-r6836] Purpose:
Bug fix

Description:
    Clean up small memory leak.

Platforms tested:
    h5committested.
2003-05-08 15:05:14 -05:00
Elena Pourmal
df446a46d5 [svn-r6835]
Purpose: Maintenance

Description: I changed release version to 1.5.54.
             Email about tetsing of 1.5.53 will be send after this checkins.

Solution: used bin/h5vers -s to change the version number

Platforms tested: Done on arabica

Misc. update:
2003-05-08 14:14:29 -05:00
Quincey Koziol
646e232a54 [svn-r6832] Purpose:
Code cleanup

Description:
    Improve file format debugging output.

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    Triple check not needed
2003-05-08 12:21:43 -05:00
Quincey Koziol
55dbd8d92a [svn-r6831] Purpose:
Bug fix

Description:
    New external file double-vectorized I/O routines were checking an assertion
on the wrong variable (essentially a typo :-).

Solution:
    Check correct variable.

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    Triple check not needed.
2003-05-08 08:06:15 -05:00
Quincey Koziol
ae1be622b9 [svn-r6830] Purpose:
Bug fix

Description:
    Dataspace selections created for individual chunks during chunk dataset
I/O were leaking memory.

Solution:
    Properly set reference count on selection, so they get free'd when the
dataspace is closed.

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    Triple check not needed.
2003-05-08 08:05:00 -05:00
Quincey Koziol
713754f81f [svn-r6829] Purpose:
Code cleanup.

Description:
    Cleaned up an unusued variable and some commented out code.

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    Triple check not needed.
2003-05-08 08:03:32 -05:00
Raymond Lu
546dea5dd9 [svn-r6828] Purpose: bug fix
Description: H5T_XXX_init_interface calls H5T_init_interface causing
     datatype not closed after file is closed.

Solution: changed H5T_init_interface to H5T_init

Platforms tested: h5committest
2003-05-07 17:30:56 -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
db543f1a23 [svn-r6823] Purpose:
Code Improvements/Bug Fixes

Description:
    Comparison of equality of a double/float variable to 0.0 is not
    guaranteed to work and is bad practice.

    In H5Fcontig.c, a warning was given by a statement like:

        x = (++x) % y;

    This could be confusing to a compiler I suppose.

    In H5RS.c, a typedef of a structure was being tagged by the compiler
    as "useless" because it had the form:

        typedef struct foo {
            int var1;
            /* ... */
        }; /* <--- note no name for this typedef */

    The statement "typedef struct foo foo" is already in the header file.

Solution:
    Test that the absolute value of the variable is < a very small
    positive number.

    Changed "x = (++x) % y" to "++x; x %= y;" instead.

    Removed the "typedef" from the structure in the H5RS.c file.

Platforms tested:
    Modi4   (Parallel & Fortran)
    Verbena (C++ & Fortran)
    Arabica (Fortran)

Misc. update:
2003-05-07 15:52:36 -05:00