Code cleanup
Description:
Clean up almost all warnings from Windows builds.
Platforms tested:
FreeBSD 4.10 (sleipnir) w/parallel
Too minor to require h5committest
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:
Purpose:
Updated H5MPprivate.h for the new API function H5Itype_exists.
Description:
This is the last commit for these changes... I swear...
Solution:
Platforms tested:
Misc. update:
Purpose:
Forgot to change H5Inmembers's return type in last commit...
Description:
Changed the number H5Inmembers returns by reference from int to hsize_t.
Solution:
Platforms tested:
Misc. update:
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:
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
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
Code cleanup
Description:
Some code cleanups before starting serious optimization efforts.
Platforms tested:
FreeBSD 4.10 (sleipnir) w/parallel
Solaris 2.7 (arabica)
Too minor to require h5committest
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
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
Refactor bug fix
Description:
Make bug fix for detecting the type of a soft link more general by
registering an "isa" function for soft links.
Platforms tested:
FreeBSD 4.10 (sleipnir)
Too minor to require h5committest
Description: Function H5Gget_objtype_by_idx failed to handle soft link
object. The library returned object type by calling H5G_get_type through
H5B_iterate. But H5G_get_type only deals with objects with valid header address
which soft link doesn't have.
Solution: In H5G_node_type, make soft link a special case by checking if
the object type is H5G_CACHED_SLINK. Also added a test of soft and hard links
to titerate.c
Platforms tested: h5committest and RH 8(fuss).
Description: This is an enhancement after a user reported data writing failure
for array datatype of compound type with variable-length type in the v1.6 branch.
Solution: Added new test and ran with Purify. Fixed memory errors and leaks in
H5Tconv.c.
Platforms tested: h5committest
Description: After I added H5S_NULL dataspace dumper test, the output didn't
match XML schema for attribute data.
Solution: changed.
Platforms tested: RH 8(fuss), only dumper is involved, minor change.
Code optimizations
Description:
Eliminate memset() call in H5S_set_extent_simple().
Use malloc() instead of calloc in H5B<mumble>.
Change global heap code to track heap objects that are in use in order to
allocate new objects more quickly and also to avoid memset() and calloc() calls.
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.10 (sleipnir) w/parallel
Too minor to require h5committest
Code optimization
Description:
Avoid memcpy() when setting up new chunk coordinates
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.10 (sleipnir) w/parallel
Too minor to require h5committest
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
Code optimization
Description:
Be smarter about copying hyperslab selection data and avoid memcpy() calls.
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.10 (sleipnir) w/parallel
Too minor to require h5committest
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
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
Description: I put H5T_lock in H5T_open in last checkin but found it's
unnacessary.
Solution: Took it out.
Platforms tested: RH 8(fuss). Simple change.
Code optimization
Description:
Detect when a default property list is being used and just copy over the
default VL allocation properties, instead of querying for them.
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.10 (sleipnir) w/parallel
Too minor to require h5committest
Code cleanup & optimization
Description:
Remove old structures that used a union to store information about the
dataspace extent and just store the information directly in the dataspace
extent itself.
Remove ifdef'd references to permutation ordering in dataspaces. We'll
definitely need more than this code if/when we implement this feature.
Change allocation of dataspace information from calloc() to malloc().
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.10 (sleipnir) w/parallel
Too minor to require h5committest
Code optimization
Description:
Using existing dataspace extent copying routine instead of duplicating the
code (more slowly).
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.10 (sleipnir) w/parallel
Too minor to require h5committest
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
Code optimization
Description:
Avoid a memory copy by directly reading from the variable-length sequence
buffer when there is no type conversion on the way to disk.
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.10 (sleipnir) w/parallel
Too minor to require h5committest
Code optimization
Description:
Avoid running conversion routine when it's a noop.
Also, pick a minimum size for the variable-sized sequence conversion
buffer, instead of allocating lots of small buffers.
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.10 (sleipnir) w/parallel
Code optimization
Description:
Restructure conversion loop of variable-length objects to avoid walking
through memory backwards and allocating as many temporary buffers. (This uses
the optimized method used in the atomic type conversions)
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.10 (sleipnir) w/parallel
Too minor to require h5committest
Code optimization
Description:
Allow global heap collections to grow in size (up to a 64K limit) if they
are able to. This allows them to grow to a more reasonable size than the 4K
minimum size.
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.10 (sleipnir) w/parallel
Too minor to require h5committest
Code optimization
Description:
Eliminate redundant memory allocation for type conversion of variable-length
sequences.
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.10 (sleipnir) w/parallel
Too minor to require h5committest
Code optimization
Description:
Eliminate some operations through temporary variables in H5F_addr_encode.
Eliminate some redundant memset()'s of structures that will be completely
overwritten in the variable-length datatype code.
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.10 (sleipnir) w/parallel
Code optimization
Description:
Call malloc() instead of calloc() for data structure that we completely
initialize.
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.10 (sleipnir) w/parallel
Code optimization
Description:
Don't allocate conversion buffer larger than the user's buffer.
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.10 (sleipnir) w/parallel
too minor to require h5committest
Bug fix
Description:
Correct potential file corruption from mis-setting the metadata accumulator
address. (Bugfix contributed by Sean Monner <seanm@quadrus.com>)
Solution:
When the new metadata overlaps with the end of the metadata accumulator and
the accumulator grows in size, don't reset the address of the accumulator, since
it hasn't moved.
Platforms tested:
FreeBSD 4.9 (sleipnir)
too minor to require h5committest
Code optimization
Description:
Avoid pushing errors on error stack when an object is not found in a B-tree.
Sometimes we are just checking if the object exists before we insert it into
the B-tree and the higher levels in the library should be responsible for
determining if not finding the object in B-tree is really an error.
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.10 (sleipnir) w/parallel
too minor to require h5committest
Code optimization
Description:
Use default dataset transfer property list for internal metadata I/O
operations when parallel I/O is disabled. This avoids multiple copies of
the properties being made when the information is not needed.
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.10 (sleipnir) w/parallel)
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:
Description: For opaque datatype, if tag isn't defined, some operations will
have trouble because the tag string is null.
Solution: Initialize the tag string to empty string after the opaque type is created.
Platforms tested: h5committest
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
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
Improvement
Description:
Break up the C99 integer types detection into even smaller
sub-module routines. This has dropped the compile time (with
optimization) from 94 seconds to 6 seconds.
Platforms tested:
h5committested.
Misc. update:
Bug fix
Description:
Add prototypes for H5S_select_serial_size() and H5S_select_serialize()
that were causing the library to fail when built with C++ compiler.
Platforms tested:
FreeBSD 4.9 (sleipnir) w/CC=g++
Only affects C++ builds, so no h5committest
Code cleanup
Description:
Changed local variables declaration to static to please compilers.
Platforms tested:
Tested by generating H5Tinit.c and verified it was same as before.
Tested in TG_NCSA.
Improvement.
Description:
Some compilers, e.g., Intel C v7.0, took a long time to compile
with optimization when a module routine contains many code lines.
Divide up all those types detections macros into subroutines, both
to avoid the compiler optimization error and cleaner codes.
Platforms tested:
h5committested.
Misc. update:
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
Code optimization
Description:
Don't make a separate allocation for the selection offset - incorporate
it into the selection structure as a fixed size array.
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.9 (sleipnir) w/parallel
Code optimization
Description:
Eliminate some trivial functions with macros that perform the same
operation.
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.9 (sleipnir) w/parallel
Code optimization
Description:
Defer creating the span trees for hyperslab selections until they are
actually needed (which may be never, in certain circumstances).
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.9 (sleipnir) w/parallel
Description: Somehow part of dtypes.c were wiped out by the change yesterday,
causing failure on verbena's PGI compiler. Another issue is to run autoheader
to generate H5config.h.in.
Platforms tested: verbena(changes only matter to it)
Code optimization
Description:
Eliminate many redundant lookups to check for no-op type conversion by
remembering that a type conversion path is the no-op path.
Also, don't allow non-no-op conversions which happen to be no-ops on a
particular machine (such as int<->long conversions on machines where int and
long are the same size and format, etc.) to replace the default no-op
conversion.
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.9 (sleipnir) w/parallel
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
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)
Code cleanup
Description:
Reset pointers to heap info and actual heap after we have unlocked them,
to avoid accidentally referencing them after that point.
Platforms tested:
FreeBSD 4.9 (sleipnir)
too minor to require h5committest
Bug fix.
Description:
Fixed token_type enum struct in H5Ztrans.c to compile under windows.
Solution:
Prefixed all values in the struct with H5Z_XFORM_ to prevent name collisions
with pre-defined values.
Platforms tested:
h5committest'ed, but on arabica + no sol.
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.
Description: H5T_reverse_order was declared as private function.
Solution: Change it to static local function in H5Tconv.c since it's not
used by any function in other file.
Platforms tested: RH 8(fuss)
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
New Feature
Description:
Add the data transform function, H5Pset_transform().
Platforms tested:
"h5committested".
Copper was down. Ran parallel tests in sol instead.
Misc. update:
Cleanup source.
Description:
H5DZtrans.c is renamed as H5Ztrans.c.
H5DZ.c is not used any more.
Platforms tested:
No need since removing files only.
Misc. update:
Code optimization
Description:
Improved LRU algorithm for locating blocks of the correct size in the
block free-list
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.9 (sleipnir) w/parallel
too minor for h5committest
Code optimization
Description:
Reduce amount of information allocated/freed for chunk cache.
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.9 (sleipnir) w/paralell)
too minor to require h5committest
Code optimization
Description:
Eliminate the B-tree "split_ratios" as a parameter and pull it from the
DXPL instead.
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.9 (sleipnir) w/parallel
too minor to require h5committest
Fixing building Fortran DLL on windows
Description:
Fortran DLL needs to separate C stub DLL from Fortran DLL.
So we need to use another keyword H5_FCDLL to replace the old H5_DLL for
C stub library.
Solution:
Add another section at H5api_adpt.h to define a macro block for Fortran
C stub library.
Platforms tested:
Manual tests.
Copper is not accessible. Only test on arabica and eirene with fortran enabled.
Misc. update:
Code optimization
Description:
Eliminate redundant B-tree lookups for chunk information.
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.9 (sleipnir) w/parallel
too minor to require h5committest
Code optimization
Description:
Reduce the number of times the number of elements in a selection is
computed.
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.9 (sleipnir) w/parallel
too minor to require h5committest
Code optimization
Description:
Move the element size for the selection into the selection iterator instead
of always passing it as a parameter.
Also, eleminate another 64-bit multiply for "all" selections.
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.9 (sleipnir)
too minor to require h5committest
Code optimization
Description:
Stop straddling the line and always use elements instead of bytes to
determine how how I/O to perform on a selection.
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.9 (sleipnir)
too minor to require h5committest
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
Code optimization
Description:
Eliminate more redundant 64-bit multiplies
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.9 (sleipnir)
too minor to require h5committest
Code optimization
Description:
Eliminate frivolous 64-bit multiply.
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.9 (sleipnir)
too minor to require h5committest
Code optimization
Description:
Remove extraneous memcpy()
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.9 (sleipnir)
too minor to require h5committest
Code optimization
Description:
Remove redundant error checking.
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.9 (sleipnir)
too minor to require h5committest
Code optimization
Description:
Avoid dividing the chunk coordinates at the top levels of the chunk I/O
routines, only to multiply them at the bottom of the routines.
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.9 (sleipnir)
too minor to require h5committest
Code cleanup/optimization
Description:
Don't clear the error stack when calling H5open(), it's unnecessary.
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.9 (sleipnir)
too minor to require h5committest
Code cleanup
Description:
Refactor code to eliminate duplication of setup & calls to H5B_find to
locate information about a chunk on disk.
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.9 (sleipnir)
too minor to require h5committest
Code optimization
Description:
Hoist some if statements out of a loop in vector comparision routines that
are called very frequently by chunking code.
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.9 (sleipnir)
too minor to require h5committest
Code optimization.
Description:
Use free-list pool of blocks for allocating chunk buffers, when there are
no filters in the pipeline. The avoids calling malloc/free so much.
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.9 (sleipnir)
too minor to require h5committest
Bug fix (sorta)
Description:
Add hack to allow the MS Visual Studio 6 compiler to build the library.
It cannot cast unsigned long long values to float or double values. So, add
another configuration macro to disable this conversion in the library. Just
the "hardware" conversion is disabled, so the library will still correctly
convert unsigned long long to float and double values, it will just happen
more slowly with the "software" conversion routine.
Platforms tested:
FreeBSD 4.9 (sleipnir) with "Windows" setting faked
inappropriate for h5committest
Description: H5Pset_type_conv_cb and H5Pget_type_conv_cb weren't put into
H5MPprivate.h. Another thing is the func type doesn't match the func field
in the struct in these functions.
Platforms tested: RH 8(fuss) and sleipnir
Bug fix (sorta)
Description:
The SGI machines have problems accurately (and consistently) converting
unsigned long values to float and double values, so put in a bit of a hack in
the datatype conversion test code to allow them to get "close enough". This
hack is enabled at configure time by a flag which should only be set on machines
with this problem.
Platforms tested:
FreeBSD 4.9 (sleipnir)
h5committest
Undo the mysterous changes.
Description:
Somehow something changed this file during snapshot release.
Undo the change.
Platforms tested:
No test since it is a simple editing.
Misc. update:
Code optimization
Description:
Instead of dynamicly allocating various arrays for various pieces of
information about a selection or selection iterator, just use fixed size
array of size H5S_MAX_RANK (as the rest of the library does).
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.9 (sleipnir)
h5committest
Code optimization
Description:
Make calculation of "all" selection sequence length information more
efficient.
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.9 (sleipnir)
h5comittest
Code optimization
Description:
Avoid clearing the error stack unless necessary.
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.9 (sleipnir)
too minor to require h5committest
Checkpoint checkin of FP bug fixes. FP is still quite
buggy, but I must go deal with other matters.
Description:
Fixed two major bugs:
1) H5FPserver.c was clobbering meta data in its care.
2) H5FPserver.c was allocating the same space multiple
times, causing both data and meta data corruption.
Also made minor fixes, added debugging code, and familiarized
myself with the FP code.
All development work with FP enabled was done on Eirene.
On this platform, FP now passes its test reliably with
up to 9 processes. At 10 processes it seg faults every
time. I haven't looked into this issue.
There are also several known locking bugs which have to
be fixed. However, they are of sufficiently low probability
that I didn't bother with them on this pass.
FP has not been tested with deletions -- this should be
done.
Also, need to test FP chunked I/O.
Solution:
1) Modified cache in H5FPserver.c to merge changes correctly.
Found and fixed a bug in H5TB.c in passing.
2) Multiple space allocation was caused by a race condition
with set eoa requests.
Most of these eoa requests appeared to be superfluous, so
I deleted them.
Those issued during the superblock read seemed necessary,
so I inserted a barrier at the end of the superblock read,
to prevent races with allocations.
Platforms tested:
h5committested
Description:
Fixed bug in H5TB_less(). It was returning the next largest node,
instead of the next smallest as advertised.
Added comments warning that H5TB_rem()s will occasionally delete a
node other than the one provided in its argument list.
Solution:
It was sufficient t invert two comparisons in H5TB_less().
Platforms tested:
h5committested
Code cleanup
Description:
Clean up lots of warnings based on those reported from the SGI compilers
as well as gcc.
Platforms tested:
SGI O3900, IRIX64 6.5 (Cheryl's SGI machine)
FreeBSD 4.9 (sleipnir) w/ & w/o parallel
h5committest
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
Code optimization
Description:
Instead of re-initializing the default stride & block arrays to have values
of '1' in each position each time we perform a hyperslab selection, create
static constant arrays with '1's in them.
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.9 (sleipnir)
too minor to require h5committest
Code optimization
Description:
Don't copy hyperslab span information as much.
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.9 (sleipnir)
too minor to require h5committest
Bug fix.
Description:
Not all machines (like Sun and AIX) support fabsl() and fabsf() used
in test/dtypes.c. Changed the coding to use macro names HDfabsl and
HDfabsf. Also set the two macros to use ABS for now so that they will
work for all machines. (need more portable fixes which would involve
configure.)
Platforms tested:
h5committested. (also tested in LANL QSC and Theta).
Code optimization
Description:
Compute value for array instead of using memset(), since we are looping
through the array indices anyway.
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.9 (sleipnir)
too minor to require h5committest
Code optimization
Description:
Eliminate memset() calls to clear structures that we completely initialize
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.9 (sleipnir)
too minor to require h5committest
Code optimization
Description:
Remove redundant function call by re-using value we already know.
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.9 (sleipnir)
too minor to require h5committest
feature
Description:
H5check_version will print warning messages if the version does not
match or if the lib version string is not consistent, even when
$HDF5_DISABLE_VERSION_CHECK is set to 1. This will mess up
tests that try to match output.
Changed it so that if $HDF5_DISABLE_VERSION_CHECK is set to 2, no
warning about version mismatch is printed.
The lib version string warning is suppressed if $HDF5_DISABLE_VERSION_CHECK
is set to any non-zero value.
Platforms tested:
Tested in sol only but pretty comprehensive to make the warnings do get
suppressed.
Misc. update:
Description: Add more tests for bittests.c to check bit operations like H5S_bit_shift,
H5S_bit_inc, H5S_bit_dec, H5S_bit_neg.
Platforms tested: h5committest
Code optimization
Description:
Eliminate memory allocations for I/O vectors when using the default
vector size.
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.9 (sleipnir)
too minor to require h5committest
Code optimization
Description:
Remove another dataspace copy, in certain circumstances.
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.9 (sleipnir)
too minor to require h5committest
Code optimization
Description:
Remove a memcpy() from a commonly called routine and replace a multiplication
with a series of additions.
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.9 (sleipnir)
too minor to require h5committest
Code optimization
Description:
Avoid another extraneous dataspace copy.
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.9 (sleipnir) w/parallel
too minor to require h5committest
Code optimization
Description:
Change algorithm to directly use coordinates describing a chunk's position
in a dataspace instead of creating a dataspace with the chunk's position
selected. This reduces the number of copies of dataspaces we need to keep
around.
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.9 (sleipnir) w/parallel
too minor to require h5committest
Description: Mainly are header message changes for dataspace. In last round
of check-in, a new header message for dataspace to created, which is not a good
way. Now, there will be no new message for dataspace, but just add the type of
dataspace in the message while increment its version number. Backward compatibility
is addressed. The attribute design is modified accordingly.
Platforms tested: h5committest
Code optimization
Description:
Check for only performing I/O on a single chunk and re-use memory dataspace,
instead of re-creating the same dataspace & selection the hard way.
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.9 (sleipnir) w/parallel
too minor to require h5committest
Code optimization
Description:
Eliminate more dataspace copying, etc.
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.9 (sleipnir) w/parallel
too minor to require h5committest
Code optimization
Description:
Reduce the number of dataspace copies made when performing I/O on chunked
datasets.
Platforms tested:
Solaris 2.7 (arabica)
too minor to require h5committest
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
Code optimization
Description:
Eliminate unnecessary allocation and point at existing data structure
instead.
Platforms tested:
Solaris 2.7 (arabica)
too minor to require h5committest
Code optimization
Description:
Fix H5S_select_hyperslab to use arrays on the stack instead of dynamically
allocating them each time.
Platforms tested:
Solaris 2.7 (arabica)
too small to require h5committest
Code optimization
Description:
Fix H5S_select_copy so it doesn't call calloc() for allocating memory that
will be immediately overwritten.
Platforms tested:
Solaris 2.7 (arabica)
too small to require h5committest
Code optimization
Description:
Minor tweaks on the optimized offset/length sequence generator to improve
performance by reducing the number of 64-bit multiplies and calls to memcpy().
Platforms tested:
Solaris 2.7 (arabica)
too minor to require h5committest
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)
Code optimization
Description:
Move handling for free list arrays that have no maximum size to separate
set of routines and optimize computations for free list arrays with maximum
size to avoid re-computing sizes all the time.
Platforms tested:
h5committest
Solaris 2.7 (arabica)
Bug fix/code cleanup
Description:
Copy Robb's feature in SSlib that checks that the name of the function
used in the FUNC_ENTER macro is actually the name of function.
Fixed a bunch of typos & copy-n-pasto's for functions with incorrect names.
Platforms tested:
FreeBSD 4.9 (sleipnir) w/parallel
too minor to require h5committest
bug fix.
Description:
H5FD_mpio_init was calling the public API version of H5Iget_type()
which would clear the error stack, thus cleared away error messages
prematurely.
Solution:
Changed it to call the private version of H5I_get_type() which
does not clear the error stack.
Platforms tested:
o2 (SGI) parallel.
Description: The algorithm of H5T_bit_neg wasn't general enough.
Solution: Changed it to handle arbitory starting position and size
in a bit sequence.
Platforms tested: h5committest.
Description: The H5T_bit_dec algorithm wasn't general enough.
Solution: Changed it to handle bit sequence starting at any position
and of any length.
Platforms tested: h5committest