bug fix
Description:
calling h5diff from the h5repack test script running mpicc , the path of one of the files was not found
Solution:
inserted the full path in the script
Platforms tested:
linux (with mpicc and gcc)
Misc. update:
Remove feature
Description:
Retire threaded, balanced binary tree code from HDF5 use. Requiescat in
pace...
Also, regenerate dependencies files.
Platforms tested:
FreeBSD 4.10 (sleipnir) w/parallel
Too minor to require full h5committesting (the code is already
disconnected from everything except its tests)
Bug Fix/Code Cleanup/Doc Cleanup/Optimization/Branch Sync :-)
Description:
Generally speaking, this is the "signed->unsigned" change to selections.
However, in the process of merging code back, things got stickier and stickier
until I ended up doing a big "sync the two branches up" operation. So... I
brought back all the "infrastructure" fixes from the development branch to the
release branch (which I think were actually making some improvement in
performance) as well as fixed several bugs which had been fixed in one branch,
but not the other.
I've also tagged the repository before making this checkin with the label
"before_signed_unsigned_changes".
Platforms tested:
FreeBSD 4.10 (sleipnir) w/parallel & fphdf5
FreeBSD 4.10 (sleipnir) w/threadsafe
FreeBSD 4.10 (sleipnir) w/backward compatibility
Solaris 2.7 (arabica) w/"purify options"
Solaris 2.8 (sol) w/FORTRAN & C++
AIX 5.x (copper) w/parallel & FORTRAN
IRIX64 6.5 (modi4) w/FORTRAN
Linux 2.4 (heping) w/FORTRAN & C++
Misc. update:
new feature
Description:
when requesting a filter for all datasets and the filter cannot be applied for one dataset
use the original dcpl withou filter and print a warning
this check was done previously with buit in functions for szip that are now in the library
Solution:
Platforms tested:
linux
solaris
aix
Misc. update:
bug fix
Description:
the routine for applying the layout for the new file of h5repack was not
handling the logic correctly in cases where an input layout was not set
Solution:
changed the logic so that the original layout is preserved
(this bug was introduced in the last change, October 19 04)
Platforms tested:
linux (small change)
Misc. update:
Fix SZIP filter to dynmically detect encoder.
Description:
Solution:
See:
http://hdf.ncsa.uiuc.edu/RFC/SZIP/Szip_dynamic_12_Oct.pdf
Changes to h5repack tests, contingent on detecting SZIP encoder.
Note new program:
testh5repack_detect_szip
Checks fo rencoder, prints out "yes" or "no". Used by hrepack.sh
to detect encoder. Can also be used for windows tests. This is
only used as part of the tests.
Had to modify Makefile to build and clean this program.
bug fix
Description:
Description:
one case was not handled in the combination of input options (layout and filters)
Solution:
redo the algorythm that handles all cases
Solution:
Platforms tested:
linux
Misc. update:
bug fix
Description:
when specifying both an input object e.g -f mydset:GZIP=1 and a defined chunk -l CHUNK=20x20
the filter used a defined default chunk instead
Solution:
add a check for the input chunk
Platforms tested:
linux (small change)
Misc. update:
Refactor code
Description:
Refactor common code for determining the native type for using in the
tools into separate routine.
Also, reduce diffs between the two branches and bring back some fixes from
the development branch to the release branch.
Platforms tested:
FreeBSD 4.10 (sleipnir)
too minor to require h5committest
Purpose: change feature
Description: Back up support bitfield and time datatypes in H5Tget_native_type.Leave it to future support. Let it return "not supported" error message for
now.
Platforms tested: h5committest and fuss.
Misc. update: RELEASE.txt
Purpose:
Feature
Description:
Datatypes and groups now use H5FO "file object" code that was previously
only used by datasets. These objects will hold a file open if the file
is closed but they have not yet been closed. If these objects are unlinked
then relinked, they will not be destroyed. If they are opened twice (even
by two different names), both IDs will "see" changes made to the object
using the other ID.
When an object is opened using two different names (e.g., if a dataset was
opened under one name, then mounted and opened under its new name), calling
H5Iget_name() on a given hid_t will return the name used to open that hid_t,
not the current name of the object (this is a feature, and a change from the
previous behavior of datasets).
Solution:
Used H5FO code that was already in place for datasets. Broke H5D_t's, H5T_t's,
and H5G_t's into a "shared" struct and a private struct. The shared structs
(H5D_shared_t, etc.) hold the object's information and are used by all IDs
that point to a given object in the file. The private structs are pointed
to by the hid_t and contain the object's group entry information (including its
name) and a pointer to the shared struct for that object.
This changed the naming of structs throughout the library (e.g., datatype->size
is now datatype->shared->size). I added an updated H5Tinit.c to windows.zip.
Platforms tested:
Visual Studio 7, sleipnir, arabica, verbena
Misc. update:
bug fix
changed some datset names for h5repack etsts
Description:
Description:
the dataset region reference data was not portable between the Cray T3E and other machines
Solution:
this was due to the fact that the buffer to store the heap ID and index was using a sizeof(int) for its
size
4 is used instead of sizeof(int) to permit portability between
the Crays and other machines (the heap ID is always encoded as an int32 anyway)
Solution:
Platforms tested:
linux
aix
solaris
Misc. update:
h5repack test
Description:
modified a test file generation contents, for more easy debugging
(generated just one reference dataset and one region reference )
Solution:
Platforms tested:
linux
aix
solaris
Misc. update:
new test
Description:
added a test that generates and copies a file with a dataset with fill value
(this is to test the property list function H5Pequal)
Solution:
Platforms tested:
linux
solaris
aix
Misc. update:
new feature
Description:
added a check that the chunk size must be smaller than pixels per block in SZIP request
prints a message and exits, if not met
Solution:
Platforms tested:
linux
aix
solaris
Misc. update:
bug fix
Description:
the option CHUNK:NONE (remove chunking ) was not setting the layout to contiguous
Solution:
Platforms tested:
linux
solaris
AIX
Misc. update:
Purpose: Small bug fix
Description: When SZIP filter is present but encoding is not enabled
test_misc21 and h5repack tests failed.
Solution: Those tests should not run in this situation at all.
Used conditonal compilation to disable the tests.
Platforms tested: sol (today I will enable the daily tests with the szip library
that doesn't have encoder for few other platforms)
Misc. update:
update documentation and usage message
Description:
updated the html documentation for the new h5diff modes
added a section for h5repack
Solution:
Platforms tested:
linux
Misc. update:
h5diff and h5repack changes
Description:
h5diff
introduced the following four modes of output:
Normal mode: print the number of differences found and where they occured
Report mode: print the above plus the differences
Verbose mode: print the above plus a list of objects and warnings
Quiet mode: do not print output (h5diff always returns an exit code of 1 when differences are found)
h5repack
added an extra parameter for SZIP filter (coding method)
the new syntax is
-f SZIP=<pixels per block,coding>
(pixels per block is a even number in 2-32 and coding method is 'EC' or 'NN')
Example of use:
./h5repack -i file1 -o file2 -f SZIP=8,NN -v
updated usage messages, test scripts and files accordingly
Solution:
Platforms tested:
linux
AIX
solaris
Misc. update:
bug fix, new feature
Description:
fixed bug in the parse function:
cases where we have an already inserted name but there is a new name also
example:
-f dset1:GZIP=1 -l dset1,dset2:CHUNK=20x20
dset1 is already inserted, but dset2 must also be (it was not)
added a CHECK_SZIP symbol to enable/disable checking of library related szip parameters
added the print of the filter name in verbose mode (confirms visually that the filter was applied )
Solution:
Platforms tested:
linux
solaris
AIX
Misc. update:
h5repack changes
Description:
there were some requests to change some minor h5repack features
h5repack only made a warning about a non available filter in verbose mode ( -v )
without -v it kept silent, and users sometimes missed this warning
the request was that it should print this warning always. so, the new format, is e.g
./h5repack -i test_szip.h5 -o out.h5
Warning: dataset </dset_szip> cannot be read, SZIP filter is not available
due to this, and to avoid a lot of these messages in the shell test script, I modified
the script h5repack.sh so that it detects the presence of all filters in the environment
(previously it only detected SZIP)
the test files were also divided in more files , to make the script code easier to
follow
Solution:
Platforms tested:
linux
AIX (no szip)
solaris (no szip, no gzip )
Misc. update:
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:
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:
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
bug fix
Description:
the routine for reading the options from a file had the "old" parse syntax
Solution:
Platforms tested:
linux
solaris
AIX
Misc. update:
Bug fix.
Description:
Temporary output files were created in the source directory.
If multiple build/tests using the same source directory occur
at the same time, they would conflict because of the same file
names.
Solution:
Changed it to create temporary output file in the current build
directory.
Platforms tested:
sol.
Misc. update:
new test
Description:
add a test that generates a file with "holes" and then uses h5repack to clean
the empty space. it works
Solution:
Platforms tested:
linux
Misc. update:
bug fix, new tests
Description:
added a couple of #ifdefs to check if a specific filter is available for read
added more tests
the h5tools check filters had a mismatched filter variable
Solution:
Platforms tested:
linux, with several filter configurations (all, some , none )
Misc. update:
new tests for h5repack
Description:
added more tests both to the test program and shell script that test
a variation of different filter converssions
Solution:
Platforms tested:
linux
Misc. update:
new tests for h5repack
Description:
added tests that do layout type to layout type conversion in a matrix of 9 between compact, contiguous and chunking
Solution:
Platforms tested:
linux
afs has problems; I could not telnet to sol and copper, arabica is really slow (meaning
waiting 1 minute for a typed character) and the writing of a file gave an error
arabica 181% afs: failed to store file (145)
afs: failed to store file (145)
Misc. update:
bug fix
Description:
the synntax of the input of h5repack conatined double quotes and spaces, which
were causing problems on the parsing in AIX paralell
Solution:
replaced the spaces by =
that is, instead of -f "GZIP 6"
we have now
-f GZIP=6
Platforms tested:
linux
solaris
AIX paralell
Misc. update:
Bug fix.
Description:
nerror was not updated when errors were detected.
Added the nerror update and print a message at
the end if all is well.
Platforms tested:
Tested in copper, both parallel and serial.
code clean, change test script
Description:
removed soem debugging messages
changed the chunking command line call to a non square dimensionality
Solution:
Platforms tested:
linux
Misc. update:
bug fix
new test
Description:
the fletcher filter used a temporary 2 byte word buffer to compute the checksum.
this is non portable between big-endian/little endian.
added a test that reads 2 pre-saved files (one LE, other BE) with that filter enabled
Solution:
replaced with a buffer of 1 byte type
Platforms tested:
linux
solaris
solaris 64 bit
AIX
windows
Misc. update:
new feature
Description:
added a check for the return value of the tools h5repack and h5diff
in the run script.
the return value is used to print PASSED (tool returns 0) or FAILED
Solution:
Platforms tested:
linux
Misc. update:
1) new function for tools library
2) new test script for h5repack
Description:
1) currently all the tools (h5dump, h5diff, etc) do not check if a filter is available
for reading some dataset that might have a filter not available on the current configuration (the behaviour
of the tools until now was to trigger a library error, saying that the dataset cannot be read
due to the lack of the filter)
Solution:
1) added a new function h5tools_canreadf that checks if a dataset can be read
depending on the availability of filters.
this function was added in calls for h5diff and h5repack.
instead of triggering the library error, a message is printed, saying that the dataset
cannot be read (the print is optional, it is on on verbose mode)
2) added a shell script that tests the commannd line tool behaviour of h5repack
the script does a series of runs of h5repack with several options on the same file (this file test4.h5
was added to the testfiles dir).
then, it runs the h5diff tool, with the input and output files , in each run.
the goal of the test is also to check item 1) . the binary file was saved with filters
that might not be available on other configurations
Platforms tested:
linux (all filters enabled)
linux (some filters disabled)
solaris (some filters disabled)
AIX (some filters disabled)
windows (all filters on and off )
Misc. update:
bug fix
Description:
I introduced some #ifdef <have_filter> on the check in yesterday on the places
that generated datasets, that had no corresponding on the read part.
this caused failures in the configurations where a filter was not defined
Solution:
just removed the #ifdefs
Platforms tested:
linux
Misc. update:
bug fix
Description:
generating a dataset in linux 2.4 (verbena) with the pgcc compiler gave an error with the following
sequence
1) make a space id1 and a dcpl
2) make a space id2, create and write a dataset with space id2, close
3) attempt to create a dataset with space id1 fails and calling a set_filter function with the dcpl in 1) fails
Solution:
just changed the order 2) to 1)
Platforms tested:
linux 2.4 (verbena) with pgcc compiler
Misc. update:
bug fix in H5Zshuffle.c
add more tests to h5repack that exposed the bug
Description:
when creating a dataset with the shuffle filter and duplicating it in a new dataset (file)
the call to H5Z_set_local_shuffle failed. this is because the value of cd_nelmts of the filter
structure is set to 1 (H5Z_SHUFFLE_TOTAL_NPARMS) when the original dataset is created, but when
the new dataset is created there is a checking instruction that fails if the value of
cd_nelmts is not 0 (its original value, H5Z_SHUFFLE_USER_NPARMS)
Solution:
just remove that check condition, since the value of cd_nelmts is not used anyway.
if we decide that the value of cd_nelmts is necessary, then the H5O_pline_copy function
must be changed to update this value (a different update for each filter)
Platforms tested:
linux
solaris
AIX
Misc. update:
new feature, bug fix, changed function
Description:
1) implemented the option that says if the dataset is too small , do not compress it
2) bug fix in the SZIP checking . only apply szip to atomic datatypes
3) made the apply_filters function more compact
Solution:
Platforms tested:
linux
AIX
solaris
Misc. update:
Purpose:
replaced name of delete filter with remove filter for the new function H5Premove_filter
Description:
Solution:
Platforms tested:
linux
Misc. update:
h5repack new feature
Description:
in the SZIP settings, when the requested pixels per block parameter does not conform
to the SZIP specifications, instead of returning without applying the filter,
do an attempt to set this parameter to a valid value, issuing a warning in the process
Solution:
Platforms tested:
linux
solaris
AIX
Misc. update:
bug fix
Description:
avoid reading and writing data when one of the dimensions is 0 (attributes case )
Solution:
linux
solaris
AIX
Platforms tested:
Misc. update: