New internal feature
Description:
Add internal API for building and working with heaps (H5HP). This will be
used for the LRU algorithm in the new metadata cache code.
Platforms tested:
Tested h5committest {arabica (fortran), eirene (fortran, C++)
modi4 (parallel, fortran)}
FreeBSD 4.7 (sleipnir)
Code cleanup
Description:
Added more information to information printed for test failure.
Platforms tested:
Tested h5committest {arabica (fortran), eirene (fortran, C++)
modi4 (parallel, fortran)}
Code/comment cleanup
Description:
Made more information about reference-counted strings private to the
H5RS package by trimming the typedef used in H5RSprivate.h and switching
from using macros for a couple of operations to using functions.
Updated copyright information for a few of these files.
Platforms tested:
Tested h5committest {arabica (fortran), eirene (fortran, C++)
modi4 (parallel, fortran)}
removed -d , -g , -t and -v options and renamed -m to -d and -v to -l
added output for objects that are not in one file but in the other
Platforms tested:
windows, linux
Bug Fix
Description:
Private header file was included in a public header file by mistake.
Solution:
Put the private header file into the .c module instead.
Platforms tested:
Linux 2.4 (see, I really did test it).
Update
Description:
Changed the H5FPinit() function to accept pointers to what the SAP
Comm and SAP Barrier Comm should be assigned to. This is the first
step in hopefully getting rid of the global versions of them
altogether (but we'll see).
Platforms tested:
Linux
Update
Description:
Final support addition for FPHDF5. Wherever there was an equivalent
MPIO or MPIO/POSIX call/check, I placed an FPHDF5 call/check there as
well, with the appropriate #ifdefs in place.
The hdf5.h is updated with the H5FDfphdf5.h driver #include.
Platforms tested:
Linux & Modi4
Update
Description:
Big change to the H5FD.c module:
- Split apart H5FD_alloc and H5FD_free. H5FD_alloc was huge and
H5FD_free had a freeing of the freelist part which I needed to
call from the SAP.
- Added support for FPHDF5. If it's a client, then it sends the
allocation or free request to the SAP. The SAP will call the
same code, but it'll actually do the allocation/freeing in that
case.
Platforms tested:
Linux & Modi4
Update
Description:
Added support for the allocation and freeing of space in the file.
This information is kept on the Server.
Platforms tested:
Linux & Modi4
Purpose:
More test.
Description:
Test independent read of groups and chunked dataset.
Solution:
This test is similar to multiple group test. So just add it in the
testphdf5.c,h.
Platforms tested:
modi4, eirene.
Purpose:
windows project updating
Description:
To reflect Qunicey and Ray's changes (add/remove files and filters)
Solution:
Platforms tested:
windows 2000
Misc. update:
Update MANIFEST if you add or remove any file.
Update release_docs/RELEASE for bug fixes, new features, etc.
Update applicable document files too.
Code cleanup
Description:
Changed hard-coded magic number (32) for the maximum number of filters
in a filter pipeline to use a symbolic constant (H5Z_MAX_NFILTERS)
instead. This limit could (and probably should) be removed to allow an
unlimited number of filters in a pipeline.
Platforms tested:
FreeBSD 4.7 (sleipnir)
Bug fix (no id, just noticed myself)
Description:
Added a barrier before doing file cleanup to ensure all tests are
completed by then.
Moved the MPI_Finalize to be very end and insert an H5close before
it to ensure all potential MPI activities by HDF5 are done by then.
Platforms tested:
Tested h5committest {arabica (fortran), eirene (fortran, C++)
modi4 (parallel, fortran)}? Yes.
bug fix, features.
Description:
removed the cache of sizeof_long since it varies between 32 and 64 bits.
Set xlc and mpcc_r as the default compiler for serial and parallel modes.
Added -D_LARGE_FILES by default to support large file size.
Added gcc gnu-flags when gcc compiler is used (not working yet.)
Platforms tested:
Tested in Copper only since that is the only AIX machine on site.
Code cleanup
Description:
Clean up miscellaneous warnings which have crept into the code.
Fix "_POSIX_C_SOURCE not defined" warning on FreeBSD.
Adjust gcc compiler flags to be more concise for production mode.
Refactor the H5O code so that there is a stronger boundary between code
in the H5O package and code in the library which just calls H5O routines.
Platforms tested:
Tested h5committest {arabica (fortran), eirene (fortran, C++)
modi4 (parallel, fortran)}
FreeBSD 4.7 (sleipnir) serial & parallel and gcc 2.95.4 & gcc 3.2.2
Misc. update:
Update MANIFEST if you add or remove any file.
Update
Description:
Since metadata doesn't use a "set view" to do I/O, I moved the check
for the use_set_view variable down into the "real" write routine.
Also added a check for when the server is dumping metadata to the
file. in that case, don't write this information to the SAP...
Platforms tested:
Linux
Bug Fix (Bug #806)
Description:
When compiling/installing with the command "make install" (without
performing a "make" beforehand) the tools weren't being made. This
was because the `install' command in the Makefiles only relied upon
public libraries, not private ones (which the one in the tools
directory is).
Solution:
Had the `install' command be dependent upon an "AUX_LIB" macro which
includes libraries which are needed but aren't distributed (that is,
they're staticly compiled).
Platforms tested:
Linux
Update
Description:
Added the flush function.
Modified so that it calls the FPHDF5 code for reading and writing.
This involved splitting the write function up into three different
parts to avoid lame goto's. There's some code which will copy a data
xfer property list and add in there that we're "dumping" the data so
that we can recall this layer when the SAP dumps metadata to a
process...
Platforms tested:
Linux
Update
Description:
Added a "metadata flush" function which allows the clients to force a
dump of the metadata from the SAP. This should be done before closing
the file.
Modified the information stored on an "open" of the file. The
filename is unnecessary, so I got rid of it.
More integration with the File Driver code: Passing in a data xfer
property list.
Platforms tested:
Linux
Purpose:
update windows project files
Description:
Some new files such H5Tcommit.c is added in.
Solution:
windows 2000
Misc. update:
Update MANIFEST if you add or remove any file.
Update release_docs/RELEASE for bug fixes, new features, etc.
Update applicable document files too.
Bug Fix
Description:
Some of the error conditions in the H5GOTO_ERROR macros were NULL
instead of FAIL.
Solution:
Changed accordingly.
Platforms tested:
Linux
Code cleanup.
Description:
Break up the ~9350 line H5T.c module into smaller pieces, which contain
code for a particular feature or support for a datatype class.
This should make the "main" H5T code (still in H5T.c) easier to support,
as well as removing some of the "minor" routines from the user applications
which don't use them (my rough estimates show about 4% reduction (~30K on
a FreeBSD machine) in optimized, staticly-linked binaries for very simple
programs)
Platforms tested:
Tested h5committest {arabica (fortran), eirene (fortran, C++)
modi4 (parallel, fortran)}
FreeBSD 4.7 (sleipnir)
Misc. update:
Update MANIFEST
Bug fix.
Description:
Missed adding the dxpl to the 'flush' VFL callback in the stream driver,
causing the C++ compiles to fail.
Solution:
Added the dxpl parameter.
Platforms tested:
FreeBSD 4.7 (sleipnir) w/CC=g++
Purpose:
To bring the H5Z_func_t definition from the old User's Guide
into the Reference Manual.
Description:
Added custom filter function H5Z_func_t definition to the
H5Zregister function description.
This definition will next be edited to bring it up-to-date.
Platforms tested:
IE 5
Update
Description:
Folded in Quincey's changes to the caching stuff. (Stole the code
from the H5FDmpio driver).
Roughed in some code for doing a read from the SAP. Also roughed in
code for doing a write. However, the write requires an OID, which I'm
not sure how to pass down into the driver (maybe via the
dxpl_id?...but then it has always to be set before calling one of
these routines...).
Removed some of the global variables which were there because of the
FPHDF5 stuff...
Removed the H5Ofphdf5.* stuff from the Makefile.in, since I'm pretty
sure it's going away and I don't want to waste time updating that
module if that's the case...so just don't compile it.
Platforms tested:
Linux
Fix
Description:
The extra field I put in this structure wasn't needed.
Solution:
Placed it in the file driver's structure instead.
Platforms tested:
Linux
Update
Description:
Removed some obsolete fields - such as the AC_subst_t object ID -
which isn't needed. Fixed so that there are fewer global variables.
There are still some left, however. Modified the client and server
code so that it handles read requests better. There were some flaws
in how this was done before (it was calling H5FD_read() instead of
just returning the status that it couldn't find the metadata in the
cache).
Platforms tested:
Linux
Update
Description:
Added Flexible Parallel HDF5 support to the ending message that
configure spits out.
Reordered a few other of the messages so that they're in alphabetical
order.
Platforms tested:
Linux
Bug Fix
Description:
Metadata cache in parallel I/O can cause hangs in applications which
perform independent I/O on chunked datasets, because the metadata cache
can attempt to flush out dirty metadata from only a single process, instead
of collectively from all processes.
Solution:
Pass a dataset transfer property list down from every API function which
could possibly trigger metadata I/O.
Then, split the metadata cache into two sets of entries to allow dirty
metadata to be set aside when a hash table collision occurs during
independent I/O.
Platforms tested:
Tested h5committest {arabica (fortran), eirene (fortran, C++)
modi4 (parallel, fortran)}
FreeBSD 4.7 (sleipnir) serial & parallel
Misc. update:
Updated release_docs/RELEASE
Bug fix
Description:
The "system scope" for threads isn't supported on all platforms.
Solution:
Add detection of this feature to the configure script and check for
"H5_HAVE_SYSTEM_SCOPE_THREADS" in the appropriate places.
Platforms tested:
modi4 w/threadsafe
New feature for developers.
Description:
Added "function stack" tracing to library. This allows developers (there
is no public API) to call H5FS_print within the library and get a listing
of the functions traversed to reach that point in the library. Eventually,
I may add support for reporting the parameters to each function also...
Mainly for debugging parallel I/O programs, but I think it will come in
handy in other cases also.
The function stack tracking is controlled with a configure switch:
--enable-funcstack, which defaults to enabled currently. When we branch
for 1.6, we should change the default setting on the branch to be disabled.
Also, added a destructor to the thread-specific keys when thread-safety is
turned on in the library. Otherwise, they were leaking memory and causing
difficult to debug errors in threaded programs (like the test/ttsafe test).
Platforms tested:
Tested h5committest {arabica (fortran), eirene (fortran, C++)
modi4 (parallel, fortran)}
FreeBSD 4.7 (sleipnir) w/thread-safety enabled.
Misc. update:
Updated MANIFEST with new files added (src/H5FS.c & src/H5FDprivate.h)
Update release_docs/RELEASE with thread-safety bug fix.
Field Addition
Description:
Added a File ID field to the H5FD_t structure so that, way deep down
in the H5FD_* functions, I'll know what ID the SAP wants for this
particular file.
This is #ifdef'd out so that if you don't have FPHDF5 enabled, then
it won't be there...
Platforms tested:
Linux
Update
Description:
H5FP.c, H5FPclient.c, H5FPprivate.h, H5FPserver.c:
Update. More progression towards the SAP as metadata cache. It
only lacks the ability to take care of metadata allocations.
H5FDfphdf5.[ch]:
Start of a new driver for FPHDF5. Not fully implemented just
yet...
Platforms tested:
Linux
Update
Description:
MANIFEST:
- Added .autom4te.cfg and H5FDfphdf5.[ch] files.
.autom4te.cfg
- When the new versions of libtool/autoconf come out, this file
will help get rid of the annoying autom4te.cache directory.
Platforms tested:
Linux
Update
Description:
version 1.4 has renamed the tool from pio_perf to h5perf.
Folded the chagne into this branch too.
Also updated the Copyright notes.
Platforms tested:
Tested h5committest {arabica (fortran), eirene (fortran, C++)
modi4 (parallel, fortran)}? Tested in burrwhite with PP only.
[If no, why not?] It is a pretty straight forward Makefile change.