Updated for new array datatypes.
Description:
I missed these tools earlier when I wasn't compiling with HDF4...
Solution:
Updated them (correctly, I hope) to use the new array datatype instead of
compound datatype array fields.
Platforms tested:
FreeBSD 4.1.1 (hawkwind)
Recoding of VL dumping.
Description:
I'm using hyperslabs to select the variable length data. I don't
have any tests which I've checked in just yet. I'll create those
later.
Platforms tested:
Linux
Purpose:
check in beta release h4toh5 converter
Description:
1. add copy right and other comments to all .h and .c files
2. fix bugs on sds unlimited dimension, hdf5 dimensional scale attribute and vdata translating
from h4 to h5.
Solution:
2.
1) for sds with unlimited dimension to be converted into extensible hdf5 dataset,
on hdf5 side, has to set a default chunk size even though the corresponding hdf4 file is not
chunked.
2) in this version, if sds object doesn't have dimensional scale data, we will not show
the default hdf4 dimensional name ("fakedim0", etc.) in the new hdf5 dimensional scale
name attribute.
3) fix a bug transferring vdata of which the field includes a character array. Make it correctly transfer into the corresponding hdf5 compound data type.
Platforms tested:
eirene,arabica,baldric,hawkwind,paz,gondolin on new set of hdf4 test files.
Purpose:
Adding more expected files for testing h4toh5 converter
These test files include hdf5 files that are expected converted from hdf4 files for various vdata
and vgroup cases.
Description:
Solution:
Platforms tested:
eirene,arabica,hawkwind,paz
Purpose:
Add testing files for h4toh5 converter
Two more files for testing native float data type sds objects
Description:
Solution:
Platforms tested:
arabica,eirene,hawkwind,paz
Purpose:
Adding expected files for h4toh5 converter
two test files for annotation
Description:
Solution:
Platforms tested:
arabica,eirene,paz,gondolin,hawkwind
Purpose:
Adding testing files for h4toh5 converter
hdf4 test files for various tests on vgroup(including, hardlink,loop,nameclashing etc.)
Description:
Solution:
Platforms tested:
arabica,eirene,paz,gondolin,hawkwind
Purpose:
Adding testfiles for h4toh5 converter
more testing files for sds objects in various datatypes
Description:
see above
Solution:
Platforms tested:
eirene,arabica,gondolin,paz,hawkwind
Purpose:
Adding testing files for h4toh5 converter
these files are parts of files that test different datatype sds objects.
Description:
see above
Solution:
Platforms tested:
eirene,arabica,gondolin,paz,hawkwind
Purpose:
Add testing files for h4toh5 converter
test files for testing dimensional scale dataset and unlimited dimension case
Description:
see above
Solution:
Platforms tested:
eirene,arabica,hawkwind,paz,gondolin
Purpose:
add several files to test h4toh5 converter on hdf image with different datatype
Description:
see above
Solution:
Platforms tested:
eirene,hawkwind,arabica
Purpose:
Add two test files for testing h4toh5 converter to convert image objects associated with attribute and image.
Description:
see above
Solution:
Platforms tested:
arabica,eirene,hawkwind
Purpose:
add a hdf4 file to test converter for converter object annotation into hdf5 attribute
Description:
see above
Solution:
Platforms tested:
eirene,hawkwind,arabica
Purpose:
add more hdf4 test files for converter
Description:
in this script, run CONVERT test files
Solution:
Add CONVERT h4file h5file in this script
Platforms tested:
eirene,hawkwind,arabica
"bug fix"
Description:
the h5ls tests sometimes failed because the tool sometimes prints
the tool name in the help message as "lt-h5ls" while the
expected result has it as "h5ls". This was the tools pulled its
name from argv[0].
Solution:
Hardcode the progname as "h5ls" and blocked out the code that
pulls the program name from argv[0]. The better solution is
to find a way to create the real binary with the orginal tool
name.
Platforms tested:
linux
new feature
Description:
h5tools.c:
Created h5tools_init() and h5tools_close() for the initialization
of the h5tools library and closing of it. With this, the rawdatastream
and other internal structures can be initialized properly.
h5tools.h:
added prototypes for h5tools_init and h5tools_close.
h5dump.c:
h5ls.c:
Added the calls for h5tools_init() and h5tools_close().
Platforms tested:
IRIX64 -64 parallel and Linux
* 2000-10-31 Robb Matzke <matzke@llnl.gov> (main)
Added calls to MPI_Init() and MPI_Finalize() for parallel
versions in order to prevent errors about unrecognized
command-line options.
* 2000-10-31 Robb Matzke <matzke@llnl.gov> (dump_dataset_values)
The `float' and `double'
values are displayed with the full precision instead of just the
default `%g'.
Purpose:
Testing
Description:
The h5ls test script only looked at exit status.
Solution:
Created expected output files and compare actual output
with expected output.
Platforms tested:
i686-pc-linux
* 2000-10-31 Robb Matzke <matzke@llnl.gov> (verbose)
Compares output to expected
files. This should work just fine because we're not using the `-v'
option which prints datatypes in a machine-dependent way.
* 2000-10-31 Robb Matzke <matzke@llnl.gov> (h5dump_sprint)
The whitespace added for
indentation after the line-feed kludge is performed only if a
line-feed was actually inserted. This fixes funny-looking h5ls
output that had ` %s' sequences appearing in nested compound
datatypes.
Also added a prominent warning in the code to indicate that when a
line-feed is inserted into the string that column number
calculations will be incorrect and object indices will be missing.
Bug Fix
Description:
People need to type in the full-path to the
attribute/dataset/etc. and weren't being told to do so by the
"usage" statement.
Solution:
Added an example and changed <names> to <path> to be more
explicit...
Feature
Description:
Allow dumping of variable length records. This is a first-time
stab at this. It doesn't break any tests on my Linux box and it
does output the variable length data, but it might look ugly (it
doesn't handle new-lines as of yet)...I'm open to suggestions on
what should be done next, what new features to add/remove...
Platforms tested:
Linux
New tests
Description:
Added a new test file (tsaf.h5) for h5dump and h5ls. The test file was
created by lib SAF team. This file used to cause previous version
of hdf5 tools to core dump.
tsaf.ddl is the expected output from h5dump.
Platforms tested:
IRIX64 -64, linux
New tests
Description:
Added a new test file (tsaf.h5) for h5dump and h5ls. The test file was
created by lib SAF team. This file used to cause previous version
of hdf5 tools to core dump.
Platforms tested:
IRIX64 -64, linux
new feature
Description:
h5ls was not tested
Solution:
Added a test script, testh5ls.sh, to give h5ls some tests.
Since the output from h5ls is sometime machine dependent (e.g.,
Datatypes), can not compare them with expected output. For now,
run it against various hdf5 binary files. If it exits with 0,
consider it passes.
Platforms tested:
IRIX64, eirene, arabica.
tidy it up
Description:
Change the variable names so that it looks more generic. Plan to
make it a generic script test template.
Platforms tested:
IRIX64-64, linux, solaris 2.7
Feature symmetry
Description:
A while ago I needed to get the 'type' of data being accessed during writes
to the VFL driver, so I put in code to get the information down there.
Albert asked for the same information during reads, so I've added that in.
Tested:
FreeBSD 4.1.1 (hawkwind)
Purpose:
1. fix multiple defination warnings at sgi platform
2. adding chunking information from hdf4 to hdf5 property list.
Description:
1. Orginally global varibles were defined at one header file and this
header file were included by other .c file and .h file so multiple warnings are
generated.
2. Chunking information was not included in the previous version.
Solution:
1. use "extern" to define global variables at h4toh5util.h file and define global variables
at h4toh5main.c
2. retrieve the chunking info from sdgetchunkinfo and GRgetchunkinfo and store these information
into hdf5 property list.
Platforms tested:
eirene,arabica,paz,gondolin
Bug fix
Description:
gmake check had been failing because of errors in the Makefile.
Solution:
Fixed it so that libtools.a got build first.
Platforms tested:
Eirene (Linux)
Bug fix (ID 419)
Description:
Converted strings class types (in dataset and attributes) to
HDF4 type of DFNT_INT8. Should have been DFNT_CHAR type.
Solution:
h5toh4.c:
Changed the HDF4 type from DFNT_INT8 to DFNT_CHAR type.
Converted all hdf5 strings (be it NULLTERM, NULLPAD, SPACEPAD)
all to fixed width space padded HDF4 DFNT_CHAR.
testh5toh4:
Added the testing of $HDF_NOCLEANUP before cleaning away the result files.
testfiles/Expected/tattr.hdf:
testfiles/Expected/tstr.hdf:
testfiles/Expected/tstr2.hdf:
Updated with the corrected DFNT_CHAR type.
Platforms tested:
Solaris 2.7, Linux, Irix 6.5.
Purpose:
fixing output format of character array converted from hdf4 vdata.
Description:
Now one dimensional chactacter array can be outputed as one H5 string instead of string of array before.
Solution:
modify gen_h5comtype() so that when we detect the datatype is hdf5 string, we will merge hdf4 fieldorder into H5T string size and output the whole character array into hdf5 string(with string size = size of the array length).
Platforms tested:
eirene(LINUX), arabica(sun 5.6)
Purpose:
fix "zero memory" routine and change dimensional scale name size to MAX_DIM_NAME
Description:
change bzero into h4toh5_ZeroMemory
change dimensional scale name size(orginally MAX_NC_NAME) to MAX_DIM_NAME at converter.
Solution:
see description
Platforms tested:
arabica,baldric,gondolin(DEC),opus(HP 11),eirene(Linux),paz(IRIX6.5)
Purpose:
1. fix size of dimensional name list so that the size of dimensional name in dumper output
will not change because of different versions of hdf library(h4toh5util.h and h4toh5sds.c).
2. fix bzero routine for windows platform(h4toh5util.h,h4toh5util.c,h4toh5anno.c,h4toh5main.c,
h4toh5sds.c)
Description:
1. change the MAX_DIM_NAME into 276(MAX_NC_NAME +dimension group name) and hopefully we will
not expand the size of MAX_NC_NAME(currently 256) for a long time.
2. create a new routine(h4toh5_ZeroMemory) to zero out memory. Use ZeroMemory in windows and
bzero at UNIX.
Solution:
see Description.
Platforms tested:
LINUX(eirene),WINDOWS 2000, sun 5.6(baldric and arabica),HP-UX11(opus),DEC(gondolin),IRIX 6.5(paz).
No change.
Description:
Must've added some debuging printf's and then took them out in a way which
triggered CVS.
Platforms tested:
Solaris 2.6 (baldric) & FreeBSD 4.1.1 (hawkwind)
Adding Testing
Description:
Alignment when putting elements in a compound datatype can be
off.
Solution:
This was a bug which I'd fixed. Here's a program to exercise the
bug.
Platforms tested:
Linux
Bug Fix
Description:
Test was not detecting hdp tool from HDF 4.1r4 correctly.
Solution:
Modified test to detect HDF4.1r[3-9] correctly.
Platforms tested:
FreeBSD 4.1.1 (hawkwind)
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
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
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 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.]
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
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).
1. The `driver' table is initialized only once, making it faster and
leaking less memory.
2. The returned driver name is set to the empty string on failure.
3. Added an argument so the function cannot overwrite the end of the
drivername return value.
4. Avoids core dump when assigning driver name to return value if the
file could not be opened by any driver.
5. Changed name of function to h5dump_fopen() to follow the naming
scheme for this source file.
6. Reindented according to hdf5 code standard.
7. Added `const' qualifiers to read-only formals.
8. Removed duplicate forward declaration.
Reindented some parts of these source files that had very odd indentation
(some lines had no indentation while others had 3x what they should).
Fixed calls to H5ToolsFopen() function.
library for it(H5ToolsFopen-takes a filename and a char ptr if you want the name of the driver)
added the function to h5tools.c, a header to h5tools.h and changed h5ls.c and h5dump.c to use the new
functions
** src/H5Tconv.c
** src/H5Tpkg.h
** src/H5Tpublic.h
The H5T_conv_struct_opt() function had a design flaw -- it
didn't keep information about the stride to use to step
through the temporary/background-value buffer and thus nested
invocations would clobber each other's temp buffers. This was
fixed by splitting the `stride' argument into `buf_stride' and
`bkg_stride' arguments for all the conversion functions. THIS
IS AN API CHANGE, but users will get a compiler warning when
they pass their conversion function pointer to H5Tregister().
** src/H5T.c
** src/H5Tprivate.h
Added a bkg_stride argument to the H5T_convert() definition in
order to fix a bug related to the optimized compound datatype
conversion function.
** src/H5T.c
** src/H5A.c
** src/H5D.c
** src/H5Ofill.c
** src/H5P.c
Added bkg_stride=0 argument to the H5T_convert() calls.
** test/dtypes.c
Added a test for the H5T_conv_struct_opt() bug fixed above.
** src/H5FL.c
The H5FL_term() function should return non-zero even when it
couldn't free all the free lists do to their being used by
some other package. When that other package terminates it
will return non-zero, causing H5FL_term() to be called
again. This fixes some of the `infinite loop closing library'
messages.
** tools/pdb2hdf
Uses print_version() instead of doing that itself.
** src/H5Ppublic.h
Renamed H5Pget_gc_reference() declaration to make it match the
definition.
** src/H5FDlog.c
Added API tracing macros.
Removed `const' qualifier from a `char*' member of a struct
which was allocated on the heap.
** src/H5TB.c
Added curly braces to a couple deeply-nested `if' statements
to make them clearer and to shut up the increadibly stupid and
just plain incorrect gcc warning about ambiguous `else'.
** test/titerate.c
Removed incomplete initialization in favor of memset() for one
auto variable to stop compiler warnings.
** tools/Depencencies
Regenerated to remove references to h5dumputil.c
conditional compile statements in the code to compile for the release.
defined a VERSION12 and VERSION13 macro. all changes were surrounded by these statements
from h5tools.h just got rid of a prototype for copy_atmoic_char which was never used
in the h5tools.c i removed the copy_atomic_char, all the display_*_data, where the * is numeric, string
or compound, the print_data, h5dump_attr. also removed a block of codfe that was surrounded by #if 0
Prints the subrelease name also.
** tools/h5tools.c
Fixed indentation problems in the first half of the file.
Changed conditional compilation style from `/*...*/' to use
#if 0/#endif in the first half of this file.
Removed some extra parentheses to make expressions more readable.
macros in the dumper. this was basically adding a space after most of the '}'.
there are some places that don't have the space because those '}' were not printed
by the end_obj macro
the header information in the dumper. the header is the part before the data
block.
in h5dump.c there is support for the new -xml option. prints the output in xml
using the structure we just defined in h5tools.h.
h5dump.h- changed the begin_obj and end_obj macros. take an extra parameter now
Bug fix.
Description:
Failed on T3E in which int32 is typedef to a short (4 bytes)
but the converter just used H5T_NATIVE_INT for conversion of
a STD_INT32. Int in a T3E is actually 64bit big.
Solution:
Recoded the h5type to h4type matching algorithm by making sure
the size of the H4 type used is equal to the size of the
H5 native type.
Remark: current implementation is not efficient--it does all
the sizes checking repeatedly. Should have done the type mapping
once at the beginning as initialization.
Old code are still retain via the macro NEWWAY. Need to verify
the correctness of the converter in more platforms before
finalized on the code.
Platforms tested:
Baldric (Solaris 2.6), arabica (Solaris 2.7)
T3E
now the dump structure contains 2 extra members that tell how to format the
data for the dataset regions(blocks and pts).
had to give h5ls values for these
in h5dump.c just initialized the values for the formatting struct.
in h5tools.c made some changes in the printing area to get the dump output to
look closer to what we wanted. the strings are currently not printing correctly.
also removed the program type variable from here.
Added -V option for displaying version information.
h5tools.c:
Added print_version routine to display version information.
h5tools.h:
Added print_version prototype.
with out the square braces. also the formatting for the compound types
in the dataset part section has been corrected.
still need to update the expected outputs so there will be some errors until
I get that all checked in...
** configure.in
** configure [REGENERATED]
** src/H5private.h
** src/H5public.h
** src/Makefile.in
Generates an H5pubconf.h file which is just like H5config.h except all
the preprocessor symbols have `H5_' prepended. This was done so that
the configuration results can be used in public header files without
polluting the namespace.
** src/H5.c
Added H5I_REFERENCE and H5I_VFL to the API tracing code so their names
are printed instead of just numbers.
** src/H5FDstdio.c
** tools/h5import.c
** tools/h5repart.c
** tools/pdb2hdf.c
Changed to use the `H5_' versions of configure results since these
files include only the public API.
** test/big.c
Removed a compiler warning.
** test/h5test.c
Removed unused code.
had to change some of the functions in the h5findshd.c file since we didn't
have the globals anymore. these changes also affected the h5toh5.c file.
passes all tests on unix
** bin/rpmsync
** config/depend1.in
Tweaks for versions of `make' that can't search directories.
** examples/Dependencies
** src/Dependencies
** test/Dependencies
** testpar/Dependencies
** tools/Dependencies
Regenerated all these with more complete path names.
so i moved the dumper stuff out to the libary. Had to change some functions
in h5findshd so they would stop using globals that shouldn't be defined in the
lib. I will remove the globals next. also the h5findshd.c has an extra member
to the struct for that objects in the table so i added that into the appropriate place.
the dumper is working ok now but the h5toh4 is still broken.
----------------------
./MANIFEST
./configure.in
./configure [REGENERATED]
Added more checking for `make' features.
./Makefile.in
./doc/Makefile.in
./doc/html/Makefile.in
./doc/html/Tutor/Makefile.in
./examples/Makefile.in
./pablo/Makefile.in
./src/Makefile.in
./test/Makefile.in
./testpar/Makefile.in
./tools/Makefile.in
./config/commence.in
./config/conclude.in
./config/depend.in [REMOVED]
./config/depend1.in [NEW]
./config/depend2.in [NEW]
./config/depend3.in [NEW]
./config/depend4.in [NEW]
./config/dependN.in [NEW]
The directory search stuff was moved into commence.in, thereby
shortening the Makefile.in prologues.
./doc/html/Dependencies [NEW]
./doc/html/Tutor/Dependencies [NEW]
./examples/Dependencies [NEW]
./src/Dependencies [NEW]
./test/Dependencies [NEW]
./testpar/Dependencies [NEW]
./tools/Dependencies [NEW]
The `.distdep' files were all renamed to `Dependencies' to make them
more obvious. They are required (but may be empty) in every directory
that has a Makefile.in that ends with @CONCLUDE@ (you'll get an
obvious error from make if you forgot to create one).
./bin/trace
./src/H5.c
Added H5E_major_t and H5E_minor_t although tracing only prints the
integer value.
./src/H5E.c
./src/H5Epublic.h
Added tracing information.
./src/H5FDcore.c
./src/H5FDfamily.c
./src/H5FDgass.c
./src/H5FDmpio.c
./src/H5FDsec2.c
./src/H5FDstdio.c
Fixed places where FUNC_LEAVE() evaluated it's argument more than
once.
Added tracing information.
Wrapped long lines.
./config/gnu-flags
Fixed a syntax error when we don't have a gnu compiler.
Bug fix.
Description:
If the H4DUMP (hdp) is not executable for some reasons (e.g., not
in $PATH), it produced zero sized files. The test script did not
detect the abnormality but compared the zero sized files the same
and concluded the test passed.
Solution:
Test if H4DUMP can produce valid output. If not, print warning
messages. Also check the size of output files to make sure they
are reasonably valid.
Platform tested:
Linux.
----------------------
./configure.in
./src/H5config.h.in [REGENERATED]
The /usr/ncsa/{include,lib} directories are only added if they
actually exist. This fixes a warning on some systems.
Checks for the <pdb.h> header file and also for either the PDB or Silo
library, and if found prepares to compile the pdb2hdf program.
./config/distdep
Relative path names for include files are changed to base names since
the makefile contains the logic for searching and since it's likely
that building the .distdep files happed from a location other than
where they would be used in the file system.
./config/conclude.in
Fixed shell errors when `for' loops iterate over nothing for the
`uninstall' target.
./src/H5D.c
./src/H5Oefl.c
File names for the external files are added to the heap when the
dataset is created instead of when the object header is written. This
fixes a rare infinite recursion bug.
./src/H5FD.c
./src/H5FDpublic.h
Optimization to the free list causes H5FD_alloc() usage to go from >10
seconds to <0.4 second for one example (converting a 30MB equation of
state file from PDB to HDF5 format). The optimization is to simply
keep track of the largest item in the free list and not search the
free list when the largest item is not big enough to satisfy the
request.
./src/H5FDcore.c
./src/H5FDcore.h
./test/h5test.c
If the `backing_store' property is true then a flush causes the entire
contents of memory to be written to the specified file. This is in
preparation for the ASCI/red optimizations and is currently tested by
the pdb2hdf `--cached' switch.
./src/H5Odtypes.c
Wrapped three long lines.
./tools/Makefile.in
./tools/pdb2hdf.c [NEW]
A PDB-to-HDF5 translator. It only translates meta data -- the
resulting HDF5 points into the PDB file for the raw data.
----------------------
./src/H5FDcore.c
Includes private headers instead of public in order to use the
`UNUSED' macro.
./src/H5FDpublic.h
Includes H5public.h just in case.
./src/H5P.c
Removed two unused variables in H5P_copy()
./src/H5FDgass.h
Fixed a C++ comment after a `#endif'
./src/Makefile.in
The H5FDgass.h file is public and must be installed in order for
applications to be able to use HDF5.
./tools/h5tools.c
Removed an unused variable.
----------------------
./src/H5public.h
We undefine a bunch of things that could get redefined in the config
file because some customers have applications that include headers
from multiple packages, all of which might be using autoconf.
Include <stdint.h> for the C9x types.
./test/h5test.h
More flushing of stdout for when testing is redirected down a pipe.
./tools/h5ls.c
Added a `-S' or `--simple' switch which causes the output to be
simplified somewhat for easier parsing by other scripts. For instance,
characters are escaped using a very simple mechanism instead of C's
more complicated backslash notation, data doesn't have `{}' or `[]'
characters interspersed for compound and array types, and data is
printed with exactly one element per line. This switch is now used by
an HDF5-to-HTML CGI script being developed for the DMF people.
./tools/h5tools.c
./tools/h5tools.h
The repeat threshold which controls how strings are printed when a
character repeats a bunch of times is now settable at runtime instead
of compile time. The default is to show all characters, like
"abceeeeeeeeeeeeeeeeeeeeeeeeeeeeeefgh"
But if you set it to something like 5 then any sequence of 5 or more
characters is replaced by something shorter, like:
"abc" 'e'x30 "fgh" or
Added an `str_locale' property which describes how to escape special
characters in strings. The default is C-like escapes but an
alternative is ESCAPE_HTML which replaces all non-alphanumeric
characters with a 3-character HTML escape of the form `%XX'
Fixed a bug where empty strings didn't even have the quote characters
printed. Now empty strings show up as `""' instead of absolutely
nothing.
Added a `per_line' property which controls the maximum number of
elements which will appear per line of output. The default is infinity
but in practice the right margin causes line breaks. By setting the
`per_line' value to one and the right margin to a very large value one
can achieve output with exactly one element per line.
h5tools.h- added a define for OBJECTID-->"OBJECTID"
h5dump.c - added an option in there to print object id's
still needs some testing but I just wanted the changes to be put up there before i
forget
----------------------
./src/H5O.c [1.2, 1.3]
Initialzed the padding area between the end of a message and
the end of the space allocated for that message. This
hopefully fixes an UMR error found by Quincey and prevents the
file from containing unwanted data.
./tools/h5ls.c [1.2, 1.3]
Fixed a bug where the `Data:' tag didn't get printed for
attributes that have more than five values.
----------------------
./src/H5D.c
Added additional elements to a variable initializer in
H5Dvlen_get_buf_size() to shut up a warning message. Also
added the API tracing call.
./src/H5F.c
Added file opening optimizations. If the driver doesn't
support the ability to determine when two file handles refer
to the same file (like MPIO and GASS) then H5F_open() makes
fewer calls to the driver's open callback. Also, if the
tentative file access flags are the same as the original flags
then H5F_open() makes fewer calls to the file device.
./src/H5FD.c
./src/H5FDprivate.h
./src/H5FDpublic.h
Added H5FD_get_class() so the library can get information
about what file driver callbacks are defined. This will be
useful when more optimization functions are added to the VFL,
such as for MPIO derived datatype I/O.
./src/H5FDcore.c
./src/H5FDfamily.c
./src/H5FDmpio.c
./src/H5FDmulti.c
./src/H5FDsec2.c
The driver symbols (like H5FD_CORE, etc) are actually function
calls. The functions were fixed to return correct values even
after calling H5close().
./src/H5FDmulti.c
./src/H5FDmulti.h
Added support for opening a file when parts are missing (only
if the caller explicitly allows that in the file access
property list).
Moved some common code sequences into macros or functions.
Added better support for reopening files. All the application
has to know is that the file is a multi file and the base name
from which all the member names are created.
More debugging output when the file is opened with the
H5F_ACC_DEBUG flag.
Fixed various bugs.
./src/H5Fistore.c
Chunked raw data was accidently allocated as meta data instead
of raw data.
./src/H5I.c
The H5Iget_type() function fails when invoked with an old
object ID (an ID which has been closed down).
./test/h5test.c
Added an extra argument when setting the multi file access
property lists so the test fails if it can't open one of the
sub-files.
./tools/h5ls.c
Improved the algorithm for deciding what file driver to
use. It basically tries all of the predefined drivers and is
now able to open family, split, and multi files without
looking for special characters in the file name.
Added `-e' and `--errors' switches which cause errors from
libhdf5 to be reported on stderr in addition to the simple
error message displayed by h5ls.
----------------------
This extensive change is the virtual file layer implementation. I've
ported and tested the sec2, family, and core drivers and only ported
the mpio driver (Albert will test it). So if you need MPIO I would
recommend sticking with the previous version for a while.
You will get a few compile warnings about split and stdio drivers not
being implemented and possibly tracing information not inserted in
some of the drivers. You can safely ignore them but I plan to fix
them.
I'm still working on the split driver because I just realized that it
needs a part of the VFL that isn't written yet.
Documentation is being updated also because there were some minor
changes (mostly just name changes). It should be available on my web
site later this week.
./MANIFEST
./src/Makefile.in
./src/hdf5.h
./src/H5Flow.c [REMOVED]
./src/H5Fstdio.c [REMOVED]
./src/H5Fsec2.c [REMOVED]
./src/H5Fsplit.c [REMOVED]
./src/H5Fmpio.c [REMOVED]
./src/H5Ffamily.c [REMOVED]
./src/H5Fcore.c [REMOVED]
./src/H5MFpublic.h [REMOVED]
./src/H5FD.c [NEW]
./src/H5FDcore.c [NEW]
./src/H5FDcore.h [NEW]
./src/H5FDfamily.c [NEW]
./src/H5FDfamily.h [NEW]
./src/H5FDmpio.c [NEW]
./src/H5FDmpio.h [NEW]
./src/H5FDprivate.h [NEW]
./src/H5FDpublic.h [NEW]
./src/H5FDsec2.c [NEW]
./src/H5FDsec2.h [NEW]
Removed/added files for virtual file layer.
./bin/trace
./src/H5.c
Removed unused public datatypes and added new VFL public
datatypes.
Changed an error message.
./config/BlankForm
./config/dec-flags
./config/gnu-flags
./config/hpux10.20
./config/hpux9.03
./config/irix5.x
./config/irix6.x
./config/solaris2.x
./config/unicosmk
Removed the H5F_OPT_SEEK and H5F_LOW_DFLT constants from the
configuration since they're no longer applicable. The default
file driver is always the sec2 driver and it always optimizes
calls to lseek() or lseek64().
./config/depend.in
C preprocessor errors generated during automatic dependency
building are sent to /dev/null to prevent them from appearing
twice in the make output.
./src/H5AC.c
./src/H5B.c
./src/H5D.c
./src/H5F.c
./src/H5G.c
./src/H5Gent.c
./src/H5Gnode.c
./src/H5HG.c
./src/H5HL.c
./src/H5O.c
./src/H5Oattr.c
./src/H5Odtype.c
./src/H5Oefl.c
./src/H5Oshared.c
./src/H5T.c
./src/H5detect.c
./test/ohdr.c
Changed H5F_ADDR_UNDEF to HADDR_UNDEF to be more consistent
with the `haddr_t' datatype which is now a public type.
./src/H5D.c
./src/H5P.c
./src/H5Ppublic.h
./src/H5Tconv.c
./test/cmpd_dset.c
./test/dsets.c
./test/overhead.c
./test/tselect.c
./test/tvltypes.c
The H5P_DATASET_XFER constant was changed to H5P_DATA_XFER
because the properties apply to all types of I/O operations,
not just datasets.
./src/H5B.c
./src/H5Bprivate.h
./src/H5D.c
./src/H5Dpublic.h
./src/H5F.c
./src/H5Farray.c
./src/H5Fistore.c
./src/H5Fprivate.h
./src/H5Fpublic.h
./src/H5Gnode.c
./src/H5Gpkg.h
./src/H5HG.c
./src/H5HL.c
./src/H5O.c
./src/H5R.c
./src/H5Sall.c
./src/H5Shyper.c
./src/H5Smpio.c
./src/H5Spoint.c
./src/H5Sprivate.h
./test/big.c
./test/h5test.c
./test/istore.c
./testpar/t_dset.c
./testpar/t_file.c
./tools/h5debug.c
./tools/h5ls.c
Modified to work with the virtual file layer by calling H5FD_*
functions instead of H5F_low_* functions and by passing file
access and data transfer properties by object ID instead of
pointer.
Changed H5D_transfer_t to H5FD_mpio_xfer_t since the
COLLECTIVE vs. INDEPENDENT transfer mode is specific to the
MPIO file driver.
Moved MPIO-specific stuff into the MPIO driver.
./src/H5B.c
./src/H5D.c
./src/H5Fprivate.h
The H5F_mpio_* private functions were renamed and placed in
the H5FDmpio driver except those which appeared in H5Smpio.c.
./src/H5E.c
./src/H5Epublic.h
Added major error number H5E_VFL for virtual file layer
related errors.
./src/H5F.c
./src/H5Fprivate.h
Changed the logic that controls whether the boot block is
written. Instead of assuming that the first call to write the
boot block is only to allocate space, I've added a function
argument which makes this explicit.
Changed the way files are compared so that a driver-defined
comparison function can be called. Files which belong to
different drivers are always considered different.
Removed H5F_driver_t since file drivers are now identified by
object ID instead of a special non-user-extendible datatype.
Removed all the hard-coded low-level file properties which
have been replaced by the various file drivers.
./src/H5I.c
./src/H5Iprivate.h
Added the H5I_inc_ref() which was removed a few months ago
since we finally have a use for it.
./src/H5Ipublic.h
Added the H5I_VFL object ID type to identify file drivers in
the virtual file layer.
./src/H5MF.c
./src/H5MFprivate.h
Moved all the allocation/deallocation code into the virtual
file layer which allows file drivers to override much of it.
./src/H5P.c
./src/H5Ppublic.h
Moved file driver-specific code into the various file driver
files.
The H5Pcopy() and H5Pclose() functions make calls into the
virtual file driver to manage the memory for driver-specific
file access and data transfer properties.
./src/H5private.h
./src/H5public.h
The `haddr_t' type is now public.
./test/tfile.c
Added a few more comments.
----------------------
./Makefile.in [1.3]
./examples/Makefile.in [1.3]
./pablo/Makefile.in [1.3]
./src/Makefile.in [1.3]
./test/Makefile.in [1.3]
./testpar/Makefile.in [1.3]
./tools/Makefile.in [1.3]
./config/commence.in [1.3]
./config/conclude.in [1.3]
./config/depend.in [1.3]
Added a `.PATH' target for Irix pmake which is identical to
the VPATH used by most other `make' programs. Irix 6.5 (or
6.4?) and later `make' ignores VPATH.
Started all beginning-of-line comments with `##' instead of
just `#' because Irix `pmake' barfs on things like the
following because it sees the `# if' as a directive:
# make will barf on the following line
# if running Irix pmake
./config/commence.in [1.3]
Added empty definitions for optional `make' macros because
Irix pmake complains if it sees a macro which has never been
defined. The main body of the Makefiles can redefine these
macros to whatever they need.