610 Commits

Author SHA1 Message Date
Quincey Koziol
1208e94eff [svn-r6296] Purpose:
Code cleanup

Description:
    Reduce warnings on Windows

Platforms tested:
    FreeBSD 4.7 (sleipnir)
2003-01-17 15:34:14 -05:00
Quincey Koziol
8e391ad35a [svn-r6269] Purpose:
Code cleanup

Description:
    Various code cleanups to allow the development branch to be compiled with
    a C++ compiler (i.e. CC=g++ )

Platforms tested:
    Tested h5committest {arabica (fortran), eirene (fortran, C++)
	modi4 (parallel, fortran)}
    FreeBSD 4.7 (sleipnir) C++
2003-01-13 08:15:49 -05:00
Quincey Koziol
0c3c4a158a [svn-r6263] Purpose:
Update test

Description:
    Some of the performance improvements changed the errors that are reported
    for creating a duplicated dataset in a file, causing this test's hard-coded
    errors to check for to fail.

Solution:
    Updated error stack reported for dataset creation failure.

Platforms tested:
    FreeBSD 4.7 (sleipnir) w/threads
2003-01-10 08:17:03 -05:00
Quincey Koziol
98f01e2df2 [svn-r6255] Purpose:
Code cleanup

Description:
    Clean up a few more warnings and update dependencies.

Platforms tested:
    Linux 2.2.18smp (eirene) serial & parallel
2003-01-09 13:40:19 -05:00
Quincey Koziol
9a433b99a5 [svn-r6252] Purpose:
Lots of performance improvements & a couple new internal API interfaces.

Description:
    Performance Improvements:
        - Cached file offset & length sizes in shared file struct, to avoid
            constantly looking them up in the FCPL.
        - Generic property improvements:
            - Added "revision" number to generic property classes to speed
                up comparisons.
            - Changed method of storing properties from using a hash-table
                to the TBBT routines in the library.
            - Share the propery names between classes and the lists derived
                from them.
            - Removed redundant 'def_value' buffer from each property.
            - Switching code to use a "copy on write" strategy for
                properties in each list, where the properties in each list
                are shared with the properties in the class, until a
                property's value is changed in a list.
        - Fixed error in layout code which was allocating too many buffers.
        - Redefined public macros of the form (H5open()/H5check, <variable>)
            internally to only be (<variable>), avoiding innumerable useless
            calls to H5open() and H5check_version().
        - Reuse already zeroed buffers in H5F_contig_fill instead of
            constantly re-zeroing them.
        - Don't write fill values if writing entire dataset.
        - Use gettimeofday() system call instead of time() system when
            checking the modification time of a dataset.
        - Added reference counted string API and use it for tracking the
            names of objects opening in a file (for the ID->name code).
        - Removed redundant H5P_get() calls in B-tree routines.
        - Redefine H5T datatype macros internally to the library, to avoid
            calling H5check redundantly.
        - Keep dataspace information for dataset locally instead of reading
            from disk each time.  Added new module to track open objects
            in a file, to allow this (which will be useful eventually for
            some FPH5 metadata caching issues).
        - Remove H5AC_find macro which was inlining metadata cache lookups,
            and call function instead.
        - Remove redundant memset() calls from H5G_namei() routine.
        - Remove redundant checking of object type when locating objects
            in metadata cache and rely on the address only.
        - Create default dataset object to use when default dataset creation
            property list is used to create datasets, bypassing querying
            for all the property list values.
        - Use default I/O vector size when performing raw data with the
            default dataset transfer property list, instead of querying for
            I/O vector size.
        - Remove H5P_DEFAULT internally to the library, replacing it with
            more specific default property list based on the type of
            property list needed.
        - Remove redundant memset() calls in object header message (H5O*)
            routines.
        - Remove redunant memset() calls in data I/O routines.
        - Split free-list allocation routines into malloc() and calloc()-
            like routines, instead of one combined routine.
        - Remove lots of indirection in H5O*() routines.
        - Simplify metadata cache entry comparison routine (used when
            flushing entire cache out).
        - Only enable metadata cache statistics when H5AC_DEBUG is turned
            on, instead of always tracking them.
        - Simplify address comparison macro (H5F_addr_eq).
        - Remove redundant metadata cache entry protections during dataset
            creation by protecting the object header once and making all
            the modifications necessary for the dataset creation before
            unprotecting it.
        - Reduce # of "number of element in extent" computations performed
            by computing and storing the value during dataspace creation.
        - Simplify checking for group location's file information, when file
            has not been involving in file-mounting operations.
        - Use binary encoding for modification time, instead of ASCII.
        - Hoist H5HL_peek calls (to get information in a local heap)
            out of loops in many group routine.
        - Use static variable for iterators of selections, instead of
            dynamically allocation them each time.
        - Lookup & insert new entries in one step, avoiding traversing
            group's B-tree twice.
        - Fixed memory leak in H5Gget_objname_idx() routine (tangential to
            performance improvements, but fixed along the way).
        - Use free-list for reference counted strings.
        - Don't bother copying object names into cached group entries,
            since they are re-created when an object is opened.

        The benchmark I used to measure these results created several thousand
        small (2K) datasets in a file and wrote out the data for them.  This is
        Elena's "regular.c" benchmark.

        These changes resulted in approximately ~4.3x speedup of the
        development branch when compared to the previous code in the
        development branch and ~1.4x speedup compared to the release
        branch.

        Additionally, these changes reduce the total memory used (code and
        data) by the development branch by ~800KB, bringing the development
        branch back into the same ballpark as the release branch.

        I'll send out a more detailed description of the benchmark results
        as a followup note.

    New internal API routines:
        Added "reference counted strings" API for tracking strings that get
            used by multiple owners without duplicating the strings.
        Added "ternary search tree" API for text->object mappings.

