Commit Graph

423 Commits

Author SHA1 Message Date
Quincey Koziol
9b68e8e927 [svn-r10620] Purpose:
Bug fix

Description:
    Opening a dataset (or named datatype) with "." for the name and using a
group ID for the location ID was not returning an error value.

Solution:
    Check the type of the object before attempting to open it (internally,
using a group ID and "." for the name maps to the group object).

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Solaris 2.9 (shanti)
    Too minor to require h5committest
2005-04-16 11:22:16 -05:00
Quincey Koziol
9dad79e3f8 [svn-r10238] Purpose:
Optimization

Description:
    Speed up I/O on enumerated datatypes (including those nested in compound
datatypes, arrays, etc.) if the destination datatype is a proper superset of
the source datatype.

Solution:
    Detect the situation and treat as no-op datatype conversion.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Too minor to require h5committest
2005-03-19 20:32:35 -05:00
Quincey Koziol
83cbb092ed [svn-r10147] Purpose:
Bug fix

Description:
    Filter callback routines were being called with memory "version" of disk
datatype (don't ask... :-), which could result in incorrect calculations in
the filter callbacks.

Solution:
    Rearrange code to call the filter callbacks after the final disk "version"
of the disk datatype has been created.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Too minor to require h5committest
2005-03-04 16:31:25 -05:00
Elena Pourmal
c1df1b3ea4 [svn-r9857] Purpose: Maintenance
Description: Removed PABLO from the source

Solution:

Platforms tested: arabica with 64-bit, copper with parallel,
                  heping with GNU C and C++ and PGI fortran (but
                  I disabled hl, there is some weird problem only
                  on heping: F9XMODFLAG is not
                  propagated to the Makefile files

Misc. update:
2005-01-21 20:16:57 -05:00
Quincey Koziol
427ff7da28 [svn-r9727] Purpose:
Bug Fix/Code Cleanup/Doc Cleanup/Optimization/Branch Sync :-)

Description:
    Generally speaking, this is the "signed->unsigned" change to selections.
However, in the process of merging code back, things got stickier and stickier
until I ended up doing a big "sync the two branches up" operation.  So... I
brought back all the "infrastructure" fixes from the development branch to the
release branch (which I think were actually making some improvement in
performance) as well as fixed several bugs which had been fixed in one branch,
but not the other.

    I've also tagged the repository before making this checkin with the label
"before_signed_unsigned_changes".

Platforms tested:
    FreeBSD 4.10 (sleipnir) w/parallel & fphdf5
    FreeBSD 4.10 (sleipnir) w/threadsafe
    FreeBSD 4.10 (sleipnir) w/backward compatibility
    Solaris 2.7 (arabica) w/"purify options"
    Solaris 2.8 (sol) w/FORTRAN & C++
    AIX 5.x (copper) w/parallel & FORTRAN
    IRIX64 6.5 (modi4) w/FORTRAN
    Linux 2.4 (heping) w/FORTRAN & C++


Misc. update:
2004-12-29 09:26:20 -05:00
Quincey Koziol
0535c9b048 [svn-r9563] Purpose:
Code optimization

Description:
    Change how default allocation time is handled internally to the library,
to avoid some performance issues with property lists.

Platforms tested:
    FreeBSD 4.10 (sleipnir) w/parallel
    Solaris 2.7 (arabica)
    Too minor to require h5committest
2004-11-23 14:48:10 -05:00
Quincey Koziol
35ffb5bd13 [svn-r9556] Purpose:
Code cleanup & optimization

Description:
    Improve ADF/CGNS benchmark by reducing the number of internal attribute
copies made during creations, opens and writes.

    Added new H5O_iterate() routine for iterating through messages of a certain
type in the object header (attributes are the only message currently that can
have multiple instances in the object header).

    Cross-pollinated various minor code cleanups to reduce diffs between
branches.


Platforms tested:
    FreeBSD 4.10 (sleipnir) w/parallel
    Solaris 2.7 (arabica)
    Too minor to require h5committest
2004-11-22 12:14:11 -05:00
Quincey Koziol
74a448d084 [svn-r9358] Purpose:
Bug fix

Description:
    Relax restrictions on parallel I/O to allow compressed, chunked datasets
to be read in parallel (collective access will be degraded to independent
access, but will retrieve the information still).

Platforms tested:
    FreeBSD 4.10 (sleipnir) w/parallel
    Solaris 2.7 (arabica)
    IRIX64 6.5 (modi4)
    h5committest
2004-10-04 15:29:31 -05:00
Quincey Koziol
7af838b69c [svn-r9354] Purpose:
Bug fix & code cleanup

Description:
    More dataset cleanups to get to a point where we can fix the chunked I/O
bug.

    Also fix a couple of errors in the recent file object resurrection changes
which should hopefully address the recent daily test failres (H5T.c)

Platforms tested:
    FreeBSD 4.10 (sleipnir) w/parallel
    Solaris 2.7 (arabica)
    h5committest
2004-10-01 18:00:42 -05:00
Quincey Koziol
7d457ba693 [svn-r9342] Purpose:
Bug fix/code cleanup

Description:
    Clean up raw data I/O code to bundle the I/O parameters (dataset, DXPL ID,
etc) into a single struct to pass around through the dataset I/O routines,
since they are always passed together, until very near the bottom of the I/O
stack.

Platforms tested:
    FreeBSD 4.10 (sleipnir) w/parallel
    Solaris 2.7 (arabica)
    IRIX64 6.5 (modi4)
    h5committest
2004-09-29 22:46:58 -05:00
James Laird
5c0011a713 [svn-r9329]
Purpose:
Feature

Description:
Datatypes and groups now use H5FO "file object" code that was previously
only used by datasets.  These objects will hold a file open if the file
is closed but they have not yet been closed.  If these objects are unlinked
then relinked, they will not be destroyed.  If they are opened twice (even
by two different names), both IDs will "see" changes made to the object
using the other ID.
When an object is opened using two different names (e.g., if a dataset was
opened under one name, then mounted and opened under its new name), calling
H5Iget_name() on a given hid_t will return the name used to open that hid_t,
not the current name of the object (this is a feature, and a change from the
previous behavior of datasets).

Solution:
Used H5FO code that was already in place for datasets.  Broke H5D_t's, H5T_t's,
and H5G_t's into a "shared" struct and a private struct.  The shared structs
(H5D_shared_t, etc.) hold the object's information and are used by all IDs
that point to a given object in the file.  The private structs are pointed
to by the hid_t and contain the object's group entry information (including its
name) and a pointer to the shared struct for that object.
This changed the naming of structs throughout the library (e.g., datatype->size
is now datatype->shared->size).  I added an updated H5Tinit.c to windows.zip.

