| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug fix
Description:
In the h5dump_fixtype function, when users created a COMPOUND
datatype, the alignment would be off somewhat.
Solution:
The alignment was being set after insertion. I changed this code:
for (i = 0, offset = 0; i < nmembs; i++) {
H5Tinsert_array(m_type, name[i], offset, ndims[i], dims + i * 4,
NULL, memb[i]);
for (j = 0, nelmts = 1; j < ndims[i]; j++)
nelmts *= dims[i * 4 + j];
offset = ALIGN(offset, H5Tget_size(memb[i])) +
nelmts * H5Tget_size(memb[i]);
}
to:
for (i = 0, offset = 0; i < nmembs; i++) {
if (offset)
offset = ALIGN(offset, H5Tget_size(memb[i]));
H5Tinsert_array(m_type, name[i], offset, ndims[i], dims + i * 4,
NULL, memb[i]);
for (j = 0, nelmts = 1; j < ndims[i]; j++)
nelmts *= dims[i * 4 + j];
offset += nelmts * H5Tget_size(memb[i]);
}
The alignment is now calculated before the insertion.
Platforms tested:
Solaris, Linux
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug Fix
Description:
Use H5FD_get_eoa instead of H5FD_get_eof to check for reading off the end
of the allocated file space. Using H5FD_get_eof was causing the Stream
VFD to fail.
Solution:
Switched from using H5FD_get_eof to H5FD_get_eoa
Platforms tested:
FreeBSD 4.1.1 (hawkwind)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug
Description:
The testh5toh4 was removing all .h5 files from the testfiles
directory, however, with the addition of testh4toh5, we need some
.h5 files in there.
Solution:
Changed the scripts so that an output directory is created for
all of the processed files. This is removed after the test is
finished.
Platforms tested:
Linux
|
|
|
|
|
|
|
|
|
|
|
|
| |
Purpose:
Bugfix
Description:
The Stream VFD was leaking memory on every opened file.
Solution:
In H5FD_stream_close(), finally free the file structure used to describe
the closed file.
Platforms tested:
Linux, SGI
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug Fix
Description:
zlib was not being retrieved from the place specified by the user
even if the user used the --with-zlib flag.
Solution:
Removed the automatic inclusion of /usr/ncsa/* into the macros
and use the user-defined place to try to pickup the zlib. I'm
relying on the order of the -L flags in the compile line to
specify which libraries to look into first before going on to
look into the system libraries. If some compiler doesn't honor
the this order, yikes...
Platforms tested:
Linux
|
|
|
|
|
|
|
|
| |
Added site-specific/ subdirectory in config/ directory
Description:
If a machine needs site-specific configure options but those
options don't necessarily apply to all machines of that type,
place them there.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Site specific configure files
Description:
Some machines need to specify things during the configure
but they aren't necessary for all machines of that type. Those
site-specific changes should go here. The format of the filename
is:
host-$hostname
where $hostname is the output from the `hostname' command.
Needless to say, this is optional to those sites which don't need
it.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug fix
Description:
Attempted to close rawdatastream even if it has not been
used to open a new file. Many systems tolerated the NULL
value but not FreeBSD.
Solution:
Check for the NULL value too.
Platforms tested:
hawkwind (freeBSD) and modi4 parallel.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
New Feature
Description:
Add -o option to h5dumper. It displays the raw data of datasets to a
separate output file.
Add a feature to h5tools library that it uses the FILE *rawdatastream
as the stream for the display of datasets raw data.
Solution:
Define an "extern FILE *rawdatastream" in h5tools.h
and declare it in h5tools.c. This way, it would work
even if an application does not explicitely declare it.
Tried to initialized it to stdout as
FILE *rawdatastream = stdout;
but Linux gcc rejected it though all other platforms+compilers
accepted it fine. For now, put in a kludge to set it right
before it is used. Need a safer way to initialize it.
Platforms tested:
arabica, eirene, modi4 -64.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug fix and feature
Description:
It could not find a working h5dump to process the hdf5 files.
This could be because h5dump is not installed in $PATH or
a disfunctional one is found. (E.g. arabica:/usr/sdt/bin/h5dump
does not work.)
Setting it to ./h5dump or $PWD/h5dump does not work because
when h5dump is used, it has "cd testfiles", a different place.
Solution:
Set H5DUMP with the current absolute path (used `pwd` instead
of $PWD which is sometimes not set for whatever reason.)
Also add a feature to allow H5DUMP to be set to a different
value by hand. For example, if the h5dump just built is not
working correctly, one can do "H5DUMP=/usr/local/bin/h5dump make check"
to bypass the broken h5dump.
Platforms tested:
arabica
|
|
|
|
|
|
|
|
|
|
| |
Reformat the source
Description:
The tabstop seems to defined different from 8-stops. The
source files looked very confusing. Just reformate the
files. Not change to source code at all.
Platforms tested:
modi4 -64.
|
|
|
|
|
|
|
|
|
|
| |
Purpose:
add h4toh5 converter into MANIFEST
Description:
add h4toh5 converter source codes, test files into MANIFEST
Solution:
Platforms tested:
arabica,baldric,eirene
|
|
|
|
|
|
|
|
|
|
|
|
| |
Purpose:
Bug fix -- #445
Description:
In RM_H5D.html in the H5 Reference Manual, the H5Dget_storage_size
entry described the wrong FAILURE return value.
Solution:
Changed H5Dget_storage_size return value on FAILURE to 0 (zero).
Platforms tested:
Tested in Internet Explorer 5.
|
|
|
|
|
|
|
|
|
|
| |
Purpose:
update testh4toh5
Description:
change h5dump path at testh4toh5
Solution:
Platforms tested:
arabica, baldric, eirene
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Purpose:
add h4toh5 converter source codes under tools directory.
Description:
this is the expected hdf5 result for h4toh5 converter.
Solution:
[details about the changes, algorithm, etc...]
[Please as detail as you can since your own explanation is
better than others guessing it from the code.]
Platforms tested:
[machines you have tested the changed version. This is absolute
important. Test it out on at least two or three different platforms
such as Big-endian-32bit (SUN/IRIX), little-endian-32(LINUX) and
64-bit (IRIX64/UNICOS/DEC-ALPHA) would be good.]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Purpose:
add h4toh5 converter source codes under tools directory.
Description:
this is the test file for h4toh5 converter.
Solution:
[details about the changes, algorithm, etc...]
[Please as detail as you can since your own explanation is
better than others guessing it from the code.]
Platforms tested:
[machines you have tested the changed version. This is absolute
important. Test it out on at least two or three different platforms
such as Big-endian-32bit (SUN/IRIX), little-endian-32(LINUX) and
64-bit (IRIX64/UNICOS/DEC-ALPHA) would be good.]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Purpose:
add h4toh5 converter source codes under tools directory.
Description:
[describe the bug, or describe the new feature, etc]
Solution:
[details about the changes, algorithm, etc...]
[Please as detail as you can since your own explanation is
better than others guessing it from the code.]
Platforms tested:
[machines you have tested the changed version. This is absolute
important. Test it out on at least two or three different platforms
such as Big-endian-32bit (SUN/IRIX), little-endian-32(LINUX) and
64-bit (IRIX64/UNICOS/DEC-ALPHA) would be good.]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Purpose:
add h4toh5 converter tool
Description:
add flag h4toh5 and testh4toh5 in the Makefile.
Solution:
[details about the changes, algorithm, etc...]
[Please as detail as you can since your own explanation is
better than others guessing it from the code.]
Platforms tested:
test on eirene and arabica.
[machines you have tested the changed version. This is absolute
important. Test it out on at least two or three different platforms
such as Big-endian-32bit (SUN/IRIX), little-endian-32(LINUX) and
64-bit (IRIX64/UNICOS/DEC-ALPHA) would be good.]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Purpose:
h4toh5 converter tool under tools
Description:
put flag h4toh5 and testh4toh5 into the configure file.
Solution:
[details about the changes, algorithm, etc...]
[Please as detail as you can since your own explanation is
better than others guessing it from the code.]
Platforms tested:
at eirene and arabica.
[machines you have tested the changed version. This is absolute
important. Test it out on at least two or three different platforms
such as Big-endian-32bit (SUN/IRIX), little-endian-32(LINUX) and
64-bit (IRIX64/UNICOS/DEC-ALPHA) would be good.]
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Rearrange code
Description:
The data sieve buffering code for contiguously stored datasets was
wedged in the H5F_arr_read/H5F_arr_write routines.
Solution:
Created a new H5Fcontig.c to hold I/O routines for contiguously stored
datasets (like H5Fistore.c for chunked dataset I/O routines) and moved
data sieving code into those routines.
Platforms tested:
Solaris 2.6 (i.e. baldric)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Code Optimization.
Description:
The optimized routines for copying regular hyperslabs in memory have been
using the same matrix routines to copy their hyperslab pieces as the
routines for irregularly shaped hyperslabs. This ends up imposing lots of
extra overhead on the optimized routine, since it basically "knows" all the
matrix information it needs.
Solution:
Keep track of the [small] amount of matrix information necessary to perform
the regular hyperslab copies in the optimized routines themselves instead of
using the matrix routines. This improves the performance for the benchmark
I'm running from ~18 seconds to ~12 seconds and should apply to parallel
I/O situations also.
Platforms tested:
Solaris 2.6 (i.e. baldric)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Code Optimization
Description:
The matrix operations are currently the hot-spot in the library code
for regular hyperslab operations.
Solution:
Unrolled loops for 3 of the more heavily used functions
(H5V_stride_optimize2, H5V_hyper_stride & H5V_hyper_copy) for the common
cases (i.e. up to 3-D datasets). This squeezes some more blood out of
the stone (turnip? :-) and improves the h5hypers.c benchmark on baldric
by another 20-25%.
Platforms tested:
Solaris 2.6 (i.e. baldric)
|
| |
|
|
|
|
| |
Test viewed via IE.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug Fix
Description:
The core and log VFL drivers were leaking small amounts of memory when they
were used.
Solution:
Free the appropriate memory block (for the core driver) and don't allocate
a block (for the log driver).
Platforms tested:
Solaris 2.6 (i.e. baldric)
|
|
|
|
|
|
|
|
|
|
|
| |
Implemented new feature
Description:
Added data sieve buffering code to raw I/O data path. This is enabled for
all the VFL drivers except the mpio & core drivers. Also added two new
API functions to control the sieve buffer size: H5Pset_sieve_buf_size() and
H5Pget_sieve_buf_size().
Platforms tested:
Solaris 2.6 (i.e. baldric)
|
|
|
|
|
|
|
|
| |
Document new feature
Description:
Mention data sieve buffering for next release.
Platforms tested:
Solaris 2.6 (i.e. baldric)
|
|
|
|
|
|
|
|
|
|
|
| |
Fix compiler warning
Description:
"HUGE_VAL" (a double value) was being put into a float type and generating
a warning during compile time.
Solution:
Replaced "HUGE_VAL" with "FLT_MAX"
Platforms tested:
FreeBSD 4.1
|
|
|
|
|
|
|
|
|
|
| |
Feature
Description:
Added a new document of all the controls (compiler macros,
environment variables, ...) that affect the functionality of
the libraries and tools.
Platforms tested:
Viewed with MS IE.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Small Code Cleanup
Description:
Code to optimize adjacent (i.e. contiguous) hyperslab was ugly and used too
many temporary variables.
Solution:
Computed the optimized hyperslabs slightly differently and got rid of
unnecessary temporary variables.
Platforms tested:
FreeBSD 4.1
|
|
|
|
|
|
|
|
|
|
|
|
| |
Libtool bug
Description:
The AR macro wasn't being propagated to the libtool file
correctly. When libtool was being generated, it wasn't
recoginizing the AR that was set in the configure script.
Solution:
export the AR macro after it's set.
Platforms tested:
Linux
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug fix
Description:
The old code was using count as the block size. The result was
asking for a slab of count blocks, each of 1 element. The recent
change in the hyperslab algorithm exposed this problem. (The
old algorithm merge the count blocks back into 1 big block of
count elements.) (This error was due to that the block argument
was not in the very early version of hyperslab. Then it was
not updated since it had been "working".)
Solution:
Added in the block argument to the setup and calculation of
slab and its data. Also found a dumb error in the dataset_fill
algorithm in which stride was used in the calculation. Not so
for the cases of BYROW and BYCOL.
Platforms tested:
modi4 parallel, both -64 an -n32 modes.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug fix (sorta)
Description:
When the stride and block size of a hyperslab selection are equal, the
blocks that are selected are contiguous in the dataset. Prior to my
hyperslab optimizations, this situation used to be detected and somewhat
optimized to improve performance. I've added more code to optimize for
this situation and integrated it with the new hyperslab optimization that
weren't very efficient for that case as they should have been.
Solution:
Detect contiguous hyperslab selections (i.e. block size in a dimension is
the same as the stride in that dimension) and store the optimized,
contiguous version of that hyperslab. We also store the original, un-
optimized version of the hyperslab to give back to the user if they query
the hyperslab selection they just made.
Platforms tested:
FreeBSD 4.1
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug Fix
Description:
The prototype for the H5Pregister function has a variable named
`class'. This is a reserved word in C++ and causes the C++
compiler to freak.
Solution:
This variable's name was changed to cls_id in the .c file, so I
changed it in the header file to cls_id to match.
Platforms tested:
Linux
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug Fix.
Description:
An assertion in the local heap code was mistakenly checking against too
large of a value for the size of new local heap created. When used with
larger-sized (>10KB) variable-length objects, it was failing the check.
Solution:
Corrected to check against the actual size of the heap allocated, without
the heap header.
Platforms tested:
FreeBSD 4.1
|
|
|
|
|
|
|
| |
Bug fix
Description:
Didn't regen the MANIFEST when I added the Fortran
library...sorry.
|
|
|
|
|
|
| |
Clean up compiler warnings.
Platforms tested:
FreeBSD 4.1
|
|
|
|
|
|
|
|
|
|
|
|
| |
Restore file
Description:
It appears that Robb's checkin earlier today erroneously overwrote this
file with an older version... *grumble*
Solution:
Found another copy of newest version, verified that it is operating
correctly and re-checked it in.
Platforms tested:
FreeBSD 4.1
|
|
|
|
|
|
| |
Clean up small compiler warnings and add missing function prototypes.
Platforms tested:
FreeBSD 4.1
|
|
|
|
| |
libtool shouldn't be included in the CVS tree.
|
|
|
|
|
|
| |
Added support for compiling in subdirectories.
Platforms tested:
Solaris, IRIX (O2K)
|
|
|
|
|
|
|
|
| |
Adding the Fortran interface to the HDF5 library
Description:
Fortran is now a subdirectory of the HDF5 library tree.
Platforms tested:
Solaris and IRIX (O2K)
|
|
|
|
|
|
|
|
|
| |
H5FDstream.h needs to be installed.
Description:
H5FDstream.h is included in the hdf5.h file and needs to be
installed with the other public headers.
Solution:
Added it to the rest of the install headers.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix Irix pmake bugs
Description:
Build fails on Irix when builddir != srcdir
Solution:
* acconfig.h
* src/H5config.h.in [REGENERATED]
Added definition for HAVE_STREAM
* config/conclude.in
* config/depend1.in
* config/depend2.in
* config/depend3.in
* config/depend4.in
The `Dependencies' file is located in the source
tree. This fixes bugs for Irix pmake when compiling
outside the source tree. Hopefully it still preserves
Albert's changes which allow concurrent compilations
to not stomp on each other's Dependencies files.
* examples/Dependencies [REGENERATED]
* src/Dependencies [REGENERATED]
* test/Dependencies [REGENERATED]
* tools/Dependencies [REGENERATED]
Regenerated for testing purposes.
Platforms:
i686-pc-linux
mips-sgi-irix6.5
sparc-sun-solaris2.6
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Feature
Description:
Most tests are done inside a for-loop. Whenever a test exits
with error, the for-loop does a "exit 1" to exit the make.
"make -i" could not catch and ignore the error status.
Solution:
Replaced "exit 1" with break. At the end of the for-loop,
test if all tests have been run. If not, the for-loop is
ended by the break command, thus raise an error. Now,
'make -i' can catch and ignor it.
Also added the test of variable HDF5_Make_Ignore inside the
for-loop to indicate the desire to ignore errors when the
HDF5_Make_Ignore is set to a non-null/blank string.
Platforms:
Tested on modi4 and eirene.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I introduced a small bug when trying to fix the zlib stuff.
Description:
-lz wouldn't be specified with the compile flags if it was found
while checking for the HDF4 library.
Solution:
Removed my bad check and replaced with a better one.
Platforms:
Linux, Solaris
|
|
|
|
| |
Mention the hypeslab speedups
|
|
|
|
| |
Added Stream VFD modules to the MANIFEST
|