Bug fix
Description:
Further progress on fixing file mounting to work properly.
Platforms tested:
FreeBSD 4.11 (sleipnir)
Linux 2.4
Too minor to require h5committest
Bug fix
Description:
The ".chksh" file for a test script was being created in the "source"
location rather than the build location. This can cause problems when
multiple builds are running because "slower" machines will see the ".cshsh"
file from faster machines and will not run the test script as they should.
Solution:
Use 'basename' command to strip off the path of the script and create
the ".chksh" file in the build location.
Platforms tested:
FreeBSD 4.11 (sleipnir)
h5committest
bug fix.
Description:
-nt is not a universal option for the test command in all platforms.
The use of it in conclude.am cause some platforms to bark at the
Makefile generated.
Solution:
Created a command script bin/newer which tests if file1 is newer
than file2. Replace the "test file1 -nt file2" by
"newer file1 file2".
Platforms tested:
Tested in sol.
Bug fix & code cleanup
Description:
Don't unmount child files from a parent file if the parent file is
being held open by an object.
Also, moved the mounting routines into their own source file and the
superblock routines into their own file also.
Solution:
Moved the code for unmounting child files down in the H5F_close routine
and also add checks to the file and group mounting code to unmount child
files when the last object holding open a file closes.
Platforms tested:
FreeBSD 4.11 (sleipnir)
h5committest
Code cleanup
Description:
Refactor metadata cache to merge "dirtied" flag in with other flags for
H5AC_unprotect and H5C_unprotect.
Platforms tested:
FreeBSD 4.11 (sleipnir)
h5committest
Bug fix
Description:
Fixed bugs that caused tests to be unable to find testhdf5.sh during
daily tests, and another that broke sol and shanti.
Solution:
When tests are run, their path is ./$testname .
When scripts are run, their path has no leading "./". Fixed.
Sol and shanti don't recognize the -e option for test, but they do know
-f. Fixed.
Also modified release notes.
Platforms tested:
mir, shanti, heping
Bug fix
Description:
When a series of files is mounted on one another and one of those files
is not unmounted, the library gets confused at shutdown and goes into an
infinite loop in the file interface.
Solution:
If there are still files left in the "closing" state when shutting down
the file API, iterate over those file IDs and unmount any child files that we
find mounted on those files.
Platforms tested:
FreeBSD 4.11 (sleipnir)
Too minor to require h5committest
Feature: tests now use parallel make and only run once
Description:
When make is invoked in parallel (using the -j option), several tests will
now be run simultaneously. This should speed up testing on a number of
systems.
When a test passes, it creates a foo.chkexe or foo.chksh file, which prevents
the test from running again unless the test or library changes.
Solution:
Most of the changes live in config/conclude.am. Added *.chkexe and *.chksh
files to the list of files to be cleaned at "make mostlyclean" time.
Parallel tests still run one at a time, but use the same make instructions
as serial tests.
Platforms tested:
mir, eirene, sleipnir, pommier, copper, modi4 (some errors occurred, probably
due to the test being run before updating hdf5. Will re-run tests after
checkin.)
Renamed file_handle.c as vfd.c since its tests have evloved from
merely file handles tests to other basic features of VFD's.
Did some minor cosmetic changes in vfd.c.
Updated Makefile.am with the new name.
Makefile.in is regenerated.
Platforms tested:
In heping only since the changes are trivial.
Misc. update:
Interim checkin of code changes moving management of the is_dirty flag
into the cache code.
Description:
Prior to this checkin, management of the is_dirty flag was handled
above the level of the metadata cache. This can no longer be allowed,
as it introduces a race condition in the proposed fix for a cache
coherency bug in PHDF5.
Solution:
Move management fo the is_dirty flag to the cache code proper.
Entries are now marked as dirty via a flag on the unprotect call.
Platforms tested:
h5committested
Misc. update:
Description: In this data conversion test, from floating number to floating number,
when the source is bigger than the destination, overflow may happen. The library
assign INFINITY while compiler's behavior is undefined. A compiler like SGI assigns
the maximal value for the destination.
Solution: When this situation occurs, simply check if the destination is INFINITY
instead of comparing values.
Platforms tested: modi4 and h5committest.
New feature
Description:
Add group creation & access property lists, dataset access property lists
and named datatype creation & access property lists. Currently have
<foo>_extend() API names, which will need to be changed for the final release.
Platforms tested:
FreeBSD 4.11 (sleipnir)
Linux 2.4 (heping)
Bug fix
Description:
Hyperslab selections that had a selection offset and were applied to a
chunked dataset could get into an infinite loop or core dump if the same
selection was used multiple times, with different selection offsets.
Solution:
"Normalize" the selection with the selection offset, generate the
selections for the chunks overlapped and then "denormalize" the selection.
Platforms tested:
FreeBSD 4.11 (sleipnir)
Too minor to require h5committest
Bug fix
Description:
tid.c is a test for user-defined hid_t's. It should be part of the
testhdf5 tests, but was not being run.
It also had a couple of minor bugs.
Solution:
Added id test to testhdf5 and fixed bugs.
Platforms tested:
mir, sleipnir, modi4
Description: Renamed test/dt_atomic.c to test/dt_arith.c(an abbreviation
of "arithmetic data types") to better describe the program. This checkin
broke down into three sections when the floating-point numbers are the
source, normalized, denormalized, and special values. If there's any
difference of destination values, only normalized value test reports
failure. The other 2 report only as warning.
Platforms tested: h5commitest and fuss
Misc. update: MANIFEST
Bug fix
Description:
Add check for opaque tags that are too long for file format to handle
currently.
Platforms tested:
FreeBSD 4.11 (sleipnir)
Too minor to require h5commmitest
Bug fix
Description:
Fix several NULL pointer dereferences when tracking the name of open
objects during some unusual sequences of mount & unmount operations.
Platforms tested:
FreeBSD 4.11 (sleipnir)
Too minor to require h5committest
Bug fix
Description:
Tweaks to make new family file compatibility tests work in non-srcdir
(i.e. "inplace") builds.
Platforms tested:
FreeBSD 4.11 (sleipnir) w & w/o srcdir
Too minor to require h5committest
Description:See details from Bug #213. Family member file size wasn't saved
anywhere in file. When family file is opened, the first member size determine
the member size.
Solution: this is the fifth step of checkin. Backward compatibility with v1.6
is tested. A family file created was created with the v1.6 library and opened
with this version of the library.
In the fourth step of checkin, a test suit is added for h5repart,
including a program to generate the test files, a script file to run h5repart,
and a program to verify repartitioned files can be opened by the library.
There's a change from the first step of checkin. Family name template is no
longer saved in the superblock because different pathname can make the name
different.
In the third step of checkin, h5repart has been modified. If h5repart is used
to change the size of family member file, the new size(actual member size) is saved
in the superblock.
In the second step of checkin, multi driver is checked against the driver
name saved in superblock. Wrong driver will result in a failure with an error message indicating
multi driver should be used. This change includes split driver because it's a special case for multi
driver.
In the first step of checkin. Family member size and name template(unused at this stage) are saved
in file superblock. When file is reopened,the size passed in thrin superblock. A different size
will trigger a failure with an error message indicating the right size. Wrong driver to open family
file will cause a failure, too.
Platforms tested: h5committest and fuss.
Misc. update: MANIFEST
bug fix
Description:
check-s and check-p were set as pre-requistics of test. They
would get executed in parallel if parallel make is used. This
could cause problems since serial tests are used to be executed
before parallel tests. It is not known if it is always okay to
run serial and parallel tests in simultantously.
Solution:
Change check-s and check-p as actions of the target test so
that they get executed sequnentially.
Platforms tested:
heping PP.
Description: See details from Bug #213. Family member file size wasn't saved
anywhere in file. When family file is opened, the first member size determine
the member size.
Solution: This is the fourth step of checkin. A test suit is added for h5repart,
including a program to generate the test files, a script file to run h5repart,
and a program to verify repartitioned files can be opened by the library.
There's a change from the first step of checkin. Family name template is no
longer saved in the superblock because different pathname can make the name
different.
In the third step of checkin, h5repart has been modified. If h5repart is used
to change the size of family member file, the new size(actual member size) is saved
in the superblock.
In the second step of checkin, multi driver is checked against the driver
name saved in superblock. Wrong driver will result in a failure with an error message indicating
multi driver should be used. This change includes split driver because it's a special case for multi
driver.
In the first step of checkin. Family member size and name template(unused at this stage) are saved
in file superblock. When file is reopened,the size passed in thrin superblock. A different size
will trigger a failure with an error message indicating the right size. Wrong driver to open family
file will cause a failure, too.
Platforms tested: h5committest and fuss.
Misc. update: MANIFEST
Added check-s and check-p targets.
Description:
Added check-s and check-p targets to 1.7 branch to match changes to 1.6
branch. Now parallel and serial tests can be run separately.
Platforms tested:
mir, modi4, copper
Bug fix/new feature
Description:
Setting "SEMI" or "STRONG" file close degrees causes problems when multiple
file IDs exist for the same file on disk.
Solution:
Make the "SEMI" and "STRONG" settings only apply to the file ID that is
being closed.
Also, add an "H5F_OBJ_LOCAL" flag for the H5Fget_obj_count() &
H5Fget_obj_ids() calls, so that applications can query about objects opened
with a particular file ID instead of all the objects opened in the file on
disk.
Platforms tested:
FreeBSD 4.11 (sleipnir)
h5committest
Fix a compile issue with the SX6 port.
Description:
In cache.c, invalid_configs array was declared as const, which caused
problems when elements of the array were passed to H5Pset_mdc_config()
Solution:
Remove the const modifier from the declaration of invalid_configs.
Platforms tested:
Heping (serial)
Misc. update:
Bug fix
Description:
Fix problems with hyperslab operations with hyperslabs that have count == 0
or block == 0 values. (bugzilla #294)
Solution:
Detect zero sized selections and translate into appropriate action on the
current hyperslab, rather than go through the formality of generating span
trees with zero-sized spans, etc.
Platforms tested:
FreeBSD 4.11 (sleipnir) w/parallel
Too minor to require h5committest
Purpose: Bug fix
Description: The definitions of 2 private functions(test_family_opens()
and test_multi_opens()) fell below the use of them. g++ on sleipnir
complained they weren't declared.
Solution: Moved the definitions above the use of them. Problem solved.
Platforms tested: sleipnir - the only platform complained.
Description: See details from Bug #213. Family member file size wasn't saved
anywhere in file. When family file is opened, the first member size determine
the member size.
Solution: This is the third step of checkin. h5repart has been modified. If h5repart is used
to change the size of family member file, the new size(actual member size) is saved
in the superblock.
In the second step of checkin, multi driver is checked against the driver
name saved in superblock. Wrong driver will result in a failure with an error message indicating
multi driver should be used. This change includes split driver because it's a special case for multi
driver.
In the first step of checkin. Family member size and name template(unused at this stage) are saved
in file superblock. When file is reopened,the size passed in thrin superblock. A different size
will trigger a failure with an error message indicating the right size. Wrong driver to open family
file will cause a failure, too.
Platforms tested: h5committest and fuss
Misc. update: RELEASE.txt
Bug fix
Description:
Rearrange functions to make C++ compiler happy.
Platforms tested:
FreeBSD 4.11 (sleipnir) w/CC=g++
Outside of h5committest's scope.
Feature
Description:
Added "support" for UTF-8 character encoding.
Solution:
Wrote tests to check that UTF-8 can be used in a number of places in
HDF5 (object names, data, etc.). These tests live in test/tunicode.c.
Added a new UTF-8 character encoding for datatypes.
Platforms tested:
mir, modi4, heping
Misc. update:
Description:
Description: See details from Bug #213. Family member file size wasn't saved
anywhere in file. When family file is opened, the first member size determine
the member size.
Solution: This is the second step of fixing this bug. Multi driver is checked against the driver
name saved in superblock. Wrong driver will result in a failure with an error message indicating
multi driver should be used. This change includes split driver because it's a special case for multi
driver.
In the first step of checkin. Family member size and name template(unused at this stage) are saved
in file superblock. When file is reopened,the size passed in thrin superblock. A different size
will trigger a failure with an error message indicating the right size. Wrong driver to open family
file will cause a failure, too.
Test program tries to reopen a multi file with default sec2 driver.
The third step will be changing h5repart to let it change family member size in the superblock if
user uses it to change member file size.
Platforms tested: h5committest and fuss.
Description: See details from Bug #213. Family member file size wasn't saved
anywhere in file. When family file is opened, the first member size determine
the member size.
Solution: This is the first step of fixing this bug. Member size and name
template(unused at this stage) are saved in file superblock. When file is reopened,
the size passed in through H5Pset_fapl_family is checked against the size saved
in superblock. A different size will trigger a failure with an error message
indicating the right size. Wrong driver to open family file will cause a failure,
too.
Test program tries to verify different wrong ways to reopen file will fail.
The second step will change multi driver that wrong driver will cause a failure.
Platforms tested: fuss and h5committest
New feature.
Description:
Add "memory pool" internal data structure. This set of routines is
designed to add a way to allocate small pieces of information for a particular
purpose and then free all the pieces at once (i.e. without having to free each
piece individually). Memory pools are also good for localizing lots of small
allocations that logically belong together.
For example, if you were constructing a temporary linked list, you could
create a new memory pool, allocate all the nodes for the list from the memory
pool and when you were done with the list, just destroy the pool instead of
tracking through the list and freeing each block independently.
Platforms tested:
FreeBSD 4.11 (sleipnir)
h5committest
Bug fix
Description:
Fix several problems with mounting files on an entry in a group when the
file the group is in has been closed.
Platforms tested:
FreeBSD 4.11 (sleipnir)
h5committest
Remove C99 types from new metadata cache related API calls
(take 2 -- missed one in the previous check in)
Description:
Windows (and perhaps others) don't like int32_t and int64_t. While
we have dealt with the issue internally, it is more of a problem
in API calls.
Solution:
Convert int32_t to int and int64_t to long int in the new metadata
cache related API calls.
Platforms tested:
heping
Misc. update:
Remove C99 types from new metadata cache related API calls
Description:
Windows (and perhaps others) don't like int32_t and int64_t. While
we have dealt with the issue internally, it is more of a problem
in API calls.
Solution:
Convert int32_t to int and int64_t to long int in the
H5AC_cache_config_t structure used by the new metadata cache
related API calls. Added explicit type casts to convert
between internal and external representations.
Platforms tested:
h5committested
Misc. update:
Code cleanup
Description:
Switch name & logic from H5_LLONG_TO_FP_CAST_BROKEN to
H5_LLONG_TO_FP_CAST_WORKS, to better match the rest of the library.
Platforms tested:
FreeBSD 4.11 (sleipnir)
Too minor to require h5committest
Add API calls allowing user control of the metadata cache.
Description:
Prior to this update, the metadata cache was not configurable
from outside the library.
Solution:
Add API calls allowing the user to configure the metadata cache
either at file open time, or for any open file. Also added calls
permitting the user to monitor cache size and hit rate. These
latter facilities are needed for "manual" cache size control
Platforms tested:
h5committested
Misc. update:
Slight modifications.
Description:
Several constants related to the H5Pset_scaleoffset interface
are added into H5Zpublic.h. Test cases that calls H5Pset_scaleoffset
needs slight modifications.
Solution:
Use the defined names when calling H5Pset_scaleoffset instead of
using numerical numbers.
Platforms tested:
heping, shanti
Misc. update:
New feature.
Description:
The scaleoffset filter has been implemented to
to compress floating-point data (single precision
and double precision) using D-scale method from
GRIB.
Solution:
Test cases for float and double datatypes are added
according to the change of scaleoffset filter. Situations
of fill value defined/undefined are tested.
Platforms tested:
heping, shanti, copper
Misc. update:
Bug fix....
Description:
Despite passing all tests, the previous checkin had a copy/paste typo that
resulted in the tests being run under the wrong conditions.
Solution:
Fixed typo.
Platforms tested:
yet another minor change... copper only.
Misc. update:
bug fix (sorta)
Description:
Rename H5_LLONG_TO_FP_CAST_WORKS to H5_LLONG_TO_FP_CAST_BROKEN
Solution:
Since a test for H5_LLONG_TO_FP_CAST_WORKS is not present in the configure script,
the dtransform test would assume that this cast doesn't work and skip the test. Change the variable around
so that, by default, it is assumed a long long to double cast does work.
Platforms tested:
minor change: copper, sol
Misc. update:
Bug fix
Description:
The intel compiler on windows doesn't support long long to double conversion.
Solution:
Added a flag H5_LLONG_TO_FP_CAST_WORKS. When it is not defined, the data transform will issue
an error when someone tries to perform a transform from long long to double and the long long to double
dtransform test will be skipped.
Platforms tested:
heping, sol, copper
Misc. update:
Bug fix/code cleanup
Description:
Add tests to determine that very long (64K+) object names are working.
Fixed a couple of bugs in h5dump where they weren't...
Platforms tested:
FreeBSD 4.11 (sleipnir)
Solaris 2.9 (shanti)
Use getenv_all for determining HDF5_PARAPREFIX instead of getenv
Description:
the environment variable HDF5_PARAPREFIX is now determined collectively, instead of
having each task call getenv.
Solution:
Environment variables set for task 0 often do not propogate to other tasks which
leads to obscure and hard to track down bugs. getenv_all was written to overcome
this by having all tasks query a single task for the value of its environment.
Eventually, all calls to getenv will be migrated to use getenv_all. For now,
only HDF5_PARAPREFIX will be determined this way.
Platforms tested:
heping pp, sol pp
Misc. update:
Code cleanup
Description:
Clean up various warnings reported by the Windows team.
Platforms tested:
FreeBSD 4.11 (sleipnir)
Too minor to require h5committest
Description: Some memory buffers were allocated by HDmalloc() but weren't cleaned
up before use.
Solution: Use HDmemset() to 0 set the buffers.
Platforms tested: h5committest.
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
Bug fix.
Description:
The nbit filter test case (compound datatype with no-op field)
can not pass the daily test on heping and eirene when the
enable-production option is set with configure and PGI compiler
is used. It will generate segmentation fault.
Solution:
It was found that the seg fault disappears when adding a new
index variable in the test case and using it instead of using
an existing index variable twice during initialization.
This does not make much sense since previous codes is logically
equivalent to the changed codes. So, some other factors beyond
the test case codes may have caused the problem.
Platforms tested:
heping
Misc. update:
Description: Removed support for SRB driver
Solution: Removed or modified appropriate files; ran reconfigure
to regenerate Makefile.in and configure files.
Platforms tested: heping and shanti
Misc. update: ran bin/chkmanifest on heping
New feature.
Description:
The N-Bit filter needs a test case for no-op datatypes.
Solution:
A test case was added to test a compound datatype with
N-Bit fields and no-op fields.
Platforms tested:
heping, shanti
Misc. update:
Change maximum test number from 30 to 40 since more collective IO tests were
added into parallel HDF5 test.
Description:
Solution:
Platforms tested:
heping, copper, tungsten, cobalt, SDSC TG.
Misc. update:
Feature
Description:
Added new function, getenv_all (only for parallel builds)
Solution:
getenv_all is a collective version of getenv. It is used to the return the value of
an environment variable in another task and can be used to synchronize all of the
environment variables used by all of the tasks. This helps to fix problems that commonly crop up
(like with HDF5_PARAPREFIX) when an environment variable does not propogate to other tasks.
This commit only includes the function. Future commits will replace the various getenv calls with getenv_all calls.
Platforms tested:
heping, sol, copper
Misc. update:
Description: Yesterday, dtypes.c was split into two programs, dtypes.c and dt_atomic.c.
After dt_atomic.c was added, dtypes.c remained the same as before waiting for the
daily test to pass. While dt_atomic.c turned out fine today, the test in dt_atomic.c
was taken out from dtypes.c. There's also some minor change in dt_atomic.c.
Platforms tested: h5committest
Description: Split test/dtypes.c because it's so big. Moved all integer-integer,
floating-floating, integer-floating, floating-integer, derived integer, derived
floating conversion tests to a new test program, dt_atomic.c. The test remains
the same basically.
Platforms tested: fuss and h5committest
Misc. update: MANIFEST
Configuration feature
Description:
Different Fortran compilers mangle function names in different ways
(upper case, lower case, adding underscores). To link between
Fortran and C functions, we need to know what a given function's
name is under a given compiler.
Solution:
Use autoconf's FC_WRAPPERS check to determine the Fortran
naming scheme and define the FC_FUNC_ macro to name our
functions (in H5f90proto.h). Removed references to
our old FNAME macro, as well as flags that indicated whether
function names were upper or lower case.
Platforms tested:
mir, pommier, modi4, copper, more
Description: In the last checkin, the fix wasn't quite correct. This round simply corrects the mistake
from last round, especially the endianess was left out.
Platforms tested: shanti, modi4, fuss - these machines cover both little and big endians.
Bug fix
Description:
On some machines, $RUNSERIAL variable needs to be used to run
tests. Set $RUNTESTS (which is used for non-parallel tests) to
be $RUNSERIAL in configure.am.
Also, since I was updating all Makefiles.in anyway, I updated
commence.am to point to autotools installs in AFS instead of
those on heping.
Platforms tested:
mir, sleipnir, modi4, copper
Description: In test_conv_int_float(), when testing special floating-point value NaN, the test program
couldn't detect it for Linux Intel compiler when it's optimized. The reason is in my_isnan(), a printf
command used "%LLg" to print "long double".
Solution: Changed it to "%Lg". Also differentiate cases for NaN, using exception handler if present,
decide if software conversion set converted integer to 0, or simply skip for hardware conversion.
Platforms tested: heping - simple change.
Purpose:
"Bug fix"
Description:
Hardcoded Makefiles to use /bin/sh instead of letting configure
detect shell automatically. This is what v1.6 does, and avoids
problems on janus.
Platforms tested:
sleipnir, copper, modi4, mir
Purpose:
Bug fix
Description:
test/big fails randomly with a message warning of 'possible overlap.'
Solution:
Have the random number generator check each value to make sure a write at
that position doesn't overlap any previous write.
Platforms tested:
sleipnir, modi4, eirene
New feature
Description:
Add first iteration of "segmented heap" code, which will be used to store
links in groups in a more flexible way than the previous "local heap" mechanism.
Platforms tested:
FreeBSD 4.11 (sleipnir) w/parallel
Solaris 2.9 (shanti)
Feature - conditional compilation
Description:
SRB file driver and tests are now compiled only when SRB is enabled
(using --with-srb during configure).
Solution:
Added an automake conditional in configure.in, altered Makefiles.am in
src and test directories to depend on that conditional.
This should make a nice example for posterity to add conditionally
compiled sources.
Platforms tested:
heping (only configure change)
Purpose:
Added C++ wrapper for Packet Table API.
Description:
Added macro for high-level C++ library (LIBH5CPP_HL), which changes every
Makefile.in.
Added directories for high-level C++ library (though currently only Packet
Table API is supported).
Added both C++ source and tests.
Platforms tested:
sleipnir, mir, modi4
Misc. update:
Description: In test_conv_flt_1() in dtypes.c, the case of Intel-Linux or
AMD-Linux "long double" wasn't considered. The precision is smaller than
the size. There may be some garbage left in the unused bytes during hardware
conversion.
Solution: Clear those bytes before comparison.
Platforms tested: h5committest and mir, modi4.
New feature & code cleanup
Description:
Add feature to find first block >= a certain size (useful for allocating
space)
Cleaned up various comments, etc.
Platforms tested:
FreeBSD 4.11 (sleipnir)
Solaris 2.9 (shanti)
Description: The 5th step of changing conversion test. This checkin is only for conversion
of special values between floating-point types.
Solution: This test is seperated from regular value conversion. It reuse the same function
test_conv_flt_1() in test/dtypes.c. The source buffer of floating-point type is filled up
with 8 special values, +/-0, +/-infinity, +/-QNaN, +/-SNaN.
Platforms tested: h5committest, fuss, and modi4.
Bug fix.
Description:
One test case of scaleoffset filter has fill value too large for int.
Solution:
Change the value to be within the range of int.
Platforms tested:
heping
Misc. update:
New feature.
Description:
The scaleoffset filter is now complete for compressing integers. All previous
bugs have been fixed. The filter does not compress floating-point at present.
Solution:
Update test cases for the scaleoffset filter. Two for integer types and one for
floating-point (even though the filter does not compress). The two test cases
for integer type tests situations where fill value is defined and undefined for
the dataset.
Platforms tested:
heping, copper, shanti
Misc. update:
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)
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
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)
New feature/tests
Description:
Add better support & tests for removing blocks being tracked.
Platforms tested:
FreeBSD 4.11 (sleipnir)
Solaris 2.9 (shanti)
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
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.
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 & new tests
Description:
Fix another couple of issues with record removal and add some more tests to
make certain removals work correctly.
Platforms tested:
FreeBSD 4.11 (sleipnir)
Solaris 2.9 (shanti)
Description: This is the 2nd step of changing conversion test. This checkin is
only for conversion from integer to floating number. The source buffer of
integer is filled up in the same way described in the last checkin(revision
1.153).
Platforms tested: fuss, sol, and heping - copper was down. Couldn't do
h5committest.
Bug fix & new tests
Description:
Fix several errors in record removel routines, which should now be feature
complete for removing records at any location in the B-tree (further testing
will verify this)
Platforms tested:
FreeBSD 4.11 (sleipnir)
Solaris 2.9 (shanti)
Bug fix
Description:
Corrected errors in record removal code to handle removing records in
higher nodes in the B-tree.
Platforms tested:
FreebSD 4.11 (sleipnir)
Solaris 2.9 (shanti)
Automake version upgrade
Description:
Upgraded automake version from 1.6.2 to 1.9.5.
Changed bin/reconfigure script to use automake 1.9.5.
Changed configure.in and Makefiles to use new FCFLAGS and FC variables
instead of FFLAGS and F9X.
Automake and configure should now do the lion's share of the work
supporting Fortran 9X; macros in acsite.m4 are now mostly unused (will
be cleaned later).
Altered how configure handles pmake; now root-level Makefile.in is
processed by bin/reconfigure to have a .MAKEFLAGS target, since
automake no longer allows us to define unused variables.
Configure now always checks for C++ compiler even if it is not
used, since automake thinks this is the Right Thing To Do and
will break otherwise.
Platforms tested:
Sol, copper, heping, mir, sleipnir, eirene, pommier, kelgia, modi4.
Bug fix & new feature
Description:
Allow B-tree's height to be reduced when removing records.
Platforms tested:
FreeBSD 4.11 (sleipnir)
Solaris 2.9 (shanti)
More tests
Description:
Add tests for removing records in the root of a level-1 B-tree and
promoting and merging leaf nodes.
Platforms tested:
FreeBSD 4.11 (sleipnir)
Solaris 2.9 (shanti)
Bug fix/new feature
Description:
Tweak the record promotion algorithm to get it working correctly when
promoting and redistributing records.
Added tests for that case.
Platforms tested:
FreeBSD 4.11 (sleipnir)
Solaris 2.9 (shanti)
New feature
Description:
Allow records in internal nodes to be removed, not just records in leaf
nodes.
Platforms tested:
FreeBSD 4.11 (sleipnir)
Solaris 2.9 (shanti)
Bug fix & new feature
Description:
Fix error in 3-node redistribution when nodes are only moving into the
middle node from the left & right nodes (which happens sometimes during
record removals).
Clean up internal insert & remove routines to remove lots of redundant
checking.
Added 3->2 node merge routine to handle more record removal cases.
Platforms tested:
FreeBSD 4.9 (sleipnir)
Solaris 2.11 (shanti)
Description: This is the first step of changing conversion test. This checkin is only for conversion
between integers. Instead of filling source buffer with randomly generated bit pattern, this new way
uses more sensible bit patterns. It's easier to see using "char" as source for example. The bit patterns
will be
00000001, 00000010, 00000100, 00001000, 00010000, 00100000, 01000000, 10000000
00000000, 00000011, 00000111, 00001111, 00011111, 00111111, 01111111, 11111111
11111111, 11111110, 11111100, 11111000, 11110000, 11100000, 11000000, 10000000
The main point of this way is to avoid casting and comparison between source and destination types by
compiler. The bit patterns will cover positive maximum and minimum, negative maximum and minimum if
the source is signed integer.
Platforms tested: h5committest and fuss.
Bug fix & new feature
Description:
Fix a couple of off-by-one errors in assertions (code was actually correct)
for 3 node redistributions.
Remove "old" node removal code that is unused now.
Add more tests that verify that 2-node and 3-node redistributions are
working correctly for removals.
Platforms tested:
FreeBSD 4.11 (sleipnir)
Solaris 2.9 (shanti)
New test
Description:
Add a couple more tests for removing records before I start modifying the
code further.
Platforms tested:
FreeBSD 4.11 (sleipnir)
Solaris 2.9 (shanti)
Bug fix & new feature
Description:
Fix problem with inserting existing keys into B-tree corrupting record
counts along the path to the failed insertion.
Add more support for removing records, it's now handling removing records
from leaves of level-1 B-trees.
Platforms tested:
FreeBSD 4.11 (sleipnir) w/parallel
Solaris 2.9 (shanti)
Removed GASS configuration and software packages associated with
it. The following software are no longer configurable.
checking for main in -lcrypto... yes
checking for SSL_get_version in -lssl... yes
checking globus_common.h usability... yes
checking globus_common.h presence... yes
checking for globus_common.h... yes
checking for globus_module_activate in -lglobus_common... yes
checking for main in -lglobus_gass_cache... yes
checking for main in -lglobus_gaa... yes
checking for main in -lglobus_gss... yes
checking for main in -lglobus_gss_assist... yes
checking for main in -lglobus_io... yes
checking for main in -lglobus_gass_transfer_assist... yes
checking for main in -lglobus_gass_transfer... yes
checking for globus_gass_open in -lglobus_gass_file... yes
Platforms tested:
h5committested (but copper was down.) tested in modi4 too.
New features & refactor
Description:
Add basic record removal (only handles level-0 B-trees currently)
Add query routine to check the number of records in a B-tree
Add debugging routine to check the address of the root node in the B-tree
Platforms tested:
FreeBSD 4.11 (sleipnir)
Solaris 2.9 (shanti)
Description: Somehow, the hardware conversions between "long double" and other native floating-point
types were left out.
Solution: Added the hardware conversion functions in H5Tconv.c and test cases in dtypes.c.
Platforms tested: h5committest and fuss.
Misc. update: updated MANIFEST to replace bin/reconfigure.sh with bin/reconfigure
Description: The library didn't handle incorrect hardware conversion for datatype. It simply did
convert to incorrect data if any hardware didn't handle correctly.
Solution: During configuration, incorrect hardware conversion is detected and some macros are
defined. Use these macros to decide whether to register hardware conversion in H5T.c. If no hardware
conversion function is registered for certain pair of datatypes, software conversion function will
be used as the conversion path. Although slower than hardware conversion, we're more confident
software conversion is accurate.
So in one sentence to describe library's behavior, if some hardware conversion doesn't work well,
software conversion will be used instead.
Platforms tested: h5committest and fuss.
Misc. update: some changes to configure's comments.
Bug fix & new feature
Description:
Fix errors in tracking the total number of records "below" a node.
Add feature to find the n'th record in a B-tree
Platforms tested:
FreeBSD 4.11 (sleipnir)
Solaris 2.9 (shanti)
New feature, refactor code
Description:
Add call to search for a record in a B-tree by key value
Refactored some of the existing callbacks to simplify them.
Platforms tested:
FreeBSD 4.11 (sleipnir)
Solaris 2.9 (shanti)
Bug fixes
Description:
Fix several bugs in B-tree insertion code, which now appears to be fully
functional. (Tested to 1,280,000 records at least...)
Add random record insertion test to shake out boundary conditions, etc.
Platforms tested:
FreeBSD 4.11 (sleipnir)
Solaris 2.9 (shanti)
New feature
Description:
Allow internal nodes to perform 3->4 splits. Inserting records should now
be feature complete.
Platforms tested:
FreeBSD 4.11 (sleipnir)
Solaris 2.9 (shanti)
New test
Description:
Add more regression tests for redistributing leafs in a level-2 B-tree
Platforms tested:
FreeBSD 4.11 (sleipnir)
Too minor to require h5committest
New feature.
Description:
Add a test case for scaleoffset filter (integer type). For debugging purpose only.
The test case is not turned on.
Solution:
Platforms tested:
heping, copper, arabica
Misc. update:
Purpose:
Bug fix
Description:
modi4 dies during build with strange errors.
The root cause of these is a two-year-old hack in HDF5's libtool
script that only takes effect on IRIX.
Solution:
Edited the libtool hack (by editing ltmain.sh) to correct a bug in
the hack.
Also made sure that compiler-specific DEFAULT_LIBS are used
when linking.
Platforms tested:
sleipnir, copper, modi4, sol
New feature & bug fix
Description:
Allow root node to split, forming a level 2 B-tree
Fix error where wrong record was being copied up to parent node for a 2
node redistribution on the "right" side of the B-tree.
Platforms tested:
FreeBSD 4.11 (sleipnir) w/parallel
Solaris 2.9 (shanti)
Bug fix
Description:
Arabica exhibited strange errors when linker found wrong versions of
header files. This happened because include directories were
given to linker in the wrong order.
Solution:
Move include directories from AM_CFLAGS variable to INCLUDES
variable to put them before CPPFLAGS variable. Trust me, it works.
This bug may also have contributed to strange errors on other platforms
(kelgia?).
Platforms tested:
copper, sleipnir, arabica.
(h5dump broke while building on arabica, but this happened in
a clean checkout, too).
Bug fix
Description:
pmake (on modi4, for instance) complains about undefined variables
if it is run without the -V flag, which turns those errors to warnings.
Solution:
Added test to configure.in to see if $MAKE will allow Makefiles
with undefined variables. If not, sets -V flag in AM_MAKEFLAGS.
Ensured that all custom make targets use AM_MAKEFLAGS.
Also defined all variables that caused errors in top-level Makefile.am.
This means that pmake can be used to build hdf5 *from the top level
only*. To run make from a subdirectory, still need to use -V flag
(or use make or gmake).
Platforms tested:
modi4, heping, copper, sleipnir
Description: For hardware conversion from integers to "long double" on AMD machine, the test
failed because the size of "long double"(can be 16 bytes) is bigger than the precision(80 bits).
There can be some garbage in the unused bytes in "long double". That caused failure during
byte comparison.
Solution: Clean these unused bytes before comparison.
Platforms tested: mir and fuss; simple change
New feature & code cleanup
Description:
Change some references from 'keys' to 'records', which is more correct for
this implementation.
Added feature to allow preemptive 3 node record redistributions (for leaves
only currently)
Added feature to perform preemptive 3->4 node splits (for leaves only
currently)
Platforms tested:
FreeBSD 4.11 (sleipnir) w/parallel
Solaris 2.9 (shanti) w/purify
Too minor to require h5committest
New feature & bug fixes
Description:
Checkpoint v2 B-tree code after getting preemptive 2->3 node splitting
working (for leaf nodes only at the moment, however).
Also, correct a problem with redistributing records that was probably
causing the failures on mir in yesterday's daily tests.
Ran code through purify on shanti and cleared up some warnings.
Platforms tested:
FreeBSD 4.11 (sleipnir) w/parallel
Solaris 2.9 (shanti) w/purify
Description: Added support of hardware conversion between "long double" and integers(mainly
in H5Tconv.c) and some test cases(mainly in test/dtypes.c).
Platforms tested: h5committest and fuss.
Misc. update: RELEASE.txt
New feature
Description:
Checkpoint v2 B-tree code after getting 2 leaf record redistribution
working and tested.
Platforms tested:
FreeBSD 4.11 (sleipnir) w/parallel
Too minor to require h5committest
Description: H5Tget_member_value didn't return correct value if called after
H5Tenum_valueof. It's because there's a sorting on the members of enum type in
H5Tenum_valueof which changed the order of members.
Solution: Made a copy of original type and do sorting on it to protect the
original order.
Platforms tested: fuss; tested v1.6 with h5committest
Misc. update: RELEASE.txt
Bug fix & code update
Description:
Fix error in new free-list factory routines that was causing errors on
tungsten, et al.
Also, checkpoint v2 B-tree code.
Platforms tested:
FreeBSD 4.11 (sleipnir) w/parallel
Linux 2.4 (tungsten)
Otherwise too minor to require h5committest
Description: For variable-length string, H5Tget_class returned H5T_STRING as
its class. But H5Tdetect_class and H5Tget_member_class considered it as
H5T_VLEN. This is fixed to let all these 3 functions treat it as H5T_STRING.
Some test cases have been added to dtypes.c
Platforms tested: heping - already tested for v1.6 with h5committest
Misc. update: RELEASE.txt
Bug fix (sorta)
Description:
Disable btree2 testing until Monday, when I can look into the failures
without a toddler on my lap. :-)
Platforms tested:
FreeBSD 4.11 (sleipnir)