Platforms tested:
Visual Studio 7, sleipnir, arabica, verbena

Misc. update:
2004-09-28 14:04:19 -05:00
Raymond Lu
cb7f03a26f [svn-r9183] Purpose: New feature
Description:  Restore 6 old error API functions back to the library to be backward
compatible with v1.6.  They are H5Epush, H5Eprint, H5Ewalk, H5Eclear, H5Eset_auto,
H5Eget_auto.  These functions do not have error stack  as parameter.

Solution:  Internally, these functions use default error stack.

Platforms tested:  h5committest and fuss.

Misc. update: RELEASE.txt
2004-09-01 12:43:30 -05:00
Quincey Koziol
2d3c6215f2 [svn-r9101] Purpose:
Bug fix

Description:
    1 - Dataset contiguous storage cache information had a bug where it was
possible to try to access invalid cache information if the cache wasn't filled
the first time it attempted to loop through the list of offset/length vectors.

    2 - Additionally, the contiguous storage cache information was being used
in certain circumstances from the chunked dataset I/O code path, which was
generally fatal since the chunk storage and contiguous storage information
were stored together in a union.


Solution:
    1 - Avoid special case of first trip through loop over offset/length
I/O vectors and always check for the contiguous storage sieve buffer buffer
being NULL.

    2 - Change the union containing the chunk and contiguous storage cache
information into a struct, allowing both to be used at the same time.


Platforms tested:
    FreeBSD 4.10 (sleipnir)
    h5committested
2004-08-17 02:30:18 -05:00
Quincey Koziol
daa96590d3 [svn-r8987] Purpose:
Code cleanup

Description:
    Fix another batch of minor differences between the development and release
branches.

Platforms tested:
    FreeBSD 4.10 (sleipnir) w/parallel
    Too minor to require h5committest
2004-08-02 12:51:50 -05:00
James Laird
5a19f181b3 [svn-r8953]
Purpose:
Bug fix

Description:
When a simple dataspace is created, its extent should be set before using it,
or it will silently function as a NULL dataspace.

Solution:
Added checks on user-supplied dataspaces.  Now dataspaces without extents set
will throw errors; users must explicitly set a dataspace to be NULL.

