| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
Add new file
Description:
Add new PC-Lint/Flexelint configuration files
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix a bug in the cache caused by a slightly over active sanity check.
Description:
When the #define H5C_DO_SANITY_CHECKS is TRUE, the macro
H5C__DLL_PRE_INSERT_SC is executed prior to inserting an
entry in the LRU list. The macro performs a variety of
sanity checks, and flags an error if any of the checks
fail.
Prior to this update, the macro used to check to see if
the target list had length 1 and size <= 0. The new
epoch marker entries used in the age out cache size
reduction algorithm have size zero -- making it possible
for this sanity check to fail incorrectly.
Note that cache sanity checks are disabled in the CVS
version of the code, so this bug and bug fix should be
invisible unless you are working with the cache, and
turn the sanity checks on.
Solution:
Removed the offending clause in H5C__DLL_PRE_INSERT_SC. Since
the size used in the macro is typically a size_t and thus
cannot have negative value, there was no point in changing
it to "size < 0".
Platforms tested:
Ran a serial test on heping.
Under the circumstances, I didn't feel the need for further
testing.
Misc. update:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Modify the cache code (H5C) to support automatic cache resizing to
adapt to the work load at run time.
Description:
Different applications require different sized caches to maintain
an acceptable hit rate. This set of changes attempts to provide the
ability to adjust to circumstances automatically.
Solution:
Added highly configurable code to allow the user to either set a
fixed cache size, or allow the cache to grow and shrink according to
conditions.
If enabled, cache size increases are triggered when the hit rate
drops below a user specified threshold in a user specified interval.
Cache size reductions (if enabled) are triggered when either the
hit rate exceeds some user specified threshold over a user specified
interval, when the cache contains "enough" entries that haven't been
accessed for a user specified interval, or some mix of the above.
See the header comments on the H5C_auto_size_ctl_t structure in
H5Cprivate.h for further details.
At present, the cache resize configuration options are not
accessible via the user API. Must add this.
Platforms tested:
h5committested, heping (serial), and copper (parallel)
Misc. update:
|
|
|
|
|
|
|
|
|
|
| |
Fix whitespace
Description:
Clean up whitespace a bit
Platforms tested:
None, just eyeballed, very minor
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
small bug fix
Description:
When checking whether the current chunk covers the irregular hyperslab,
the ending point of the chunk is not updated.
This will cause the wrong checking output and fail for some irregular hyperslab
selection.
Solution:
Updating the ending point of the chunk.
Platforms tested:
Linux 2.4 + parallel (too small to use h5committest)
Misc. update:
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Description: In file H5FDsec2.c and H5FDlog.c, there's statements like
H5_ASSIGN_OVERFLOW(file->eof,sb.st_size,off_t,haddr_t);
It assumes sb.st_size from h5_stat_t is of type off_t. But on Windows, it
has type __int64. So the H5_ASSIGN_OVERFLOW statement may cause problem.
Instead of trying to do switch between Windows and other systems in H5FDsec2.c
and H5FDlog.c, define a substituting type in H5private.h to fix the problem.
On Windows, this type is __int64; on other systems, it is off_t.
Platforms tested: fuss. Simple fix. Already did h5committest for v1.6.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
bug fix
Description:
The irregular hyperslab span_tree implementation inside
H5S_hyper_add_span_element_helper updating the high bound of the span, but forget updating the number of element of the span.
New routine obtain_derived_datatype catches the bug.
Solution:
Updating the number of element of the span as well.
Platforms tested:
Linux 2.4 and AIX 5.1, both with parallel enabled.
Misc. update:
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
New feature
Description:
Add callback iteration routine to skip lists.
Platforms tested:
FreeBSD 4.10 (sleipnir) w/parallel
Too minor to require h5committest
|
|
|
|
|
|
|
|
|
|
|
| |
New feature
Description:
Allow skip list keys to be strings (needed for property list support)
Platforms tested:
FreeBSD 4.10 (sleipnir)
Too minor to require h5committest
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
New internal feature
Description:
Add a "release" routine to the skip lists, which releases all the nodes
in the skip list, but keeps the skip list active.
Platforms tested:
FreeBSD 4.10 (sleipnir)
Linux 2.4 (verbena)
Too minor to require h5committest
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Code optimization
Description:
Retarget metadata cache code from using TBBT routines to using new skiplist
routines, for a reasonable speedup (when dealing with dirty metadata)
Platforms tested:
FreeBSD 4.10 (sleipnir) w/parallel
Solaris 2.7 (arabica)
Too minor to require h5committest
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug fix
Description:
Re-work array of 'forward' pointers in a way that makes the PGI compiler
more happy.
Solution:
Change from 'H5SL_node_t *forward[1]' to 'H5SL_node_t **forward' and
change how array of forward pointers is dealt with.
Platforms tested:
Linux 2.4 (verbena) w/PGI
FreeBSD 4.10 (sleipnir)
Configuration not tested w/h5committest
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug fix
Description:
Correct off-by-on error which could cause invalid # of levels to be used
for a skip list node, in rare circumstances.
Change from srandom()/random() to more portable srand()/rand() routines
for random # generation.
Pre-compute the probability factor for computing the level of new nodes,
for a minor speedup.
Platforms tested:
FreeBSD 4.10 (sleipnir)
IRIX64 6.5 (modi4)
Solaris 2.8 (sol)
AIX 5.1(?) (copper)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Code optimization
Description:
Begin de-orbital burn of threaded, balanced binary tree code use by
switching file open object code over to using them. Initial benchmarks show
that skip lists are 5-10x faster than our TBBT code...
Platforms tested:
FreeBSD 4.10 (sleipnir) w/parallel
Solaris 2.7 (arabica)
Too minor to require h5committest
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Code optimization
Description:
Revise mechanism for calling H5open/H5check to better avoid calling them
from internal libray code.
Only copy a datatype's group entry information if it has some.
Platforms tested:
FreeBSD 4.10 (sleipnir) w/parallel
Solaris 2.7 (arabica)
Too minor to require h5committest
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add new internal data structure
Description:
Add an implementation of skip lists to the library (see comment in
src/H5SL.c for references to the papers describing them) as a potential
replacement for our current threaded, balanced binary tree container.
Skip lists are much simpler to implement and should be faster to use.
Also, added new error codes to release branch, so bump the minor version
number to indicate that the library is no longer perfectly compatible with
the 1.6.3 release.
Platforms tested:
FreeBSD 4.10 (sleipnir) w/parallel
Solaris 2.7 (arabica)
Too minor to require further testing (the skip lists aren't actually
used by any library code yet)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adding code for using MPI derived datatype to handle collective IO
Description:
No testing yet, won't affect the library.
Solution:
Platforms tested:
linux 2.4 + mpich 1.2.6
Aix 5.1 + mpcc_r
Misc. update:
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Code optimization
Description:
Switch a few more malloc/free pairs over to using internal free list code,
to avoid abusing system memory allocator as badly.
Platforms tested:
FreeBSD 4.10 (sleipnir) w/parallel
Solaris 2.7 (arabica)
Too minor to require h5committest
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Code optimization
Description:
Avoid making as many copies of attribute information.
Also, be smarter about which properties we've seen before when copying
and closing property lists.
Fix memory leak of attribute data structures.
Platforms tested:
FreeBSD 4.10 (sleipnir) w/parallel
Solaris 2.7 (arabica)
Too minor to require h5committest
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Code optimization
Description:
Rework & move around some of the macros for querying balanced properties
of nodes to speed up tree balancing code.
Platforms tested:
FreeBSD 4.10 (sleipnir) w/parallel
Solaris 2.7 (arabica)
Too minor to require h5committest
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Code optimization
Description:
Change threaded, balanced binary tree insertion routine to use more
efficient "fast" search routine when trees with "fast compare" routines have
objects inserted into them.
Platforms tested:
FreeBSD 4.10 (sleipnir) w/parallel
Solaris 2.7 (arabica)
Too minor to require h5committest
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Purpose: Correction to previous bug fix. This checkin is mainly to let user
test his program.
Description: For family driver bug(#213), the previous fix was imperfect. The problem
was when user create family file, the member size information wasn't saved in file. When
the file was re-opened, the library simply use the size of 1st member file as member size.
Solution:
When file is re-opened, member size passed in from access property
is checked to see if it's reasonable. If there is only 1 member
file, member size can't be smaller than current member size.
If there are at least 2 member files, member size can only be equal
to the 1st member size.
Platforms tested: h5committest and fuss
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Code cleanup & optimizations
Description:
Clean up some of the code in attributes to avoid allocating memory and
performing type conversions when the conversion is a noop.
Avoid memory allocations of attribute data structures by switching to use
library's free list memory allocator routines.
Avoid memory allocations of object header continuation data structures by
switching to use library's free list memory allocator routines.
Rearrange threaded, balanced binary tree macros slightly to avoid some
overhead.
Platforms tested:
FreeBSD 4.10 (sleipnir) w/parallel
Solaris 2.7 (arabica)
Too minor to require h5committest
|
|
|
|
|
|
|
| |
Correct typo in comment.
Platforms tested:
Not tested - too minor
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Description: H5Pset_fapl_family sets family member size only for creating
new file. The file doesn't keep this size information. When the file is
re-opened, the size of first member file is used as the member size.
Solution: Assume user knows the original member size and sets it through
H5Pset_fapl_family. That will be the member size. User can pass in value 0
as member size if he doesn't know the original member size. Library will
choose the size of current first member size as the member file size.
Platforms tested: h5committest and fuss.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Check in some new fixes for MPI derived datatype routines
Description:
MPI derived datatype algorithm seems working for a simple case;
however, there are still other problems need to be solved. So the
code cannot be used for the time being. Check-in only for debugging.
It won't affect other part of the library.
Solution:
Platforms tested:
Linux 2.4 (heping, serial and parallel)
(Since no new tests were added and changes are mostly restricted to
one fuction, no need to test three platforms).
Misc. update:
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug fix, sorta.
Description:
Revert change to H5Pget_data_transform() which changed len of buffer
returned to be inconsistent with H5Iget_name(), etc. We should discuss this
change and apply it to all the similar functions if we decide to change the
return value.
Platforms tested:
FreeBSD 4.10 (sleipnir)
Too minor to require h5committest
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug Fix
Description:
Fixed off by one error in H5Pget_data_transform
Solution:
H5Pget_data_transform, when queried for the size of the property, should
return strlen() + 1 so that the user can allocate memory for the terminating
\0 in the string.
Also fixed a typo in a comment in H5Ztrans.c
Platforms tested:
eirene, too minor to require further testing.
Misc. update:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adding codes for the general MPI derived datatype in order to
better incorporate new fixes of HDF5 library.
Description:
Note: These codes have not been tested for general use.
Don't call these functions in your developments of the HDF5 library.
Also these codes are stand-alone codes, they should not affect
other library codes.
Solution:
Platforms tested:
Heping(C and Parallel linux 2.4, mpich 1.2.6)
Arabica(C,C++,Fortran, Solaris 2.7)
Copper(C,c++,Fortran, AIX 5.1, NOTE: c++ FAILED, seems not due to the recent check-in)
Misc. update:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug fix
Description:
Fix code to allow --debug-enable=all option to work correctly.
Solution:
Update some ifdef'ed code with recent changes.
Platforms tested:
Linux 2.4 (heping) w/--enable-debug=all
Too minor to require h5committest
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix SZIP filter to dynmically detect encoder.
Description:
Solution:
See:
http://hdf.ncsa.uiuc.edu/RFC/SZIP/Szip_dynamic_12_Oct.pdf
Changes to h5dump tests, contingent on detecting SZIP encoder.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Updating H5api_adpt.h to help the implementation of Fortran DLL on windows.
Description:
1. More functions need to be added prefix macro for exporting and importing
fortran DLL on Windows.
2. unlink was _unlink on windows and use HDunlink to specify this.
Solution:
Platforms tested:
linux 2.4(h5committest not finished yet, but should work since the change is minor and it is passed with pgi compiler)
Misc. update:
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Code cleanup
Description:
Clear up some inconsistencies, inefficiencies and possible errors between
the release and development branch.
Platforms tested:
FreeBSD 4.10 (sleipnir) w/parallel
Solaris 2.7 (arabica)
Linux 2.4 (heping) w/C++ & FORTRAN
|
|
|
|
|
|
|
|
|
|
|
| |
Bug fix
Description:
Clean up potential buffer overflow in strncpy()
Platforms tested:
FreeBSD 4.10 (sleipnir)
Too minor to require h5committest
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Changed functionality of H5Pget_data_transform
Description:
H5Pget_data_transform no longer allocates memory for the transform string...it
is the user's responsbility to do so.
Solution:
Made H5Pget_data_transform be more in line with other functions that do
similiar things:
User now has to allocate memory for the string themselves and specify how much
of the string should be copied into the buffer. There is also support for
querying the length of the transform string.
Platforms tested:
sol + eirene + copper
Misc. update:
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Code cleanup
Description:
Clean up minor warnings and align with release branch.
Platforms tested:
FreeBSD 4.10 (sleipnir) w/parallel & FPH5
Solaris 2.7 (arabica) w/production mode
Linux 2.4 (heping) w/C++ and FORTRAN
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug fix.
Description:
The previous H5_ULLONG_TO_FP_CAST_WORKS fix does not quite work
since the problem was an error during compiling while the fix
was trying to check for the error condition during runtime.
The MS-Compiler still complains about not supporting ULLONG
to Float.
Solution:
A temperary patch is to have two #define of H5Z_XFORM_TYPE_OP
according to if H5_ULLONG_TO_FP_CAST_WORKS is defined. This
works but a better solution is needed.
Platforms tested:
Windows (by Kent) and heping (Linux by me).
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Description: "char" was considered as always "signed char" in data type conversion. However, ISO C leaves
the definition of "char" to individual implementation. i.e. for IBM AIX C compiler, it's treated as "unsigned
char".
Solution: Changed all "char" to "signed char". Don't even do "char" anymore because its definition is up
to each vendor.
Platforms tested: h5committest
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Code refactor
Changed functionality of H5Pget_data_transform
Description:
Rewrote much of H5Ztrans.c to use macros, which cut down on the amount of code
significantly.
H5Pget_data_transform now allocates memory for the data transform string,
copies the string into this memory, and
returns this pointer to the user, instead of returning a pointer to the
internal transform string stored by hdf. It is the user's responsibility to free
this memory when they are done with it.
Platforms tested:
sol + eirene + copper
Misc. update:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug fix
Description:
Fix typo in #ifdef for unsigned long long to double conversion.
Changed WIN32 check to H5_ULLONG_TO_FP_CAST_WORKS
This check-in (and the one before it) also includes a large code-refactoring
that is still in progress.
Solution:
the ifdef for the plus case was checking unsigned long instead of unsigned
long long. Moved the check to the right location.
Platforms tested:
sol+eirene
Misc. update:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug fix
Description:
Fix core dump when flushing a file with a newly created attribute which
hasn't had a value written to it still open.
Solution:
Write the attribute fill value when appropriate.
Platforms tested:
FreeBSd 4.10 (sleipnir)
Linux 2.4 (verbena)
Solaris 2.7 (arabica)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug fix.
Description:
The windows compiler apparently cannot convert from unsigned long long to
double. This conversion is necessary for the data transform to work properly
in some cases.
Solution:
Added #ifdef to check for windows and issue error when user attempts to do a
data transform on a long long type.
Platforms tested:
sol + eirene
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Description:
Code optimization and refactoring.
Added support for llong, ullong, and ldouble
Solution:
Significantly cut down on the amount of code required to do the transform,
while making the operations more efficient.
Platforms tested:
sol + eirene
|