Tweak down the size of datatype created for dataset, so that the
elements are a reasonable size and the dataset's size can fit into a 64-bit
value for storing in the file.
Tested on:
FreeBSD/64 6.3 (liberty)
(too minor for h5committest)
Bring r16848 from revise_chunks branch to trunk:
Add test (and bugfixes) for detecting if a filter makes a chunk size
larger than can be encoded in a 32-bit variable (in the file).
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
(h5committest not needed, multi-platform testing done on branch)
Bring r16846 from revise_chunks branch back to trunk:
Fix broken (for how long?) H5_ASSIGN_OVERFLOW macro to actually detect
overflows during assignments, along with several errors it [now] detected.
Cleaned up a fix minor warnings and/or pieces of code also.
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
(h5committest not needed - multi-platform test performed on branch)
Adding dependency to h5repack test script.
h5repack.sh needs h5repacktst to run first.
Tested:
Problem only appeared on Glory, but tested the dependence
manually on jam by trying to run only the script and checking
that it first ran the h5repacktst test program.
If the AR command has embedded shell separators such as the case of
"AR = ar -X 64", $AR ends up as a blank.
Solution:
Put quotes around the command substitution string to protect against embedded
separators. Applied the same to both AR and RANLIB assignments.
Tested:
At Up (AIX 5.3) only because that was where I discovered the error
when AR is ar -X 64
In Up (AIX system), the insert_libhdf5_settings() infinite looped because
it never found EOF. Man getc in another system said:
"If the integer value returned by getc() is stored into a variable of
type char and then compared against the integer constant EOF, the com-
parison may never succeed, because sign-extension of a variable of type
char on widening to integer is implementation-defined."
Solution:
Changed inchar from type char to int fixed the problem.
Morale of the story: RTFM or HTCW (heed the compiler warnings).
Tested:
Up (AIX 5.3).
Added member function Attribute::getInMemDataSize(), which is a wrapper
of several C calls, to simplify getting the attribute's data size in
memory. Used this new function in Attribute::read to get the fixed-len
string attribute data.
Added tests to tattr.cpp.
Platforms tested:
Linux/32 2.6 (jam)
FreeBSD/64 6.3 (liberty)
SunOS 5.10 (linew)
Added member function Attribute::getInMemDataSize(), which is a wrapper
of several C calls, to simplify getting the attribute's data size in
memory. Used this new function in Attribute::read to get the fixed-len
string attribute data.
Added to tests in tattr.cpp.
Platforms tested:
Linux/32 2.6 (jam)
FreeBSD/64 6.3 (liberty)
SunOS 5.10 (linew)
Embed the content of libhdf5.settings into the hdf5 executables so that an
"orphaned" executables can display (via the Unix strings command, for example)
the library settings used to build the executables.
This is a prototype implementation. Much improvement is needed.
configure.in:
Added the --disable-embedded-libinfo option to disable this feature.
configure:
src/H5config.h.in:
Generated by autotools like automake.
src/H5detect.c:
Implement insert_libhdf5_settings() to insert the contents of
libhdf5.settings into the library as an extern string variable so that it
is included in all HDF5 executable. Much improvement is needed.
fortran/src/Makefile.in:
Auto-generated by bin/reconfigure. (i.e., I did make any changes to cause
its direct regeneration).
Tested:
Jam serial, using default and --disable-embedded-libinfo, configure options.
Description:
Previously, there was no versioning for H5Z_class_t. This prevented applications
written for 1.6 using custom filters from being able to use the 1.8 library.
There is now an H5Z_class1_t and H5Z_class2_t to enable compatibility. H5Zregister is
*not* versioned, it determines which version of the struct has been passed in by the
value of the first field (id or version, both are ints).
Tested: jam, linew, smirom (h5committest), jam (--with-default-api-version=v16)
Description:
Three new tests were added to the h5repack test script in rev.16802. This checkin brings those new tests to Windows as well.
Tested:
VS2005 on WinXP x64
Description:
When writing data to a dataset, the data transform was performed after type conversion.
This caused an error if the file type was non-native. This has been changed so data
transforms are always performed on the memory type.
Tested: jam, linew. smirom (h5committest)
Description:
h5repack previously would not take named datatypes into consideration when copying
datasets and attributes. This would cause extra anonymous datatypes in the target file
at best, and cause errors halfway through the repacking at worst. h5repack should now
always handle named datatypes correctly. Named datatypes are also now converted to the
native type when -n is given.
Tested: jam, linew, smirom (h5committest)
H5D_CHUNK_CACHE_NSLOTS_DEFAULT_F
H5D_CHUNK_CACHE_NBYTES_DEFAULT_F
H5D_CHUNK_CACHE_W0_DEFAULT_F
to
H5D_CHUNK_CACHE_NSLOTS_DFLT_F
H5D_CHUNK_CACHE_NBYTES_DFLT_F
H5D_CHUNK_CACHE_W0_DFLT_F
to get under the 31 limit for variable names
H5D_CHUNK_CACHE_NSLOTS_DEFAULT_F
H5D_CHUNK_CACHE_NBYTES_DEFAULT_F
H5D_CHUNK_CACHE_W0_DEFAULT_F
to
H5D_CHUNK_CACHE_NSLOTS_DFLT_F
H5D_CHUNK_CACHE_NBYTES_DFLT_F
H5D_CHUNK_CACHE_W0_DFLT_F
to get under the 31 limit for variable names
- Updated bin/reconfigure to use latest version of automake (1.10.2).
Re-generated Makefile.in's by running bin/reconfigure.
- Added libtool version numbers to c++, fortran, hl, hl c++, and hl fortran
libraries.
Tested:
jam, liberty, smirom
For gcc v4.3 and v4.4, with production mode,
if -O3 is used, H5Tinit.c would fail to compile. Actually bad H5Tinit.c is
produced.
If -O (same as -O1) is used, H5Tinit.c compiled okay but test/dt_arith
would fail with:
Testing hard normalized long double -> signed char conversions time: comm
and terminated abnormally
When -O0 (no optimizatio) is used, H5Tinit.c compilete okay and all tests
passed.
Solution:
Changed the config/gnu-flags to use -O0 for gcc v4.3 and 4.4 for production
flags for now so that build and tests would work. Still need to investigate
if the error is due to Gcc optimization bug or our code errors.
Tested:
In liberty with gcc43 and gcc44. Also, tested in jam and smirom with
older versions of gcc.
There are no gcc 43 or 44 compilers installed in other THG machines that
I know.
Fixed to pass parameters to H5Awrite/H5Aread correctly so that
all Attribute::write and Attribute::read methods work correctly
for both fixed-length and variable-length string attributes.
Added more test cases.
Platforms tested:
Linux/32 2.6 (jam)
FreeBSD/64 6.3 (liberty)
SunOS 5.10 (linew)
library source directory. Since the test opens the files with write mode, it's safer to
make copies of the original files. I added the copying step in test_family_compat in vfd.c.
I changed the Makefile.am to clean up the copied files. I created a new family_v16_00000.h5
with v1.6 library.
Tested on jam - supposed to be simple change.
Use environment variable instead of command parameter to test
the install via $DESTDIR test.
Tested:
Jam and smirom by hand. (no h5committest which does not test this change.)
Added a Make target of check-all-install to test the correctness of
installing via the prefix= or $DESTDIR options.
Platforms tested:
h5committested and jam serial mode. Then test check-all-install by hand.
- h5diff new flag, -c, --compare, list objects that are not comparable.
PVN - 2009/4/2 - 1368
- h5diff new flag, -N, --nan, avoids NaNs detection. PVN - 2009/4/2