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:
New feature/enhancement
Description:
Chunked datasets are handled poorly in several circumstances involving
certain selections and chunks that are too large for the chunk cache and/or
chunks with filters, causing the chunk to be read from disk multiple times.
Solution:
Rearrange raw data I/O infrastructure to handle chunked datasets in a much
more friendly way by creating a selection in memory and on disk for each chunk
in a chunked dataset and performing all of the I/O on that chunk at one time.
There are still some scalability (the current code attempts to
create a selection for all the chunks in the dataset, instead of just the
chunks that are accessed, requiring portions of the istore.c and fillval.c
tests to be commented out) and performance issues, but checking this in will
allow the changes to be tested by a much wider audience while I address the
remaining issues.
Platforms tested:
h5committested, FreeBSD 4.8 (sleipnir) serial & parallel, Linux 2.4 (eirene)
h5diff update
Description:
removed the -l , list, option
this feature will be part of a different tool
Solution:
Platforms tested:
Windows 2000 (octopus)
Linux 2.4 (rockaway)
SunOS 5.7 (arabica)
IRIX 6.5 (modi4)
Misc. update:
new feature
Description:
during the sequencial match list, by default the differences between matched datasets were printed.
added an -m option that allows to turn this off, just printing the file differences
Solution:
Platforms tested:
Linux 2.4 (rockaway)
SunOS 5.7 (arabica)
IRIX 6.5 (modi4)
Misc. update:
added more tests, described in the test matrix
Description:
test -r
test -l
expanded -d, -p and -n tests
test different types to include links and named types
test for non supported classes, e.g bitfield, opaque , etc
Platforms tested:
Linux 2.4 (rockaway)
SunOS 5.7 (arabica)
IRIX 6.5 (modi4)
Misc. update:
added some niceties and utilities, and more tests
Description:
some niceties: more error messages on cases of bad input
utilities: some functions to more human readable output
more tests: described in the test matrix
Platforms tested:
Linux/rockaway(C)
SunOS/arabica (C)
SGI/modi4 (C)
added more tests to automatic testing
Description:
added test for an invalid option letter
added test for -h option
added test for an invalid option -d
added test for an invalid option -d number
Solution:
Platforms tested:
linux, solaris, sgi
Misc. update:
added test script for h5diff
code cleaning for alpha release
makefile now generates the h5difftst.c program that generates 2 .h5 files for testing
Description:
the .sh script runs several runs of h5diff and compares the output
with a predifined output located in /tools/testfiles (.txt files)
righ now it has only one test
Solution:
Platforms tested:
linux (other platforms later , ok !? )
Misc. update:
h5diff bug fix, enhancements
Description:
the case for 8 byte integers was not handled
added more checking of wrong input data
Solution:
added the size 8 integer case
Platforms tested:
w2000, linux, solaris (64 mode)
bug fix
Description:
some data not read correctly due to type_id used in read
Solution:
did a function that determines the optimal memory type
Platforms tested:
w2000, linux, solaris
bug fixes in h5diff
Description:
there was a incorrect reading of arguments when only 1 object name was supplied
reading of data was done using type_id got from disk, causing some values not read correctly into memory
Solution:
used native types to read into memory
Platforms tested:
w2000, linux, solaris57
h5diff enhancements
Description:
changed -r to count the number of differences, but do not print them
changed the output format with some printf enginnering, to align columns
print the dimensions of dsets, in case they are different
test files added test for non supported data (class not integer or float)
fix print dimensions to 0 index
Platforms tested:
w2000, linux, solaris