Platforms tested:
sleipnir, windows
2004-07-27 11:55:19 -05:00
Quincey Koziol
7cac82cf68 [svn-r8801] Purpose:
Code optimization

Description:
    Set up datatype ID for dataset's datatype on disk.  This allows us to avoid
repeatedly copying the datatype when an ID is needed.

    Also, clean up a few warnings in various other places.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.10 (sleipnir) w/parallel
    Too minor to require h5committest
2004-07-03 15:03:09 -05:00
James Laird
eab58732d8 [svn-r8781]
Purpose:
HDF5 now supports SZIP with no encoder.

Description:
SZIP can be configured to have both encoder and decoder or just to have the decoder.  HDF5 can now query the configuration of any filter, and will throw errors if users try to write using a filter with encoding disabled.

Solution:
Added H5Zget_filter_info function, changed API for H5Pget_filter and H5P_get_filter_by_id.  See SZIP RFC.

Platforms tested:
Copper (fortran, C++, parallel), Sleipnir (C++), Arabica (fortran, C++), Verbena (fortran, C++)

Misc. update:
2004-07-01 12:38:04 -05:00
Quincey Koziol
6fc0bffac6 [svn-r8732] Purpose:
Code cleanup

Description:
    Reduce compiler warnings on SGI IRIX

Platforms tested:
    FreeBSD 4.10 (sleipnir)
    SGI IRIX6 (Cheryl's machine)
    Too minor to require full h5committest
2004-06-23 12:56:57 -05:00
Quincey Koziol
7c3df64cc4 [svn-r8731] Purpose:
Code cleanup & minor optimization

Description:
    Re-work the way interface initialization routines are specified in the
library to avoid the overhead of checking for them in routines where there is
no interface initialization routine.  This cleans up warnings with gcc 3.4,
reduces the library binary size a bit (about 2-3%) and should speedup the
library's execution slightly.

Platforms tested:
    FreeBSD 4.10 (sleipnir) w/gcc34
    h5committest
2004-06-23 10:36:35 -05:00
James Laird
f249eed71d [svn-r8707] Changed the way HDF5 handles hid_t's and added API functions to allow users to register IDs and ID types at runtime. 2004-06-18 11:56:04 -05:00
Quincey Koziol
7c18329abe [svn-r8692] Purpose:
Code optimization

Description:
    Avoid making copy of default vlen allocation info when default DXPL is
used.  Just retarget pointer to point to default info directly.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.10 (sleipnir) w/parallel
    Too minor to require h5committest
2004-06-15 11:02:44 -05:00
Quincey Koziol
fabb5167ba [svn-r8686] Purpose:
Code optimization

Description:
    Eliminate memcpy() when using default DXPL by pointing at existing
default object, instead of copying it.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.10 (sleipnir) w/parallel
    Too minor to require h5committest
2004-06-14 15:39:08 -05:00
Quincey Koziol
925f2ba710 [svn-r8673] Purpose:
Code optimization

Description:
    Revised dataspace selections to use a more "object oriented" mechanism
to set the function pointers for each selection and selection iterator.  This
reduces the amount and number of times that dataspace selection info has to
be copied.

    Additionally, change hyperslab selection information to be dynamically
allocated instead of an inline struct.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.10 (sleipnir) w/parallel
    Too minor to require h5committest
2004-06-13 14:08:17 -05:00
Quincey Koziol
339a81a766 [svn-r8613] Purpose:
Refactor code

Description:
    Move chunk and contiguous cached raw data from file information to dataset
information.  This simplifies a number of internal interfaces, aligns the
code with it's purpose better and should allow more optimizations to the
chunked data I/O performance.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.10 (sleipnir)
    h5committest

Misc. update:
2004-06-05 14:04:49 -05:00
Quincey Koziol
1ec351813b [svn-r8600] Purpose:
Code optimization

Description:
    Don't recompute the internal index value for looking up the chunk in the
hash table, just use the value already computed from iterating through the
chunks.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.9 (sleipnir) w/parallel
2004-05-31 14:59:59 -05:00
Quincey Koziol
2ce06c3912 [svn-r8590] Purpose:
Code optimization & bug fix

Description:
    When dimension information is being stored in the storage layout message
on disk, it is stored as 32-bit quantities, possibly truncating the dimension
information, if a dimension is greater than 32-bits in size.

Solution:
    Fix the storage layout message problem by revising file format to not store
dimension information, since it is already available in the dataspace.

    Also revise the storage layout data structures to be more compartmentalized
for the information for contiguous, chunked and compact storage.

Platforms tested:
    FreeBSD 4.9 (sleipnir) w/parallel
    Solaris 2.7 (arabica)
    h5committest
2004-05-27 15:24:08 -05:00
Quincey Koziol
910e19c646 [svn-r8544] Purpose:
Code optimization

Description:
    Expand the use of macros to inline trivial function pointer lookup and
calls to reduce the overall number of functions invoked during normal operation
of the library.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.9 (sleipnir) w/parallel
    Too minor to require h5committest
2004-05-20 10:32:09 -05:00
Quincey Koziol
0f805b3aa5 [svn-r8496] Purpose:
Code optimization

Description:
    Further reduce the number of copies we make of a hyperslab selection for
chunked I/O, especially when we are only going to throw the old selection away
for a new one.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.9 (sleipnir) w/parallel
2004-05-08 14:09:50 -05:00
Leon Arber
1867c05efb [svn-r8488] Purpose:
Bug fix.

Description:
Fixed handling of trivial data transform expressions (like 5/3 + 3) and some
data coversion fixes.  Also added more tests to dtransform.c

Solution:
Added some more checks in the H5Z_xform_reduce_tree function to see if perhaps
the transform expression is complicated and is a non-trivial reduction.
Added tests for data conversion to dtransform as well as tests for a trivial
data transform expression.

Platforms tested:
h5committest'ed, except used arabica instead of sol and didn't do on copper
b/c no logon there. Problem noted with mtime test...doesn't appear to be
related to anything having to do with data transforms.
2004-05-06 17:44:38 -05:00
Quincey Koziol
7f99a80b0a [svn-r8482] Purpose:
Code cleanup

Description:
    Refactored data transform code to reduce amount of symbols in the global
scope and also cleaned up & simplified the code a bit.

Platforms tested:
    h5committest (minus copper, plus serial modi4)
    FreeBSD 4.9 (sleipnir) w & w/o parallel
2004-05-05 14:29:09 -05:00
Albert Cheng
0c6229a68d [svn-r8479] Purpose:
New Feature

Description:
Add the data transform function, H5Pset_transform().

Platforms tested:
"h5committested".
Copper was down.  Ran parallel tests in sol instead.

Misc. update:
2004-05-03 18:34:42 -05:00
Quincey Koziol
4f0b880861 [svn-r8456] Purpose:
Code optimization

Description:
    Eliminate more 64-bit multiplies by remebering the size of contiguous
datasets as well as chunked datasets.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.9 (sleipnir)
    too minor to require h5committest
2004-04-30 22:29:00 -05:00
Raymond Lu
b3d2f04490 [svn-r8424] *** empty log message *** 2004-04-27 14:16:54 -05:00
Quincey Koziol
880d8357bf [svn-r8376] Purpose:
Code cleanup

Description:
    Update null dataspace changes to try to write older version of dataspace
information whenever possible.

    Refactor common code to only one location.

    Allow I/O operations to succeed on null dataspaces.


Platforms tested:
    FreeBSD 4.9 (sleipnir)
    h5committest
2004-04-17 15:31:50 -05:00
Quincey Koziol
42e2d9dd37 [svn-r8316] Purpose:
Code optimization

Description:
    Query the dataset creation and transfer properties less often.

Platforms tested:
    Solaris 2.7 (arabica)
    h5committested
2004-04-07 13:16:22 -05:00
Raymond Lu
be7efff2b7 [svn-r8314] Purpose: Progressive check-in
Description:  NULL dataspace.  This step is mainly for dataspace header
message and a test.

Solution:  The test mainly checks NULL dataspace features.  Backward compatibility
is tested in the fill value test.

Platforms tested: h5committest
2004-04-06 15:08:20 -05:00
Quincey Koziol
394dace97b [svn-r8303] Purpose:
Code optimization

Description:
    Compute the size of a chunk once, when the layout information is set,
instead of each time I/O is performed on the chunk.

Platforms tested:
    h5committest
    Solaris 2.7 (arabica)
2004-04-06 08:37:18 -05:00
Raymond Lu
370a4f930f [svn-r8276] *** empty log message *** 2004-03-24 16:03:52 -05:00
Quincey Koziol
d8cfeadd90 [svn-r8158] Purpose:
Code cleanup/optimization

Description:
    Query property list values once, at the beginning of the I/O routines,
instead of querying the property list values multiple (lots!) of times in
lower level routines.

Solution:
    Create "property list caches" for internal library queries of the property
list values.

Platforms tested:
    IBM p690 (copper) w/parallel & fphdf5
    h5committest
2004-02-06 10:34:01 -05:00
Quincey Koziol
327608ada8 [svn-r8127] Purpose:
Bug fix

Description:
    Fix a couple of bugaboos in the serial build that crept in

Platforms tested:
    FreeBSD 4.9 (sleipnir)
    too minor to require h5committest
2004-01-30 21:16:27 -05:00
Quincey Koziol
618e7e7fbb [svn-r8082] Purpose:
Bug fix

Description:
    Tweak address comparison of external file list's heap address a bit to
pacify Windows.

Platforms tested:
    FreeBSD 4.9 (sleipnir)
    Asking Pedro to test on Windows
    Too minor to require h5committest
2004-01-19 15:59:44 -05:00
Quincey Koziol
727f26263f [svn-r8057] Purpose:
Bug fix

Description:
    Plug another small memory leak for fill-values.

Platforms tested:
    FreeBSD 4.9 (sleipnir)
    too minor to require h5committest
2004-01-13 13:56:32 -05:00
Quincey Koziol
feaa5bb9d5 [svn-r8038] Purpose:
Bug fix

Description:
    When two property lists are compared, the H5Pequal routine was just
comparing the raw information for the property values.  This causes problems
when the raw information contains pointers to other information.

Solution:
    Allow a 'compare' callback to be registered for properties, so that a user
application get perform the comparison itself, allowing for "deep" compares of
the property value.
    This was exported to the H5Pregister & H5Pinsert routines in the development
branch, but not the release branch.

Platforms tested:
    FreeBSD 4.9 (sleipnir)
    h5committest
2004-01-08 09:55:11 -05:00
Quincey Koziol
ab9a8af778 [svn-r8026] Purpose:
Bug fix

Description:
    Fix small memory leak of fill-value information inside the library.

Solution:
    "reset" the fill-value object header message, so that the internal buffer
gets freed.

Platforms tested:
    FreeBSD 4.9 (sleipnir)
    too minor to require h5committest
2004-01-06 13:44:34 -05:00
Quincey Koziol
31431be374 [svn-r7917] Purpose:
Code cleanup

Description:
    Clean up compiler warnings, especially the 'FUNC' variable not used which
comes out in production mode.

Solution:
    Had to add a new FUNC_ENTER_NOAPI_NOINIT_NOFUNC macro for those non-API
functions which don't need the 'FUNC' variable defined.  (This will be _so_
much easier when C99 is standard on all our supposed platforms, since it has a
__FUNC__ macro... )

