885 Commits

Author SHA1 Message Date
James Laird
129f72fb3e [svn-r8899]
Purpose:
Bug Fix

Description:
Calling H5Sset_extent_simple to change a dataspace's maxdims from nonzero to
zero causes errors (infinite loops, seg faults, asserts) because the pointer
to the maximum size isn't cleaned up properly

Solution:
Clean up that pointer.  Added a test for this case.

Platforms tested:
sleipnir (very minor change)
2004-07-20 11:26:40 -05:00
James Laird
24d36e1613 [svn-r8897]
Purpose:
Bug Fix

Description:
Trying to create the root group or the working group ("/" or ".") fakes out
HDF5 so that it neither creates a group nor returns an error.

Solution:
H5G_namei now throws an error if it was supposed to insert but didn't.

Platforms tested:
sleipnir, Visual Studio 7 (very minor change)

Misc. update:
2004-07-19 19:47:37 -05:00
Quincey Koziol
c97fddc786 [svn-r8892] Purpose:
Code cleanup

Description:
    Clean up a bunch of warnings and bring new code better inline with current
library coding practice.

Platforms tested:
    FreeBSD 4.10 (sleipnir) w/parallel
    Too minor to require h5committest

Misc. update:
2004-07-16 15:48:40 -05:00
James Laird
89c9bfc05b [svn-r8881]
Purpose:
Bug fix

Description:
Replaced "unsigned long long" with hsize_t in H5MF
Added "return 0" at end of reserved.c test

Platforms tested:
arabica, sleipnir
2004-07-15 10:43:18 -05:00
Raymond Lu
fbc2aaadaf [svn-r8879]
Purpose:  New feature

Description:  New API H5Tencode and H5Tdecode.  Given object ID, H5Tencode encodes object information into a binary form.  H5Tdecode decode an object information in a binary form, reconstructs the object and return a new object ID.

Solution:  Use object header functions H5O_dtype_decode and H5O_dtype_encode to
facilitate them.  The encoded binary is exactly like object header information.
This is the first step checkin.  Will check in H5Sencode  and H5Sdecode later.

Platforms tested:  h5committed and fuss.

Misc. update: will update release.txt after 2nd step checkin.
2004-07-14 16:45:23 -05:00
James Laird
9b2aafa18b [svn-r8878]
Purpose:

Description:
Missed adding a test file in previous commit.

Solution:

Platforms tested:

Misc. update:
2004-07-14 15:18:28 -05:00
James Laird
a0c466cd99 [svn-r8877]
Purpose:
Bug Fix

Description:
If an HDF5 file grows larger than its address space, it dies and is unable to
write any data.  This is more likely to happen since users are able to change
the number of bytes used to store addresses in the file.

Solution:
HDF5 now throws an error instead of dying.  In addition, it "reserves" address
space for the local heap and for object headers (which do not allocate space
immediately).  This ensures that after the error occurs, there is enough address
space left to flush the entire file to disk, so no data is lost.
A more complete explanation is at /doc/html/TechNotes/ReservedFileSpace.html

Platforms tested:
sleipnir, copper (parallel), verbena, arabica, Windows (Visual Studio 7)


Solution:

Platforms tested:

Misc. update:
2004-07-14 14:34:24 -05:00
Quincey Koziol
769ee96c1f [svn-r8874] Purpose:
Bug fix

Description:
    Correct problems with "resurrecting" a dataset in a file.  (This occurs
when a dataset which is open gets unlinked from the group hierarchy (making it
"dead" and marked for deletion in the file) and then is re-linked to the group
hierarchy).  Note that the current solution applies only to datasets, further
work will fix this for groups and named datatypes also.
    Also, fix the "debug" routines to be a little more helpful in certain
situations.
    Additionally, fix a locking bug in the symbol table node splitting routine
which could be [one of] the cause[s] of the file corruption in flexible
parallel operation.

Platforms tested:
    FreeBSD 4.10 (sleipnir) w/parallel
    h5committested
2004-07-14 14:08:34 -05:00
Quincey Koziol
fe76fb1b58 [svn-r8844] Purpose:
Bug fix

Description:
    The "shared" raw B-tree node can get freed before all the B-tree nodes
had been flushed out to disk and released by the cache.

Solution:
    Implement a simple reference counting wrapper for objects in the library
and use it to hold the shared raw B-tree nodes so they aren't freed before all
references to them in memory are released.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.10 (sleipnir)
    IRIX64 6.5 (modei4)
2004-07-08 21:06:29 -05:00
Quincey Koziol
688fa02c0a [svn-r8832] Purpose:
Remove testing file after verifying that binary adds of *.h5 files are
working correctly.
2004-07-07 23:17:44 -05:00
Quincey Koziol
2d8840c412 [svn-r8831] Purpose:
Testing "binary" addition of new *.h5 files.  (This file will be removed
immediately)
2004-07-07 23:16:55 -05:00
Raymond Lu
c949e7c391 [svn-r8818]
Purpose:  Potential bug fix

Description:  In H5Fget_filesize, file size was returned as haddr_t.  Change it to hsize_t
and return it as parameter to make fortran interface easier.


Platforms tested:  fuss(simple change).
2004-07-07 12:03:02 -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
Quincey Koziol
153444fed7 [svn-r8800] Purpose:
Code cleanup

Description:
    Fix problems when compiling with C++ compiler.

    Also clean up some warnings with gcc 3.4.x

Platforms tested:
    FreeBSD 4.10 (sleipnir)
    Too minor to require h5committest
2004-07-03 12:00:01 -05:00
John Mainzer
c49dd7fa36 [svn-r8791] Purpose: Rewrote metadata cache (H5AC.c, etc.) to improve performance.
Description:

Replaced the old metadata cache with a cache with a modified LRU
replacement policy.  This should improve the hit rate.

Solution:

Since we want to flush cache entries in increasing address order, I
used the threaded binary B-tree code to store the cache entries.
There is a fair bit of overhead here, so we may want to consider
other options.

While the code is designed to allow the support of other replacement
algorithms, at present, only a modified version of LRU is supported.

The modified LRU algorithm requires that a user selectable portion
of the cache entries be clean.  The clean entries are evicted first
when writes are not permitted.  If the pool of clean entries is used
up, the cache grows beyond its user specified maximum size.  The
cache can also exceed its maximum size if the combined size of the
protected (or locked) entries exceeds the maximum size of the cache.


Platforms tested:

eirene (serial, parallel, fp), h5committested


Misc. update:
2004-07-02 14:35:04 -05:00
Quincey Koziol
e5e786f589 [svn-r8782] Purpose:
Code cleanup

Description:
    Clean up almost all warnings from Windows builds.

Platforms tested:
    FreeBSD 4.10 (sleipnir) w/parallel
    Too minor to require h5committest
2004-07-01 15:02:47 -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
Nat Furrer
3f500747fa [svn-r8779]
Purpose:
Fixed problem in tid.c that broke daily tests.

Description:

Solution:

Platforms tested:
  Sleipnir

Misc. update:
2004-07-01 09:37:12 -05:00
Quincey Koziol
7afa78d822 [svn-r8778] Purpose:
Bug fix

Description:
    Correct use of H5Eprint() when 1.6 compatibility is turned on.

Platforms tested:
    FreeBSD 4.10 (sleipnir) w/compatibility
    h5committest doesn't test this, so it wasn't run.
2004-07-01 08:14:59 -05:00
Nat Furrer
cedec27552 [svn-r8772]
Purpose:
Needed to change the type of a variable in tid.c from int to hsize_t to
accomodate the change in H5Inmembers.

Description:
I lied... this is the last commit.  Really, it is.

Solution:

Platforms tested:

Misc. update:
2004-06-30 12:29:36 -05:00
Nat Furrer
8e468d9dec [svn-r8766]
Purpose:
Small H5I API changes.

Description:
Changed public version of H5Inmembers to return the number of IDs in a
type by reference.  This allows the user to differentiate between the
case when H5Inmembers has an error and when the ID type is just empty.
Added a new API function, H5Itype_exists, which allows the user to
find out whether an ID type exists or not, without throwing an error.

Solution:

Platforms tested:
   Copper

Misc. update:
2004-06-30 10:33:19 -05:00
Raymond Lu
358b8545dd [svn-r8765] Purpose: New feature and its test.
Description:  Added new API H5Fget_name and new test program called filename.c.  This function
returns the name of the file by object ID(file, group, dataset, named datatype, and attribute)
which belongs to the file.


Platforms tested:  h5committest and fuss.

Misc. update:  MANIFEST and RELEASE.txt
2004-06-30 08:45:07 -05:00
Quincey Koziol
b51c4f6d24 [svn-r8760] Purpose:
Code cleanup & small bug fix

Description:
    Regenerate dependency files

    Add htri_t as separate type from hbool_t for code tracing purposes.

