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
Description:
Added function IncTestNumErrs to increment the number of errors
that is defined in testframe.c
Platforms tested:
Linux 2.4 (heping)
AIX 5.1 (copper)
Added Packet Table to high-level APIs
Description:
The Packet Table is an API that allows the user to append records
("packets") to a table, and read the back again. It supports
fixed-length records with a defined datatype and variable-length
records. It also supports a "current record" index to track the
user's position in the table.
Solution:
The Packet Table code lives in hl/src, and its tests in hl/test.
Some code is shared between the H5TB table and the H5PT Packet Table
in the form of functions in H5HL_private.c.
Some documentation exists for a previous version of the API. Updated
documentation and C++ wrapper API coming soon.
Platforms tested:
sleipnir, eirene, copper, modi4
Bug fix
Description:
Opening an object in a group that is located in a file which has been
unmounted would cause a core dump. :-(
Solution:
Re-arrangement internal code to compute internal "user" and "canonical"
names for the newly opened object in a safer way.
Platforms tested:
FreeBSD 4.11 (sleipnir)
Too minor to require h5committest
Update comments
Description:
Correct some minor errors in comments/error strings.
Platforms tested:
FreeBSD 4.11 (sleipnir) w/parallel
Solaris 2.9 (shanti)
Description: The 4th step of change conversion test. This checkin is only for
conversion between floating-point numbers.
Solution: The source buffer of floating-point number is filled up in the same
way described in the 3rd step(revision 1.155).
Platforms tested: h5committest and fuss.
Description: This commit is actually revision 1.155, which is the 3rd step of
changing conversion test. It's for conversion from floating-point to integer.
In this step, the source buffer is filled in with normalized and denormalized
floating-point values. For the normalized values, it starts from FLT(DBL, or
LDBL)_MIN, multiplied by 10(10000 for double, 100000000 for long double) for
the next value, until reaches to FLT_MAX. For denormalized values, the
exponent part is always 0. Mantissa part starts with 000...001, 000...011,
000...111, until reaches to 111...111. The same is with negative values.
There're also fixes in config/hpux11.00 for kelgia where default macro table
size wasn't big enough to handle the big macro in dtypes.c.
Platforms tested: h5committest and kelgia.
Bug fix
Description:
Fix a typo in my last checkin. Should make some compilers happier
about "operand types."
Platforms tested:
sleipnir, heping, kelgia
Purpose:
Bug fix
Description:
Calling H5Iobject_verify on an invalid type of ID (e.g., H5I_BADID) triggers
an assert.
Solution:
Test for this condition and return an error instead of an assert.
Added tests for this case.
Platforms tested:
sleipnir (minor change)
Configure feature
Description:
On some platforms with some compilers, automake's dependency tracking
is silently disabled. This can be confusing for developers.
Solution:
Set configure to enable dependencies all the time unless the user
explicitly disables them (using the configure flag
--disable-dependency-tracking) or a site file overrides the default
(as is the case on IRIX).
Platforms tested:
sleipnir, mir
Description:
Added the following to the C++ library
+ overloaded functions:
string CommonFG::getObjnameByIdx(hsize_t idx)
H5T_order_t AtomType::getOrder()
+ wrappers for H5*close
+ wrappers for H5Arename, H5Aget_storage_size, and H5Dget_storage_size
Platforms tested:
Linux 2.4 (heping)
AIX 5.1 (copper)
SunOS 5.8 64-bit (sol)
Bug fix
Description:
Typo in #ifdef to check for snprintf functionality.
Solution:
That should have been H5_VSNPRINTF_WORKS.
Platforms tested:
heping, modi4
Misc. update:
Purpose:
Bug fix.
Description:
ph5diff fails on modi4 due to the way snprintf works on IRIX.
Solution:
The C99 standard says that, if there isn't enough room in the string,
snprintf should return the number of characters that
would have been written to the output string if there were enough room.
The snprintf on modi4 would return the number of characters that is was able to write
succesfully to the string if space ran out. The ph5diff logic that checks if
the output buffer was full did not handle this sort of return value correctly.
Used VSNPRINTF_WORKS from configure test to check how snprintf works and do
the logic accordingly.
Platforms tested:
modi4
Misc. update:
Provide a way to warn users on the usage of collective IO because of
potential MPI-IO bugs for some platforms.
Also provide a way for users to give us feedback if the vendor has
already fixed the problem so that we can turn off the hard-code macro
in our configure description file.
Description:
See above.
Solution:
Use a simple MPI complicated derived datatype program to check
whether derived data type works for this MPI-IO package.
Print out some messages to warn users if not working as we had expected.
Platforms tested:
AIX 5.1(copper) and Linux 2.4(heping)
Misc. update:
New feature/tests
Description:
Add better support & tests for removing blocks being tracked.
Platforms tested:
FreeBSD 4.11 (sleipnir)
Solaris 2.9 (shanti)
Hard code IBM platform so that the irregular collective IO won't call
MPI derived data type.
Description:
IBM MPI-IO has a bug for MPI derived data type.
Solution:
Platforms tested:
copper(AIX,mpcc_r) and heping(Linux, mpich)
Misc. update:
IBM MPI-IO has a bug for MPI derived data type, which is used
to support collective IO. In order to avoid this, we provide
a way to turn off collective IO support for this kind of platform.
Description:
Using a new macro called H5_MPI_COMPLEX_DERIVED_DATATYPE_WORKS
to turn off irregular hyperslab collective IO support at such platforms.
Solution:
Hard code such platforms under hdf5/config.
So far only IBM AIX has been found to have such problems.
Platforms tested:
heping (Linux) and copper(Aix). Testing at tungsten now, however, it
took almost an hour to build parallel HDF5 at tungsten, it is still building. Cannot wait. Have tested this feature at Tungsten a week ago.
Misc. update:
Description: Reverse the 3rd step of change just checked in yesterday(revision 1.155) because of some errors
in daily test. Use the revision 1.154 for now until the problem is fixed.
Platforms tested: fuss - simple rolled back to previous revision.
New tests
Description:
Add some internal validation routines and make certain that the max & min
block sizes get tracked accurately, at least for a simple series of insertions
Platforms tested:
FreeBSD 4.11 (sleipnir)
Solaris 2.9 (shanti)
New feature & bug fix
Description:
Support inserting multiple blocks
Start tracking the metadata about the blocks.
Platforms tested:
FreeBSD 4.11 (sleipnir)
Solaris 2.9 (shanti)
New feature & bug fix
Description:
Allow NULL 'op' for find operations to easily query the existance of a
record for a key during H5B2_find() operations.
Fix H5B2_neighbor() to work properly with empty B-tree
Platforms tested:
FreeBSD 4.11 (sleipnir)
Solaris 2.9 (shanti)
New feature
Description:
Add new "block tracker" data structure to library, for tracking blocks of
bytes in a file. Block trackers will be used to keep track of the blocks
belonging to the soon-to-be-implemented "segmented heap" which is designed to
replace the current local & global heaps (starting with the local heap).
Block trackers will also keep track of the free space in the segmented heap
and someday could be used to track the free space in the entire HDF5 file.
They are implemented as a small header of information to cache the state
of the blocks (max & min sizes of blocks tracked, etc.) and the records of
the blocks themselves are stored in a v2 B-tree.
Platforms tested:
FreeBSD 4.11 (sleipnir)
Solaris 2.9 (shanti)
h5committest
Add comments
Description:
Add note to investigate "deterministic skip lists", in case I forget...
Platforms tested:
FreeBSD 4.11 (sleipnir)
Solaris 2.9 (shanti)
Code cleanup
Description:
Make more of the loops over the types of memory use the existing macros.
Platforms tested:
FreeBSD 4.11 (sleipnir)
Solaris 2.9 (shanti)
Description: This is the 3rd step of change conversion test. This checkin is
only for conversion from floating-point to integer.
Solution: The source buffer is filled in with normalized and denormalized
floating-point values. For the normalized values, it starts from FLT(DBL, or
LDBL)_MIN, multiplied by 10(10000 for double, 100000000 for long double) for
the next value, until reaches to FLT_MAX. For denormalized values, the
exponent part is always 0. Mantissa part starts with 000...001, 000...011,
000...111, until reaches to 111...111. The same is with negative values.
Platforms tested: h5committest and fuss.
Automake update cleanup and minor changes
Description:
Removed macros in acsite.m4 that are no longer used.
Switched to using autoconf's AC_LANG_PUSH(Fortran) instead of old
AC_LANG_FORTRAN9X macro.
Switched to using AC_LANG_PUSH() and AC_LANG_POP() (from old AC_LANG_X).
Added ifort to list of Fortran compilers configure will look for.
Added a note about automake change to Release Notes.
Platforms tested:
copper, modi4 (parallel and serial), eirene
Code cleanup
Description:
Clean up a few warnings flagged by the Intel C compiler.
Platforms tested:
FreeBSD 4.11 (sleipnir) w/Intel C
Too minor to require h5committest
Bug fix
Description:
acsite.m4 contains macros to handle fortran compiler. Some of these macros
are obsolete with automake 1.9.5, but some of them are still used.
These macros need to refer to the fortran compiler as $FC, not $F9X.
Solution:
The version of acsite.m4 with this change didn't get checked in last time.
Oops.
Replaced all occurances of $F9X with $FC and $FFLAGS with $FCFLAGS in
acsite.m4.
Platforms tested:
copper, modi4 (serial and parallel), kelgia, eirene.
Some errors from btree code and ph5diff. No errors in fortran/test.
Bug fix & New feature
Description:
Correct some situations where a write lock on the data in the metadata
cache was requested, but only a read lock is necessary.
Add routine to find nearest neighbor record < or > to a query key.
Platforms tested:
FreeBSD 4.11 (sleipnir)
Solaris 2.9 (shanti)
Bug fix
Description:
The fortran compiler is named FC. If F9X environment variable is set,
FC should hold the value in F9X. However, this was overwriting values
written to FC by platform-specific config scripts.
This caused copper to find the wrong fortran when building in parallel, and
may have had other symptoms on other platforms.
Solution:
Assign $F9X to $FC at the beginning of configure, before platform-specific
scripts are run. Do this assignment only if FC is empty.
Platforms tested:
copper, modi4 (parallel and serial w/c++), verbena.
This change should only affect fortran build.