Platforms tested:
    FreeBSD 4.9 (sleipnir)
    too minor for h5committest (although there were lots of files changed, the
        change was minor in each one)
2003-12-06 15:38:31 -05:00
Quincey Koziol
0497e80b50 [svn-r7829] Purpose:
Bug fix & code cleanup

Description:
    Allowing the library to call malloc with a size of 0 bytes causes problems
for some users, so we check for allocations of 0 bytes and disallow them now.

    Cleaned up some code which could call malloc with 0 size.

    Changed some code calling HDmalloc directly to call H5MM_malloc(), which
allows us to check for 0 sized allocations.

Platforms tested:
    FreeBSD 4.9 (sleipnir)
    too minor to require h5committest
2003-11-08 10:32:53 -05:00
Quincey Koziol
d0be702428 [svn-r7725] Purpose:
Code cleanup

Description:
    Refactored handlier of VFL drivers in file access and data transfer property
lists in order to simplify and unify the code dealing with them.

Platforms tested:
    FreeBSD 4.9 (sleipnir)
    too minor to require h5committest
2003-10-24 14:39:23 -05:00
Quincey Koziol
e2518919c9 [svn-r7626] Purpose:
Update dependencies and tracing information

Platforms tested:
    Linux 2.4 (verbena) w/FORTRAN
    too minor for h5committest
2003-10-14 10:46:38 -05:00
Quincey Koziol
3752177106 [svn-r7498] Purpose:
Code cleanup

Description:
    Clean up various warnings and parameter mis-matches, etc.

Platforms tested:
    FreeBSD 4.9 (sleipnir)
    too minor to need h5committest
2003-09-19 15:13:47 -05:00
Bill Wendling
ce5a4cf6f3 [svn-r7495] Purpose:
Removed Dead Code

Description:
    Some of the FPHDF5 code was dead (I thought it'd be useful at one
    point, but was wrong).

Solution:
    Removed

Platforms tested:
    Linux (FPHDF5 specific. No need for h5committest)

Misc. update:
2003-09-19 14:27:17 -05:00