Platforms tested:
    FreeBSD 4.10 (sleipnir) w/parallel
    too minor to require h5committest
2004-06-29 16:03:33 -05:00
Raymond Lu
a89057a2cd [svn-r8741] *** empty log message *** 2004-06-24 17:20:08 -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
19644d7593 [svn-r8730] Purpose:
Code cleanup

Description:
    Add more testfiles to the "clean" targets

Platforms tested:
    FreeBSD 4.10 (sleipnir)
    h5committest
2004-06-23 10:31:06 -05:00
Raymond Lu
8ec60574b1 [svn-r8722] *** empty log message *** 2004-06-22 16:08:56 -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
Raymond Lu
a83233a2c9 [svn-r8706] *** empty log message *** 2004-06-18 11:18:52 -05:00
Quincey Koziol
ef01629bb2 [svn-r8683] Purpose:
Code optimization

Description:
    Use 'size_t' instead of 'hsize_t' to track the number of elements in
memory buffers, especially for type conversion.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.10 (sleipnir) w/parallel
    Too minor to require h5committest
2004-06-14 14:32:02 -05:00
Quincey Koziol
958d370d13 [svn-r8655] Purpose:
Code cleanup

Description:
    Add more files that should be removed to the clean & distclean targets.

Platforms tested:
    FreeBSD 4.10 (sleipnir)
    Too minor to require h5committest
2004-06-11 09:02:48 -05:00
Raymond Lu
7ce626721c [svn-r8646] *** empty log message *** 2004-06-10 13:48:09 -05:00
Quincey Koziol
4d3188e588 [svn-r8618] Purpose:
Fix makefiles, dependencies & manifest after source file rename.
2004-06-05 14:32:31 -05:00
Quincey Koziol
28404e2813 [svn-r8614] 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
2004-06-05 14:06:24 -05:00
Raymond Lu
5f11bb7260 [svn-r8609] Purpose: bug fix
Description:  internal function opaque_check didn't have prototype.


Platforms tested:  no test needed for such a simple change.
2004-06-03 13:37:04 -05:00
Raymond Lu
dd59aa926c [svn-r8605] *** empty log message *** 2004-06-02 11:35:56 -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
Raymond Lu
a9d354fd95 [svn-r8518] Purpose: uncomment part of code.
Description: supposed to be there.
2004-05-13 16:21:58 -05:00
Raymond Lu
b11eb7f4f2 [svn-r8517] *** empty log message *** 2004-05-13 16:17:58 -05:00
Raymond Lu
cee32cf3a8 [svn-r8509] *** empty log message *** 2004-05-12 16:43:21 -05:00
Raymond Lu
980683f1e1 [svn-r8505] *** empty log message *** 2004-05-11 15:26:35 -05:00
Quincey Koziol
583bdf994c [svn-r8495] Purpose:
Bug fixes

Description:
    Updated dependencies

    Fixed error with C++ compiler builds of main library

    Added H5Pset_data_transform to MPE info

Platforms tested:
    FreeBSD 4.9 (sleipnir)
2004-05-08 09:48:42 -05:00
Raymond Lu
e6fcf3db0f [svn-r8492] *** empty log message *** 2004-05-07 16:59:24 -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
Raymond Lu
bf81b5ac23 [svn-r8484] Purpose: bug fix
Description:  The error stack was accidentally cleared during the program.

Solution:  Change it to the correct output.

Platforms tested: RH 8(fuss).  Simple change.

Misc. update:
2004-05-05 15:42:09 -05:00
Quincey Koziol
4996258268 [svn-r8483] Purpose:
Bug fix

Description:
    Fix problems compiling with g++.

Platforms tested:
    FreeBSD 4.9 (sleipnir) w/CC=g++
2004-05-05 15:25:26 -05:00
Raymond Lu
14aaec71d7 [svn-r8481] *** empty log message *** 2004-05-04 13:01:22 -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
MuQun Yang
1d381a91e7 [svn-r8469] Purpose:
bug fix

Description:
1.  windows cannot recongize long long. We agree to use long_long to represent all "long long" compatible data types.

2. windows test can not check error code, it depends on error messages to be returned. This will be fixed in the future. In odhr.c, somehow only error value1 is generated, there are no error message even if some tests are missing. So just add an error message when error code is 1.
Solution:
change long long to long_long in dtypes.c;
Add an error message when error code is not 0 in ohdr.c

Platforms tested:
eirene(fortran),
arabica(fortran)

Misc. update:
2004-05-03 10:39:45 -05:00