Platforms tested:
    Tested h5committest {arabica (fortran), eirene (fortran, C++)
	modi4 (parallel, fortran)}
    Other platforms/configurations tested?
        FreeBSD 4.7 (sleipnir) serial & parallel
        Solaris 2.6 (baldric) serial
2003-01-09 12:20:03 -05:00
Raymond Lu
b53b6e5668 [svn-r6213]
Purpose:
    bug fix
Description:
    some arrays were too big, running out of memory limit for some machines.
Solution:
    change to dynamic memory allocation.
Platforms tested:
    arabica, sleipnir
2002-12-16 17:49:12 -05:00
Raymond Lu
70862d68a1 [svn-r6207]
Purpose:
    Add more test
Description:
    More tests on nil and zero-sized VL strings.
Platforms tested:
    arabica, eirene
2002-12-16 11:34:27 -05:00
MuQun Yang
764a09dddf [svn-r6203]
Purpose:
bug fixed for windows
Description:
windows fopen functions by default opens a text mode file. It will fail for HDF5 file.
So to use HDopen HDread HDclose for test.
Solution:
Change from fopen, fread, fclose to HDopen, HDread, HDclose.
Platforms tested:
linux2.2.18smp, windows 2000
Misc. update:
    Update MANIFEST if you add or remove any file.
    Update release_docs/RELEASE for bug fixes, new features, etc.
    Update applicable document files too.
2002-12-13 11:29:01 -05:00
Raymond Lu
ae1e58baea [svn-r6201]
Purpose:
    Bug fix(kinda)
Description:
    Windows handle "fopen, fseek, fread, fclose" C functions slightly different.
Solution:
    change to HDopen, HDlseek, HDread, HDclose to cover both Unix and Windows.
Platforms tested:
    arabica
2002-12-12 17:44:56 -05:00
Raymond Lu
6a09c9086b [svn-r6196]
Purpose:
    more tests.
Description:
    a few more test cases.
Platforms tested:
    modi4, eirene, arabica
2002-12-11 11:19:52 -05:00
Quincey Koziol
7662d643fa [svn-r6171] Purpose:
Bug fix

Description:
    Much of the VL-string testing code was recently disabled accidentally.

Solution:
    Re-enable it and add test for writing/reading large string attributes.

Platforms tested:
    FreeBSD 4.7 (sleipnir) - small enough to not need triple-check
2002-12-04 08:04:34 -05:00
Raymond Lu
437dd9be23 [svn-r6145]
Purpose:
    New feature to H5Dget_offset
Description:
    If user block is set, H5Dget_offset should be able to return the absolute
    offset from the beginning of file.
Platforms tested:
    eirene, arabica
2002-12-02 14:47:57 -05:00
Quincey Koziol
4c546d9e6e [svn-r6143] *** empty log message *** 2002-12-02 08:15:36 -05:00
Raymond Lu
8333adf8ff [svn-r6136]
Purpose:
    new functions
Description:
    H5Gget_num_objs, H5Gget_objname_by_idx and H5Gget_objtype_by_idx.
Platforms tested:
    modi4, arabica, eirene
Misc. update:
    RELEASE.txt updated.
2002-11-25 12:59:14 -05:00
Quincey Koziol
bc2d9432b3 [svn-r6131] Purpose:
Code cleanup

Description:
    Clean up compiler warnings from IRIX64 builds.

Platforms tested:
    IRIX64 6.5 (modi4)
2002-11-21 11:23:38 -05:00
Quincey Koziol
f3674477db [svn-r6130] Purpose:
Bug fix.

Description:
    Accomodate 64-bit machines when using 'long' types.

    Clean up a few more warnings.

Platforms tested:
    IRIX64 6.5 (modi4)
2002-11-21 11:22:06 -05:00
Quincey Koziol
c95729c9db [svn-r6129] Purpose:
Enhance test.
Description:
    Expanded the nested compound datatype testing slightly.
Platforms tested:
    FreeBSD 4.7 (sleipnir) - too minor for triple check.
2002-11-20 13:21:41 -05:00
Quincey Koziol
06612f25f9 [svn-r6121] Purpose:
Bug fix

Description:
    Array testing routine is creatint huge arrays on the function stack
    which causes a segmentation fault on Linux & FreeBSD when threadsafe
    support is enabled.

Solution:
    Allocate data for test dynamically instead of automatically.

    In general, this should be the preferred method for all data arrays.

Platforms tested:
    FreeBSD 4.7 (sleipnir) w/threadsafe enabled.
2002-11-20 10:10:34 -05:00
Quincey Koziol
1dd1c78825 [svn-r6117] Purpose:
New files

Description:
    Add test file for "missing filter" test in dsets.c

    Add test file generator code.

Platforms tested:
    Tested h5committest {arabica (fortran), eirene (fortran, C++)
	modi4 (parallel, fortran)}
    FreeBSD 4.7 (sleipnir)
2002-11-20 08:27:30 -05:00
Quincey Koziol
b5e3e19f86 [svn-r6115] Purpose:
Code Cleanup & New Tests

Description:
    tmisc.c:
        Switched from using H5_HAVE_COMPRESSION flag in favor of
        H5_HAVE_FILTER_DEFLATE.

    dsets.c:
        Switched from using H5_HAVE_COMPRESSION flag in favor of
        H5_HAVE_FILTER_DEFLATE.

        Refactored I/O filter tests to allow new filters to be [more] easily
        added.

        Added tests for shuffle & deflate+shuffle I/O filters (if the filter(s)
        are enabled).

        Added test for creating a new dataset with a filter that is not
        available.

        Added test for attempting to read a dataset created with a filter that
        is not available.

Platforms tested:
    Tested h5committest {arabica (fortran), eirene (fortran, C++)
        modi4 (parallel, fortran)}
    FreeBSD 4.7 (sleipnir)
2002-11-20 08:19:37 -05:00
Quincey Koziol
dd5cc739c1 [svn-r6109] *** empty log message *** 2002-11-20 07:52:49 -05:00
Raymond Lu
0105a3b97c [svn-r6099]
Purpose:
    bug fix.
Description:
    h5dump cannot dump data and datatype for VL string.
Platforms tested:
    eirene, arabica
Misc. update:
    MANIFEST, RELEASE.txt
2002-11-18 11:38:11 -05:00
MuQun Yang
8998dd48fd [svn-r6089]
Purpose:
   Add a testing case for shuffling algorithm.
Description:
   A control test:

   Since shuffling 8-bit array should not change the original result; so we use a
   8-bit array to test whether after shuffling the array keeps the same values.
Solution:
Platforms tested:
    eirene,arabica,modi4
Misc. update:
    Update MANIFEST if you add or remove any file.
    Update release_docs/RELEASE for bug fixes, new features, etc.
    Update applicable document files too.
2002-11-13 11:38:43 -05:00
Raymond Lu
2c78145f74 [svn-r6062]
Purpose:
    New function.
Description:
    H5Dget_offset returns the offset of a dataset's data relative to the
    beginning of a file.
Platforms tested:
    arabica(simple function, one test should be enough.)
Misc. update:
    RELEASE.txt
2002-11-07 10:57:53 -05:00
Raymond Lu
a9dea215ed [svn-r6060]
Purpose:
    Add new functions
Description:
    add H5Tget_native_type and H5Tis_variable_str.
Platforms tested:
    arabica, eirene, modi4
Misc. update:
    MANIFEST and release_docs/RELEASE updated.
2002-11-06 16:08:45 -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
Raymond Lu
3ed57b880a [svn-r6054]
Purpose:
    Makefile update
Description:
    Update Makefile.in to handle more output file for cleanup
Platforms tested:
    arabica
2002-11-05 11:28:58 -05:00
Albert Cheng
23457df13d [svn-r6046] Purpose:
Improvement
Description:
    fillval will fail to find the pre-exist data file if it is run
    in --srcdir mode without setting $srcdir properly.  This is
    setup properly in the Makefile but unsuspecting users trying just
    ./fillval were puzzled by the failure.
