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 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 continuation
Description:
the atof return value on a hexadecimal input is different
on some systems; before checking for the atof return value
do a character check for the first 2 characters of the string input
Solution:
Platforms tested:
linux
solaris
Misc. update:
bug fix (sort of)
Description:
apparently linux and other systems (solaris) return a different value from atof if the
argument is in hexadecimal .
this return value was used to test if the argument to -p and -d was a valid floating point
number
for now , commented the calls in the script with -p <hexa> until we find a portable solution
Solution:
Platforms tested:
linux
solaris
windows
Misc. update:
bug fix
Description:
the -p option was not parsing correctly if the input was in the exponential format
Solution:
add a new parse test for floating point numbers
Platforms tested:
linux
Misc. update:
code clean, bug fix
Description:
the attributes of the root group were not being compared
removed compiler warnings on IRIX and solaris
Solution:
added a special function to compare the attributes of the root group
Platforms tested:
linux
IRIX 6.5
solaris 2.7
Misc. update:
h5diff new features
Description:
added comparison for attributes
adeded comparison for all dataset datatypes
added tests for the new features
changed the output format
Solution:
Platforms tested:
linux
solaris 5.7
IRIX 6.5 (64)
Misc. update:
h5diff new feature
Description:
added compare for attributes
a new options flag (-a) was added to the options structure. it is 0 by default (no compare )
the output of the compare is the same that for datasets, and all the other flags also apply for attributes
(the memory compare is done in the same function diff_array)
all the other requirements for compare of datasets (type, space) are identical too
Platforms tested:
linux
solaris 2.7
IRIX
Misc. update:
h5repack new features
Description:
added a copy routine for all types
added a copy routine for attributes
commnented some debug messages in h5trav
added the verbose option to some h5diff messages
Platforms tested:
linux
solaris 2.5
IRIX
Misc. update:
Regenerated
Description:
Regenerated Dependencies files because of changes to the h5diff and
tools library.
Platforms tested:
Linux (small change and just needed to be checked once).
h5diff maitainance
Description:
separated the h5diff source between several modules
there is a public module with a new function "h5diff" that can be called by an application
program (h5repack will use it )
added a new verbose option that can turn off all printf
Platforms tested:
linux
solaris
IRIX
Misc. update:
Code cleanup
Description:
Clean up a few loose ends and warnings for the 1.6 compatibility changes
to the error API.
Platforms tested:
FreeBSD 4.9 (sleipnir)
too minor to require h5committest
bug fix
Description:
h5diff would incur a segmentation fault in Alpha clusters when
the percentage option is used. This was due to memory aliagment
issue when the options variable is declared as a local variable
in main().
Moved the declaration to a global declaration.
Platforms tested:
"h5committested"
And tested at cluster QT of SNL.
Misc. update:
Code cleanup
Description:
Remove various "fixtype" routines which duplicate (and actually pre-date)
the functionality in H5Tget_native_type in favor of having the tools call
H5Tget_native_type(). This provides the same functionality (actually better
functionality, since the old "fixtype" routines didn't handle alignment of
compound fields correctly) and reduces the amount of code to maintain.
Add additional tests to dump out a "complex" compound datatype which
exercises more code in the library for aligning compound fields correctly.
Platforms tested:
FreeBSD 4.8 (sleipnir)
h5committest
Updated the copyright notice--mostly by rearranging
some text to make them consistent.
Solution:
Platforms tested:
"h5committested"--sol is down, so, no SUn test.
Misc. update:
Refactored code
Description:
Added 'unsigned flags[2]' field and changed 'objno' field from 'unsigned
long[2]' to 'haddr_t' (to reflect changes in H5G_stat_t)
Platforms tested:
h5committested
Refactored code
Description:
Use H5E_BEGIN_TRY/H5E_END_TRY macros around blocks where errors shouldn't
be printed, instead of managing 'automatic error' information.
Use new 'flags' field in table objects where appropriate
Chase changes to 'fileno' and 'objno' fields of H5G_stat_t
Platforms tested:
h5committested
Code cleanup & refactoring
Description:
Use H5E_BEGIN_TRY/H5E_END_TRY macros around blocks where errors shouldn't
be printed, instead of managing 'automatic error' information.
Changes to use new 'flags' fields in the table of objects, since the 'objno'
field can't be [ab]used any longer.
Platforms tested:
h5committested
bug fix
Description:
if the user incorrectly put the option -n20 (instead of -n 20) as the last argument
h5diff tried to parse the 20 as an extra argument, causing a failure
if ('-' !=argv[i+1][0] )
Solution:
add an extra test for the case that option is the last argument
if ( i<argc-1 && '-' !=argv[i+1][0] )
Platforms tested:
linux . this is too trivial for all platforms test
Misc. update:
Purpose:
Bug Fix
Description:
LIBTOOLS macro was being used but not defined.
Solution:
Removed the LIBTOOLS macro as it wasn't necessary
Platforms tested:
Modi4 (small fix)
Misc. update:
Bug Fix
Description:
The SUBDIRS macro is now defined as "" in the config/commence.in
file. We shouldn't have definitions of this macro before the
inclusion of config/commence.in.
Solution:
Placed all definitions of SUBDIRS after config/commence.in inclusion.
Platforms tested:
Modi4 (Small fix yet again).
Misc. update:
bug fix
Description:
unsigned integers were not printed out correctly
Solution:
added %u and %lu to the list of formats
Platforms tested:
Windows 2000 (octopus)
Linux 2.4 (rockaway)
SunOS 5.7 (arabica)
IRIX 6.5 (modi4)
Misc. update:
h5diff support for long_long
Description:
added h5diff support for long_long;
No automatic test was added because
it seems that the printf format of long_long is slightly different in Linux and IRIX(modi4),
because the diff command complained about a difference in the 2 test files for long_long;
visually, it seems that in IRIX an extra space is added after the print (or maybe it is
just me that is seeing extra spaces :=)
this test is test 5.8, commented in testh5diff.sh
Platforms tested:
Windows 2000 (octopus)
Linux 2.4 (rockaway)
SunOS 5.7 (arabica)
IRIX 6.5 (modi4)
Misc. update:
bug fix
Description:
the signed / unsigned comparison was not properly handled.
the fixtype function sets the sign for the memory type the same sign as found on disk
and the array_diff function only handled signed cases
Solution:
addded for each INTEGER size type an OR condition with the unsigned version
if the datatypes have different signs , comparison is NOT supported
Platforms tested:
Windows 2000 (octopus)
Linux 2.4 (rockaway)
SunOS 5.7 (arabica)
IRIX 6.5 (modi4)
Misc. update:
Purpose: bug fix for Tru64 and test of the latest szip library.
Description: h5diff uses basename function that also is defined
in the system string.h file. That caused compilation to
fail.
Solution: renamed basename to h5diff_basename
Platforms tested: verbena, arabica, arabica-64,
and PSC Compaq machine.
Misc. update:
fixed a typo on the usage message, redone the test files that deal with with
Description:
Solution:
Platforms tested:
Windows 2000 (octopus)
Linux 2.4 (rockaway)
SunOS 5.7 (arabica)
IRIX 6.5 (modi4)
Misc. update:
changes of input/ output format
Description:
on web page /RFC/h5diff
Solution:
Platforms tested:
Windows 2000 (octopus)
Linux 2.4 (rockaway)
SunOS 5.7 (arabica)
IRIX 6.5 (modi4)
Misc. update:
changed algorythm
Description:
changed the array_diff function to increment the read buffer with a size selected
by an appropriate native data type.
previously it was assumed, e.g. int size = 4 bytes
Solution:
Platforms tested:
Linux 2.4 (rockaway)
SunOS 5.7 (arabica, 64bit mode)
IRIX 6.5 (modi4)
Misc. update:
bug fix
Description:
datasets with different storage datatypes where not read to memory to same size types
Solution:
obtain the memory type and size, for the TWO datasets ,
with the "fixtype" function
"upgrade" the smaller size to the larger if they are different
added H5DIFF_DEBUG flag for print information
Platforms tested:
Linux 2.4 (rockaway)
SunOS 5.7 (arabica, 64bit mode)
IRIX 6.5 (modi4)
Misc. update:
added new test files for h5diff
bug fix
Description:
the criteria for determining the correct switch case cast to void* to type* was the data size read from disk.
this was causing problems on Cray T3E, where all integer except char are 8 bytes long
Solution:
changed the criteria for using the memory size instead, which is determined by the same function
that reads the data into memory
the messages " using memory NATIVE_TYPE_X" were removed, because they might not coincid on different
platforms.
Platforms tested:
Linux 2.4 (rockaway)
SunOS 5.7 (arabica)
IRIX 6.5 (modi4)
Misc. update: