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
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
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
Added the Stream Virtual File Driver to the list of drivers
used for trying to open a file via h5dump_fopen().
Description:
The Stream VFD was added at bottom of the driver list for h5dump_fopen().
If no driver succeeded to open a file given by its filename
the Stream VFD would try to do so by parsing the filename as an
'hostname:port' argument, open a socket to that address and read
read the file.
This feature can be used to h5ls/h5dump streamed files.
Platforms:
All platforms (also between heterogenous).
Added test program to verify the Stream Virtual File Driver.
Description:
This program tests the functionality of the Stream Virtual File Driver.
1. It spawns two new processes, a sender and a receiver.
2. The sender opens an HDF5 file for writing and writes
a sample dataset to it.
On closing the file the Stream VFD would send the file
contents to any connected client.
3. The receiver serves as a client attempting to open an
HDF5 file for reading. On opening the file the Stream VFD
would establish a socket connection to the sender process,
identified by its hostname (which is localhost in this example)
and a port number, and read the file contents via this socket.
Aftwerwards the dataset is read from the file into memory
and verified.
4. The main program waits for termination of its two child
processes and returns their exit code.
Platforms:
Tested so far under Linux, Irix 32/64bit, OSF1, Solaris, Cray Unicos,
Hitachi SR8000, IBM AIX.
Not tested under Windows yet.
Add the Stream VFD sources to the appropriate makefile variables.
Description:
Added H5FDstream.c to the LIB_SRC variable and H5FDstream.h
to the PUB_HDR variable for building the Stream VFD.
Define HAVE_STREAM.
Description:
If the Stream VFD was configured the configured script
will expand this into
'#define HAVE_STREAM 1' in H5config.h and
'#define H5_STREAM 1' in H5pubconf.h.
Added the H5FD_stream_fapl_t type to the TypeString mapping table.
Description:
This servers for proper substitution of the H5TRACE macros in the
Stream VFD sources.
Platforms:
All platforms.
Added source files for the Stream Virtual File Driver.
Description:
The Stream VFD allows users to stream complete HDF5 files
via socket connections between different applications.
Files which were created anew are flushed to any connected client
on each H5Fflush() or H5Fclose() operation.
Files which are opened as read-only will be read from a socket
on a H5Fopen() call.
The driver's H5FDset_fapl_stream() routine allows to pass in
several parameters such as an external socket descriptor,
some socket options, and flags for broadcasting a received file.
If an external socket is provided the Stream VFD would use that
for the socket calls. Otherwise it parses the filename argument
in H5Fcreate()/H5Fopen() for a 'hostname::port' parameter.
All files processed by the Stream VFD are kept in memory
(same way as the core VFD does).
Platforms:
Tested so far under Linux, Irix 32/64bit, OSF1, Solaris, Cray Unicos,
Hitachi SR8000, IBM AIX.
Not tested under Windows yet.
Added new option --with-Stream-VFD.
Description:
The configure option --with-Stream-VFD[={yes}|{no}] is used
to configure HDF5 to build the Stream Virtual File Driver.
The default is not to build it.
Platforms:
all platforms
Fix last couple of errors from introducing "regular" hyperslab feature
into the library.
Description:
Code was blindly dereferencing data structures which aren't defined when
operating on regular hyperslabs.
Solution:
Check for regular hyperslab defined and retrieve information from regular
hyperslab info instead of mucking about in other hyperslab information.
Platforms:
Solaris 2.6
Cleaned up the configure file a bit.
Description:
There were a few small bugs having to do with checking if strings
were empty. Also needed to force paths to be absolute instead of
relative.
Solution:
I standardized string checking (test -z for an empty string and
test -n for a non-empty string). Also, if the user specifies a
relative path for any of the options, the configure now makes it
into an absolute path for both CPPFLAGS and LDFLAGS macros.
Platforms:
Solaris, Linux
they are about 4-5 times faster than before. We no longer generate "general"
hyperslab data structures for regular hyperslabs, the general data structures
are only generated when needed for irregular hyperslabs.
Still fixing a couple of nook-and-cranny functions to understand the new
information for the regular hyperslabs, so the tests aren't completely passing,
but I wanted to get this checked in for Elena's benchmarks. I should have
more/all tests passing later today.
in the configure script, basically replacing all -L/<path> constructs
with -R/<path> ones so that libtools will pass it along to the compiler
correctly.