Solution:
    put in a more descriptive error message with a possible remedy.
Platforms tested:
    Modi4 only since this is just adding a printf statment.
2002-10-31 08:40:24 -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
Raymond Lu
67a679af07 [svn-r6041]
Purpose:
    Bug fix
Description:
    #340 - get comment length for H5G;
    #435 - H5Aget_storage_size;
    #644 - H5Arename
Platforms tested:
    eirene, arabica
2002-10-29 11:37:49 -05:00
Quincey Koziol
3ae4d7e8b6 [svn-r5996] Purpose:
Code cleanup/Bug Fix

Description:
    Added 10-20 more test cases to the ID->name code.  Things seem more stable
    now.

Platforms tested:
    FreeBSD 4.6 (sleipnir) w and w/o parallel
    Linux 2.2.x (eirene) w/FORTRAN & C++
    Solaris 2.7 (arabica) w/FORTRAN
    IRIX64 6.5 (modi4) w/FORTRAN & parallel
2002-10-14 15:08:57 -05:00
Quincey Koziol
92cfe70bb6 [svn-r5994] Purpose:
New test

Description:
    Add test to check for correct generic property class reference counting.

Platforms tested:
    FreeBSD 4.6 (sleipnir) w and w/o parallel
    Linux 2.2.x (eirene) w/FORTRAN & C++
    Solaris 2.7 (arabica) w/FORTRAN
    IRIX64 6.5 (modi4) w/FORTRAN & parallel
2002-10-14 14:59:00 -05:00
Quincey Koziol
4629204d86 [svn-r5991] Purpose:
New feature

Description:
    If backing store for a core VFD file is turned on, remove the file created.

Platforms tested:
    FreeBSD 4.6 (sleipnir) w and w/o parallel
    Linux 2.2.x (eirene) w/FORTRAN & C++
    Solaris 2.7 (arabica) w/FORTRAN
    IRIX64 6.5 (modi4) w/FORTRAN & parallel
2002-10-14 14:48:01 -05:00
Quincey Koziol
cc1502af9c [svn-r5990] Purpose:
Code cleanup

Description:
    Clean up some compile warnings and have these tests create their data files
    with the correct file drivers and directories, etc.

Platforms tested:
    FreeBSD 4.6 (sleipnir) w and w/o parallel
    Linux 2.2.x (eirene) w/FORTRAN & C++
    Solaris 2.7 (arabica) w/FORTRAN
    IRIX64 6.5 (modi4) w/FORTRAN & parallel
2002-10-14 14:46:13 -05:00
Quincey Koziol
a47135b29e [svn-r5989] Purpose:
Code cleanup

Description:
    Added more test datafiles to clean directive.

Platforms tested:
    FreeBSD 4.6 (sleipnir) w and w/o parallel
    Linux 2.2.x (eirene) w/FORTRAN & C++
    Solaris 2.7 (arabica) w/FORTRAN
    IRIX64 6.5 (modi4) w/FORTRAN & parallel
2002-10-14 14:42:27 -05:00
Quincey Koziol
ea08053e29 [svn-r5983] Purpose:
More fixups to the Dependencies files...
2002-10-14 13:11:12 -05:00
Quincey Koziol
a83585acca [svn-r5981] Purpose:
Regenerate Dependencies files.
2002-10-14 09:58:25 -05:00
Quincey Koziol
ec65ddbef6 [svn-r5964] Purpose:
Internal feature.

Description:
    To complement the "get the class's path" functionality, there needs to be
    a way to open a generic property class with a path.

Solution:
    Implement the "open a class by path" functionality.  Also, add internal
    testing routines.

Platforms tested:
    FreeBSD 4.6 (sleipnir) (too small for triple testing)
2002-10-08 12:16:07 -05:00
Quincey Koziol
7e5d420349 [svn-r5963] Purpose:
New internal feature.
Description:
    Need some way to determine the "full path" for a generic property class,
    i.e. where is this class in the class hierarchy, in relation to its parent
    class, etc.
Solution:
    Added an internal function "H5P_get_class_path" and a testing function
    "H5Pget_class_path_test" that builds the full path of a generic property
    class back to the top of its class hierarchy.

    This implementation uses '/' characters to delimit the components of the
    class path, but no special cases are currently supported for having a '/'
    character as part of the actual class name.  Should this become an issue,
    code to support (and test) it will need to be added.

Platforms tested:
    FreeBSD 4.6 (sleipnir) (not major enough to justify triple-test)
2002-10-08 09:08:10 -05:00
Quincey Koziol
f2d67b4864 [svn-r5962] Purpose:
Bug fix
Description:
    H5Pequal's algorithm for comparing property lists wasn't allowing property
    lists that are equal but had the properties inserted in a different order
    in the list's hash table.
Solution:
    Re-did the algorithm a bit to compare the properties better.
Platforms tested:
    FreeBSD 4.6 (sleipnir) (minor enough to not need triple testing)
2002-10-07 12:55:55 -05:00
Raymond Lu
09325c1da6 [svn-r5955]
Purpose:
    a bug fix
Description:
    modify the condition check for the file close degree.
Platforms tested:
    Linux 2.2(eirene), Solaris 2.7(arabica), IRIX64 6.5(modi4)
2002-10-01 09:35:01 -05:00
Raymond Lu
8410a85365 [svn-r5954]
Purpose:
     a bug fix
Description:
    When a file is opened for a second time, file close degree is supposed to
    be either the same as the first open, or default as the first open is also
    default.
Platforms tested:
    Linux 2.2(eirene), Solaris 2.7(arabica), IRIX64 6.5(modi4)
2002-09-30 16:51:05 -05:00
Raymond Lu
ff7f80c383 [svn-r5952]
Purpose:
    Testing program for new APIs.
Description:
    Added API functions to return pointer to low-level file handle
    (H5Fget_vfd_handle and H5FDget_vfd_handle) and related property list
    setting functions(H5Pset_family_offset and H5Pset_multi_type).
Platforms tested:
    Linux 2.2(eirene), Solaris 2.7(arabica), IRIX64 6.5(modi4)
2002-09-30 11:33:52 -05:00
Raymond Lu
d1e26ae328 [svn-r5951]
Purpose:
    New API functions
Description:
    Added API functions to return pointer to low-level file handle
    (H5Fget_vfd_handle and H5FDget_vfd_handle) and related property list
    setting functions(H5Pset_family_offset and H5Pset_multi_type).
Platforms tested:
    Linux 2.2(eirene), Solaris 2.7(arabica), IRIX64 6.5(modi4)
2002-09-30 11:31:55 -05:00
Quincey Koziol
12e30dc9b2 [svn-r5947] Purpose:
Code cleanup

Description:
    Clean up ID->name code:
        - Reformat to better match library coding standard
        - Changed several algorithms to be more efficient
        - Integrated into library more smoothly

Platforms tested:
    eirene w/FORTRAN & C++
    arabica w/FORTRAN
    modi4 w/FORTRAN & parallel
    sleipnir
2002-09-25 09:50:49 -05:00
Pedro Vicente Nunes
2aca3b77d6 [svn-r5929]
Purpose:
    bug fix
Description:
    memory leak regarding the ID to name buffer
Solution:
    added a new function H5G_free_ent_name that is called on several places of the library
Platforms tested:
 windows 2000
 linux, with cpp
 solaris, with fortran, cpp
 irix64, with parallel, fortran
2002-09-18 10:51:29 -05:00
Quincey Koziol
12f8879c40 [svn-r5926] Purpose:
API name change

Description:
    Change all "space time" references to "alloc time", including API functions
    and macro definitions, etc.

Platforms tested:
    FreeBSD 4.6 (sleipnir) w/C++
    Solaris 2.7 (arabica) w/FORTRAN
    IRIX64 6.5 (modi4) w/parallel & FORTRAN
2002-09-13 11:57:46 -05:00
Pedro Vicente Nunes
7bff4eb559 [svn-r5904]
Purpose:
    Added 'ID to name' support
Description:

    There is a new API function H5Iget_name
    Most of the changes are on H5G.c , regarding the symbol table entry struct H5G_entry_t
    which has 2 new fields 'name' and 'old_name'

    A new private function was introduced H5G_ent_copy, that does a deep copy
    between 2 symbol table entries

    The test file is getname.c


Platforms tested:
    windows 2000, Linux, Solaris
2002-08-28 13:34:12 -05:00
Quincey Koziol
c2869d6a57 [svn-r5895] Purpose:
Code cleanup/More tests

Description:
    Cleaned up some compiler warnings and wrote additional tests for space
    allocation and storage size routines.

Platforms tested:
    FreeBSD 4.6 (sleipnir) w/serial & parallel.  Will be testing on IRIX64
    6.5 (modi4) in serial & parallel shortly.
2002-08-27 08:42:22 -05:00
Raymond Lu
d85657351a [svn-r5893]
Purpose:
    bug fix
Description:
    The H5Dget_storage_size test doesn't handle the situation when no
    compression is configured.
Platforms tested:
    IRIX 6.5
2002-08-26 16:01:42 -05:00