Compare commits

...

861 Commits

Author SHA1 Message Date
Elena Pourmal
1607517ff2 [svn-r1431]
Example was modified to use references to different objects.
Missing calls to release dataset handles and to free memory buffers were
added.

Tested on  baldric.
1999-07-06 15:43:00 -05:00
Albert Cheng
a166cd45e3 [svn-r1430] Fixed some dumb typos. 1999-07-06 15:06:16 -05:00
Patrick Lu
2f43dfaddd [svn-r1429]
update the ddl so the occurences of H5T_STD_I8LE are not big endian
1999-07-06 13:42:32 -05:00
Patrick Lu
0b826837c0 [svn-r1428]
fixed some more bugs
1999-07-06 13:37:52 -05:00
Patrick Lu
9b042ac7f2 [svn-r1427]
fixed some bugs with creating the files
1999-07-06 12:49:17 -05:00
Patrick Lu
2dba34824f [svn-r1426]
had to conditional compile some code out for the debug version of this file
on windows.  the microsoft c run time lib calls special versions of free and
malloc in the debug mode.  this code causes problems for the library(crashes)
so i am taking the statements out in this version(win32 and debug) until i can
figure out a way around the problem
1999-07-06 11:59:40 -05:00
Frank Baker
d70b72d630 [svn-r1425]
RM_H5S.html
Dataspaces.html
	H5Sselect_hyperslab
	H5Sselect_elements
	    Add H5S_SELECT_OR operator.
	    Converted operator list to a table.
	H5Sextent_copy
	    Corrected source and destination descriptions.  (RM_H5S.html only)
	H5Screate
	    Removed unused H5S_NONE dataspace type.
	H5Sset_extent_none
	    Corrected reset class type to H5S_NO_CLASS (previously said H5S_NONE).

RM_H5G.html
	H5Gget_linkval
	    Corrected descriptions of 'loc_id', 'name', and 'value'.
	    Corrected "Purpose".
	    Emphasized need to call H5Gget_objinfo first.
	H5Gset_comment
	H5Gget_comment
	    Corrected description of 'loc_id'.
	H5Gget_objinfo
	    Corrected description of 'loc_id'.
	    Added H5G_TYPE to list of valid values of 'type'.

RM_H5F.html
ExternalFiles.html
	H5Fmount
	H5Funmount
	    Corrected description of 'loc_id'.
	    Changed function descriptions in ExternalFiles.html to correspond to RM.

RM_H5T.html
	Moved H5Tget_class and H5Tget_size to "General Datatype Operations" in top index.
1999-07-06 11:56:15 -05:00
Albert Cheng
e186d84c5f [svn-r1424] Pulled CVS checkout codes to form a new partition of checkout that
does cvs checkout only.  Moved the "make distclean" code from the "test"
to the "release" part.  (A distclean should definitely be applied as
part of the release command.  Also, test might fail for other silly
reason, like AFS temporary out.  The distclean blew away the option
of trying the tests by hand.
1999-07-06 11:54:45 -05:00
Patrick Lu
2640adf89b [svn-r1423]
updated the dumptst project so that it finds the file(the location was moved
into the tools directory)
1999-07-06 10:07:39 -05:00
Patrick Lu
75d0ccdb1b [svn-r1422]
added entries to the new files I added to the testfile dir(tenum.h5 tenum.ddl tobjref.h5
tobjref.ddl tdatareg.ddl tdatareg.h5)
1999-07-06 09:31:20 -05:00
Albert Cheng
624719c924 [svn-r1421] Divide the whole script into two parts, test and release, so that the
two tasks can be done selectively.  This is mainly to allow doing the
test without running the release part automatically.  After this is
tested out more to work fine, the "cvs checkout" part will be pulled
out also, so that it is possible to stage the cvs checkout during the
daytime when user is around to provide the AFS token.  The test part
can be done at night by cron, provided the latest source has been
"staged".  Following a successful test, the user can do the release
part by hand later, again with AFS tokens.
Also added options for using different locations of HDF4 library
and the ARCHIVE areas.  Making it useful for different machines
setup.
1999-07-04 00:16:03 -05:00
Quincey Koziol
306b310366 [svn-r1420] Modified to add new dataset transfer property list ID in H5Tconvert. 1999-07-03 05:34:45 -05:00
Quincey Koziol
3bdafe922a [svn-r1419] Modified dtypes.c to add new dataset transfer property list ID in
H5Tconvert calls.
    Added tests to tvltypes.c which test arrays of VL compound datatypes,
array of compound datatypes with VL fields and arrays of nested VL sequences
of VL sequences of atomic types, all of which are working correctly.
1999-07-03 05:34:27 -05:00
Quincey Koziol
650e29cff6 [svn-r1418] Modified H5Tconvert to require a dataset transfer property list ID as the
final parameter (so that VL datatypes have a way to pass in the custom memory
allocation routines).
    Fixed a conversion bug when VL fields were part of a compound datatype that
was causing the no-op conversion routine to be used instead of the vlen routine.
    Added the H5Pset_vlen_mem_manager and H5Pget_vlen_mem_manager routines to
allow users to provide their own custom memory allocation routines for VL data
read in from the file and reclaimed with H5Dvlen_reclaim.
    Finished coding on H5Dvlen_reclaim so it works now.
1999-07-03 05:31:26 -05:00
Albert Cheng
1b20703c20 [svn-r1417] t_mpi.c:
Changed it to skip the test instead of aborting when there is not
    enough processes to do the test.  Also corrected an error in the
    error reporting printf statement.
t_dset.c:
testphdf5.c:
testphdf5.h:
    Added option for specifying chunk dimensions.
1999-07-02 19:27:36 -05:00
Patrick Lu
8ecbdd7050 [svn-r1416] fixed a typo 1999-07-02 14:52:54 -05:00
Patrick Lu
2343e9f61e [svn-r1415] hopefully corrected the file to have the appropriate types 1999-07-02 14:50:48 -05:00
Patrick Lu
1893820e08 [svn-r1414]
fixed a typo from the last one
1999-07-02 13:15:55 -05:00
Patrick Lu
9a98a588d8 [svn-r1413]
added the comment at the top
1999-07-02 13:14:36 -05:00
Patrick Lu
f5e406b3aa [svn-r1412]
added a comment at the top that tells what the command was to generate the file
1999-07-02 13:11:52 -05:00
Patrick Lu
d16874dcad [svn-r1411]
fixed a bug.  need the comment at the top of the file
1999-07-02 13:08:57 -05:00
Patrick Lu
a2850083e7 [svn-r1410]
updated the .h5 files and the ddl's to show the new results
1999-07-02 13:00:15 -05:00
Patrick Lu
970c3a06b9 [svn-r1409]
updated the functions that create the tstr.h5 and tdset.h5 so they have
different values in the integer parts of the data.

for the tdset: it is i+j for the values instead of just i.(i and j are variables
used in a set of nested for loops)

for the tstr.h5: changed the data(originally just l to (l+k+j) squared).
these 3 variables are from 3 nested for loops.

more changes to tests to come
1999-07-02 12:52:18 -05:00
Patrick Lu
98a9636474 [svn-r1408]
new testfiles for the references.  created by h5dumptst
1999-07-02 09:52:31 -05:00
Patrick Lu
d619a1d3e6 [svn-r1407]
the ddl's for the new test files
1999-07-02 09:51:27 -05:00
Patrick Lu
95064e6f60 [svn-r1406]
a test file that is created from the h5dumptst.  ues it to test enums
1999-07-02 09:48:57 -05:00
Patrick Lu
ccc388ba1c [svn-r1405]
converted all the types to native types to fix the errors
1999-07-02 09:47:52 -05:00
Frank Baker
a129c4d54e [svn-r1404]
H5.format.html
	Copy edits
	Beginning of revisions to bring the Specification up-to-date and
	    move it to present tense
	Couple of new intro paragraphs, designed largely to offer the
	    user a bit more context

H5.user.html
Datatypes.html
	Font correction and minor formatting changes.

H5.user.PrintGen.html
H5.user.PrintTpg.html
	New files to enable creating a searchable and printable version
	of the HDF5 User's Guide.  These files enable the creation of a
	PDF file containing the entire document.  H5.user.PrintGen.html
	controls the print job; H5.user.PrintTpg.html is the title page
	for the PDF volume.
1999-07-01 21:54:33 -05:00
Albert Cheng
2e69c87e6b [svn-r1403] Added the include to make malloc compiled correctly. 1999-07-01 14:16:36 -05:00
Albert Cheng
37a03d1e32 [svn-r1402] Fixed a typo there. Now it should compile and clean up correctly. 1999-07-01 11:18:34 -05:00
Albert Cheng
13b67571be [svn-r1401] Included pablo in the clean up targets too. Not sure if it should
be in the tests target, so did not put it there.
1999-07-01 11:17:48 -05:00
Albert Cheng
fdc6caec28 [svn-r1400] Snapshot version 1.1 release 109 1999-06-30 23:28:10 -05:00
Albert Cheng
6a6f846c01 [svn-r1399] Updated for the removal of the two old Makefile's in testpar. 1999-06-30 22:35:46 -05:00
Albert Cheng
76ca6e67a7 [svn-r1398] Purpose:
new feature

Makefile.in:
    Added the dependence of *.c on the testphdf5.h
t_dset.c:
testphdf5.c:
testphdf5.h:
    testphdf5 now takes optional arguements for dataset dimension sizes.
    That allows testing with different dimension sizes without recompiling
    the whole thing.

Platform tested:
    O2K
1999-06-30 17:04:22 -05:00
Patrick Lu
cc2be92e78 [svn-r1397]
changed the name of 3 files so that it would have a t in front like the other
files in this program
1999-06-30 13:20:31 -05:00
Albert Cheng
a7488d696f [svn-r1396] Updated with new location of h5dumptst.c. 1999-06-30 13:12:48 -05:00
Albert Cheng
2133b0120f [svn-r1395] Moved to the upper directory. 1999-06-30 13:09:37 -05:00
Albert Cheng
b004a76a47 [svn-r1394] Changes made by Patrick to the h5dumptst.c in testfiles. 1999-06-30 13:08:14 -05:00
Albert Cheng
191943c2c2 [svn-r1393] Added entry for h5dumptst.c which creates test files for h5dump tool
tests.  h5dumptst should be run from inside testfiles directory.
1999-06-30 13:04:16 -05:00
Albert Cheng
da39dd94dc [svn-r1392] Changes made by Kim Yates and staff. I tested the changes on
O2K and it passed all tests.
1999-06-30 11:30:56 -05:00
Patrick Lu
903bc4b955 [svn-r1391]
added a break for the H5T_ENUM case in the switch in the dump_simple_dset
1999-06-28 13:12:25 -05:00
Patrick Lu
43af17182c [svn-r1390]
fixed a bug that was making references get printed twice
1999-06-28 13:09:20 -05:00
Patrick Lu
f623908727 [svn-r1389]
added 2 functions to create a file for data regions and obj references
1999-06-28 13:00:03 -05:00
Albert Cheng
169f7d9622 [svn-r1388] No longer needed because configure creates the right Makefile now. 1999-06-26 17:01:53 -05:00
Quincey Koziol
0aad682d19 [svn-r1387] Added tests for the "all" and "none" selection iterators. 1999-06-25 15:19:07 -05:00
Quincey Koziol
9039c9ecd9 [svn-r1386] Added tests to iterate through hyperslab and point selections. 1999-06-25 14:37:40 -05:00
Quincey Koziol
21403c5ec4 [svn-r1385] Updated H5Rdereference, H5Rget_object_type and H5Rget_region to accept a
location ID (i.e. a file or group ID) as well as the dataset ID.  This should
allow Dave to get the palettes stored in the file correctly and also enable
Bob and/or Bruce's indexing stuff.  This change should be folded into the
documentation for these three functions for the release.
    Also, I fixed a number of bugs in the hyperslab and point selection
iterators for H5Diterate and they are working correctly now.
1999-06-25 14:36:54 -05:00
Patrick Lu
78f622071f [svn-r1384]
added a function to create an enum test file
1999-06-25 14:25:52 -05:00
Patrick Lu
b1a4689964 [svn-r1383]
updated the enum data entry
1999-06-25 13:54:36 -05:00
Patrick Lu
7d7c7af92d [svn-r1382]
oooops i forgot to include a case statement in two switch statements (1 in each file)
that print the actual data of the enum datasets

i had to change a line of h5dump_sprint.
when it checks to see that is an enum val isn't an escape sequence i appended
this result onto the end of the str
1999-06-25 13:52:06 -05:00
Elena Pourmal
fd376ba048 [svn-r1381]
h5_mount.c and h5_reference.c were added.
1999-06-25 13:11:57 -05:00
Elena Pourmal
debc8037fb [svn-r1380] Two new examples h5_mount.c and h5_reference.c were added.
h5_select.c was modified to use fill values, and h5_group.c was modified
to show how H5Giterate can be used to get information about the objects in
a group.

Necessary changes were done to the Makefile.in.

Tested on Solaris 2.6 (baldric)
1999-06-25 13:11:09 -05:00
Elena Pourmal
40abc59350 [svn-r1379]
Two new examples h5_mount.c and h5_reference.c were added.
h5_select.c was modified to use fill values, and h5_group.c was modified
to show how H5Giterate can be used to get information about the objects in
a group.

Necessary changes were done to the Makefile.in.

Tested on Solaris 2.6 (baldric)
1999-06-25 13:11:08 -05:00
Patrick Lu
8c11a3a87c [svn-r1378]
added references and enums into the list of datatypes displayed
1999-06-24 14:54:34 -05:00
Patrick Lu
7f0f77be1e [svn-r1377]
removed teh TYPE define since it was already there as DATATYPE
1999-06-24 14:01:54 -05:00
Patrick Lu
99cd249d1b [svn-r1376]
changed some of the output format for the dumper(show object ids now)
1999-06-24 14:01:21 -05:00
Patrick Lu
c04c1b6abf [svn-r1375]
updated the ddl so it has the new types that we are displaying in dumper
1999-06-24 13:52:06 -05:00
Quincey Koziol
c4c6318e6a [svn-r1374] Added in code to support the H5Diterate function, which I've got to add tests
for now.  Also, I revised some of the code for hyperslab I/O, which should
provide a modest speedup in situations with lots of hyperslabs.
1999-06-23 21:16:13 -05:00
Quincey Koziol
ace37763c3 [svn-r1373] Added .o and .lo files to the "clean" target 1999-06-23 21:14:28 -05:00
Albert Cheng
aa8fd173a8 [svn-r1372] Set enable-shared to no by default for TFLOPS and IRIX64 systems.
Shared lib and libtool are not working for them yet.
Users can still force enable-shared on by "configure -enable-shared ..."
1999-06-23 18:24:17 -05:00
Robb Matzke
c78a6aedaf [svn-r1371]
Changes since 19990618
----------------------

./configure.in
./configure		[REGENERATED]
	Now that compound struct conversions don't make so many calls
	to convert their members I turned the H5T debugging back on by
	default (it will still be disabled in a production version).

./src/H5AC.c
./src/H5B.c
	Made it possible to turn off messages about debugging these
	two packages using the same method as for all other
	packages. Just supply an invalid file descriptor number or use
	the shell to redirect said descriptor to /dev/null like this:

	    $ HDF5_DEBUG=99,ac,b 99>/dev/null a.out

./src/H5T.c
	Changed the name of the old compound conversion function from
	`struct' to `struct(no-opt)' to be more consistent with the
	new version named `struct(opt)'.

	Fixed a bug in H5T_cmp() that caused any two VL types to
	compare as being equal.

	Removed duplicate code for bitfield comparisons in H5T_cmp().

./src/H5Tconv.c
	Relaxed some constraints in the new compound conversion
	function so it applies to more cases.  Also eliminated a
	memcpy in a tight loop.

./test/cmpd_dset.c
	Added a `--noopt' command line switch which unregisters the
	optimized compound conversion so we can test the non-optimized
	version.
1999-06-23 11:16:51 -05:00
Patrick Lu
0350710f5b [svn-r1370]
added a new line before a bracket was pritned in the enum stuff
1999-06-23 09:58:51 -05:00
Patrick Lu
941cf3a134 [svn-r1369]
added semicolons after the print out of the enum info
1999-06-22 14:10:18 -05:00
Patrick Lu
f11cb6763b [svn-r1368]
added a h5dumptst project to the all project
1999-06-21 10:26:47 -05:00
Patrick Lu
71500ff8e1 [svn-r1367]
made a small change so that windows would stop complaining.  the change involved
using some type casting.  the change was surrounded by a #define WIN32
1999-06-21 10:26:00 -05:00
Elena Pourmal
c858b61346 [svn-r1366]
Example was modified to show how fill values are set for the dataset.
Typos in the comments were fixed and updated.
1999-06-18 16:11:50 -05:00
Elena Pourmal
998991d13d [svn-r1365]
Examples were listed in the wrong order on the TEST_PROGS line.
make check was failing.

Fixed.

Tested on Solaris 2.7 ( baldric )
1999-06-18 15:17:12 -05:00
Robb Matzke
15c5400284 [svn-r1364]
Changes since 19990618
----------------------

./Makefile.in
	Running `make' in the top directory recurses into the examples
	directory also except if the make target is one of: lib,
	progs, check, test, _test, install, uninstall.

./examples/Makefile.in
	Changed programs into tests, which just means that `make
	tests' does what `make progs' used to do and that `make check'
	runs the executables.

./src/H5Tconv.c
	Fixed a typo in the unsigned-to-signed native converter for
	large types to small types. This fixes a bug on baldric and
	possibly other machines for the `dtypes' test.

	Also fixed a signed vs. unsigned warning.
1999-06-18 13:29:17 -05:00
Robb Matzke
ab16b9fab7 [svn-r1363] Changes since 19990618
----------------------

./Makefile.in
	Running `make' in the top directory recurses into the examples
	directory also except if the make target is one of: lib,
	progs, check, test, _test, install, uninstall.

./examples/Makefile.in
	Changed programs into tests, which just means that `make
	tests' does what `make progs' used to do and that `make check'
	runs the executables.

./src/H5Tconv.c
	Fixed a typo in the unsigned-to-signed native converter for
	large types to small types. This fixes a bug on baldric and
	possibly other machines for the `dtypes' test.

	Also fixed a signed vs. unsigned warning.
1999-06-18 13:29:11 -05:00
Robb Matzke
8baa675250 [svn-r1362]
Changes since 19990616
----------------------

./src/H5T.c
./src/H5Tconv.c
	All conversion functions take an extra argument called
	`stride' which is the number of bytes to advance the source
	and destination pointers after each element is converted. If
	the value is zero then the old behavior is preserved (source
	and destination values are packed). This feature was necessary
	to implement the compound datatype conversion optimizations
	and it causes a minor change to the API (application-defined
	type conversion functions take an extra size_t stride
	argument).

./src/H5Tconv.c
	An additional compound data type conversion function was added
	which is applied unless the destination type is larger than
	the source type. I'm measuring significant performance
	increases for certain operations:

	    Test Name    Struct-Conv    Noop-Conv
			 New(Old) MB/s  New(Old) MB/s
	    ----------   -------------  -------------
	    Reordering   2.062(0.3936)  54087(0.9047)
	    Subsetting   2.901(0.6581)  40192(1.1100)
	    Shrinking    1.976(0.3925)  33628(1.1500)
	    ----------   -------------  -------------

./test/dtypes.c
	Added various compound datatype conversion tests.

	Fixed return values from functions.

./src/H5T.c
	Conversion timers are updated only if H5T debugging is turned
	on a runtime (in addition to compile time). This allows the
	data type layer to be compiled with debugging support without
	having to pay a big runtime penalty if the debugging isn't
	actually used.

./src/H5A.c
./src/H5D.c
./src/H5Ofill.c
./src/H5P.c
./src/H5T.c
./src/H5Tconv.c
./src/H5Tpkg.h
./src/H5Tprivate.h
./src/H5Tpublic.h
	Added the stride argument to the H5T_convert() calls. The
	stride is always zero, which means that the source and
	destination data values are packed.

./configure.in
./configure			[REGENERATED]
	If API tracing is turned off then libhdf5.settings will say
	`no' instead of nothing.

./test/flush1.c
./test/flush2.c
	Added better error messages in a couple places.
1999-06-18 10:12:18 -05:00
Patrick Lu
ca9f4c3888 [svn-r1361]
made the output for the dataset regions look like how Albert wanted it to
1999-06-17 10:53:14 -05:00
Patrick Lu
99478cd128 [svn-r1360]
dumps dataset regions now.  uses robb's code to get all the info.
modified display_numeric_data to display the info
1999-06-17 10:32:41 -05:00
Albert Cheng
aa3c4b36cd [svn-r1359] Snapshot version 1.1 release 108 1999-06-16 20:29:11 -05:00
Albert Cheng
45d2895bfa [svn-r1358] Update the ftp site to the AFS area.
Added in the exit-on-error mode to abort cvs commit if errors encountered.
1999-06-16 19:33:00 -05:00
Albert Cheng
a7042d4493 [svn-r1357] Fixed some typo and missing #include. Works again for
the Parallel version.
1999-06-16 19:16:12 -05:00
Albert Cheng
a4cd66d5e5 [svn-r1356] Snapshot version 1.1 release 107 1999-06-16 15:11:54 -05:00
Albert Cheng
8de95dd697 [svn-r1355] Bug fix: compiler complained about errno not defined. That was
because it is predefined in <errno.h>, not <sys/errno.h> which
contains the system error codes.
Fixed and tested in IRIX6.5 (also got rid of the few K&R C-style
function declaration statements.)
1999-06-16 14:15:16 -05:00
Robb Matzke
06c7d8fbbf [svn-r1354]
Changes since 19990615
----------------------

./README
	Version number synchronized with library.

./bin/h5vers
	If the version number of the library is changed then the first
	line of the README file is also changed to something like

	     This is hdf5-1.2.3 currently under development

	The `release' script (which also gets run by `snapshot')
	changes that line to include the release date but keeps the
	version number the same.  The net effect is that the version
	numbers in README and H5public.h should now always stay
	synchronized.

./bin/snapshot
	The CVS checkin comment includes the version number for the
	snapshot that was just made.

./tools/testh5toh4
	Changed `*-SKIP-*' to `-SKIP-' to be consistent with the other
	tests.
1999-06-16 10:09:56 -05:00
Dan Wells
b5690a0af3 [svn-r1353] Added new hdf routine to the library. 1999-06-16 09:39:53 -05:00
Albert Cheng
231e8a2e96 [svn-r1352] Changed the '\n' argument to '\012' since some other machines (solaris,
irix) misinterpreted it to mean deleting the letter 'n'.
Tested in IRIX and solaris and FreeBSD machines.
1999-06-15 21:06:25 -05:00
Albert Cheng
004cf630d5 [svn-r1351] Bug fix:
hdp before HDF 4.1r3 does not handle Vgroups loops correctly.
Solution:
Added codes to detect the library version of hdp command. Skipped
tests for loops.  Tested in an old solaris with HDF 4.1r2, Solaris 2.6
and Hawkwind.
1999-06-15 20:05:03 -05:00
Patrick Lu
dfbdfb60a2 [svn-r1350]
added the #defines for the string macros here
1999-06-15 14:02:11 -05:00
Patrick Lu
a594d02131 [svn-r1349]
moved the #define for the string macros to the h5tools.h from h5dump.h5
1999-06-15 13:46:58 -05:00
Patrick Lu
4fce9ceeb9 [svn-r1348]
got the regions working in the dumper.  all the hard stuff was already done.
it doesn't work perfectly yet but it is getting better
1999-06-15 12:25:30 -05:00
Robb Matzke
1c0597aa74 [svn-r1347]
Changes since 19990614
----------------------

./src/H5D.c
	Changed the way the plist_id argument of H5Dvlen_reclaim() is
	checked so that it's more specific and works when debugging is
	turned off.

./src/H5TB.c
	Removed an unused local variable.

./test/fillval.c
./test/h5test.c
./test/h5test.h
	Changed `basename' variables to `base_name' to prevent a
	warning about a global with the same name.

./tools/h5ls.c
	Changed `indent' variables to `ind' to prevent a warning about
	a global with the same name.

./tools/h5toh4.c
	Commented out declarations for things that normally appear in
	system header files since our definitions might be
	incompatible with the system and prevent h5toh4 from
	compiling.  If all looks good on other systems then we can
	permanently remove these declarations...
1999-06-15 09:58:25 -05:00
Robb Matzke
7a659a4d50 [svn-r1346] Changes since 19990614
----------------------

./src/H5D.c
	Changed the way the plist_id argument of H5Dvlen_reclaim() is
	checked so that it's more specific and works when debugging is
	turned off.

./src/H5TB.c
	Removed an unused local variable.

./test/fillval.c
./test/h5test.c
./test/h5test.h
	Changed `basename' variables to `base_name' to prevent a
	warning about a global with the same name.

./tools/h5ls.c
	Changed `indent' variables to `ind' to prevent a warning about
	a global with the same name.

./tools/h5toh4.c
	Commented out declarations for things that normally appear in
	system header files since our definitions might be
	incompatible with the system and prevent h5toh4 from
	compiling.  If all looks good on other systems then we can
	permanently remove these declarations...
1999-06-15 09:57:59 -05:00
Albert Cheng
740b5058c5 [svn-r1345] Changed it to use perl to execute the perl scripts than to
rely on invoking the script files themselves.
Tested on fuga (IRIX 6.5).
1999-06-14 23:01:09 -05:00
Albert Cheng
73dfd4d282 [svn-r1344] Snapshot 1999-06-14 19:36:24 -05:00
Albert Cheng
401b37c1c3 [svn-r1343] Filter out the reference number values during comparison of the hdp
output.
1999-06-14 15:18:16 -05:00
Patrick Lu
8b287dfa64 [svn-r1342]
updated the project file for testhdf5 and testhdf5dll
1999-06-14 10:23:09 -05:00
Robb Matzke
1c5f6ffb70 [svn-r1341]
Changes since 19990611
----------------------

./doc/html/H5.format.html
	Added documentation for opaque data types (bitfield types were
	already documented but they were out of order).

./src/H5E.c
	Fixed a bug with glibc2 on linux systems where `stdout' is an
	extern and can't be used to initialize static data.

./src/H5T.c
./src/H5Tpkg.h
./src/H5Tpublic.h
./src/H5detect.c
	Removed the `_T' from the new C9x types I just added so the
	names are consistent with existing types. Besides, the fact
	that something is a datatype is obvious because it starts with
	H5T_NATIVE_.

./tools/h5ls.c
	Added the new C9x data types. H5ls prints one of these types
	only if it doesn't match one of the builtin C types.

	Prints the OID for shared data types.

	Fixed a formatting bug with symbolic links which was
	introduced a few changes ago.

	The commandline has been changed so that objects from multiple
	files can be listed with a single command. Instead of
	specifying a file name and an optional list of objects, each
	thing to print is a file name and object concatenated. H5ls
	figures out how to devide the name into a file name and object
	name even when the file name part doesn't correspond to an
	actual Unix file.

	   Old syntax: h5ls [OPTIONS] FILE [OBJECTS]
	   New syntax: h5ls [OPTIONS] FILE[/OBJECT] [FILE[/OBJECT]]...

	   Example ({X,Y} is expanded by the shell)

	   Old command: h5ls -d ../test/x.data dir1 dir2
	   New command: h5ls -d ../test/x.data/{dir1,dir2}

	The filename is printed as part of the object name when full
	names are requested (--full or --recursive). If people really
	don't like this they can undefine a constant at the top of
	h5ls.

	Errors from the hdf5 library are turned off.

	Commandline switches of the form `--width 80' are accepted in
	addition to `--width=80'. This is more symmetric with
	single-letter switches that take two forms: `-w 80' and
	`-w80'.

./src/H5D.c
	Added tracing instrumentation for H5Dvlen_reclaim().

./src/H5private.h
	Added casts to int for the isalpha() et al macros to shut up
	solaris warnings about char subscripts.
1999-06-14 10:07:58 -05:00
Robb Matzke
52bb2a205d [svn-r1340] Changes since 19990611
----------------------

./doc/html/H5.format.html
	Added documentation for opaque data types (bitfield types were
	already documented but they were out of order).

./src/H5E.c
	Fixed a bug with glibc2 on linux systems where `stdout' is an
	extern and can't be used to initialize static data.

./src/H5T.c
./src/H5Tpkg.h
./src/H5Tpublic.h
./src/H5detect.c
	Removed the `_T' from the new C9x types I just added so the
	names are consistent with existing types. Besides, the fact
	that something is a datatype is obvious because it starts with
	H5T_NATIVE_.

./tools/h5ls.c
	Added the new C9x data types. H5ls prints one of these types
	only if it doesn't match one of the builtin C types.

	Prints the OID for shared data types.

	Fixed a formatting bug with symbolic links which was
	introduced a few changes ago.

	The commandline has been changed so that objects from multiple
	files can be listed with a single command. Instead of
	specifying a file name and an optional list of objects, each
	thing to print is a file name and object concatenated. H5ls
	figures out how to devide the name into a file name and object
	name even when the file name part doesn't correspond to an
	actual Unix file.

	   Old syntax: h5ls [OPTIONS] FILE [OBJECTS]
	   New syntax: h5ls [OPTIONS] FILE[/OBJECT] [FILE[/OBJECT]]...

	   Example ({X,Y} is expanded by the shell)

	   Old command: h5ls -d ../test/x.data dir1 dir2
	   New command: h5ls -d ../test/x.data/{dir1,dir2}

	The filename is printed as part of the object name when full
	names are requested (--full or --recursive). If people really
	don't like this they can undefine a constant at the top of
	h5ls.

	Errors from the hdf5 library are turned off.

	Commandline switches of the form `--width 80' are accepted in
	addition to `--width=80'. This is more symmetric with
	single-letter switches that take two forms: `-w 80' and
	`-w80'.

./src/H5D.c
	Added tracing instrumentation for H5Dvlen_reclaim().

./src/H5private.h
	Added casts to int for the isalpha() et al macros to shut up
	solaris warnings about char subscripts.
1999-06-14 10:07:49 -05:00
Patrick Lu
da12109cfa [svn-r1339]
added a print_enum function to it that is just taken from a similar funtion
in h5ls.c
1999-06-13 21:40:52 -05:00
Albert Cheng
855d10e8ee [svn-r1338] Removed the tools/testfiles/*.dmp which are no longer used. 1999-06-13 20:55:17 -05:00
Albert Cheng
0ccd32fd68 [svn-r1337] Updated it with new files created for the h5toh4 tests. 1999-06-13 19:47:43 -05:00
Albert Cheng
a45d0d96a2 [svn-r1336] h5toh4 test script used to compare the output of hdp applied on
the generanted hdf files against saved output of hdp.  This did not
work well because whenever the hdp changes its output format, the
tests failed unnecessarily.  The tests also failed if the test machine
uses a different version of HDF library from the HDF5 development
machine.

Changed the algorithm to compare the generated HDF files against
saved HDF files (first by a simple cmp; if that fails, compare the
output of the host machine's hdp on both HDF files.)

Saved HDF files are stored in testfiles/Expected.

Tested on Hawkwind (FreeBSD) with srcdir option and Baldric (Solaris)
without srcdir option.
1999-06-13 19:39:25 -05:00
Albert Cheng
6337d6e6a1 [svn-r1335] h5toh4 test script used to compare the output of hdp applied on
the generanted hdf files against saved output of hdp.  This did not
work well because whenever the hdp changes its output format, the
tests failed unnecessarily.  The tests also failed if the test machine
uses a different version of HDF library from the HDF5 development
machine.

Changed the algorithm to compare the generated HDF files against
saved HDF files (first by a simple cmp; if that fails, compare the
output of the host machine's hdp on both HDF files.)

Tested on Hawkwind (FreeBSD) with srcdir option and Baldric (Solaris)
without srcdir option.
1999-06-13 19:38:29 -05:00
Quincey Koziol
b487ccb9ee [svn-r1334] VL datatype testing file. Currently, only atomic datatype sequences are tested,
but I expect the others to work correctly also.  More tests on VL compound
and VL VL (atomic) types forthcoming.
1999-06-11 17:06:26 -05:00
Quincey Koziol
50133e2ff4 [svn-r1333] Added the test_vltypes() to the other tests. 1999-06-11 17:05:04 -05:00
Quincey Koziol
a556665ad1 [svn-r1332] Fixes to get the VL datatypes working. The only function currently working
is H5Tvlen_create().
1999-06-11 17:04:42 -05:00
Quincey Koziol
725578538a [svn-r1331] Added VL datatype test file 1999-06-11 17:03:53 -05:00
Patrick Lu
6c9b3a99d4 [svn-r1330]
removed a // frm the code
1999-06-11 12:04:16 -05:00
Patrick Lu
531fda4d78 [svn-r1329]
started to add the enum code in.
just wanted to get something checked in before i mess it up
1999-06-11 12:01:51 -05:00
Robb Matzke
263bfa76ef [svn-r1328] Changes since 19990608
----------------------

./configure.in
./configure			[REGENERATED]
./src/H5T.c
./src/H5Tpkg.h
./src/H5Tpublic.h
./src/H5config.h.in		[REGENERATED]
./src/H5detect.c
./src/H5private.h
	Added checks for the C9x integer types like int32_t,
	int_least32_t, and int_fast32_t and the unsigned
	versions. HDF5 defines H5T_NATIVE_* versions (all caps) to be
	the same as the type provided by the C library, otherwise it
	defines them as integers exactly the specified size. Hardware
	type conversion functions are used when the types
	match some C-language type (like `int').
1999-06-11 10:53:15 -05:00
Albert Cheng
d6ba8a5095 [svn-r1327] Got rid of the extra line of setting dim_n_size incorrectly.
Tested in O2K.
1999-06-10 23:22:59 -05:00
Albert Cheng
55b5e0fe94 [svn-r1326] Replaced the non-general if-then-elif-... code with a general
while-loop.  Prepare it for the next revision in which the hdp
will apply to both the converted hdf4 file and a preserved hdf4
file, then compare the hdp output from both for h5toh4 converter
correctness.
1999-06-10 22:22:11 -05:00
Patrick Lu
0780cc508e [svn-r1325] fixed a bug that was due to settign the dim_n_size wrong for the dump_attr function
for scalar data
1999-06-10 14:14:40 -05:00
Patrick Lu
40aa67003b [svn-r1324]
moved the ATTRIBUTE_DATA definition from h5dump.h to h5tools.h
also created a ENUM_DATA in th5tools.h
1999-06-10 12:41:06 -05:00
Patrick Lu
bcc9f5ad96 [svn-r1323]
removed a c++ style comment i put in by accident
1999-06-10 10:21:40 -05:00
Albert Cheng
93a359dd57 [svn-r1322] Removed the reformating part. The output of h5dump should
be identical in all platforms.  Tested in O2K.
1999-06-09 17:26:28 -05:00
Patrick Lu
fd02ea947d [svn-r1321]
added some support for the object references.  uses robb's h5dump_sprint to
print out the info
1999-06-09 13:43:07 -05:00
Patrick Lu
bbe6a75cd0 [svn-r1320]
just made the h5dump_attr function
1999-06-08 12:46:33 -05:00
Patrick Lu
9c71da9893 [svn-r1319]
fixed bug that was printing out the "unable to print data message"
1999-06-08 12:27:13 -05:00
Patrick Lu
e69fe58b23 [svn-r1318]
separated the dumping of the attributes and datasets.  works on nt but
on unix(baldric) adds an extra line that says cannot print data.
this is just a temporary checkin until i can figure out what is wrong
1999-06-08 12:03:36 -05:00
Patrick Lu
ba3276554c [svn-r1317]
rolled back my changes so Robb's last set are still there.
merged my hcanges back in
1999-06-08 11:46:41 -05:00
Albert Cheng
7b77b1e571 [svn-r1316] The last commit via snapshot script clobbered this file.
Restoring its rightful content.
1999-06-08 11:30:57 -05:00
Robb Matzke
f1a1ae37ff [svn-r1315] Changes since 19990607
----------------------

./configure.in
./configure			[REGENERATED]
./src/libhdf5.settings.in	[NEW]
./config/conclude.in
./INSTALL
./MANIFEST
	A file called `libhdf5.settings' is installed along with the
	libraries and it contains a list of various things that might
	be of interest to someone using the library (such as what
	compiler/options were used and what other libraries might need
	to be linked to satisfy external references).  We can add more
	things as it becomes necessary. Here's a sample...

	SUMMARY OF THE HDF5 CONFIGURATION
	=================================

	HDF5 Version:		hdf5-1.1.106
	Configured on:		Tue Jun  8 11:38:52 EDT 1999
	Configured by:		matzke@llnl.gov at Spizella Software
	Configure mode:		development
	Host system:		i686-pc-linux-gnulibc1
	Byte sex:		little-endian
	Libraries:		static, shared
	Parallel support:	mpicc
	Installation point:	/usr/local
	Compiler:		mpicc (egcs-2.91.66)
	Compiler switches:	-Wall -g
	Extra libraries:	-lmfhdf -ldf -lz -ljpeg -lm
	Archiver:		ar
	Ranlib:			ranlib
	Debugged Packages:	d,e,f,g,hg,i,mm,o,p,s,v,z
	API Tracing:		yes
	File addresses:		large
1999-06-08 11:14:10 -05:00
Albert Cheng
675c9b0fad [svn-r1314] Snapshot 1999-06-07 20:13:15 -05:00
Albert Cheng
c752adc4ac [svn-r1313] Neither SGI nor Solaris allows an empty 'then' body.
Changed it to conditional statements.  Tested fine in
SGI and Solaris.
1999-06-07 19:42:10 -05:00
Patrick Lu
006e67409b [svn-r1312]
fixed the dumb error with the concatenator macro
1999-06-07 18:27:44 -05:00
Robb Matzke
58eb9c4aa0 [svn-r1311] Changes since 19990607
----------------------

./tools/h5ls.c
./tools/h5tools.c
	Added support for printing bitfields and opaque data.

./test/dsets.c
	Added bitfield and opaque datasets to the output file so h5ls
	has something interesting to print.

./test/trefer.c
	Resync'd

./src/H5Tconv.c
	Fixed bitfield conversion which resulted in possible garbage
	in high-order bits of destination when the destination type is
	larger than the source type. Thanks for spotting it, Quincey.
1999-06-07 15:20:32 -05:00
Patrick Lu
8532eb342e [svn-r1310]
removed the '//' from display_string and put a macro for it in h5dump.h
1999-06-07 14:57:10 -05:00
Robb Matzke
6881c423a1 [svn-r1309] Changes since 19990607
----------------------

./tools/h5tools.c
	Finished code which prints references (object and dataset
	region). Patrick, if you tell me how h5dump should (or might
	want to) print references I can make some changes to support
	various formats...

	You can try it out with:

	    cd test
	    env HDF5_NOCLEANUP=yes ./testhdf5
	    ../tools/h5ls -dvr trefer1.h5
	    ../tools/h5ls -dvr trefer2.h5

	(run h5ls with no arguments if you forgot what the switches do)


./test/trefer.c
	Call calloc instead of malloc in one place to prevent
	uninitialized data from being written into the file.
1999-06-07 13:19:30 -05:00
Robb Matzke
ea77993266 [svn-r1308] Changes since 19990607
----------------------

./tools/h5ls.c
./tools/h5tools.c
./tools/h5tools.h
	Finished the `-x' or `--hexdump' switch, which causes all data
	to be printed in hexadecimal format with no translation from
	file to memory data type.
1999-06-07 10:58:05 -05:00
Patrick Lu
5bfee94f46 [svn-r1307]
updated the project files for the library and the dll
1999-06-07 10:37:19 -05:00
Robb Matzke
b98fcbf592 [svn-r1306] Changes since 19990602
----------------------

./doc/html/Datatypes.html
./test/dtypes.c
	Added documentation and tests for opaque types.

./tools/h5ls.c
	Added a `-x' or `--hexdump' argument which is not fully
	implemented (because I want to synchronize h5tools.c first)
	but which will eventually print raw data in hexadecimal format
	without any translation from disk. This would be useful for
	debugging references and VL types.

./tools/h5tools.c
	Added support for references (not quite finished yet, but
	compiles -- I wanted to sync up this file before Patrick and I
	got too far apart...)


./src/H5R.c
	Checked for error return value from H5R_get_object_type()

./src/H5A.c
./src/H5D.c
	Changed error return values from NULL to FAIL

./test/Makefile.in
./test/trefer.c
	Creates trefer1.h5 and trefer2.h5 so that the second test
	doesn't clobber the first file since the files might be useful
	for debugging.
1999-06-07 10:05:02 -05:00
Quincey Koziol
2a10e682a1 [svn-r1305] Checkpointing the VL datatype code. I believe the core functionality is here,
accessed with H5Tvlen_create, but I need to start writing tests now.  Also the
more esoteric API calls (such as H5Tget_vlen_buf_size and the memory management
calls) aren't implemented yet.
1999-06-04 17:27:28 -05:00
Quincey Koziol
df96f4362a [svn-r1304] Added new H5Tvlen.c file to manifest. I don't recall changing the configure
script though... :-?
1999-06-04 17:23:42 -05:00
Patrick Lu
50f41a8185 [svn-r1303]
got rid of 2 memory leaks in display_numer_data and display_string
1999-06-04 14:52:13 -05:00
Patrick Lu
8374f82883 [svn-r1302]
replaced the 0 in the function call to h5dump_simple_dset to DATSET_DATA
1999-06-04 13:29:52 -05:00
Patrick Lu
2ce9e72bfb [svn-r1301]
fixed the number of parameters to h5dump_fixtype.
1999-06-04 12:59:20 -05:00
Patrick Lu
c1bcb2f367 [svn-r1300]
added the programtype variable and modified certain functions so they would use
this variable. started combinin h5dump_simple and h5dump_simple_dset into 1 function.
added an extra parameter to the h5dump_simple_dset function that because the
h5dump_simple function uses a var that isn't present in the dump_simple_dset
1999-06-04 10:49:55 -05:00
Patrick Lu
3a32a5e973 [svn-r1299]
added an enum for programtypes and the program types variable
1999-06-04 10:47:54 -05:00
Patrick Lu
a7c167e389 [svn-r1298]
added a new variable to the tools lib that keeps track of what program is using
the library. h5ls.c and h5dump.c needed to init the variable to the correct
value for the programtype variable.  this variable will hopefully only be temporary
until the lib gets combined farther
1999-06-04 10:47:23 -05:00
Patrick Lu
58b40b848c [svn-r1297]
removed the c++ style comments and added a new line at the end of the file
1999-06-04 09:40:15 -05:00
Patrick Lu
2d82003556 [svn-r1296]
removed a line from display_numeric_data that was not needed
1999-06-02 20:20:35 -05:00
Albert Cheng
4635285d64 [svn-r1295] Previous version contained incorrect output from previous h5dump.
Updated it to reflect correct output.
1999-06-02 19:52:24 -05:00
Albert Cheng
14364b9257 [svn-r1294] Removed the pre-defined macro DOS386. It was used to identify
being in the TFLOPS machine but it is not recognized by the system.
TFLOPS uses __PUMAGON__ to identify itself.
1999-06-02 19:41:37 -05:00
Patrick Lu
93a6938cef [svn-r1293]
added a function so that when we dump atomic characters they stay together
1999-06-02 13:11:21 -05:00
Robb Matzke
e352d29757 [svn-r1292] Changes since 19990430
----------------------

Remove changes from CVS

./bin/release
	Added a `--nocheck' switch which causes the script to not
	check the contents of the MANIFEST file against CVS. This is
	sometimes useful when you need to make a quick snapshot but
	the MANIFEST file is not quite up to date.

./src/H5D.c
	Removed warnings for unused variables

./src/H5Fprivate.h
	Removed the WIN32 definition for `uint' and changed the data
	type for `eof_written' from `uint' to `uintn'. Shouldn't this
	really be `hbool_t'?

./src/H5Odtype.c
./src/H5T.c
./src/H5Tconv.c
./src/H5Tpkg.h
./src/H5Tpublic.h
./test/dtypes.c
./doc/html/H5.format.html
	Added support for bitfields and opaque data types.
1999-06-02 08:59:35 -05:00
Patrick Lu
5992a71fe0 [svn-r1291]
added a typedef for windows.  uint is UINT on windows.
1999-06-01 11:33:59 -05:00
Albert Cheng
e1c88c9c18 [svn-r1290] TFLOPS needs a launching problem even for single process execution.
Use RUNSERIAL to launch it.
1999-05-28 17:09:03 -05:00
Albert Cheng
b48d0a56ee [svn-r1289] Removed RUNTEST before the /bin/sh because all the systems that is
known so far do not need a "launching command" to run shell script.
(If a future system needs it, maybe we should use a new VARIABLE
called RUNSHELL, default to /bin/sh, to do the launching.)

Then inside the test shell script, it needs to know how to launch
serial or parallel executions.  So, pass the RUNSERIAL and RUNPARALLEL
variables to the /bin/sh command.
1999-05-28 17:07:42 -05:00
Albert Cheng
bad98b7028 [svn-r1288] Updated TFLOPS location for the newer MPIO library. 1999-05-28 17:02:41 -05:00
Frank Baker
de0d96dd53 [svn-r1287]
Attributes.html
RM_H5A.html
	Fix bug #326, which pointed out that the H5Aget_name parameters were
	listed in the wrong order.
1999-05-28 15:09:10 -05:00
Patrick Lu
3779274df6 [svn-r1286]
added a line i thought was there but I must have removed it by accident
1999-05-28 13:58:54 -05:00
Patrick Lu
01191731a6 [svn-r1285]
fixed the last bug with the repeating in the tstr.h5 test
added an extra parameter to the h5dump_sprint function.  it was for the repeat_threshold
before it was hardcoded as 8 but now i let it be a parameter so that if it is set to
a negative number then it will not count the repeats and print all the values out.
1999-05-27 10:43:12 -05:00
Albert Cheng
8bb58b4399 [svn-r1284] Pass $AR setting to libtool. A cross-compiler (e.g., TFLOPS) would
like use a "cross-compiling ar" to create the library archive.
1999-05-26 15:28:24 -05:00
Albert Cheng
009a989c32 [svn-r1283] Changed the shell to exit with number of errors encountered during
test.  This would signal to make something is incorrect.
1999-05-26 15:14:19 -05:00
Patrick Lu
b583a01f5b [svn-r1282]
fixed the null pad error and the extra quotes that were appearing in the strings.
still need to get rid of the part where it will say something repeats x amount of
times
1999-05-26 11:08:32 -05:00
Robb Matzke
7bbb6d9f79 [svn-r1281] Snapshot 1999-05-26 04:21:24 -05:00
Quincey Koziol
abdbd8f0bd [svn-r1280] Added some extra debugging output. 1999-05-25 21:43:51 -05:00
Quincey Koziol
85d15667be [svn-r1279] Fixed bug in new optimized hyperslab code. 1999-05-25 21:43:38 -05:00
Quincey Koziol
f94d9d48ca [svn-r1278] Added size of userblock to base address of the low-level eof to correct bug. 1999-05-25 21:07:22 -05:00
Albert Cheng
ac830927fb [svn-r1277] Added additional checks into the dataspace code to determine if the hyperslabs
being written out are contiguous in memory and on disk and write/read them as
one I/O operation (if the datatypes don't require conversion).  This should be
a good performance boost for those situations.  It's especially needed on the
ASCI Red (TFlops) machine.  - QAK (from Albert's account on modi4 :-)
1999-05-25 16:29:31 -05:00
Albert Cheng
9282a3e357 [svn-r1276] H5D.c:
H5F.c:
H5Flow.c:
H5Fprivate.h:
    Joined work by Quincey, Robb and me to eliminate the initial writes
    of BOOTBLOCK when the file is first created.  Also, eliminate the
    repeatedly encoding of BOOTBLOCK in the flushing code.  Introduced
    the eof_written flag to indicate when it is not necessary to go
    do a dumb write at eof.
    (But something is not right if the userblock is not zero.)

H5Fmpio.c:
    Added code to allow setting the MPIO debug output mask via
    the environment variable H5F_mpio_Debug.
1999-05-25 12:31:51 -05:00
Robb Matzke
20811af57b [svn-r1275] Snapshot 1999-05-25 04:21:27 -05:00
Albert Cheng
b6096d832c [svn-r1274] Added code to delete the core file that maybe generated by
SIGFPE during the test.
1999-05-24 22:25:37 -05:00
Robb Matzke
315ea1e460 [svn-r1273] Snapshot 1999-05-22 04:21:25 -05:00
Albert Cheng
bf3e459324 [svn-r1272] Basically rewrote the whole instruction. Good enough to help
TFLOPS, T3E, O2K and SP2 users to do parallel configuration.
Still need to fill in more information.
1999-05-21 22:58:47 -05:00
Albert Cheng
5742d7fa04 [svn-r1271] h5tools.c:
fixed a typo of pointer comparing with char.
h5tools.h:
    Removed ^M from the file.  SGI does not like them.
1999-05-21 15:05:19 -05:00
Robb Matzke
fe3079f7e2 [svn-r1270] Snapshot 1999-05-21 04:21:15 -05:00
Patrick Lu
bae358243c [svn-r1269]
i forgot to remove an extra if else that isn't needed anymore
1999-05-20 14:09:04 -05:00
Patrick Lu
19d46ed16f [svn-r1268]
changing the display_numeric_data abd the display_string to use the h5dump_sprint
from the tools lib.

added a section to initialize the h5dump_t variable in both these functions.
in the display_string had to remove the extra quotes that gets displayed when
printing.

in h5dump_sprint i changed the for loop in the case of the string.
I added a check to see if the last character is a \0.  it was being printed
before.
1999-05-20 13:54:08 -05:00
Patrick Lu
b6ffdf65b9 [svn-r1267]
fixed a typo in the bat file i just put in
1999-05-20 11:31:50 -05:00
Patrick Lu
744b73521a [svn-r1266]
added a the h5dump batch file i created to test the the dumper
1999-05-20 11:24:43 -05:00
Robb Matzke
253cbe6d9c [svn-r1265] Snapshot 1999-05-20 04:21:52 -05:00
Quincey Koziol
39d4289d7b [svn-r1264] Fixed output of hdp comparison files to align with the output from the v4.1r3
dumper.
1999-05-19 19:46:07 -05:00
Robb Matzke
d3968c738f [svn-r1263] Snapshot 1999-05-18 04:21:10 -05:00
Patrick Lu
ba25e1770b [svn-r1262]
fixed another bug that i made when I started to merge the 2 libs together.
1999-05-17 10:36:33 -05:00
Robb Matzke
3245cbdf45 [svn-r1261] Snapshot 1999-05-17 04:21:10 -05:00
Quincey Koziol
72a1a02b83 [svn-r1260] Corrected H5Iget_type so error value isn't always returned. 1999-05-16 16:21:53 -05:00
Robb Matzke
647016dad2 [svn-r1259] Snapshot 1999-05-15 04:21:37 -05:00
Robb Matzke
5d27980756 [svn-r1258] Fixed a bug that caused an ID to be added to the cache twice. Thanks
for noticing it, Nancy.
1999-05-14 16:58:42 -05:00
Patrick Lu
6476ddbc60 [svn-r1257] fixed a bug I introduced when i removed the h5dump_sprint fromt he dump tool 1999-05-14 14:47:22 -05:00
Robb Matzke
0b99b3751f [svn-r1256] Snapshot 1999-05-14 04:21:26 -05:00
Patrick Lu
eca82b725b [svn-r1255] changed a typo in the include file here too 1999-05-13 10:42:24 -05:00
Patrick Lu
1de32d9f71 [svn-r1254] changed a type in the include file name 1999-05-13 10:40:25 -05:00
Patrick Lu
8fc87f2267 [svn-r1253] started to bring the tools lib and the dumputil file together. incorportated all
the constants and from dumputil to to the tools lib and merged h5dump_fixtype
together.  I had to add an extra parameter to the function to specify what action
should be taken when it hits H5T_STRING in the case statement.  if the parameter
(strDUAction) is true then it does what it use to do in dumputil but if it is false
then it will do what it originally did in this file.

I also put the h5dump_sprint functions into the same file.  it isn't really merged yet.
i just wanted to get everything into a file and then worry about the merging of this
function.  The toolslib way of h5dump_sprint takes an extra parameter.  If this
parameter is set to NULL then it will do the dumputil's version of this function.
like i said this is just the first step i am taking. it will be merged better later.

the rest of the changes to the other files were related to the above changes.
1999-05-13 10:18:12 -05:00
Robb Matzke
3967b1f5db [svn-r1252] Snapshot 1999-05-07 04:21:03 -05:00
Quincey Koziol
51aa1eb2b5 [svn-r1251] Snapshot 1999-05-06 18:13:20 -05:00
Quincey Koziol
81b282b663 [svn-r1250] Added DatatypesEnum.html and EnumMap.gif 1999-05-06 18:04:52 -05:00
Quincey Koziol
c13ce10093 [svn-r1249] Snapshot 1999-05-06 18:01:08 -05:00
Robb Matzke
ba73d2e4cb [svn-r1248] Snapshot 1999-05-05 04:21:16 -05:00
Robb Matzke
c529ab9cc4 [svn-r1247] Checked in again 1999-05-04 08:12:42 -05:00
Robb Matzke
ca309999ba [svn-r1246] Removed deprecated constants that were already commented out 1999-05-04 08:12:16 -05:00
Robb Matzke
aaeeddb432 [svn-r1245] Snapshot 1999-05-04 04:21:03 -05:00
Frank Baker
a3d84da7df [svn-r1244] Datatypes.html
DatatypesEnum.html
EnumMap.gif
	Added enumeration datatypes -- First pass, only minimal editing.
	Intro paragraph in Datatypes.html; details in DatatypesEnum.html.
	EnumMap.gif is a figure for DatatypesEnum.html.

Tools.html
	Added new h5toh4 supported object and data type.

H5.intro.html
	Corrected transposed "start coordinates" in Example 1.
1999-05-03 16:54:10 -05:00
Robb Matzke
2ea07058c9 [svn-r1243] Snapshot 1999-05-01 04:21:35 -05:00
Albert Cheng
35747cccd7 [svn-r1242] Updated the syntax of the H5Sselect_hyperslab calls.
(This file may have been replaced by multiple files already.)
1999-04-30 15:46:45 -05:00
Patrick Lu
7d0a135c73 [svn-r1241] fixed some errors in my conditional compile statements from yesterday.
changed ifdef WIN32 && _HDF5USEDLL_ to if defined(WIN32) && defined(_HDF5USEDLL_)
and did something similar for the not cases.
1999-04-30 12:31:43 -05:00
Robb Matzke
cc2184b6ef [svn-r1240] Changes since 19990427
----------------------

./tools/h5ls.c
	Added a `--address' (`-a') switch which causes h5ls to display
	file addresses for raw data. For contiguous datasets it's just
	a nice simple number, but for chunked datasets it's a list of
	logical dataset coordinates, file addresses, filter masks, and
	storage sizes.

	Changed `--dump' switch to `--data'.

./src/H5D.c
./src/H5F.c
./src/H5Fprivate.h
	Enhanced the indexed-storage B-tree iterator so it can dump
	raw data addresses (and other info) to the standard error
	stream.

	Added H5Ddebug() so h5ls has a way to dump addresses for
	datasets. I'm not sure what else this API function should do,
	so I think we should discuss it before we document it. So far,
	h5ls is the only thing that uses it, and we can easily change
	that.

./src/H5Tconv.c
./test/dtypes.c
	Finally had a chance to verify Paul's H5T_conv_s_s (general
	string to string conversions) bug fixes and incorporate them
	into H5T_conv_f_f (general floating-point to floating-point
	conversions) and H5T_conv_i_i (general integer to integer
	conversons). Thanks Paul.

./src/H5D.c
./src/H5S.c
./src/H5Sprivate.h
	Added performance timers around data space read and write
	callbacks. They were already there for the gather/scatter
	callbacks.

	The timings for read/write callbacks are displayed along with
	gather/scatter when data space debugging is turned on.

./bin/iostats
	Updated to print totals. Added a `--fast' option that doesn't
	do any output except the totals and is much faster.

./bin/trace
	Changed __unused__ to UNUSED to match source code.

./config/gnu-flags
	Updated error message for pgcc. I've sent bug reports to the
	pgcc people but the new version still has the same bug.

./configure.in
./config/conclude.in
./config/depend.in
	Fixed dependencies for non-GNU makes when run in a directory
	other than the hdf5 source tree.

	Updated GNU `make dep' rules to copy the distributed
	dependencies for non-GNU makes into the source tree when run
	in some other directory.
1999-04-30 10:54:52 -05:00
Robb Matzke
2be6b9f63c [svn-r1239] Snapshot 1999-04-30 04:21:07 -05:00
Dan Wells
2afd49c4c7 [svn-r1238] prototype change in Pablo trace library 1999-04-29 16:15:12 -05:00
Patrick Lu
18d325e35f [svn-r1237] removed the path member in the search struct. replaced it with a fileindex
hi and lo.  this number and the dev id will allow us to determine if the
file is currently open on NT
1999-04-29 12:44:36 -05:00
Patrick Lu
2443c16bf0 [svn-r1236] i had to change some of the h5mm_xfree calls to just hdfree for the dll version
it was causing some crashes otherwise
1999-04-29 12:41:42 -05:00
Robb Matzke
127b3b1b63 [svn-r1235] Snapshot 1999-04-29 04:21:04 -05:00
Quincey Koziol
4ad5b162e4 [svn-r1234] Snapshot 1999-04-28 18:49:01 -05:00
Quincey Koziol
e19b78295b [svn-r1233] Removed some debugging printfs. 1999-04-28 18:34:54 -05:00
Quincey Koziol
5e37f08253 [svn-r1232] Fixed some boundary conditions on hyperslab I/O that the parallel I/O T3E port
exposed.  These are more changes that everyone should pick up.
1999-04-28 18:09:08 -05:00
Robb Matzke
81dc6e53f8 [svn-r1231] Snapshot 1999-04-28 12:26:06 -05:00
Robb Matzke
da9c719938 [svn-r1230] Forgot to add pablo/READ_ME to the MANIFEST file last time 1999-04-28 12:15:26 -05:00
Robb Matzke
72ec46e181 [svn-r1229] Snapshot 1999-04-28 11:02:27 -05:00
Robb Matzke
2f23391566 [svn-r1228] Added missing pablo files to MANIFEST. Snapshots should start working again... 1999-04-28 10:53:42 -05:00
Robb Matzke
343d0ff396 [svn-r1227] Snapshot 1999-04-28 04:20:45 -05:00
Albert Cheng
07ff900c26 [svn-r1226] Purpose:
Bug fix
Description:
    dumper repeated output after the 1st 4 rows.
    The bug was because the dumper was reading just a small slice a time
    from the file dataset but did not adjust the offset in the file-space.
    So, it just kept reading the same first slice.
Solution:
    Stole the offset-adjustion code from the routine that h5ls uses.
Platform Tested:
    O2K.
1999-04-27 19:06:29 -05:00
Dan Wells
97496e9b60 [svn-r1225] File explaining how to build Pablo instrumented library. 1999-04-27 10:00:24 -05:00
Robb Matzke
2dc738a321 [svn-r1224] Changes since 19990426
----------------------

./tools/h5tools.c
./tools/h5tools.h
	Finally fixed a long-standing bug that caused core dumps if
	a compound datum rendered to more than some number of
	characters (we kept bumping up the limit at the risk of
	violating stack size limits on some machines). The fix works
	only on systems that have the vsnprintf() function (otherwise
	a 4kB limit is imposed, which if violated probably dumps
	core). If vsnprintf() is present then the library dynamically
	allocates space for the output string.

	Also made it possible to control how compound data is rendered
	across multiple lines of output by allowing the caller to
	specify where optional line-breaks get inserted. The output
	functions split up the value at one or more optional
	line-breaks to prevent it from wrapping around the screen.

	If a datum doesn't fit on the current line but would fit on
	the next line then it is printed on the next line regardless
	of whether optional line-breaks would have prevent wrapping
	around the screen. This makes it easier to find the beginnings
	of compound data values.  This feature is disabled by default
	but can be enabled by the application.

	If a datum doesn't fit on the current line and the previous
	datum also occupied more than one line then we move to the
	next line before printing. This makes it easier to find the
	beginnings of compound data values but prevents the output
	from looking fragmented if there are only a few long values
	among mostly short values.  This feature is disabled by
	default but can be enabled by the application.

	The application can control the printf() formats used for all
	the native data types. The defaults are what the library used
	to use: %g, %ld, %lu, %d, and %u

./tools/h5ls.c
	Compound datatype values can now be split across multiple
	lines of output instead of just wrapping. Also, when lots of
	compound values are too long they all start at the beginning
	of a line. This only required about 10 lines of changes in the
	setup for tools library calls (I didn't modify the h5dump
	program because it uses its own version of the tools library
	that forked off long ago).

	Added code for Win32 which is unable to cast `unsigned long
	long' to `double'. If the dataset size exceeds (2^63)-1 then
	the percent utilization is not displayed (this is easily
	possible with chunked datasets). This is untested yet.

./configure.in
./src/H5config.h.in
./src/H5.c
./src/H5private.h
	Check for vsnprintf() and provide a simple, stupid definition
	if it isn't available. The stupid definition just calls
	vsprintf() and ignores the second argument. This can result in
	buffer overflows in h5ls and h5dump since vsprintf() is an
	unsafe function (and anyone can create an hdf5 file that runs
	an arbitrary command from h5ls and h5dump in that case)!

./config/conclude.in
	Remove more *.o files for `make clean'

./src/H5A.c
./src/H5D.c
./src/H5F.c
./src/H5I.c
./src/H5Iprivate.h
./src/H5P.c
./src/H5R.c
./src/H5RA.c
./src/H5S.c
./src/H5T.c
./src/H5TB.c
	Cleaned up a memory leak during H5_term_library() by allowing
	H5I_clear_group() to skip items that couldn't be freed. This
	allows the item to remain in the group until we can free it
	later.

./src/H5F.c
	The H5F_close_all() function fails if a file cannot be closed.
1999-04-27 09:47:54 -05:00
Robb Matzke
a66c628b3c [svn-r1223] Snapshot 1999-04-27 04:20:49 -05:00
Albert Cheng
893504e2a8 [svn-r1222] Cleaned up the code in testphdf5.c, mostly in the -f parsing area.
Eliminated most compiler complains.  Changed Tflops to use
the /pfs_grande file systems.  (Old /pfs is retired.)
1999-04-26 23:12:18 -05:00
Frank Baker
62f0caf0a5 [svn-r1221] Fixed Bug #293
RM_H5Front.html
		"H5A Annotation" Interface corrected to "H5A Attribute" interface.
	RM_H5G.html
		H5Glink loc_id description corrected.
1999-04-26 17:16:42 -05:00
Frank Baker
129f93d069 [svn-r1220] Dataspaces.html
Changed "last modified" date.  (Forgot to change it for preceding checkin.)
1999-04-26 16:02:18 -05:00
Frank Baker
f1a01e0f25 [svn-r1219] Dataspaces.html
Fixed Bug #292 -- Errors in array-order transversal (C and Fortran orders
	were reversed) and a minor copy edit.
1999-04-26 16:00:15 -05:00
Albert Cheng
877a437ad6 [svn-r1218] Added string.h since it is needed for those strxxx calls. 1999-04-26 14:53:41 -05:00
Robb Matzke
d6823ceb08 [svn-r1217] Changes since 19990426
----------------------

./config/commence.in
./examples/Makefile.in
./test/Makefile.in
./testpar/Makefile.in
./tools/Makefile.in
	Fixed some dependency problems in Makefiles. If the library
	version is updated then everything gets recompiled.

./src/H5G.c
./src/H5R.c
	Failure return value for object type functions is now
	H5G_UNKNOWN as documented.

./src/H5Shyper.c
./src/H5Spoint.c
	Fixed an unused argument warning.

./tools/h5debug.c
	Fixed a call to H5F_block_read() since the 4th argument is
	different now.

./tools/h5ls.c
	Added a space between the object name and class to make the
	output readable when the object name is longer than 24
	characters.

C
1999-04-26 09:43:53 -05:00
Robb Matzke
e987b73f58 [svn-r1216] Changes since 19990423
----------------------

./src/H5B.c
./src/H5D.c
./src/H5F.c
./src/H5Farray.c
./src/H5Fcore.c
./src/H5Ffamily.c
./src/H5Fistore.c
./src/H5Flow.c
./src/H5Fmpio.c
./src/H5Fprivate.h
./src/H5Fsec2.c
./src/H5Fsplit.c
./src/H5Fstdio.c
./src/H5Gnode.c
./src/H5HG.c
./src/H5HL.c
./src/H5O.c
        Changed H5F_block_read/write() to take a file transfer
        property list instead of just a parallel I/O mode. This will
        allow us to pass additional parameters to the I/O functions
        without having so many arguments to worry about.

        This fixes a bug I introduced last Friday for parallel HDF5

./src/H5B.c
        Fixed decoding of B-tree keys when iterating through the
        leaves of the B-tree. This fixes a bug for applications that are
        adding new entries to groups and also listing the groups.
1999-04-26 08:33:38 -05:00
Robb Matzke
53da2a393f [svn-r1215] Snapshot 1999-04-24 04:20:40 -05:00
Albert Cheng
bf25eab2f2 [svn-r1214] Changed the third parameter of H5F_mpio_write and H5F_mpio_read back
to "H5D_transfer_t xfer_mode".  H5F_mpio_write/read are i/o driver
calls as low as H5F_low_write.  This class of functions are invoked
with the xfer_mode argument.
1999-04-23 23:46:35 -05:00
Quincey Koziol
a648d47c90 [svn-r1213] Added better error message for attemping to close a default property list. 1999-04-23 17:09:25 -05:00
Quincey Koziol
87f0d37a76 [svn-r1212] Added "./" before h5toh4 in script. 1999-04-23 16:57:19 -05:00
Quincey Koziol
d6eb4d281f [svn-r1211] Took out linefeeds from hyperslab.c and changed a datatype in tselect.c to make
it more portable.
1999-04-23 16:12:02 -05:00
Quincey Koziol
acbad9533e [svn-r1210] Changed parameters for function calls which figure out the buffer size for
H5Dread/H5Dwrite to use to allow the I/O calls to break up a user's buffer into
pieces that are at least as large as the sequence of bytes being written in the
fastest changing dimension.

Also fixed a hard-to-find bug in the hyperslab I/O routines which could cause
data to be corrupted when writing out fields to compound datatype data with
background preservation turned on and hyperslabs which were large enough to
require two I/O passes on a hyperslab block.  A pretty obscure situation, but
it would be worthwhile for users to upgrade to this code in order to be certain
that correct data is being written.
1999-04-23 16:11:27 -05:00
Quincey Koziol
daf4ab5586 [svn-r1209] Handled another signal that the Cray T3E was generating on invalid memory
accesses.
1999-04-23 16:07:42 -05:00
Quincey Koziol
3cdcd9dc88 [svn-r1208] Changed the I/O loops for H5Dwrite/H5Dread to break up a user's buffer into
pieces that are at least as long as the smallest sequence to write/read in the
fastest changing dimension.
1999-04-23 16:07:04 -05:00
Quincey Koziol
fbd8281631 [svn-r1207] Updated compile options for the Cray T3E 1999-04-23 16:05:19 -05:00
Frank Baker
a1e8b8b62e [svn-r1206] RM_H5R.html
Corrected parameter and return types in function prototypes
		and parameter descriptions
	Deleted comments regarding unimplemented functionality in R1.0
		which has since been implemented
	Cleaned up formatting of commands TOC at top of page

References.html
	Corrected parameter and return types in function prototypes
		and in example code
	Deleted comments regarding unimplemented functionality in R1.0
		which has since been implemented
1999-04-23 15:43:12 -05:00
Patrick Lu
f03f167b5a [svn-r1205] changed the projects setting for the toolslib release version. 1999-04-23 13:12:15 -05:00
Robb Matzke
d534a4dd0d [svn-r1204] Changes since 19990415
----------------------

./config/depend.in
	Fixed automatic dependencies. We were storing dependencies for
	*.o files instead of *.lo files after shared libraries were
	added.

./config/gnu-flags
./config/linux-gnulibc1
	Moved `-march=pentiumpro -mcpu=pentiumpro -malign-double' from
	the linux file to this file and caused it to depend on the CPU
	name.  This fixes one of Elena's bugs.

./src/H5B.c
./src/H5Bprivate.h
./src/H5D.c
./src/H5Dprivate.h
./src/H5Dpublic.h
./src/H5F.c
./src/H5Farray.c
./src/H5Fistore.c
./src/H5Fmpio.c
./src/H5Fprivate.h
./src/H5Fpublic.h
./src/H5Gnode.c
./src/H5P.c
./src/H5RA.c
./src/H5Sall.c
./src/H5Shyper.c
./src/H5Smpio.c
./src/H5Spoint.c
./src/H5Sprivate.h
./src/H5Tpublic.h
./test/istore.c
	Added an H5Dget_storage_size() function that reports the
	amount of storage allocated for raw data in a dataset.

	Changed H5D_xfer_* to H5F_xfer_* because these properties are
	more general than datasets. This also allows some of the
	lower-level I/O functions to get this information easier.

./src/H5S.c
./src/H5Sall.c
	Added two new functions H5S_all_read() and H5S_all_write()
	which are optimizations that copy data directly between file
	and memory without having to go through the scatter gather
	step.  This knocks quite a bit of time off the I/O and
	reading/writing entire datasets is a fairly common operation.

./tools/h5ls.c
	Reports the logical size of data, the allocated size of data,
	and the percent utilization.

./MANIFEST
	Removed old pablo files, added new files. Snapshots should now
	start to work again.

./src/H5D.c
./src/H5Fmpio.c
	Removed two warnings signed vs. unsigned comparisons and check
	for overflow.
1999-04-23 07:31:21 -05:00
Robb Matzke
94dd2f5b3d [svn-r1203] Snapshot 1999-04-23 04:19:55 -05:00
Robb Matzke
fa6c38d72f [svn-r1202] Snapshot 1999-04-22 04:20:22 -05:00
Patrick Lu
4e904eb4a3 [svn-r1201] created the tools library project for NT and included them into all the
tools projects as dependents.
1999-04-21 12:40:21 -05:00
Robb Matzke
314fe09f32 [svn-r1200] Snapshot 1999-04-21 04:20:05 -05:00
Dan Wells
78aecae8b5 [svn-r1199] Corrected a problem with file mappings. 1999-04-20 11:10:07 -05:00
Robb Matzke
6b3dba1c92 [svn-r1198] Snapshot 1999-04-20 04:20:16 -05:00
Dan Wells
9711f1be9a [svn-r1197] correcting a problem that causes a compile error on SP 1999-04-19 16:31:10 -05:00
Patrick Lu
fd88ed61a8 [svn-r1196] removed some extra files that did not belong in the zip file. 1999-04-19 12:22:11 -05:00
Robb Matzke
760403e137 [svn-r1195] Snapshot 1999-04-19 04:19:57 -05:00
Robb Matzke
ed9118ff7a [svn-r1194] Snapshot 1999-04-18 04:19:55 -05:00
Robb Matzke
f46440f305 [svn-r1193] Snapshot 1999-04-17 04:20:00 -05:00
Frank Baker
1b071c8e4d [svn-r1192] DDL.html
Removing extraneous file; correct file is ddl.html.
1999-04-16 14:48:19 -05:00
Patrick Lu
68985e9d3c [svn-r1191] moved some code around to fix a crash.
code is surounded by #ifdef WIN32
1999-04-16 14:20:28 -05:00
Patrick Lu
924cb75ba8 [svn-r1190] moved some of the code around to fix a crash in the dll version of the test.
All changes were surrounded #ifdef _HDF5USEDLL
1999-04-16 14:18:46 -05:00
Patrick Lu
1991756aec [svn-r1189] updated the H5Tinit.c 1999-04-16 13:42:00 -05:00
Frank Baker
6adb975282 [svn-r1188] Attributes.html
Minor copy edits.
1999-04-16 10:31:54 -05:00
Frank Baker
de64ec3976 [svn-r1187] H5.intro.html
Clarification in discussion of datatypes.
1999-04-16 10:31:09 -05:00
Robb Matzke
e941becbea [svn-r1186] Snapshot 1999-04-16 04:20:21 -05:00
Dan Wells
6e854491cb [svn-r1185] Using same file for HDF 4 and HDF 5. 1999-04-15 16:37:44 -05:00
Robb Matzke
43c356f93d [svn-r1184] Changes since 19990402
----------------------

./config/commence.in
./config/conclude.in
./test/Makefile.in
./tools/Makefile.in
	Fixed so private libraries are not installed publicly.

	The installation directories `bin', `include', and `lib' are
	created mode 755.

./src/H5.c
./src/H5A.c
./src/H5F.c
./src/H5Fcore.c
./src/H5Fistore.c
./src/H5Flow.c
./src/H5Fmpio.c
./src/H5Fsec2.c
./src/H5Fstdio.c
./src/H5G.c
./src/H5Gent.c
./src/H5Gnode.c
./src/H5HG.c
./src/H5HL.c
./src/H5O.c
./src/H5Oattr.c
./src/H5Ocomp.c
./src/H5Ocont.c
./src/H5Odtype.c
./src/H5Oefl.c
./src/H5Ofill.c
./src/H5Olayout.c
./src/H5Omtime.c
./src/H5Oname.c
./src/H5Osdspace.c
./src/H5Oshared.c
./src/H5Ostab.c
./src/H5R.c
./src/H5Sall.c
./src/H5Shyper.c
./src/H5Smpio.c
./src/H5Snone.c
./src/H5Spoint.c
./src/H5T.c
./src/H5Tconv.c
./src/H5Vprivate.h
./src/H5Z.c
./src/H5detect.c
./src/H5private.h
./test/chunk.c
./test/dsets.c
./test/dtypes.c
./test/h5test.c
./test/overhead.c
./test/ragged.c
./test/tattr.c
./tools/h5dump.c
./tools/h5findshd.c
./tools/h5ls.c
	Changed `__unused__' to `UNUSED' to fix a conflict with GNU
	header files.

./src/H5Tpkg.h
./test/h5test.h
	Removed __unused__ from forward function declarations.

./src/H5P.c
	Removed a comment about restrictions for the type conversion
	temporary buffers. Thanks to Quincey, the comment no longer
	applied.

./src/H5T.c
	Relaxed the H5Tpack() a little so it would pack compound data
	structures that had non-transient atomic members.

./tools/h5ls.c
	Added a `-g' (or `--group') flag that causes information to be
	printed about the specified group instead of the group's
	contents. (sort of like Unix's `ls -d'). The `-g' can be used
	in combination with `-r' to print information about the group
	and its contents.
1999-04-15 14:57:50 -05:00
Robb Matzke
77d7a3328b [svn-r1183] Snapshot 1999-04-15 04:20:13 -05:00
Dan Wells
fe83d5e288 [svn-r1182] Changed name of PABLO Mask to simplify automatic definitions. 1999-04-14 16:48:05 -05:00
Dan Wells
9ec8530823 [svn-r1181] Changes to allow automatic building of tables for event IDs and for compatiblity of HDF 4 and HDF 5 trace files. 1999-04-14 16:20:11 -05:00
Dan Wells
92cc3fe39f [svn-r1180] Changes to allow automatic building of tables of event IDs and to make HDF 4 and HDF 5 output compatible. 1999-04-14 16:17:56 -05:00
Dan Wells
31ac744586 [svn-r1179] Changes made to enable automatic building of list of event IDs and to make output of HDF 4 and HDF 5 tracing compatible. 1999-04-14 16:15:23 -05:00
Robb Matzke
9526d48dba [svn-r1178] Snapshot 1999-04-09 04:21:02 -05:00
Albert Cheng
9bbc5746cc [svn-r1177] Changed HDmalloc to malloc to avoid the need of using H5private.h.
Removed the #ifndef MPIOTEST.  MPIO tests should run all the time
now that the test is more efficient.
1999-04-08 13:49:20 -05:00
Albert Cheng
6d36b8d9e2 [svn-r1176] Removed the -L./ and -L../ which are meaningless. 1999-04-08 13:46:13 -05:00
Albert Cheng
84fe71eb14 [svn-r1175] Added the recognition of the tflops (Intel Red) platform. 1999-04-08 13:44:55 -05:00
Albert Cheng
bc351e9510 [svn-r1174] INSTALL_parallel.ascired:
Changed to use the mpio version by Daniel Sands.
    Added --disable-shared to ask for a non-shared version.

configure:
    $AR was not passed to the creation of libtool.
    tflops uses xar instead of the generic ar.
1999-04-08 13:43:46 -05:00
Robb Matzke
6f849488bc [svn-r1173] Snapshot 1999-04-03 04:20:30 -05:00
Paul Harten
e5376cafb4 [svn-r1172] Purpose:
New feature

Problem:
    The h5toh4 converter tester - testh5toh4, is set up to place output
    files in same directory as input files.  A difficulty comes up when
    the input files come off a write-protected media, such-as CDROM.

Solution:
    Rather than using "cd" to change directory and referencing files by
    short filename only, "input directory" and "output directory" are
    defined explicitly, and files are always referenced with pathnames
    included.  For cases when the converter generates the output filename,
    a copy of the input file is first placed in the "output directory".
    The copied input file is used by h5toh4 and then removed.

    On Solaris2.5, the following sequence of commands seemed to work fine:
    $ gunzip < hdf5-1.1.72.tar.gz | tar xf -
    $ chmod -R ugo-w hdf5-1.1.72
    $ mkdir build
    $ cd build
    $ ../hdf5-1.1.72/configure --enable-production --disable-debug \
    $   --with-hdf4=...  --with-zlib=...
    $ make check

    This change should allow the tester to be used when the hdf5 source
    is on a read only media like a CDROM.

Platform tested:
    Solaris2.5
1999-04-02 16:38:30 -05:00
Robb Matzke
5e31902765 [svn-r1171] Changes since 19990330
----------------------

./src/H5A.c
./src/H5D.c
	The `bkg' buffers are zeroed before calling the type
	conversion function. This fixes a problem where reading a file
	compound data structure into memory results in garbage between
	the members.

./src/H5I.c
	Fixed H5I_clear_group() so it removes entries even when a free
	callback is not registered. This fixes fixes an `infinite loop
	closing library' warning message.

./src/H5.c
	Added ellipses to the end of the infinite loop message.
1999-04-02 08:59:10 -05:00
Robb Matzke
ddb367a335 [svn-r1170] Snapshot 1999-03-31 04:20:35 -05:00
Robb Matzke
f003dead4d [svn-r1169] ./configure.in
./configure		[REGENERATED]
./src/H5D.c
./src/H5O.c
	Removed H5AC, H5B, and H5T from the default list of packages
	to debug (because they're pretty expensive debugging), and
	added H5O. Also fixed a bug for undefined variable in H5D when
	H5S debugging is turned on but H5T debugging is turned off.

./config/conclude.in
	Fixed installation of header files for building in a directory
	other than the source directory. This fixes a bug where
	H5config.h wasn't being installed.

./src/H5.c
./src/H5A.c
./src/H5D.c
./src/H5F.c
./src/H5G.c
./src/H5I.c
./src/H5Iprivate.h
./src/H5P.c
./src/H5R.c
./src/H5RA.c
./src/H5S.c
./src/H5T.c
./src/H5TB.c
./src/H5Tprivate.h
./src/H5Z.c
./src/H5detect.c
./src/H5private.h
	Changed the way the library shuts down again. Now it handles
	cycles between packages and isn't so sensitive to dependencies
	between packages. A package might shut down only to be
	restarted to process a request from some other package being
	shut down.  Loops are detected after 100 iteractions and the
	shutdown is aborted with a message on standard error.  This
	also makes it a lot easier to debug.

./src/H5A.c
	Fixed H5A_write() and H5A_read() so they pass a non-null
	background buffer to the conversion functions. This is
	necessary when an attribute has a compound data type.

./src/H5Flow.c
./src/H5Fprivate.h
./src/H5Fsec2.c
	Reindented new Win32 stuff.

./src/H5Odtype.c
	Fixed a bug when enumeration types are used in a compound data
	type. The byte pointer wasn't incremented after the type
	information was written.

./tools/h5ls.c
	Compound data types display their total size because it's not
	always obvious from looking at the members.

	Scalar attributes show their space as `scalar' instead of
	`{}'.

	The index value is not printed for attributes that have only a
	few values. Instead the word `Data:' is printed on the first
	line of attribute data.

	Named types display their data type only if verbose output was
	requested.
1999-03-30 06:38:34 -05:00
Robb Matzke
804fae33ce [svn-r1168] /configure.in
./configure		[REGENERATED]
./src/H5D.c
./src/H5O.c
	Removed H5AC, H5B, and H5T from the default list of packages
	to debug (because they're pretty expensive debugging), and
	added H5O. Also fixed a bug for undefined variable in H5D when
	H5S debugging is turned on but H5T debugging is turned off.

./config/conclude.in
	Fixed installation of header files for building in a directory
	other than the source directory. This fixes a bug where
	H5config.h wasn't being installed.

./src/H5.c
./src/H5A.c
./src/H5D.c
./src/H5F.c
./src/H5G.c
./src/H5I.c
./src/H5Iprivate.h
./src/H5P.c
./src/H5R.c
./src/H5RA.c
./src/H5S.c
./src/H5T.c
./src/H5TB.c
./src/H5Tprivate.h
./src/H5Z.c
./src/H5detect.c
./src/H5private.h
	Changed the way the library shuts down again. Now it handles
	cycles between packages and isn't so sensitive to dependencies
	between packages. A package might shut down only to be
	restarted to process a request from some other package being
	shut down.  Loops are detected after 100 iteractions and the
	shutdown is aborted with a message on standard error.  This
	also makes it a lot easier to debug.

./src/H5A.c
	Fixed H5A_write() and H5A_read() so they pass a non-null
	background buffer to the conversion functions. This is
	necessary when an attribute has a compound data type.

./src/H5Flow.c
./src/H5Fprivate.h
./src/H5Fsec2.c
	Reindented new Win32 stuff.

./src/H5Odtype.c
	Fixed a bug when enumeration types are used in a compound data
	type. The byte pointer wasn't incremented after the type
	information was written.

./tools/h5ls.c
	Compound data types display their total size because it's not
	always obvious from looking at the members.

	Scalar attributes show their space as `scalar' instead of
	`{}'.

	The index value is not printed for attributes that have only a
	few values. Instead the word `Data:' is printed on the first
	line of attribute data.

	Named types display their data type only if verbose output was
	requested.
1999-03-30 06:37:42 -05:00
Robb Matzke
7f5466dc35 [svn-r1167] Snapshot 1999-03-30 04:22:27 -05:00
Quincey Koziol
c278fb73f7 [svn-r1166] Fixed logic bug which was making all attributes read as zeros 1999-03-29 17:09:44 -05:00
Robb Matzke
6c43ecc0bd [svn-r1165] Snapshot 1999-03-25 04:22:12 -05:00
Patrick Lu
ed27d0459b [svn-r1164]
added a #define SIGBUS SIGILL is SIGBUS not defined
1999-03-24 15:01:16 -05:00
Patrick Lu
a74acc88b0 [svn-r1163] fixed a typo in the dll test bat files and added 2 includes for the
signal function in the config.h
1999-03-24 14:59:33 -05:00
Robb Matzke
c5c14c8bdf [svn-r1162] Snapshot 1999-03-24 04:22:13 -05:00
Quincey Koziol
7fac298167 [svn-r1161] Modified H5Aread to fill the user's buffer with zero's (the fill value for
uninitialized attributes) if they read the attribute before any data is
written to it or it's stored on disk.
1999-03-23 16:48:57 -05:00
Robb Matzke
6cfb1f9320 [svn-r1160] Snapshot 1999-03-23 04:23:22 -05:00
Quincey Koziol
aec7b7dc70 [svn-r1159] Changed cast of the reference selection type into a decode, this should fix
the reference test problems on big-endian machines.
1999-03-22 20:50:59 -05:00
Patrick Lu
39880ddfdf [svn-r1158]
put a free in the H5F_close to free up the memory I used for the path
1999-03-22 13:22:03 -05:00
Patrick Lu
8f0f2e4405 [svn-r1157]
in the H5F_low_access() and the H5F_sec2_open() functions I put code in here so
we can figure out the path of the file and store it in the search_t struct
1999-03-22 12:53:24 -05:00
Patrick Lu
035c00dcef [svn-r1156]
made a change to compare files function.
for NT we look at the path names of the 2 objects.
1999-03-22 12:51:16 -05:00
Patrick Lu
019daa1b2e [svn-r1155]
added a new member to the H5F_search_t struct to store the path name
we needed this to be able to tell if a file is already open since NT does not
use the inode.
1999-03-22 12:48:18 -05:00
Robb Matzke
13c9a30beb [svn-r1154] Changes since 19990322
----------------------

./configure.in
./configure		[REGENERATED]
./config/commence.in
	A few tweaks to the makefile rules for rebuilding makefiles.

./src/H5detect.c
	Fixed a really stupid mistake: resetting the signal handler
	after a longjmp(). This should fix Bob's SIGBUS on Solaris.
1999-03-22 11:21:49 -05:00
Robb Matzke
8473025b45 [svn-r1153] Snapshot 1999-03-20 04:23:29 -05:00
Robb Matzke
625542cdc8 [svn-r1152] *** empty log message *** 1999-03-19 15:10:19 -05:00
Robb Matzke
b93c9e2cf9 [svn-r1151] Changes since 19990318
----------------------

./Makefile.in
./configure.in
./configure		[REGENERATED]
./src/H5config.h.in	[REGENERATED]
./config/commence.in
./config/conclude.in
./config/dec-osf4.x
./config/depend.in
./config/freebsd
./config/linux-gnu
./config/linux-gnulibc1
./config/linux-gnulibc2
./config/solaris2.x
./examples/Makefile.in
./src/Makefile.in
./test/Makefile.in
./testpar/Makefile.in
./tools/Makefile.in
./tools/testh5dump.sh
	Changes that allow hdf5 to be configured and compiled in a
	directory other than the source directory. This is especially
	useful if you want to concurrently compile with different
	compilers and/or compile flags, or if the hdf5 source is on
	read-only media like a CDROM.  The changes were surprisingly
	easy ;-) Here's what you can do now...

		  $ mkdir /tmp/build1  # or something
		  $ cd /tmp/build1
		  $ /cdrom/hdf5/configure # where ever the source is
		  $ make

	Paul, you'll have to change the testh5toh4 script similar to
	the way I changed testh5dump.sh.  I started working on it but
	then gave up because of a number of problems: (1) I had to
	comment out all the tests that let h5toh4 choose the output
	file name because it always tried to put the output file in
	the same directory as the input file, (2) if path names are
	used during the h4 dump then they interfere with the
	diff. The test works fine when run in the source directory,
	but try this instead:

	    $ gunzip <hdf5-1.1.67.tar.gz |tar xf -
	    $ chmod -R ugo-w hdf5-1.1.67
	    $ mkdir build
	    $ cd build
	    $ ../hdf5-1.1.67/configure
	    $ make check

	Dan, I didn't modify the pablo/Makefile.in because I have no
	way to test it. I think all you need to do is add a couple
	lines before the @COMMENCE@ line and add a couple search
	directories for header files. Anyway, it seems like almost an
	exact duplicate of the src/Makefile.in, so it shouldn't be a
	problem...

./Makefile.in
	Removes a few more temporary files during make clean and
	distclean.

./configure.in
	I fixed the creation of the time-stamp files so that the
	initial make doesn't have to regenerated all the makefiles
	(only GNU make users will see any change).

./src/H5R.c
	Changed a return type from `intn' to `int' for an API
	function.

./src/H5detect.c
	Added the volatile qualifier to a couple more variables.

./tools/h5tools.c
	Fixed a compiler warning about an unused local.

./tools/h5toh4.c
	Initialized `optind' to 1 because it's zero on my system. It
	should always be one on a unix system.

./tools/testh5toh4
	Redirected "broken pipe" messages to /dev/null so outut is
	formatted correctly.
1999-03-19 15:09:50 -05:00
Robb Matzke
19e5077f7f [svn-r1150] Snapshot 1999-03-19 04:22:12 -05:00
Robb Matzke
826dbc8146 [svn-r1149] ./configure.in
./configure		[REGENERATED]
./src/H5config.h.in	[REGENERATED]
./src/H5private.h
	Temporarily commented out the code that tries to link a simple
	MPI-IO application because I'm not sure how to pass $LDFLAGS
	and $LIBS to the compiler.

	Removed the `--enable-parallel=ibm' switch because the library
	we link with is either -lmpcc or -lmpcc_r but not both. The
	only way to tell is to see what compiler was specified (mpcc
	or mpcc_r) but if that compiler is specified then we don't
	need any libraries (the compiler script supplies them). That
	leaves just two choices: the user must use a compiler script:

	    CC=mpcc ./configure

	or the user must state which library is desired:

	    LDFLAGS='-lmpcc' ./configure --enable-parallel

	Checks for <setjmp.h>, longjmp(), and signal(). We don't check
	for setjmp() because it could be a macro (in fact, Posix
	requires it to be a macro) and if longjmp() is present then
	setjmp() is probably present too ;-)

./src/H5detect.c
	The alignment detection loop uses SIGBUS and setjmp/longjmp
	instead of fork/wait in order to get around bugs with forking
	in conjunction with mpich.  This hasn't been tested on the
	SP-2 yet but it does work on the DEC Alpha.

./test/Makefile.in
./testpar/Makefile.in
./tools/Makefile.in
	Changed the order that libraries are linked so -lhdf5 is
	always before $LDFLAGS.
1999-03-18 08:42:52 -05:00
Robb Matzke
4ec2ca72ba [svn-r1148] Snapshot 1999-03-18 04:22:20 -05:00
Quincey Koziol
5a12356ecd [svn-r1147] Added test for object references to named datatypes. 1999-03-17 20:30:10 -05:00
Quincey Koziol
d8d31596b4 [svn-r1146] Added support for object references to named datatypes. 1999-03-17 20:30:03 -05:00
Quincey Koziol
ff5a1a9e29 [svn-r1145] Added test for object references to groups. 1999-03-17 19:07:55 -05:00
Quincey Koziol
b0138a0cb0 [svn-r1144] Added support for object references to groups. 1999-03-17 19:07:50 -05:00
Robb Matzke
e433e6c4a9 [svn-r1143] Snapshot 1999-03-16 04:22:16 -05:00
Paul Harten
ed46363fd9 [svn-r1142] Purpose:
Bug fix

Solution:
    Fixed a small typo in config/solaris2.x.

Platform tested:
    Solaris2.5
1999-03-15 11:23:25 -05:00
Robb Matzke
68669abdcb [svn-r1141] Snapshot 1999-03-14 04:22:54 -05:00
Quincey Koziol
1cb6b0c27f [svn-r1140] Added tests for H5Rget_object_type 1999-03-12 15:05:49 -05:00
Quincey Koziol
7795177df7 [svn-r1139] Added code for H5Rget_object_type 1999-03-12 15:05:43 -05:00
Robb Matzke
b8ef51ee7a [svn-r1138] Changes since 19990304
----------------------

./config/*-aix4.*	[REMOVED]
./config/*-aix4.x	[NEW]
./config/solaris2.5	[REMOVED]
./config/solaris2.x	[NEW]
./configure.in
./configure		[REGENERATED]
./MANIFEST
	Changed the names of the IBM-SP2 config files by replacing the
	minor version numbers with an `x'.  The solaris config warns
	about old versions of gcc.

	The RUNSERIAL value is set to the empty string by default. The
	config/* file (or user) can override it by setting it to some
	other value.

	The `--enable-parallel' with no flags turns on the
	HAVE_PARALLEL constant in the source code but doesn't add any
	MPI or MPI-IO libraries to the link line.

	If we are compiling for parallel then configure checks that we
	can actually link a very simple program. This has the benefit
	of detecting config errors before we waste time compiling the
	entire library.

	Configure recognizes `mpcc_r' as a parallel compiler.

./src/H5A.c
./src/H5Apublic.c
	Fixed some compiler warnings.  Changed the return type of
	H5Aget_name() from hssize_t to ssize_t because the name can
	never be larger then memory.
1999-03-12 13:35:04 -05:00
Robb Matzke
d6cc19e3f2 [svn-r1137] Snapshot 1999-03-12 04:22:26 -05:00
Quincey Koziol
84b5b71e84 [svn-r1136] Updated test for expanded API. 1999-03-11 16:03:41 -05:00
Quincey Koziol
fbef4e61ed [svn-r1135] Expanded API for reading lists blocks/points to allow for just a portion of
the block/point-list to be read at a time.
1999-03-11 16:03:30 -05:00
Robb Matzke
af50eb6cbd [svn-r1134] Snapshot 1999-03-11 04:22:03 -05:00
Quincey Koziol
36b081b6ea [svn-r1133] Added tests for region references and new dataspace/selection API functions. 1999-03-10 18:50:25 -05:00
Quincey Koziol
ae782bd7ac [svn-r1132] Dataset region references are now finished and working correctly. Also, there
are five new API functions for querying selections:
    H5Sget_select_hyper_nblocks     - retrieves the number of hyperslab blocks
                                        in current hyperslab selection for a
                                        dataspace
    H5Sget_select_elem_npoints      - retrieves the number of element points
                                        in current element selection for a
                                        dataspace
    H5Sget_select_hyper_blocklist   - retrieves a list of the hyperslab blocks
                                        in current hyperslab selection for a
                                        dataspace
    H5Sget_select_elem_pointlist    - retrieves a list of the element points
                                        in current element selection for a
                                        dataspace
    H5Sget_select_bounds            - retrieves a n-dimensional bounding box
                                        containing current selection.
1999-03-10 18:50:03 -05:00
Robb Matzke
354a6dcc01 [svn-r1131] Snapshot 1999-03-10 04:22:27 -05:00
Albert Cheng
3a111372b1 [svn-r1130] Make HDsnprintf to be compiled only if snprintf is not available
in the local system.
Tested in O2K.
1999-03-09 18:15:37 -05:00
Albert Cheng
cee43a0f30 [svn-r1129] Test bugs fixed in T3E port.
external.c:
    Test assumed sizeof(int) is 4.  Changed the hard-coded values
    to values depending on the native sizeof(int).

th5s.c:
    Changed hardcoded old filenames to macro FILE.
1999-03-09 18:13:22 -05:00
Albert Cheng
2c3234ef72 [svn-r1128] Changes for T3E port.
H5Flow.c:
    Document previous changes (same changes committed by Robb first.)

H5Fprivate.h:
    Change DECODE macros to do sign extension.
    (Sign extension can be skipped if machines use the exact sizes.)

H5Sall.c:
    Fixed a typo in return value.

H5private.h:
    Fixed a typo and also changed the strategy of the int16_t and
    uint16_t typedef.  Now will use short as long as it is at least
    2 bytes big.
1999-03-09 18:06:07 -05:00
Albert Cheng
362894fbb1 [svn-r1127] Removed -64 from default setting. Irix workstations running 32 bit
OS cannot handle the 64 bit instruction sets.  Let the local system
default takes care of preferred machine code.

Tested on both IRIX and IRIX64 platforms.
1999-03-09 17:52:57 -05:00
Dan Wells
06ee0d9c4d [svn-r1126] Undoing previous change. src library won't compile. 1999-03-09 16:35:53 -05:00
Dan Wells
a0a9b1bd17 [svn-r1125] The lines
PABLO_SAVE (ID_ ## func_name);                                             \
   H5TRACE_DECL;
had to be switched because the asci red machine wouldn't compile the source
when -DHAVE_PABLO was used.
1999-03-09 16:20:23 -05:00
Dan Wells
112f7b4e86 [svn-r1124] Changed the names of the pablo masks 1999-03-09 16:02:49 -05:00
Dan Wells
cd06c38d65 [svn-r1123] Updates for bug fixes and new entry points in files from src directory. 1999-03-09 16:00:07 -05:00
Albert Cheng
ebb0060a05 [svn-r1122] Fixed a typo. DEBUG_FLAGS should be DEBUG_CFLAGS. 1999-03-09 07:33:06 -05:00
Albert Cheng
6d92cc641e [svn-r1121] Added Cray T3E recognition. OS named as unicosmk. 1999-03-09 07:32:01 -05:00
Robb Matzke
84adb085e3 [svn-r1120] Snapshot 1999-03-09 04:22:59 -05:00
Paul Harten
169754fb4c [svn-r1119] Purpose:
Bug fix

Problem:
    On Solaris2.5, once the library has been compilied with any type of
    optimization, a bus error comes up in the "dtypes" test.

Solution:
    The problem appears to be in the compilers' version of memcpy() that
    is used when optimized.  Instead of substituting HDmemmove(), on
    Solaris, the problem is also taken care of by preparing the second
    argument to HDmemcpy().  The datatype pointer is copied to a separate
    char pointer which is then used as the second argument to HDmemcpy().
    For some reason, it isn't enough to simply cast the datatype pointer.

Platform tested:
    Solaris2.5
1999-03-08 14:02:43 -05:00
Robb Matzke
596c1905e8 [svn-r1118] Snapshot 1999-03-05 04:22:09 -05:00
Robb Matzke
96320e69c0 [svn-r1117] Changes since 19990303
----------------------

./configure.in
./configure		[REGENERATED]
	The path for a command is calculated explicitly the hard way
	because `type -path' isn't portable.

./config/freebsd
./config/linux-gnu
./config/linux-gnulibc2
	Changed the way files reference each other.

./config/gnu-flags	[NEW]
./config/dec-flags	[NEW]
	These files figure out what flags to pass to certain compilers
	so we can reuse code in more than one config/* file.  They
	also have better warning messages when old compilers are used.

./config/linux-gnulibc1
./config/dec-osf4.x
	These files use the new *-flags files.


./src/H5D.c
./src/H5Onull.c
./src/H5Tconv.c
./tools/h5ls.c
	Fixed a compiler warning.

./src/H5detect.c
	Added a better comment to the top of the generated file.
1999-03-04 15:22:42 -05:00
Robb Matzke
25421a64fd [svn-r1116] Snapshot 1999-03-04 04:22:29 -05:00
Robb Matzke
ea3624e133 [svn-r1115] Changes since 19990302
----------------------

./INSTALL
./configure.in
./configure		[REGENERATED]
./src/H5config.h.in	[REGENERATED]
	Improvements for parallel library.  If you have a properly
	working mpicc you should be able to just say:

	    $ CC=mpicc ./configure

	and you will see

	    checking for mpirun... /usr/local/mpi/bin/mpirun
	    checking for parallel support files... skipped
	    checking how to run on one processor...
		     /usr/local/mpi/bin/mpirun -np 1
	    checking how to run in parallel...
		     /usr/local/mpi/bin/mpirun -np $$NPROCS

	To quote from the INSTALL file....

	*** Parallel vs. serial library
	The HDF5 library can be configured to use MPI and MPI-IO for
	parallelizm on a distributed multi-processor system. The easy
	way to do this is to have a properly installed parallel
	compiler (e.g., MPICH's mpicc or IBM's mpcc) and supply that
	executable as the value of the CC environment variable:
	[NOTE: mpcc is not tested yet]

	    $ CC=mpcc ./configure
	    $ CC=/usr/local/mpi/bin/mpicc ./configure

	If no such wrapper script is available then you must specify
	your normal C compiler along with the distribution of
	MPI/MPI-IO which is to be used (values other than `mpich' will
	be added at a later date):

	    $ ./configure --enable-parallel=mpich

	If the MPI/MPI-IO include files and/or libraries cannot be
	found by the compiler then their directories must be given as
	arguments to CPPFLAGS and/or LDFLAGS:

	    $ CPPFLAGS=-I/usr/local/mpi/include \
	      LDFLAGS=-L/usr/local/mpi/lib/LINUX/ch_p4 \
	      ./configure --enable-parallel=mpich

	If a parallel library is being built then configure attempts
	to determine how to run a parallel application on one
	processor and on many processors.  If the compiler is mpicc
	and the user hasn't specified values for RUNSERIAL and
	RUNPARALLEL then configure chooses `mpirun' from the same
	directory as `mpicc':

	    RUNSERIAL:    /usr/local/mpi/bin/mpirun -np 1
	    RUNPARALLEL:  /usr/local/mpi/bin/mpirun -np $${NPROCS:=2}

	The `$${NPROCS:=2}' will be substituted with the value of the
	NPROCS environment variable at the time `make check' is run
	(or the value 2).

./testpar/Makefile.in
	Saying `make check' (or `make test') will run the tests on two
	processors by default.  If you define NPROCS then that many
	processors are used instead:

	    $ NPROCS=4 make check

./configure.in
	Fixed (hopefully) bugs with detecting whether __attribute__
	and __FUNCTION__ are special keywords for the compiler.

./Makefile.in
	Saying `make install' from the top level directory shows
	instructions for using shared libraries.

./config/commence.in
./src/Makefile.in
./test/Makefile.in
./testpar/Makefile.in
./tools/Makefile.in
	Moved the @top_srcdir@ into the makefiles because it was
	expanded too early and had the wrong value.

./INSTALL
	Added a warning that if the wrong version of hdf4 tools are
	installed then `make check' will fail in the tools directory.
1999-03-03 18:17:48 -05:00
Paul Harten
2925631a49 [svn-r1114] Purpose:
Bug fix

Problem:
    On Solaris2.5, once the library has been compilied with any type of
    optimization, a bus error comes up in the "dtypes" test.

Solution:
    The problem appears to be in the compilers' version of memcpy() that
    is used when optimized.  Apparently, the same optimization problem
    is not associated with the similar function memmove().  So, as a
    solution to this problem, memmove() is substituted in for memcpy().

Platform tested:
    Solaris2.5
1999-03-03 18:00:22 -05:00
Robb Matzke
9280cf8e04 [svn-r1113] Snapshot 1999-03-02 12:26:40 -05:00
Robb Matzke
116491f0d6 [svn-r1112] Changes since 19990301
----------------------

./INSTALL
	Reorganized and added some additional examples.

./MANIFEST
./aclocal.m4			[NEW]
./configure.in
./configure			[REGENERATED]
./src/H5config.h.in		[REGENERATED]
./bin/ltconfig			[NEW]
./bin/ltmain.sh			[NEW]
	Added tests to determine how to compile shared libraries and
	how to link programs with them before the libraries are
	installed.  Also how to install and uninstall shared
	libraries. The configure step also prints the names of the
	config files it's trying to load for easier debugging.

./bin/config.guess
./bin/config.sub
	Replaced with a newer version from GNU.  The changes we made
	to that file to report `irix6.x' and `FreeBSD' without version
	numbers have been incorporated into configure.in instead.  In
	the future, do not change these two files (see the top of
	configure.in instead). By the way, this update was required to
	get shared libraries working.

./config/linux			[REMOVED]
./config/linux-gnulibc1		[NEW]
./config/linux-gnu		[NEW]
./config/alpha-dec		[REMOVED]
./config/alpha-dec-osf4.0	[REMOVED]
./config/dec-osf4.x		[NEW]
./config/irix5.3		[REMOVED]
./config/irix5.x		[NEW]
./config/irix64			[REMOVED]
./config/freebsd
	Moved config files around to agree with output from the new
	config.guess.  The linux file was split into gnu (RedHat),
	gnulibc1, and gnulibc2 versions. The alpha-dec file was
	removed (I think it was unused) and the alpha-dec-osf4.0 was
	changed to dec-osf4.x. The irix5.3 file renamed to irix5.x and
	the irix64 file was renamed to irix6.x. The freebsd file was
	changed to point to linux-gnulibc1. These changes were tested
	on:

		Linux 2.0
		Linux 2.1
		FreeBSD 3.2
		Irix 5.3
		Irix64 6.2
		Irix64 6.4
		HP/UX 10.20
		OSF1 4.0

./config/alphaev56-dec-osf4.x
./config/irix64
	Added warnings similar to linux/freebsd about using compilers
	with known bugs.

./config/commence.in
./config/conclude.in
./src/Makefile.in
./test/Makefile.in
./testpar/Makefile.in
./tools/Makefile.in
	Added definitions for shared libraries. This has been tested
	on the following systems:

		Linux 2.0
		Linux 2.1
		FreeBSD 3.2
		Irix 5.3
		Irix64 6.2
		Irix64 6.4
		HP/UX 10.20		static only
		OSF1 4.0

	If you want to disable use of shared libraries (you probably
	do for development purposes since it takes a lot longer to
	compile and because you have to run dynamically linked
	programs in a special way if the library hasn't been
	installed) then add `--disable-shared' to the configure
	command line.  This is all documented in the INSTALL file.

./bin/release
	Temprarily commented out the MANIFEST checking when running
	under svf since svf is about to be replaced by a newer
	version.  This change only affects error checking during the
	release process.

./Makefile.dist
./Makefile.in
	Added `make check' which does the same thing as `make _test'
	since the former is endorsed by the GNU coding style and
	people are used to it.  The old `make _test' still works too
	(and so does `make test' if you use GNU make).
1999-03-02 12:15:35 -05:00
Robb Matzke
1f1bfc91bc [svn-r1111] Snapshot 1999-03-02 04:20:34 -05:00
Robb Matzke
b3ddd2cc54 [svn-r1110] Changes since 19990226
----------------------

./INSTALL
	Added instructions for using other compilers on Irix platforms.

./configure.in
./configure		[REGENERATED]
./src/H5config.h.in	[REGENERATED]
./src/H5private.h
	The presence of <sys/sysinfo.h> and <sys/proc.h> is only
	checked on DEC/Alpha because there are too many problems
	including these headers on other systems.

./config/irix6.x
./config/irix64
	Removed `-ansi' and added a comment. Converting an ASCII UTC date
	and time to a time_t value is not defined by ANSI or Posix but
	is available if we don't use `-ansi'.  This allows the dataset
	modification time messages to be read properly by
	H5Gget_objinfo().

./src/H5Tconv.c
	Fixed a compiler warning.

./test/dtypes.c
./test/hyperslab.c
./test/istore.c
	Fixed compiler warnings in printf() statements.
1999-03-01 14:44:32 -05:00
Robb Matzke
90d07791d3 [svn-r1109] Snapshot 1999-02-26 15:08:08 -05:00
Robb Matzke
912c5a0874 [svn-r1108] Changes since 19990225
----------------------

./INSTALL
	Added warnings and a disclaimer about GNU, DEC, Irix64, and NT
	compilers that generate incorrect machine code.

./configure.in
./src/H5private.h
	Detects and includes <sys/param.h> which is needed on FreeBSD
	before <sys/proc.h> even though we only really using anything
	from <sys/proc.h> on the DEC Alpha.

./config/irix64
	Turned off warnings for duplicate definitions from the linker
	because -lnsl on irix has the same stuff in it as -lc.

./config/irix6.x
	Split up the CC and CFLAGS settings like with irix64 so that
	compilers besides `-n32' can be used.

./bin/snapshot
	The snapshots are tagged with names like hdf5-1_1_52 which is
	similar to the way the releases are tagged (cvs doesn't allow
	dots in tags).

./test/dtypes.c
./src/H5private.h
./src/H5Tconv.c
	Fixed some alignment violations on the DEC when using high
	optimization levels. The DEC incorrectly optimizes certain
	memcpy() and memmove() calls when the source argument is not
	word aligned if the call looks like it's copying an atomic
	data type.

./test/hyperslab
	Worked around code generation bugs in the Irix64 Mongoose 7.00
	compiler by casting some `unsigned long' values to `unsigned'
	in an expression.

./src/H5Ocomp.c
	Fixed a place where %d was used to print a size_t.
1999-02-26 14:58:14 -05:00
Robb Matzke
efb18f8785 [svn-r1107] Snapshot 1999-02-26 04:18:56 -05:00
Quincey Koziol
f7bbda2afb [svn-r1106] Cleaned up a few compiler warnings, etc. 1999-02-25 18:36:15 -05:00
Quincey Koziol
252e4dfc5f [svn-r1105] Removed flag which was stopping the HDF4 library from being tested, now that
I've rolled back the installed library on hawkwind to HDF4.1r2.
1999-02-25 16:52:30 -05:00
Albert Cheng
3eecc727e0 [svn-r1104] Corrected a typo in the "ld warning suppress" which has a peculiar
syntax.
1999-02-25 14:00:21 -05:00
Paul Harten
aea248e1de [svn-r1103] Purpose:
Bug fix

Problem:
    This bug is coming up as a bus error on some machines
    (fuga, spank) in the "fillval" test.  At higher levels of
    optimizations, H5detect gets rid of a statement which is to
    be used in alignment tests.  Because of this, SIGBUS is never
    delivered, and the alignment constraints of the machine are
    not recorded correctly by H5detect in H5Tinit.c.

Solution:
    By preventing the optimizer from getting rid of the statement
    to be used in the alignment tests, SIGBUS is delivered as
    expected, and the alignment constraints of the machine are
    recorded correctly.

Platform tested:
    Irix6.5(fuga), HPUX10.20(spank), Solaris2.5(Kryten)
1999-02-25 13:55:37 -05:00
Robb Matzke
56c7fb0df1 [svn-r1102] Snapshot 1999-02-25 10:46:53 -05:00
Robb Matzke
17535fbc17 [svn-r1101] Changes since 19990219
----------------------

./config/irix64
	The old (-32) compiler is now supported by setting envrionment
	CC='cc -32'. The -64 compiler is the default or you can set
	CC='cc -64'.

./src/H5A.c
./src/H5D.c
./src/H5F.c
./src/H5Fistore.c
./src/H5Flow.c
./src/H5G.c
./src/H5I.c
./src/H5Ocomp.c
./src/H5P.c
./src/H5R.c
./src/H5RA.c
./src/H5T.c
./src/H5Tbit.c
./src/H5Tconv.c
./src/H5Z.c
./src/H5detect.c
./test/big.c
./test/cmpd_dset.c
./test/dsets.c
./test/dtypes.c
./test/enum.c
./test/mtime.c
./test/ohdr.c
./tools/h5ls.c
	Fixed lots of warnings on Irix64. Mailed a few remaining
	warnings in H5S to Quincey and a few in the dumper to
	Ruey-Hsia.
1999-02-25 10:40:27 -05:00
Robb Matzke
d8b07ce1d0 [svn-r1100] Snapshot 1999-02-25 04:19:18 -05:00
Patrick Lu
6a1ee17dc0 [svn-r1099]
added the alpha settings to the enum and enumdll projs
1999-02-24 13:04:12 -05:00
Robb Matzke
6dc577e163 [svn-r1098] Snapshot 1999-02-23 10:48:29 -05:00
Robb Matzke
7962652c94 [svn-r1097] Added ./config/unicosmk 1999-02-23 10:42:30 -05:00
Robb Matzke
b0b1bbd847 [svn-r1096] Snapshot 1999-02-23 10:38:01 -05:00
Robb Matzke
af107b5e17 [svn-r1095] Snapshot 1999-02-23 04:19:03 -05:00
Patrick Lu
f3a1b93ee4 [svn-r1094]
added the h5toh4 project into the zip
1999-02-22 15:00:41 -05:00
Patrick Lu
466fbe12bf [svn-r1093]
removed a file from the zip
1999-02-22 14:56:31 -05:00
Patrick Lu
6b1a9660ed [svn-r1092]
added some test batch files, updated the config file and updated the project file
1999-02-22 14:55:06 -05:00
Robb Matzke
67c0cdea0a [svn-r1091] Snapshot 1999-02-22 04:18:35 -05:00
Patrick Lu
7009195686 [svn-r1090]
fixed the H5Tinit.c so it had the correct endians.  I must have been using
the wrong H5Tinit.c file for the past few weeks.  Also added a few comments
to the h5config.h
1999-02-21 15:01:27 -05:00
Patrick Lu
ac8c4177aa [svn-r1089] changed the call to open to HDopen since NT needs that 0_BINARY flag
in it to open binary files.
1999-02-21 14:55:24 -05:00
Robb Matzke
2052d2edae [svn-r1088] Snapshot 1999-02-21 04:18:36 -05:00
Robb Matzke
e2e5476fa5 [svn-r1087] Changes since 19990218
----------------------

./src/H5F.c
./src/H5private.h
./src/H5Ipublic.h
./src/H5O.c
	Fixed a rather nasty bug with file closing that caused the
	file boot block to be updated incorrectly, effectively
	truncating the file.  The bug I fixed was triggered by:

	    1. Create a file, F
	    2. Open an object, X
	    3. Close file F
	    4. Reopen file F for read/write.
	    5. Create and close some objects
	    6. Close file F
	    7. Close library (exit).

	Step 3 pended the close because object X is still open, but
	the file ID was removed from the H5I_FILE ID group. Step 4
	created a new file because it didn't see any matching file on
	the H5I_FILE ID group.  Step 5 extends the file. Step 6 writes
	the new file boot block to disk. Step 7 closes object X and
	completes the close from step 3, writing the old boot block
	information to disk.

	The new behavior is that step 3 moves the file from the
	H5I_FILE group to the H5I_FILE_CLOSING group. Step 4 searches
	both groups and finds the file. Step 5 extends the file using
	the same H5F_file_t struct as step 3. Step 6 closes the H5F_t
	struct opened in step 3 but not the H5F_file_t struct shared
	by steps 1 and 3. Step 7 closes object X which closes the
	H5F_file_t from step 1, flushing the boot block which was
	shared by all steps.

./src/H5F.c
	Added some bulletproofing to file reference counting and
	removed comments which no longer apply.  Added H5F_flush_all()
	and H5F_close_all() which apply to all files.

./src/H5A.c
./src/H5D.c
./src/H5F.c
./src/H5G.c
./src/H5I.c
./src/H5Iprivate.h
./src/H5R.c
./src/H5RA.c
./src/H5S.c
./src/H5T.c
	Added the new H5I_free_t data type to describe the function
	type to be passed as the `free_func' argument to
	H5I_init_group().

./src/H5I.c
	Bulletproofed the object removal functions. Removed comments
	which no longer apply. Changed global variable names so they
	don't violate the naming scheme. Added H5I_debug() that prints
	the contents of an ID group.  Removed H5I_inc_ref() because it
	isn't used. Reindented a couple of functions.

./src/H5.c
./src/H5G.c
./src/H5Ipublic.h
	Changed H5I_MAXID to H5I_NGROUPS to better relect the fact
	that it's the total number of valid ID groups.

./src/H5Shyper.c
	Changed hyperslab offset arrays to signed quantities to get
	rid of warnings on DEC cluster.

./src/H5Flow.c
./src/H5Fprivate.h
	Changed the objno argument of H5F_addr_pack() to be unsigned
	to get rid of warnings on DEC cluster.
1999-02-20 11:18:51 -05:00
Robb Matzke
35a62b068b [svn-r1086] Snapshot 1999-02-20 04:18:37 -05:00
Albert Cheng
b16c146160 [svn-r1085] Added platform T3E. 1999-02-19 17:41:40 -05:00
Albert Cheng
1585545c5a [svn-r1084] Added configuration for platform T3E whose OS is called unicosmk. 1999-02-19 17:41:15 -05:00
Paul Harten
9da0d56695 [svn-r1083] Purpose:
Bug fix

Problem:
    Currently, when --enable_preduction --disable-debug modes are
    selected during configure, the optimization level scheduled is
    -O (-O2).  Unfortunately, this level of optimization relaxes
    too much the alignments necesary for the building, and testing
    of the hdf5 library.

Solution:
    Lower the level of optimiztion to -O1.  This still maintains
    required alignments.

Platform tested:
    Irix6.5(fuga)
1999-02-19 13:03:05 -05:00
Robb Matzke
619998a82b [svn-r1082] Snapshot 1999-02-19 04:18:55 -05:00
Robb Matzke
aedc78af6b [svn-r1081] Changes since 19990218
----------------------

./src/H5Shyper.c
	Changed hyperslab offset arrays to signed quantities to get
	rid of warnings on DEC cluster.

./src/H5Flow.c
./src/H5Fprivate.h
	Changed the objno argument of H5F_addr_pack() to be unsigned
	to get rid of warnings on DEC cluster.
1999-02-18 14:38:45 -05:00
Robb Matzke
ef9c22ab61 [svn-r1080] Disabled detection of hdf4 during the configuration because hawkwind
has old enough hdf4 libraries that the h5toh4 test always fails.
1999-02-18 11:55:00 -05:00
Robb Matzke
996bf8061a [svn-r1079] Snapshot 1999-02-18 11:53:20 -05:00
Robb Matzke
37cfaf1665 [svn-r1078] Changes since 19990215
----------------------

./src/H5.c
	Fixed more dependency problems in H5_term_library(). There was
	a bug in the previous version that could cause the wrong EOF
	marker to be written to the boot block under certain
	circumstances. Hopefully this fixes it although I don't ready
	access to a test case (Mark Miller will test it).

./src/H5F.c
./src/H5Fprivate.h
	Added an H5F_close_all() that is similar to
	H5F_term_interface() but which doesn't close the
	interface. Files that don't have open object headers are
	closed, others are delayed until all object headers close. All
	files are flushed.

./src/H5ACprivate.h
./src/H5Bprivate.h
./src/H5Dprivate.h
./src/H5Eprivate.h
./src/H5Fprivate.h
./src/H5Gpkg.h
./src/H5Gprivate.h
./src/H5Gpublic.h
./src/H5HGprivate.h
./src/H5HLprivate.h
./src/H5Iprivate.h
./src/H5MFprivate.h
./src/H5MMprivate.h
./src/H5Oprivate.h
./src/H5Pprivate.h
./src/H5Ppublic.h
./src/H5RAprivate.h
./src/H5Sprivate.h
./src/H5Spublic.h
./src/H5Tpkg.h
./src/H5Tprivate.h
./src/H5Tpublic.h
./src/H5Vprivate.h
./src/H5Zprivate.h
./src/H5private.h
./src/H5public.h
	Reindented after __DLL__ was added.
1999-02-18 11:21:34 -05:00
Robb Matzke
901051cecb [svn-r1077] Removed -*- makefile -*- 1999-02-18 11:21:01 -05:00
Robb Matzke
639bbed7d0 [svn-r1076] Snapshot 1999-02-18 04:18:57 -05:00
Albert Cheng
9db8b51bda [svn-r1075] Fixed a typo of a missing ; 1999-02-17 13:55:15 -05:00
Paul Harten
04fd81482d [svn-r1074] Purpose:
Bug Fixes

Problem:
    Warnings given during compilation on some machines.

Solution:
    Take care of various Compiler Warnings such as:
        1) uninitialized variables;
        2) unreachable statements.

Platforms tested:
    Solaris2.5, Linux, Irix6.5
1999-02-17 13:43:20 -05:00
Albert Cheng
6301b4c4ed [svn-r1073] Updated with recent changes. 1999-02-17 09:11:52 -05:00
Robb Matzke
bc8752755c [svn-r1072] Snapshot 1999-02-17 04:18:59 -05:00
Albert Cheng
a3a9df3657 [svn-r1071] Moved the MPI test to a file of its own (t_mpi.c) for future addition
of other MPI tests.
Changed return code tests from comparing with FAIL to with 0.
Updated MANIFEST for the addition of a new file.
Tested in O2k.
1999-02-16 23:39:22 -05:00
Albert Cheng
8ed6e88543 [svn-r1070] Updated to do auto-configuration for parallel tests (testpar)
too.  Also used mpi function calls to test mpi libraries.
Tested on O2K platform.
1999-02-16 18:07:36 -05:00
Robb Matzke
bbc5307819 [svn-r1069] Snapshot 1999-02-16 04:19:00 -05:00
Albert Cheng
16c346bad4 [svn-r1068] Completed the previous to do auto-configure for parallel tests too.
Also removed the pre-defined "USE_PAUSE" since it should be invoked
only in individual cases, rather than as defaults.
Tested in O2K.
1999-02-15 16:15:33 -05:00
Patrick Lu
b35ddccf5d [svn-r1067] fixed a problem with the enumdll proj(release) 1999-02-15 13:24:12 -05:00
Patrick Lu
2a64e998b8 [svn-r1066] added 3 new projects into the file. enum, enumdll and h5toh4.
currently the h5toh4 is not included in the all project since it has
some compilation problems.
1999-02-15 13:03:52 -05:00
Robb Matzke
c22bac0d20 [svn-r1065] Changes since 19990121
----------------------

./configure.in
./acconfig.h
./configure		[REGENERATED]
./src/H5config.h.in	[REGENERATED]
./src/H5public.h
./src/H5Omtime.c
	Check for <stddef.h>

	Checks for `__tm_gmtoff' in `struct tm' because old versions
	of GNU libc are different than recent versions. This fixes the
	failing mtime test.

./bin/config.guess
./config/freebsd2.2.7	[REMOVED]
./config/freebsd	[ADDED]
	Changed the name so it works with all versions of FreeBSD.

./src/H5.c
	Moved H5F after H5T and H5G in H5_term_library() to satisfy
	dependencies.

./src/H5G.c
	Fixed a bug that caused H5Gcreate() to fail if the group name
	had trailing slashes.

./src/H5Gpublic.h
	Changed `group_name' to `name' in a prototype.

./src/Makefile.in
	Dynamic library on Linux, but needs for work to be generally
	useful.

./src/H5HG.c
./src/H5HGprivate.h
	Fixed alignment problems when using old GCC compilers (like
	the one shipped with RedHad Linux).

./tools/h5ls.c
	Fixed a bug where the contents of the root group could be
	listed twice if there was a link back to the root
	group. Similarly for groups that are mentioned on the command
	line.

	Fixed a bug where unknown types were printed with a random
	type class number.

./src/H5T.c
./src/H5Tconv.c
./src/H5Tprivate.h
	Fixed O(log N) conversion bugs.
1999-02-15 12:38:04 -05:00
Albert Cheng
f6272d4292 [svn-r1063] Added a feature to dump all the shell variables initial values
to the config.log file for debugging.  Made change in configure.in
and created configure via autoconf.  Tested okay in an O2K.
1999-02-11 10:56:15 -05:00
Albert Cheng
442bc46ff7 [svn-r1062] Adjusted for v1.1 new configuration. 1999-02-09 22:37:12 -05:00
Albert Cheng
a98ac46b86 [svn-r1061] Adjusted for v1.1 new configuration.
Hard coded against intN_t types.  They are not supported
by Intel Red but configure thinks they are by default for
cross-compiler.  (Need a better solution for this.)
1999-02-09 22:20:45 -05:00
Ruey-Hsia Li
12d679104c [svn-r1060] Updated the example in ddl.html and supported features in Tools.html. 1999-02-09 13:07:59 -05:00
Paul Harten
a2f63c9424 [svn-r1059] Purpose:
Bug fix

Problem:
    Did a H5get_type() on a dataset of committed type without doing
    the associated H5Tclose().  This caused an abort to occur during the
    atexit() phase of the h5toh4 converter.

Solution:
    Execute the associated H5Tclose().

Platform tested:
    Solaris2.5
1999-02-05 10:49:44 -05:00
Albert Cheng
180fa10d64 [svn-r1058] Added a section of SUPPORTED PLATFORMS. Edited in a few platforms
that I know for sure.
1999-02-04 19:39:05 -05:00
Quincey Koziol
b62a541591 [svn-r1057] Updated gcc flags for 2.7.x compilers 1999-02-03 18:26:56 -05:00
Robb Matzke
f9e03f4714 [svn-r1056] Removed carriage returns inserted by a "broken" operating system. 1999-02-03 12:07:13 -05:00
Paul Harten
f7ffb9e511 [svn-r1055] Purpose:
Bug fix

Problem:
    The hdp dumper output files used in the h5toh4 converter test
    program have the result of the latest changes to the HDF4 library,
    but the converter was to maintain compatability with HDF4.1r2.

Solution:
    Regenerate the HDF4.1r2 version of the hdp dumper ouput files to
    be used for the h5toh4 converter test program.

Platform tested:
    Solaris2.5
1999-02-02 16:09:35 -05:00
Robb Matzke
2c61f6df37 [svn-r1054] Added H5api_adpt.h tstr*.dmp and tstr2.h5 1999-02-02 14:37:20 -05:00
Patrick Lu
eb63ce9a72 [svn-r1053] changed the macro for using the dll.
HDF5Global and HDF5DLL --> __DLLVAR__ and __DLL__
also added HDF5USEDLL into the projects that use the dll.
1999-02-02 11:24:52 -05:00
Patrick Lu
3234df6fb1 [svn-r1052] changed the HDF5GLOBAL and HDF5DLL to __DLLVAR and __DLL__
also exported all the non static functions and globals variables to the dll
1999-02-02 10:55:10 -05:00
Patrick Lu
3d6d039b86 [svn-r1051] changed the HDF5DLL and HDF5GLOBAL to __DLL__ and __DLLVAR__
also exported all globals and non static functions to the dll
1999-02-02 10:52:59 -05:00
Patrick Lu
3a0d851b1c [svn-r1050] made all non static functions and globals accessible to the dll.
changed the HDF5DLL and HDF5GLOBAL to __DLL__ and __DLLVAR__
1999-02-02 10:47:34 -05:00
Albert Cheng
d6668e2a28 [svn-r1049] Corrected a typo in the definition of $AR. 1999-02-01 22:56:02 -05:00
Albert Cheng
c2957e0922 [svn-r1047] Entered the bug fix for IRIX 6.x configure in the CHANGES log. 1999-02-01 18:14:56 -05:00
Paul Harten
ff7883566f [svn-r1046] Purpose:
New feature

Solution:
    Modified h5dumptst.c to generate more single dimension
    datasets of H5T_STRING type held in file tstr2.h5.

Platform tested:
    Solaris2.5
1999-02-01 18:14:38 -05:00
Paul Harten
224b6224fb [svn-r1045] Purpose:
New feature

Solution:
    Add string conversion testers

Platform tested:
    Solaris2.5
1999-02-01 18:09:01 -05:00
Paul Harten
8606182f1e [svn-r1044] Purpose:
New feature

Solution:
    Changes to support conversion of 1-dimensional HDF5 datasets of
    H5T_STRING type into HDF4 Vdatas.  Also, support conversion of
    HDF5 attribute of string type into HDF4 attribute of INT8 type.
    Dimensional information is lost.

Platform tested:
    Solaris2.5
1999-02-01 18:02:23 -05:00
Paul Harten
4fc2c5fb59 [svn-r1043] Purpose:
Bug fix

Problem:
    Depending on how the string size changes, different buffers are used
    when copying from one array of strings to another array of strings.
    An ASSERTION() is set up to check the validity of the buffer being
    used for each element of the string array being copied.  This
    ASSERTION() fails for a 10 element string array of string length 42
    being copied to a 10 element string array of string length 50.

Solution:
    The overlap variable (olap) is calculated slightly differently.
    Also, since olap and nelmts are unsigned types, the conditional
    assignment:

             d = elmtno >= nelmts-olap ? dbuf : dp

    should be rewitten as:

             d = elmtno+olap >= nelmts ? dbuf : dp

    This same problem/solution may exist in H5T_conv_i_i(), and
    H5T_conv_f_f().

Platform tested:
    Solaris2.5
1999-02-01 17:56:27 -05:00
Ruey-Hsia Li
3dae05f72d [svn-r1042] added ./tools/testfiles/tstr-1.ddl and ./tools/testfiles/tstr.h5. 1999-02-01 03:59:55 -05:00
Ruey-Hsia Li
f8d25b3fcb [svn-r1041] Added the string test file. 1999-02-01 03:56:57 -05:00
Ruey-Hsia Li
0e204c7c06 [svn-r1040] Added the expected output for string test. 1999-02-01 03:54:21 -05:00
Ruey-Hsia Li
9bb068f3f3 [svn-r1039] Added string tests and temporarily disabled test_compound_dt2() test.
Reflected the format changes to the expected output.
1999-02-01 03:53:27 -05:00
Ruey-Hsia Li
aa267768c1 [svn-r1038] Did some work on the output format for compound data and string.
Also added test script for string.
1999-02-01 03:46:29 -05:00
Albert Cheng
ee2b36ad7b [svn-r1037] All IRIX (old 32bit OS) version 6.x can use the same configuration.
Replaced irix6.2 by irix6.x.
1999-01-28 19:16:36 -05:00
Quincey Koziol
c00d3bcc92 [svn-r1036] Updated compiler flags 1999-01-28 17:00:01 -05:00
Albert Cheng
a1f46c91fd [svn-r1035] t_file.c:
Added a new test to verify the MPIO can support independent
    overlapping writes.
testphdf5.c:
    Bracketed the MPIO write test with a #ifdef so that it is
    tested only when the explicitely turned on.

Platform tested:
    O2K.
1999-01-26 23:12:04 -05:00
Albert Cheng
2df1f8344e [svn-r1034] Changed spelling of extendable to extendible just for consistency sake. 1999-01-26 23:08:32 -05:00
Patrick Lu
f7cd022ac4 [svn-r1033] added some calls to get the time elapsed on WIN NT 1999-01-25 12:40:54 -05:00
Robb Matzke
a2b8da49db [svn-r1032] Changes since 19990118
----------------------

./tools/h5tools.c
	Strings are not converted to null-padding before being
	printed; they are printed with whatever byte values appear in
	the file.

./tools/h5ls.c
	Now able to display attribute data type and data.

	Added a `-f' or `--full' switch which causes the full name of
	each object to be displayed instead of just the base name.

	Added a `-r' or `--recursive' switch that recursively prints
	the contents of groups, avoiding cycles.

	More bulletproofing for non-printable characters in things
	like object names, attribute names, and comment strings. We
	don't want listing a file to send termal escape sequences
	because it's sometimes possible to execute commands that way.

	Since h5ls doesn't usually use quotes around object names we
	must sometimes escape space characters.

	External files are listed in a table to make the output less
	confusing.

./tools/h5tools.c
./tools/h5tools.h
	Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also
	make h5dump_fixtype() public.

./test/dtypes.c
	Wrote some data to an attribute to test h5ls attribute
	printing.

./src/H5ACprivate.h
./src/H5Apublic.h
./src/H5Dprivate.h
./src/H5Dpublic.h
./src/H5Epublic.h
./src/H5Fprivate.h
./src/H5Fpublic.h
./src/H5Gprivate.h
./src/H5HLprivate.h
./src/H5Oprivate.h
./src/H5Ppublic.h
./src/H5RApublic.h
./src/H5Rpublic.h
./src/H5Spublic.h
./src/H5Tpkg.h
./src/H5Tpublic.h
./src/H5Vprivate.h
./src/H5Zpublic.h
./src/H5private.h
./src/H5public.h
	Reindented function prototypes after `HDF5API' was added. Also
	rewrapped long lines.

./src/H5Flow.c
	Added an `#ifdef WIN32' around an unused variable.

./src/H5api_adpt.h
	Removed extra carriage returns inserted by "broken" operating
	system.

./src/H5Dprivate.h
./src/H5Oprivate.h
./src/H5Vprivate.h
./src/H5private.h
	Removed extraneous inclusion of H5api_adpt.h since it's
	included in H5public.h which is included by everything.

./src/Makefile.in
	Added H5api_adpt.h to the list of public header files to fix
	broken `make install'.
1999-01-21 13:33:39 -05:00
Patrick Lu
bb776bacbf [svn-r1031] added necessary info to export info to the dll 1999-01-21 11:49:37 -05:00
Patrick Lu
67657f93ff [svn-r1030] added necessary info to export functions to dll 1999-01-21 11:18:23 -05:00
Patrick Lu
747bb3f9fd [svn-r1029] added the necessary information to make a dll 1999-01-21 11:15:32 -05:00
Patrick Lu
6778cd8ce5 [svn-r1028] new include file that is needed on NT to export functions and gloabls in a dll 1999-01-21 11:11:12 -05:00
Quincey Koziol
ba57f7a460 [svn-r1027] Added CVS Revision and ID tags so we can track the snapshots more effectively. 1999-01-20 13:04:56 -05:00
Robb Matzke
ff79c02fc4 [svn-r1026] Changes since 19990118
----------------------

./tools/h5tools.c
	Strings are not converted to null-padding before being
	printed; they are printed with whatever byte values appear in
	the file.
1999-01-20 09:58:12 -05:00
Patrick Lu
e807698e9f [svn-r1025] added new project files for the alpha versions and the dll version 1999-01-19 12:31:34 -05:00
Paul Harten
7b9ce8a96c [svn-r1024] Purpose:
Bug fix

Problem:
    When -with-hdf4 option is selected during configure,
    no machine type found for HDF4 header file hdfi.h.

Solution:
    Modify hdf5/config/linux file:
    -D__i386 to be added to CPPFLAGS.

Platform tested:
    linux(penfold)
1999-01-19 10:00:30 -05:00
Robb Matzke
a2db22ab74 [svn-r1023] Changes since 19990105
----------------------

./INSTALL
./doc/html/Compression.html
./doc/html/Filters.html
	Disassociated GNU from zlib.  Did not change the introduction
	which incorrectly states that compression in hdf5 is available
	only if GNU gzip is available (should read zlib).

	Changed a typo in INSTALL to match what is documented in
	various other places: that zlib 1.1.2 (not 1.0.2) or better is
	required for compression.

	Added a reference to the main zlib web page in various places.

./src/H5Fistore.c
	Fixed a typo in a comment.

./src/H5Flow.c
	Removed carriage returns from the end of lines.

./test/dsets.c
	The deflate compression tests are still run but `-SKIP-' is
	printed instead of `PASSED' if the zlib library was not
	detected at configuration time. The tests check that the
	compression layer (H5Z) is correctly bypassed.
1999-01-18 12:54:16 -05:00
Patrick Lu
d10cb54a94 [svn-r1022] changed the macro for FILE to be FILENAME since it conflicted with a macro
in a windows header.
1999-01-12 15:55:21 -05:00
Paul Harten
2362b4e0f0 [svn-r1021] Purpose:
Bug fix

Problem:
    Segmentation fault when attempting to free NULL or uninitialized pointers.
    Problem noticed on Linux and HPUX10.20 platforms.

Solution:
    Initialialize the pointer to NULL.  Execute the "free" statement
    upon the condition that the pointer is not equal to NULL (i.e. after the
    allocation has taken place.)

Platform tested:
    Linux, HPUX10.20, Solaris2.5
1999-01-12 10:48:18 -05:00
Patrick Lu
6c30f0ae16 [svn-r1020] I messed the last one up again. sorry this should be the last time. 1999-01-11 15:58:36 -05:00
Patrick Lu
846de763b3 [svn-r1019] the last version I checked in was not ocmpletely correct. 1999-01-11 14:46:38 -05:00
Patrick Lu
58295f0c15 [svn-r1018] need to put a fix for a bug in the Microsoft compiler. 1999-01-11 14:09:17 -05:00
Patrick Lu
adc514bf96 [svn-r1017] added new projects into the all project for a few new test programs.
also updated the config file in there
1999-01-11 12:28:54 -05:00
Robb Matzke
ed9abc7612 [svn-r1016] *** empty log message *** 1999-01-07 12:14:55 -05:00
Albert Cheng
47f3d57c00 [svn-r1015] Got rid of some warning messages.
Tested in O2K.
1999-01-07 11:39:27 -05:00
Albert Cheng
54604e8fc5 [svn-r1014] Switched the order of the assert and HRETURN_ERROR statements
in the FUNC_ENTER_INIT to eliminate the unreachable statement
compiler warning.  Tested in O2K.
1999-01-07 09:44:41 -05:00
Robb Matzke
4a6110d41b [svn-r1013] *** empty log message *** 1999-01-07 06:45:55 -05:00
Robb Matzke
db48cdc44e [svn-r1012] Changes since 19981217
----------------------

./tools/h5ls.c
        Displays enumeration type information.

./tools/h5tools.c
        Displays enumerated data using symbol names.
1999-01-07 06:42:27 -05:00
Robb Matzke
4f7e218959 [svn-r1011] Changes since 19981217
----------------------
./test/dtypes.c
./test/enum.c           [NEW]
        Added support for enumeration data types.

./test/fillval.c
./test/istore.c
        Fixed memory leaks during error handling.
1999-01-07 06:42:04 -05:00
Robb Matzke
504aa95bd9 [svn-r1010] Changes since 19981217
----------------------

./src/H5.c
./src/H5private.h
        Renamed `library_initialize_g' to `H5_libinit_g' to make it
        conform to our naming scheme.

./src/H5I.c
        Fixed a bug in H5I_dec_ref() that caused the return value to
        always be zero instead of the new reference count.

./src/H5.c
./src/H5Odtype.c
./src/H5T.c
./src/H5Tconv.c
./src/H5Tpkg.h
./src/H5Tprivate.h
./src/H5Tpublic.h
        Added support for enumeration data types.

./src/H5RA.c
        Renamed H5T_insert() to H5T_struct_insert() and added
        H5T_enum_insert().

./src/H5RA.c
./src/H5Shyper.c
        Added casts to size_t for the third argument of memcpy() to
        shut up a warning message from insure++.

./src/H5T.c
        Changed "can't" to "unable to" in some error messages to be
        more consistent.

./src/H5detect.c
        If fork() or waitpid() are unavailable then we assume no
        alignment constraints. Hopefully this is the case only on NT
        and Intel CPU's don't have alignment constraints.

./src/H5public.h
        Include <limits.h> because the H5T_NATIVE_CHAR macro needs the
        definition for CHAR_MIN.
1999-01-07 06:41:25 -05:00
Robb Matzke
04bec43fa2 [svn-r1009] *** empty log message *** 1999-01-07 06:37:42 -05:00
Robb Matzke
2578cee601 [svn-r1008] Changes since 19981217
----------------------

./MANIFEST
        Removed some ddl files from tools/testfiles that are no longer
        part of CVS.  Added new enum.c test.

./configure             [REGENERATED]
./configure.in
        Changed printf long long format detection to favor `L' over
        `ll'.
1999-01-07 06:37:16 -05:00
Quincey Koziol
0825a0bcd5 [svn-r1007] Updated with missing files. 1999-01-06 16:58:34 -05:00
Quincey Koziol
847043cf52 [svn-r1006] Updated output against the current version of the HDF4 dumper in CVS. 1999-01-06 16:27:48 -05:00
Ruey-Hsia Li
f4ebcffc65 [svn-r1005] Reflected the changes in ddl to the example. 1999-01-06 15:57:54 -05:00
Paul Harten
2aefbf7603 [svn-r1004] Purpose:
Conform closer to other test print-out.

Solution:
    Added "All h5dump tests passed." statement to output
    of testh5dump.sh when appropriate.  Similarly, added
    "All h5toh4 tests passed." statement to output of
    testh5toh4 when appropriate.

    Also, added the testing of converting H5 files with
    loop pathways into H4 files with recursive references.

Platforms tested:
    Solaris2.5, Digital Unix 4.0
1999-01-05 14:40:32 -05:00
Quincey Koziol
b381963715 [svn-r1003] Fixed a couple of typos 1999-01-04 19:09:05 -05:00
Paul Harten
01eb265261 [svn-r1000] Purpose:
Conform closer to other test print-out.

Problem:
    Multiple "PASSED" statements for single test results when test involves
    conversion of multiple files.  Should be single "PASSED" statement for
    test results.

Solution:
    "*FAILED*" statement given if conversion fails for any file.  Differences
    given between expected results and actual results for each file that fails.
    "PASSED" statement given when conversion is successful for all files.

Platform tested:
    Solaris2.5
1998-12-30 16:15:03 -05:00
Frank Baker
ac66b7eae0 [svn-r994] Added h5toh4. 1998-12-28 10:15:16 -05:00
Paul Harten
4eab315de2 [svn-r989] Purpose:
Bug fix

Solution:
    Have warning messages go to stderr instead of stdout.

Platform tested:
    Solaris2.5
1998-12-22 13:37:47 -05:00
Paul Harten
a88aa59718 [svn-r988] Purpose:
New feature, Documentation

Solution:
    Changed h5toh4 testing output to more closely resemble other HDF5
    testing output.
    Also added documentation to describe the puposes of the
    conversion test files.

Platform tested:
    Solaris2.5
1998-12-22 13:36:19 -05:00
Ruey-Hsia Li
be41a8feed [svn-r986] Defined <data> and <string> in ddl.html.
Updated the current status of dumper.
1998-12-21 17:54:16 -05:00
Frank Baker
82fb21b613 [svn-r985] Checking in changes from "HDF5 Release 1.0" CVS branch that have not yet
been checked into "HDF5 Development" branch.

General
=======
	Various "copy edit" types of repairs.
	Revisions to document cross-linking.
	Added structural links tying all docs together (banners
	   at top and bottom of documents, similar to Reference Manual
	   banners of the Beta release).
	Set background color to white in all documents.

NCSAfooterlogo.gif
hdf2.jpg
	New image files to make the documents more self-contained
	(i.e., to prevent loading images from NCSA and HDF home servers).

index.html
	Redesigned to isolate links external to the installation
	in a single location.


Intro to HDF5
=============
H5.intro.html
	Fixed banner linking Intro to other docs.
	Set all URLs to be relative within the distribution; nothing
	   points back to the HDF server.
	Updates to "Limits of the Current Release" and "Changes in
	   the Current Release."


HDF5 User's Guide
=================
	Changed several User Guide section titles such that all
	   sections that are primarily about a particular interface
	   are now titled in the format "The xxxxx Interface (H5x)".

H5.user.html
	Commented out links to developer docs since they are marked
	   in MANIFEST as not being for distribution in the release.
	Removed 2nd and 3rd indices from page.
	Changed "freeform" lists of sections (TOCs) to aligned tables.

Datatypes.html
	Removed the sentence "I'm deferring definition until later
	   since they're probably not as important as the other data
	   types." from Section 3.3, "Properties of Date and Time
	   Atomic Types."
	Added info regarding 'char' versus 'string' datatypes.  Added
	   as Section 3.7, "Character and String Datatype Issues."

References.html
	Commented out substantial material (at end of document) from
	   References planning document that is not appropriate for
 	   the User Guide but that is worth keeping around.

Groups.html
	Final edits from elimination of "current working group."


HDF5 Reference Manual
=====================
	Removed "Draft" from the <title>__</title> lines.

RM_H5Front.html
	Removed 2nd and 3rd indices from page.
	Changed "freeform" lists of sections (TOCs) to aligned tables.

RM_H5F.html
RM_H5P.html
	Add file mounting information.
1998-12-21 17:52:56 -05:00
Ruey-Hsia Li
4952ed4a36 [svn-r984] Added ./tools/testfiles/tloop-1.ddl.
Removed ./tools/testfiles/tattr-4.ddl
        ./tools/testfiles/tcomp-4.ddl
        ./tools/testfiles/tdset-3.ddl
        ./tools/testfiles/tdset-4.ddl
        ./tools/testfiles/tgroup-3.ddl.
1998-12-21 17:49:13 -05:00
Ruey-Hsia Li
ee9cac2af9 [svn-r983] Added tests in testh5dump.sh.
Features of this version of dumper

  *  loop detection

  *  data type
     **  atomic type
         -> H5T_INTEGER (H5T_STD_XXXXX)
         -> H5T_FLOAT (H5T_IEEE_XXXXX)
         -> H5T_STRING (H5T_C_S1, H5T_FORTRAN_S1)
     **  committed/transient/unamed compound type

  *  data space
     **  scalar space
     **  simple space

  *  dataset
     dumper can display dataset's
     **  attribute
     **  type
     **  space
     **  data

  *  group
     dumper can display group attributes and group members which include
     **  named/unamed data type
     **  group
     **  dataset
     **  softlink

  *  attribute
     dumper can display attribute's
     **  type
     **  space
     **  data

  *  hard link

  *  soft link

  *  format of data
     ** fit on 80 columns
     ** end of line after each row
        (more work will be done on data.)
1998-12-21 17:45:01 -05:00
Ruey-Hsia Li
38309fb3f6 [svn-r982] Added test for loop detection.
Updated expected output for dumper automatic tests.
Removed redundant tests.
1998-12-21 17:34:42 -05:00
Robb Matzke
1d8e6cf581 [svn-r979] Snapshot 1998-12-21 05:10:36 -05:00
Paul Harten
caeb6c614f [svn-r978] Purpose: Bug fixes
Problems:
    There were three separate bugs in the h5toh4 converter worked on.
    They were:

    1) When a loop was detected, the H4 file was missing references
    to paths which were available in the H5 file.

    2) When an H4 SDS or Vdata was created from a H5 dataset, the H4
    object was referenced in the root group, instead of the correct
    Vgroup.

    3) The FIRST path taken to an object for the h5toh4 conversion
    could not involve a SOFTLINK.

Solutions:
    The bug fixes were:

    1) All of the associated references to available paths which
    occur in the H5 file, now appear in the H4 file.

    2) After an H4 SDS or Vdata is created from a H5 dataset, the H4
    object is tag/ref'ed in the appropriate Vgroup.

    3) The FIRST path taken to an H5 object for the H5toh4 conversion
    may involve a HARDLINK, a SOFTLINK, or neither.  The same is
    true of any additional paths to the same object.

Platform tested:
    Solaris2.5
1998-12-20 23:05:28 -05:00
Paul Harten
7d9d6add9d [svn-r977] Purpose:
New feature

Solution:
    Added some new new tests to show that paths involving HARDLINKS
    and paths involving SOFTLINKS convert existing objects from H5 to
    H4 the same way that paths involving no links does.

Platform tested:
    Solaris2.5
1998-12-20 22:50:15 -05:00
Robb Matzke
03532b98d4 [svn-r976] Snapshot 1998-12-19 04:38:16 -05:00
Ruey-Hsia Li
bf0208d474 [svn-r975] Put back Paul's updates. 1998-12-18 10:02:13 -05:00
Robb Matzke
4797dc9771 [svn-r974] Snapshot 1998-12-18 04:27:28 -05:00
Ruey-Hsia Li
c91120b4b8 [svn-r973] Added tests for scalar data space, string data type, loop detection and
compound data type.
1998-12-17 16:53:07 -05:00
Robb Matzke
09aaf83332 [svn-r971] Changes since 19981214
----------------------

./INSTALL
	Added warning that enabling debugging code can adversely
	affect performance even when the debugging isn't turned on at
	run-time. Performance testing shows that under certain
	circumstances (like data type conversions of compound types)
	the H5_timer functions, although only a few lines each,
	contribute a fairly large percent to the execution time.

./src/H5T.c
./src/H5Tpkg.h
./src/H5Tpublic.h
	Improved the H5Tunregister() function to make unregistering
	more flexible.  It takes the same arguments as H5Tregister()
	but also accepts wild cards.  All conversion functions that
	match the H5Tunregister() search criteria are removed from the
	global type conversion table.

	The H5Tregister_hard() and H5Tregister_soft() were combined
	into a single function called H5Tregister() which is the
	counterpart to H5Tunregister(). A new `persistence' argument
	was added to differentiate between the two types of conversion
	functions.

	The application is allowed to register a hard conversion
	function for the no-op conversion path although the library
	isn't obligated to call it (it usually does). This is mostly
	for completeness, but the application might use it to help
	determine if the raw data pipeline was able to use the
	optimized path for the case when no type conversion is
	necessary. The library doesn't allow this path to be
	unregistered although the application can redefine it as often
	as it likes.

	Fixed the type conversion tables in preparation for MT-safety
	and to fix previosly-known design bugs wrt. unregistering
	conversion functions or changing the C function associated
	with a conversion path. The MT-safety stuff is documented in a
	separate white paper.

	Increased the conversion function debugging name from 9
	characters to 31 characters so the output can be more
	descriptive.

	Moved conversion path statistics from the H5T_cdata_t member
	into the conversion path itself.  This makes H5T_cdata_t
	contain only application-visible data structures.

./src/H5A.c
./src/H5D.c
./src/H5Ofill.c
./src/H5P.c
./src/H5T.c
	Improved the way type conversion functions are called so the
	caller doesn't have to check for data type debugging and
	increment type conversion timers and statistics.

	Changed check for no-op conversion since it is now
	application-definable and there may even be more than one
	definition at a time in a multi-threaded application (one
	thread might be using the no-op conversion path when some
	other thread changes its definition -- the first thread still
	sees the original defintion until it's done with the
	operation).

./doc/html/Datatypes.html
	Updated the user guide to reflect the changes to data type
	conversion registration functions.

./bin/trace
./src/H5.c
	Added tracing support for the new H5T_pers_t data type.

./test/dtypes.c
	Added printf to display alignment value if non-aligned data
	types are being tested.

./test/h5test.c
	Modified the H5Tunregister() calls to use the new
	arguments. All 94 of those calls can be replaced by a single
	call to the new H5Tunregister() function.

./src/H5.c
	Added HAVE_GETTIMEOFDAY around an auto variable and
	initialized the elapsed time to zero when gettimeofday() is
	not available.

./src/H5F.c
./src/H5Fprivate.h
./src/H5P.c
	Added an H5*_init() functions which do the same thing as
	H5*_init_interface() but can be called from other packages and
	don't do anything if the interface is already initialized.
	This fixes a couple memory leaks in applications that
	repeatedly close and open the library with H5close().

./src/H5Tconv.c
	Optimized some data alignment code in the hardware conversion
	functions.

	Hardware conversions accumulate statistics about source and
	destination data alignment and print that information when the
	conversion function is unregistered (usually when the
	application exits) if data type debugging is compiled into the
	library and enabled at run-time.

	The conversion caching was cleaned up for the compound data
	type conversion function. It now caches conversion paths in a
	manner that will be MT-safe and is much simpler than the old
	method. Also cleaned up some array index maps.

./src/H5detect.c
	Fixd mispelling of alingemnt.

./src/H5private.h
	Changed `TRUE' to `1' in assignment to interface_initialize_g
	in FUNC_ENTER macro definition.

./tools/testh5dump.sh
	Completely rewritten to make it shorter, better documented,
	and conforming to most of the other test outputs.

	The comparison of the actual output with the expected output
	is insensitive to differences in white space.  The test now
	passes for the first time on Linux where the output width
	wasn't as expected but the output was otherwise correct.

./tools/testfiles/tall-1.ddl
./tools/testfiles/tall-2.ddl
./tools/testfiles/tall-3.ddl
./tools/testfiles/tattr-1.ddl
./tools/testfiles/tattr-2.ddl
./tools/testfiles/tattr-3.ddl
./tools/testfiles/tattr-4.ddl
./tools/testfiles/tcomp-1.ddl
./tools/testfiles/tcomp-2.ddl
./tools/testfiles/tcomp-3.ddl
./tools/testfiles/tcomp-4.ddl
./tools/testfiles/tdset-1.ddl
./tools/testfiles/tdset-2.ddl
./tools/testfiles/tdset-3.ddl
./tools/testfiles/tdset-4.ddl
./tools/testfiles/tgroup-1.ddl
./tools/testfiles/tgroup-2.ddl
./tools/testfiles/tgroup-3.ddl
./tools/testfiles/tlink-1.ddl
./tools/testfiles/tlink-2.ddl
./tools/testfiles/tlink-3.ddl
./tools/testfiles/tlink-4.ddl
./tools/testfiles/tlink-5.ddl
./tools/testfiles/tslink-1.ddl
./tools/testfiles/tslink-2.ddl
	Changed `../h5dump' to just `h5dump'.

./config/alpha-dec-osf4.0
	Added more warning and optimization switches to the native
	compiler.
1998-12-17 14:35:20 -05:00
Robb Matzke
c26c6a4b25 [svn-r969] Snapshot 1998-12-15 04:30:20 -05:00
Robb Matzke
28e684b0af [svn-r968] Changes since 19981207
----------------------

./MANIFEST
	Added tcompound2.{dmp,h5} and tdset2.{dmp,h5} used by the
	h5toh4 testing.

./configure.in
./configure		[REGENERATED]
./src/H5config.h.in	[REGENERATED]
	Added check for <sys/timeb.h> for Win32.

	Determines sizeof(char) just so we have a complete list of
	type sizes defined as preprocessor symbols.

./src/H5detect.c
./src/H5T.c
./src/H5Tpkg.h
	Detects alignment constraints. In order for this to work the
	operating system must not correct unaligned data (for
	instance, on the DEC Alpha one might need to say `uac p
	sigbus' before running H5detect).

./src/H5private.h
	Includes <signal.h> because it's needed by H5detect.c to
	detect alignment constraints.

./src/H5Tconv.c
	Added extra checks to all hardware conversion functions so
	they align data when necessary before the conversion.  This
	slows down the conversions somewhat but they're still much
	faster than the software conversions.

./test/dtypes.c
	By setting a constant at the top of the source you can test
	conversions where the data is aligned on various byte
	boundaries.

	By setting a constant at the top of the source you can
	simulate architectures that have alignment constraints on
	architectures that don't.

	Changed typo SIZEOF_LDOUBLE to SIZEOF_LONG_DOUBLE in a few
	places.
1998-12-14 11:19:21 -05:00
Robb Matzke
16b789409d [svn-r963] Snapshot 1998-12-08 04:23:07 -05:00
Robert Kim Yates
d0b9e6dd0a [svn-r962] Added #ifdef HAVE_PARALLEL to interprocess coordination in H5F_istore_allocate. 1998-12-07 18:36:04 -05:00
Robert Kim Yates
5ba9869b49 [svn-r961] Added barrier after MPI_File_set_size to prevent race condition:
subsequent writes were being truncated, causing holes in file.
1998-12-07 18:21:41 -05:00
Robert Kim Yates
bf250c6bb2 [svn-r960] Added interprocess coordination in H5F_istore_allocate around calls to
H5F_istore_lock and H5F_istore_inlock to prevent race between reading and
 writing data chunks that caused "holes" (i.e., sequences of 0s)
in chunked datasets.
1998-12-07 18:13:05 -05:00
Robb Matzke
b58e9a6253 [svn-r959] Changes since 19981125
----------------------

./src/H5HG.c
	Fixed a bug in the alignment calculation for the heap free
	space. The reference test passes now.
1998-12-07 13:40:54 -05:00
Paul Harten
bdc304d612 [svn-r958] Purpose:
New feature

Solution:
    Testing of Extendable Dataset support in h5toh4 converter when
    extendable dimension is first dimension.

Platform tested:
    Solaris2.5
1998-12-01 16:56:14 -05:00
Quincey Koziol
5bbc648241 [svn-r957] Updated test for dataset region code, currently generating an assertion failure
in the H5HG code for Robb to look at.
1998-11-30 14:44:30 -05:00
Quincey Koziol
6d19719526 [svn-r956] Fixes for dataset region code. 1998-11-30 14:43:54 -05:00
Robert Kim Yates
a1a8feae07 [svn-r955] Made debug print statements portable. 1998-11-30 13:42:49 -05:00
Robb Matzke
6900f5f958 [svn-r954] Snapshot 1998-11-26 04:23:22 -05:00
Paul Harten
7738afbd8a [svn-r953] Purpose:
Getting rid of Warning messages.

Problem:
    When compiling with DEBUG_H5TOH4 turned off,
    macro expansion of DEBUG_PRINT gives many warning
    messages.

Solution:
    Set macro expansion of DEBUG_PRINT to:

    #ifdef DEBUG_H5TOH4
    #define DEBUG_PRINT(s1,s2,s3,n1) ( fprintf(stderr,s1,s2,s3,n1) )
    #else
    #define DEBUG_PRINT(s1,s2,s3,n1) ( fprintf(stderr," ") )
    #endif

Platform tested:
    Solaris2.5
1998-11-25 12:39:53 -05:00
Robb Matzke
ffcbc32d66 [svn-r952] Changes since 19981125
----------------------

./doc/html/Datatypes.html
./src/H5.c
./src/H5T.c
./src/H5Tconv.c
./src/H5Tpkg.h
./src/H5Tpublic.h
./src/H5detect.c
./test/chunk.c
./test/dtypes.c
./test/h5test.c
./test/mtime.c
./test/tattr.c
./test/th5s.c
./tools/h5dump.c
./tools/h5dumputil.c
./tools/h5import.c
./tools/h5ls.c
./tools/h5toh4.c
./tools/h5tools.c
	Renamed the old H5T_NATIVE_CHAR type to H5T_NATIVE_SCHAR to
	denote that it is always signed.

	Added a new H5T_NATIVE_CHAR type which has the same range,
	representation, and behavior as either H5T_NATIVE_SCHAR or
	H5T_NATIVE_UCHAR depending on the compiler and its
	command-line switches for the application source file which
	references H5T_NATIVE_CHAR. If source files are compiled with
	different switches then each source file will resolve
	H5T_NATIVE_CHAR appropriately so it matches the C type `char'
	in that source file.

	NOTE: THERE ARE OTHER DOCUMENTATION FILES THAT I DIDN'T CHANGE
	BECAUSE I CAN'T MODIFY THE SOURCE.

./test/extend.c
	Swapped two lines to prevent diagnostic messages from messing
	up the formatted output.
1998-11-25 12:21:21 -05:00
Robb Matzke
37ce8f33ca [svn-r951] Removed warning about unused static function. 1998-11-25 10:54:29 -05:00
Robb Matzke
1b31b150a3 [svn-r950] Changed the name of tohdr.c to ohdr.c 1998-11-25 10:54:11 -05:00
Robb Matzke
4354606d1e [svn-r949] Changes since 19981124
----------------------

./src/H5T.c
	Fixed a typo in the registration of the `unsigned char' to
	`unsigned long long' type conversion that caused it to not be
	registered, falling back to software whenever that conversion
	path was taken.

./MANIFEST
./test/Makefile.in
./test/testhdf5.c
./test/testhdf5.h
./test/theap.c		[REMOVED]
./test/lheap.c		[NEW]
./test/tohdr.c		[REMOVED]
./test/ohdr.c		[NEW]
./test/tstab.c		[REMOVED]
./test/stab.c		[NEW]
	Removed the `t' from the front of these names and made each
	test a stand-alone program following the format of most of the
	other tests.

./test/big.c
	Uses libh5test.a but always sets the low-level driver to 1GB
	file family.

	The `#if' near the top to set the data space to 8GB has been
	simplified now that `long_long' is always defined and the
	error message is improved when `long_long' isn't wide enough.

	Cleanup code was added to the error handling.

./test/gheap.c
./test/istore.c
	Uses libh5test.a.  Added error cleanup code.

./test/dtypes.c
./test/h5test.c
	Added 68 new tests that check hardware and software
	conversions between `long long' and `unsigned long long' and
	the other integer types.  The tests only run on machines where
	sizeof(long_long)!=sizeof(long).  We test a total of 180
	different integer conversions, half in hardware and half in
	software.

	Cut down the number of times each test is run from 5 to 1 so
	it doesn't take so long.  If you want to run more times
	there's a constant that can be changed at the top of the file.

./test/extend.c
	Removed unused variable.

./test/h5test.c
./test/h5test.h
./test/external.c
./test/fillval.c
	The h5_cleanup() returns true/false so it can be used in an `if'
	statement to clean up additional files.

./doc/html/Environment.html
	Indented.  Added HDF5_PREFIX and HDF5_DRIVER descriptions.

./src/H5P.c
	Changed the trace type for the second argument from `Iu' to
	`x' since it's an output parameter.

./INSTALL
	Added a warning that the GNU zlib that comes with the latest
	version of HDF4 is too old to use with HDF5 and must be
	renamed so configure doesn't see it when `--enable-hdf4' is
	used.
1998-11-25 09:58:22 -05:00
Robb Matzke
49ca76e303 [svn-r948] Snapshot 1998-11-25 04:27:34 -05:00
Quincey Koziol
5d0938aba6 [svn-r947] Lots of patches to enable dataset region references. The testing for these
need to be finished and checked in still.
1998-11-24 19:29:09 -05:00
Robb Matzke
0dfd13d13b [svn-r946] Changes since 19981121
----------------------

./src/H5Tconv.c
	With my poor eyesight I missed the definitions of SCHAR_MIN
	and SCHAR_MAX in <limits.h> and used CHAR_MIN and CHAR_MAX
	incorrectly. I changed all occurrences of the latter to the
	former and the new hardware integer type conversions now work
	on Irix.

./configure.in
./configure		[REGENERATED]
./src/H5config.h.in	[REGENERATED]
./src/H5private.h
./src/H5.c
./test/h5test.c
	Added a wrapper for HDsnprintf() that just calls sprintf() if
	snprintf() isn't available.

./MANIFEST
	Added Paul's new h5toh4 files.
1998-11-24 10:53:55 -05:00
Robb Matzke
9db8ce23f6 [svn-r945] Snapshot 1998-11-24 04:26:48 -05:00
Robb Matzke
dedc8c37b4 [svn-r944] Changes since 19981120
----------------------

./MANIFEST
./test/Makefile.in
./test/shtype.c		[REMOVED]
	Removed shtype.c because it was all commented out.  Besides,
	these tests are done in dtypes.c now anyway.

./test/external.c
./test/fillval.c
./test/flush1.c
./test/flush2.c
./test/links.c
./test/mount.c
./test/mtime.c
./test/unlink.c
	The tests that check the HDF5 API use the h5test support
	functions. For one thing, that means that you can specify the
	file driver that thay use by the HDF5_DRIVER environment
	variable. Possible values are:

	    HDF5_DRIVER='sec2'		Use read() and write()
	    HDF5_DRIVER='stdio'		Use fread() and fwrite()
	    HDF5_DRIVER='core'		Use malloc() and free()
	    HDF5_DRIVER='split'		Split meta and raw data
	    HDF5_DRIVER='family N'	Use file families with each
					member being N megabytes (N
					can be fractional, defaults to
					one).

	Some tests might fail for certain drivers: for instance, the
	mount and link tests fail for the `core' driver because
	they must be able to close and then reopen a file.
1998-11-23 15:40:35 -05:00
Robb Matzke
ae8f25bd43 [svn-r943] Snapshot 1998-11-22 04:26:30 -05:00
Paul Harten
c43b9183cc [svn-r942] PURPOSE:
New Feature

SOLUTION:

     h5toh4 is an H5 utility which converts HDF5 files into
     HDF4 files.  It converts only those H5 objects which have
     have mappings into H4 objects.

     Some H5 objects that may be converted into H4 objects are:

     1) H5 group objects may be converted into H4 Vgroup objects.

     2) H5 dataset objects of integer or floating point datatype
        may be converted into H4 SDS objects.

     3) H5 dataset objects of compound datatype and  rank 1  may
        be converted into H4 Vdata objects.  Field members of the
        compound datatype are constrained to be single dimensional.


Platforms tested:
    Solaris2.5, HP10.20
1998-11-21 15:14:09 -05:00
Paul Harten
8ef8c8b290 [svn-r941] Purpose:
New feature

Solution:
    This file contains routines to find all shared objects and
    committed types and store them in tables.  These routines
    are made available in the library hdf5/tools/libh5tools.a


Platform tested:
    Solaris2.5, HP10.20
1998-11-21 15:07:24 -05:00
Paul Harten
4445745e51 [svn-r940] Purpose:
New Feature

Solution:
    These files are the expected results of the HDF4 hdp dumper,
    which has been executed in the following order:

    hdp dumpvg file.hdf > file.dmp
    hdp dumpvd file.hdf >> file.dmp
    hdp dumpsds file.hdf >> file.dmp

Platform tested:
    Solaris2.5, HP10.20
1998-11-21 15:04:53 -05:00
Paul Harten
6987a7dee5 [svn-r939] Purpose:
New Feature

Solution:
    This is a tester for the h5toh4 converter.  It is implemented
    on different HDF5 files to produce HDF4 files.  After each HDF4
    file is produced,  the file is run through the HDF4 dumper hdp.
    The dumper results are compared with expected results and any
    differences are noted.

    Note: The "/hdf4/bin" directory needs to be part of the tester's
    $PATH.

Platform tested:
    Solaris2.5, HP10.20
1998-11-21 15:00:58 -05:00
Paul Harten
b13a36efd7 [svn-r938] Purpose:
Bug fix

Problem:
    semicolon missing

Solution:
    added semicolon to end of statement

Platform tested:
    Digital Unix
1998-11-21 14:51:49 -05:00
Robb Matzke
05e4309137 [svn-r937] Snapshot 1998-11-21 04:27:10 -05:00
Robb Matzke
7488c6366e [svn-r936] Changes since 19981119
----------------------

./src/H5.c
./src/H5A.c
./src/H5AC.c
./src/H5B.c
./src/H5D.c
./src/H5E.c
./src/H5F.c
./src/H5Farray.c
./src/H5Fcore.c
./src/H5Ffamily.c
./src/H5Fistore.c
./src/H5Flow.c
./src/H5Fmpio.c
./src/H5Fsec2.c
./src/H5Fsplit.c
./src/H5Fstdio.c
./src/H5G.c
./src/H5Gent.c
./src/H5Gnode.c
./src/H5Gstab.c
./src/H5HG.c
./src/H5HL.c
./src/H5I.c
./src/H5Iprivate.h
./src/H5MF.c
./src/H5MM.c
./src/H5O.c
./src/H5Oattr.c
./src/H5Ocomp.c
./src/H5Ocont.c
./src/H5Odtype.c
./src/H5Oefl.c
./src/H5Ofill.c
./src/H5Olayout.c
./src/H5Omtime.c
./src/H5Oname.c
./src/H5Osdspace.c
./src/H5Oshared.c
./src/H5Ostab.c
./src/H5P.c
./src/H5R.c
./src/H5RA.c
./src/H5S.c
./src/H5Sall.c
./src/H5Shyper.c
./src/H5Smpio.c
./src/H5Snone.c
./src/H5Spoint.c
./src/H5Sselect.c
./src/H5T.c
./src/H5TB.c
./src/H5Tbit.c
./src/H5Tconv.c
./src/H5V.c
./src/H5Z.c
./src/H5detect.c
./src/H5private.h
	Most of these changes are because the `interface_initialize_g'
	variable change from hbool_t to int.  It's a one line change.

	Changed the way the library is closed so we have more control
	over the order the interfaces are shut down.  Instead of
	registering an atexit() function for every interface in some
	haphazard order we just register one: H5_term_library() which
	then calls the H5*_term_interface() functions in a
	well-defined order.

	If the library is closed and then reopened repeatedly by
	calling H5close() and H5open() in a loop we only add one copy
	of the library termination functions with atexit().

	Termination is a two-step process in order to help detect
	programming errors that would cause an infinite loop caused by
	the termination of one interface waking up some other
	previously terminated interface.  The first step terminates
	the interface and *marks it as unusable*.  After all
	interfaces are terminated then we mark them all as usable
	again.  The FUNC_ENTER() macro has been modified to return
	failure or to dump core (depending on whether NDEBUG is
	defined) if we try to call an interface while it's shutting
	down.

./src/H5.c
	The H5dont_atexit() function returns failure if it's called
	more than once or if it's called too late.  However, the error
	stack is not automatically printed on failure because the
	library might not be initialized yet

./test/chunk.c
./test/flush1.c
./test/flush2.c
./test/iopipe.c
./test/overhead.c
./test/ragged.c
	Changed the extra cast for Win32 so we do floating point
	division again -- it was just confusion about precedence and
	associativity of casting and the C coercion rules. Removed
	extra carriage returns inserted by broken operating system.

./src/H5Ffamily.c
	Fixed an bug where H5F_fam_write() lowered the EOF marker for
	one of the family members causing H5F_fam_read() to read
	zeros.

./test/h5test.h		[NEW]
./test/h5test.c		[NEW]
./test/Makefile.in
./test/bittests.c
./test/cmpd_dset.c
./test/dsets.c
./test/dtypes.c
./test/extend.c
./test/external.c
	Support library for test files.  This isn't done yet but
	Katie's contractions are ~10 minutes apart so I figured I
	better back this stuff up just in case I'm not here next
	week...

	Eventually all test files will understand HDF5_DRIVER to name
	the low level file driver and parameters so we can easily test
	various drivers.  They will also understand HDF5_PREFIX to
	prepend to the beginning of file names which is necessary for
	testing ROMIO with various drivers. Also, the cleanup function
	will know how to use the file name prefix and will understand
	different file driver naming schemes like file families. I'm
	not sure they'll understand the `gsf:' type prefixes yet.

	Note, the external test is completely commented out because
	I'm in the middle of modifying it.  It will still compile and
	run but it doesn't test anything at the moment.
1998-11-20 22:36:51 -05:00
Robb Matzke
6345a417a3 [svn-r934] Snapshot 1998-11-20 04:27:12 -05:00
Patrick Lu
a482bd8e5b [svn-r933] moved the include for io.h into a block surrounded by HAVE_IO_H 1998-11-19 15:10:17 -05:00
Patrick Lu
b31cc0e3ab [svn-r932] added a cast for the (__int64)->double. 1998-11-19 14:17:26 -05:00
Patrick Lu
3afdf4ac7e [svn-r931] added io.h in the stdc_header section 1998-11-19 14:15:13 -05:00
Patrick Lu
0bf637b3d2 [svn-r930] *** empty log message *** 1998-11-19 14:12:21 -05:00
Robb Matzke
e0dfe872a0 [svn-r929] Changes since 19981119
----------------------

./test/flush2.c
./test/overhead.c
	Removed carriage-returns inserted by a broken operating system.

./test/big.c
./test/mtime.c
./test/ragged.c
./tools/h5ls.c
	Removed inclusion of <H5config.h>, system header files, and definition
	of __unused__ since this all happens in <H5private.h>.

./test/chunk.c
./test/cmpd_dset.c
./test/dsets.c
./test/dtypes.c
./test/extend.c
./test/external.c
./test/fillval.c
./test/flush1.c
./test/flush2.c
./test/iopipe.c
./test/links.c
./test/mount.c
./test/overhead.c
./test/shtype.c
./test/unlink.c
./tools/h5import.c
./tools/h5repart.c
	Removed inclusion of <H5config.h> since <hdf5.h> includes it.

./test/flush1.c
	Includes <stdlib.h>, protects inclusion of <unistd.h> by using
	HAVE_UNISTD_H instead of STDC_HEADERS.
1998-11-19 13:52:56 -05:00
Robb Matzke
68bff3d352 [svn-r928] Changes since 19981118
----------------------

./src/H5.c
./src/H5Smpio.c
./src/H5T.c
./src/H5Tconv.c
./src/H5Tpublic.h
./src/H5detect.c
./src/H5private.h
./src/H5public.h
./test/big.c
	The `long long' type isn't quite as prevalent as we had hoped;
	there is at least one system that defines `__int64' but not
	`long long'.  Therefore, I've temporarily changed all
	occurrences of `long long' to `long_long' and then #define
	that in H5private.h based on the existence of `long long' or
	`__int64'. This gets rid of some #ifdef's in other parts of the code.
	The semantics of the hdf5 types are:

	   *int8_t	 Exactly one byte
	   *int16_t	 At least two bytes. We favor 32-bit integers over
			 16-bit integers if the 16-bit integer is 4-bytes wide
			 (Cray)
	   *int32_t	 At least four bytes.
	   *int64_t	 At least eight bytes
	   long_long	 The widest integral integer type

	The H5Smpio.c contains debugging code which is non-portable.

./tools/h5ls.c
	Changed the order native types are detected so we favor the name `int'
	over `short' or `long' if two of them are the same.

./config/conclude.in
	Added a rule to make test programs depend on the hdf5 library. This
	fixes a minor bug where changing H5detect.c and then running `make
	test' caused H5Tinit.c to not be recompiled and therefore the test
	files are not relinked.
1998-11-19 12:36:27 -05:00
Patrick Lu
04979ec732 [svn-r927] had to put the extra cast in for the __int64 to double conversion.
I included a comment everywhere that this was needed.
1998-11-19 11:33:23 -05:00
Patrick Lu
0336078c9f [svn-r926] added flush1,flush2,overhead projects to the all project 1998-11-19 11:32:07 -05:00
Robb Matzke
8bb8649482 [svn-r925] Changes since 19981116
----------------------

./INSTALL.parallel	[NEW]
	We're beginning to unify some of the parallel installation
	steps.  This file will contain general information for
	installing the parallel library.  It's not complete yet.

./configure.in
./configure		[REGENERATED]
./src/H5config.h.in	[REGENERATED]
	Check for xdr_int() in libnsl required on Solaris when linking
	with hdf4.  It's found on the Irix system I tested which
	complains that `-lnsl' didn't resolve any symbols. Oh well.

	Fixed the order of searching for libdf and libmfhdf for hdf4
	linking.

./configure.in
./configure		[REGENERATED]
./src/H5config.h.in	[REGENERATED]
./src/H5Z.c
	Check for compress() in libz in order to find older versions
	of the library that will still work for hdf4.  Added a
	separate check for compress2() that hdf5 will use.

./configure.in
./configure		[REGENERATED]
./src/H5config.h.in	[REGENERATED]
./src/H5.c
./src/H5private.h
./src/H5A.c
./src/H5B.c
./src/H5Bprivate.h
./src/H5D.c
./src/H5F.c
./src/H5Farray.c
./src/H5Fcore.c
./src/H5Ffamily.c
./src/H5Fistore.c
./src/H5Flow.c
./src/H5Fmpio.c
./src/H5Fprivate.h
./src/H5Fsec2.c
./src/H5Fsplit.c
./src/H5Fstdio.c
./src/H5Gent.c
./src/H5Gnode.c
./src/H5Gpkg.h
./src/H5Gprivate.h
./src/H5HG.c
./src/H5HL.c
./src/H5O.c
./src/H5Oattr.c
./src/H5Ocomp.c
./src/H5Ocont.c
./src/H5Odtype.c
./src/H5Oefl.c
./src/H5Ofill.c
./src/H5Olayout.c
./src/H5Omtime.c
./src/H5Oname.c
./src/H5Oprivate.h
./src/H5Osdspace.c
./src/H5Oshared.c
./src/H5Ostab.c
./src/H5R.c
./src/H5RA.c
./src/H5Sall.c
./src/H5Shyper.c
./src/H5Snone.c
./src/H5Spoint.c
./src/H5Sprivate.h
./src/H5Sselect.c
./src/H5T.c
./src/H5Tbit.c
./src/H5Tconv.c
./src/H5Tpkg.h
./src/H5V.c
./test/bittests.c
./test/gheap.c
./test/hyperslab.c
./test/istore.c
./test/tmeta.c
./test/trefer.c
./test/tselect.c
./tools/h5debug.c
./tools/h5tols.c
	Added checks for Posix.1g types like `int8_t'.  If not defined
	then H5private.h defines them.  Changed all `int8' etc. to
	`int8_t'.

./src/H5A.c
./src/H5D.c
./src/H5F.c
./src/H5G.c
./src/H5I.c
./src/H5P.c
./src/H5R.c
./src/H5RA.c
./src/H5S.c
./src/H5T.c
./src/H5TB.c
./src/H5Z.c
	Calling H5*_term_interface() resets interface_initialize_g to
	FALSE so a subsequent call to H5open() (implied or explicit)
	reinitializes global variables properly.

./src/H5private.h
./src/H5Oefl.c
./src/H5S.c
	Changed MAX_SIZET, MAX_SSIZET, MAX_HSIZET, and MAX_HSSIZET to
	SIZET_MAX, SSIZET_MAX, HSIZET_MAX, and HSSIZE_MAX to they
	match the Posix.1 constants in <limits.h>.

./src/H5T.c
./src/H5Tconv.c
./src/H5Tpkg.h
./src/H5Tprivate.h
./src/H5detect.c
	Added 36 more integer hardware conversion functions to the
	type conversion table for conversions to/from `long long' and
	`unsigned long long'.  The `long long' names will be changed
	shortly to make them portable to Win32.

	Changed H5T_init() to H5T_native_open() and added an
	H5T_native_close() to open and close the predefined native
	data types.

	Increased the initial size of the type conversion table from
	64 to 128 entries.

	Reordered the 90 new integer conversion functions so the names
	that are printed favor `int' over `short' or `long' when two
	of them are the same.

./test/dtypes.c
	Added hardware and software integer conversion tests for the
	56 functions I added recently but not the additional 36
	checked in this time.  That will come next.

	Call H5close() after each test so type conversion statistics
	are easier to follow.  Try this: $ HDF5_DEBUG=t ./dtypes

	Added more debugging output for when things go wrong.

./src/H5private.h
	Removed trailing carriage-returns inserted by broken operating
	system ;-)
1998-11-18 13:40:09 -05:00
Dan Wells
8aa4f54200 [svn-r924] Added names of new entry points. Sorted the entry names alphabetically. 1998-11-18 10:44:39 -05:00
Dan Wells
dd352d1977 [svn-r923] Using buff to hold tracefile name. 1998-11-18 10:37:59 -05:00
Dan Wells
665165234f [svn-r922] Using CLOCK structure for timings as opposed to doubles for better accuracy. 1998-11-18 10:35:16 -05:00
Patrick Lu
860d23bef2 [svn-r921] changed the comment for the extra cast to say the correct verison of the compiler 0.0->5.0 1998-11-17 13:19:51 -05:00
Patrick Lu
e4d2a0ae94 [svn-r920] changed the GROUP macro to be GROUPNAME since GROUP was used by the winsock2.h
file
1998-11-17 13:18:57 -05:00
Patrick Lu
fbedc4bfeb [svn-r919] added a check to see if we need to or a _O_BINARY flag to the flag list for the
open function
1998-11-17 13:16:52 -05:00
Patrick Lu
519903b556 [svn-r918] updated the location to put H5config.h and H5Tinit.c.
also updated the proj file for the library.
1998-11-17 13:15:23 -05:00
Dan Wells
4fa5189caa [svn-r917] The name was wrong in the FUNC_ENTER macro of one of the entries. 1998-11-16 16:59:04 -05:00
Albert Cheng
e7643394b0 [svn-r916] Problem:
In machine (e.g. O2K) where long long and long are the same sizes, it
ended up defining GB8LL as 1 which is way too small for the dataset size.

Solution:
Add an entry to define GB8LL if long can hold it.  When all fails,
define GB8LL as 0.  During runtime, enough_room() will detect this
special value and skips the test.

Platform tested:
O2K IRIX64.
1998-11-16 14:08:18 -05:00
Robb Matzke
df77c715cc [svn-r915] Changed typo cc' to gcc' 1998-11-16 10:44:22 -05:00
Robb Matzke
841e168a04 [svn-r914] Changes since 19981113
----------------------

./config/conclude.in
./test/Makefile.in
./tools/Makefile.in
	The Makefile $TESTS variable has finally been split into
	$TEST_PROGS and $TEST_SCRIPTS with the latter being the names
	of shell scripts that need to be run with `/bin/sh'.  Now we
	don't have to copy each shell script before we run it. NOTE:
	THIS CHANGE DOES NOT AFFECT THE PABLO MAKEFILE SINCE THAT FILE
	IS A COPY OF A PREVIOUSLY GENERATED MAKEFILE.

./src/Makefile.in
	Added H5Snone.c to the source list.

./src/H5G.c
	Plugged a memory leak by emptying the object type "isa" table
	when the library is closed.

./src/H5Tconv.c
./src/H5Tpkg.h
	Added 48 new type functions to take advantage of hardware for
	integer type conversions.  These functions are not registered
	in the conversion table yet because I haven't fully tested
	them.

./src/H5Tpkg.h
	Removed __unused__ qualifiers from prototypes.
1998-11-16 10:29:54 -05:00
Albert Cheng
c3570e984a [svn-r913] Added $(LDFLAGS) to the make command for H5detect.
Tested on O2K in both parallel and serial modes.
1998-11-16 00:06:02 -05:00
Quincey Koziol
855248c589 [svn-r912] Added H5Snone.c 1998-11-13 18:34:04 -05:00
Dan Wells
fad8911352 [svn-r909] Dummied out make of progs and test to avoid rebuild of the library. 1998-11-13 10:16:27 -05:00
Dan Wells
cb31f1d4f0 [svn-r908] Fixed a bug in the I/O totals computation. 1998-11-13 10:14:56 -05:00
Robb Matzke
071aa057aa [svn-r907] Changes since 19981111
----------------------

./INSTALL
	Added instructions about specifying a path for GNU zlib and
	HDF4 headers and library.

	Added comments for each of the tool names.  Added h5toh4 as a
	tool name.

./configure.in
./conigure		[REGENERATED]
./src/H5config.h.in	[REGENERATED]
	The config/* scripts get invoked with $CC_BASENAME set the
	base name of the compiler in order to make it easier to handle
	setting compiler flags for different compilers in a big case
	statement.  For instance, if $CC has the value

	    /usr/local/mpi/bin/mpicc -ansi -64

	then $CC_BASENAME will be `mpicc'.  The $CC_BASENAME is not
	set if $CC is not set.

	Fixed alignment in `configure --help'.

	An include and/or library path can be specified for GNU zlib
	if configure can't find it in normal places.  The "normal"
	means wherever your compiler normally searches, including
	search paths you've added through environment variables like
	CPPFLAGS and LDFLAGS.  The INSTALL file has instructions.

	The `-ljpeg' library is detected.

	If `ssize_t' is not found then a #define is added to
	H5config.h similar to what we already do for `size_t'.

	We detect the hdf5 header file `mfhdf.h' and libraries
	`-lmfhdf' and `-ldf' and if found define the H5TOH4 and
	TESTH5TOH4 Makefile variables.  The user can specify an
	include and/or library path. The INSTALL file has
	instructions.

	The `RUNTEST' variable has been split into `RUNSERIAL' and
	`RUNPARALLEL' because these are different commands.  The
	makefile still uses `RUNTEST', which defaults to the RUNSERIAL
	value.  The new testpar/Makefile.in sets RUNTEST to the
	RUNPARALLEL value. The default RUNSERIAL value is empty and
	the default RUNPARALLEL value is `mpirun -np 2'.  These can
	both be overridden in the config/* files.  To make the value
	the empty string set it like `RUNPARALLEL=none' in the
	config/* file.

	The new testpar/Makefile is generated from testpar/Makefile.in

./config/commence.in
	Added the RUNSERIAL and RUNPARALLEL makefile definitions.

./src/Makefile.in
	The `H5detect' program is run with RUNSERIAL, which is empty
	on all platforms except intel-osf1 (ASCI/Red)

./config/conclude.in
	Removed the `.c.a:' implicit rule -- we don't use it any more.

./config/BlankForm
./config/alpha-dec
./config/alpha-dec-osf4.0
./config/freebsd2.2.7
./config/hpux10.20
./config/hpux9.03
./config/intel-osf1
./config/irix5.3
./config/irix6.2
./config/irix64
./config/linux
./config/powerpc-ibm-aix4.2.1.0
./config/rs6000-ibm-aix4.1.4.0
./config/solaris2.5
	All of these files have been updated to hande multiple
	compilers. Most of them assume `cc' if CC is not set. The
	documentation in `BlankForm' has been updated and
	documentation in the other files refer to `BlankForm'.

	The intel-osf1 uses LDFLAGS instead of LIBS to specify the extra
	library search paths.

./examples/Makefile.in
./test/Makefile.in
./tools/Makefile.in
	Simplified by grouping some dependency information together
	more succinctly.

	The tools Makefile.in has been modified to work with the
	`h5toh4' and `testh5toh4' programs.  Until Paul checks these
	in you may have problems compiling.  If so, just create files
	h5toh4.c and testh5toh4.c that contain:

	    #include <stdio.h>
	    int main(int argc, char *argv[]) {
	        fprintf(stderr, "%s: not implemented\n", argv[0]);
		return 1;
	    }

./src/H5public.h
	Removed definition for `ssize_t' since this is now handled by
	configure in H5config.h with a #define.


./MANIFEST
./testpar/Makefile.in	[NEW]
	Added a makefile for parallel tests.  As soon as we get this
	working properly we can remove the other four makefiles in
	that directory and maintain just one.
1998-11-13 10:06:06 -05:00
Robb Matzke
17869ffb87 [svn-r906] Snapshot 1998-11-13 04:21:26 -05:00
Quincey Koziol
40f9403364 [svn-r905] Added test for writing dataset region references. 1998-11-12 19:28:58 -05:00
Quincey Koziol
8f810273bb [svn-r904] Fixed bug in H5dont_atexit.
Plugged a memory leak in the union of hyperslabs code.

Checkpointing dataset region references, which are working, but not stored in
file yet.
1998-11-12 19:28:29 -05:00
Quincey Koziol
e7f7a9ff2f [svn-r903] Switched default compiler to be native compiler instead of gcc 1998-11-12 19:26:49 -05:00
Quincey Koziol
0a4f756744 [svn-r902] Added H5Snone.c 1998-11-12 19:26:28 -05:00
Robb Matzke
ff613b8f96 [svn-r901] Snapshot 1998-11-12 04:21:16 -05:00
Robb Matzke
bb36032d5a [svn-r900] Changes since 19981106
----------------------

./tools/h5ls.c
	The chunk dimensions and total size is printed for chunked datasets.

./examples/h5_attribute.c
./examples/h5_select.c
./test/chunk.c
./test/iopipe.c
./test/ragged.c
./src/H5.c
./src/H5private.h
./src/H5public.h
	Removed extra carriage-return characters inserted by a broken
	OS :-)

	Reformatted strange-looking comments.

	Removed C++ comments.

	Wrapped long lines.

./examples/h5_attribute.c
./examples/h5_select.c
	Removed inclusion of private headers.

	Changed `uint32' (originally `uint') to `unsigned' because
	`int32' is not exported as part of the API.

./src/H5Fmpio.h
	Removed includes for <sys/types.h> and <sys/stat.h> since
	they're already included by H5private.h.  All system include
	files should be included in H5private.h so we can wrap them
	with appropriate feature macros.

./tools/h5import.c
./tools/h5repart.c
	Included header files like all other programs in that
	directory.

./tools/h5tools.c
	Better type checking for `hsize_t' and `hssize_t'.
1998-11-11 11:33:33 -05:00
Robb Matzke
c82e6a4122 [svn-r899] Snapshot 1998-11-11 04:25:29 -05:00
Patrick Lu
7b08465f61 [svn-r898] added an include for H5private.h and changed a uint to an uint32 1998-11-10 13:19:11 -05:00
Patrick Lu
e1ae92a6bb [svn-r897] added a #ifdef HAVE_UNISTD_H around the unistd.h include 1998-11-10 13:18:31 -05:00
Patrick Lu
b7267be71a [svn-r896] replaced the macroname for FILE to be FILENAME
this was causeing a problem because FILE is deifned in a header that was included
1998-11-10 13:16:35 -05:00
Patrick Lu
75a9686b51 [svn-r895] added some extra casts because windows was having trouble converting to
a double from an unsigned int 64
1998-11-10 13:15:37 -05:00
Patrick Lu
55b20c298e [svn-r894] included H5private.h and changed uint to uint32 1998-11-10 13:14:03 -05:00
Patrick Lu
e29ca0f166 [svn-r893] changed a uint to a uint32 and included H5private.h in the file. 1998-11-10 13:13:23 -05:00
Patrick Lu
8199af2425 [svn-r892] had to change teh name of the hyper union member to be hslab 1998-11-10 13:04:07 -05:00
Patrick Lu
24f1a02fea [svn-r891] commented out the include for winsock.h. only need the winsock2.h 1998-11-10 13:02:56 -05:00
Patrick Lu
776f4a0279 [svn-r890] changed the name of the union member hyper to be hslab.
caused a conflict on winNT because hyper is a keyword
1998-11-10 13:02:16 -05:00
Patrick Lu
3dc23cdaa4 [svn-r889] added a typedef for the ssize_t to be signed int 1998-11-10 13:01:22 -05:00
Patrick Lu
55346e8376 [svn-r888] i added a #ifdef HAVE_GETTIMEOFDAY around the gettimeofday function call 1998-11-10 12:58:28 -05:00
Robb Matzke
a4ef96bca5 [svn-r887] Snapshot 1998-11-10 04:25:52 -05:00
Quincey Koziol
7088f7715f [svn-r886] Fixed H5dont_atexit in development branch also. 1998-11-09 14:04:46 -05:00
Robb Matzke
6caf5fac81 [svn-r884] Snapshot 1998-11-07 04:21:29 -05:00
Dan Wells
0159fc9a6b [svn-r883] Modified to cause creation of pablo/Makefile 1998-11-06 16:05:53 -05:00
Dan Wells
a23ec265e3 [svn-r882] Made modifications to support MPIO Pablo real-time tracing. 1998-11-06 16:01:15 -05:00
Dan Wells
5897fa35a3 [svn-r881] Updates to support MPIO real-time tracing 1998-11-06 15:48:34 -05:00
Dan Wells
a193cb7a1d [svn-r880] Made some changes for 64 bit file IDs 1998-11-06 15:47:29 -05:00
Robb Matzke
ccf09fae58 [svn-r879] Changes since 19981105
----------------------

./configure.in
./acconfig.h
./configure		[REGENERATED]
./src/H5config.h.in	[REGENERATED]
	Added checks for functions, structs, constants, and header
	files used in h5ls.c to determine the output width with
	various Windows compilers and Unix variants.

	Added check for <sys/stat.h> and defined
	HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside
	the Posix.1 #include's section.

./src/H5RA.c
	Less aggressive about failing -- rather returns false, which
	allows type detection to continue.

./src/h5ls.c
	Data types are displayed for datasets and named data types when
	`-v' or `--verbose' is specified on the command-line.  The
	algorithm is a little different than the dumper because we're
	trying to be human-friendly, not necessarily machine-friendly.

	   * Any data type which matches a native C type gets printed
	     something like `native double'.

	   * A floating point type that matches one of the IEEE standard
	     types but not one of the native types gets printed like `IEEE
	     64-bit big-endian float'.

	   * Other floating point values have information about sign bit
	     location; exponent size, location, and bias; and significand
	     size, location, and normalization.

	   * Padding and offsets are displayed for types that have
	     padding (precision != size), including internal padding for
	     some floating point data types.

	   * Non-native integer types are displayed like `32-bit
	     little-endian unsigned integer'.

	   * Compound data types have each member displayed including the
	     member name, byte offset within the struct, dimensions, index
	     permutation, and data type.

	   * String types are displayed like `256-byte null-terminated
	     ASCII string'.

	   * References are displayed like `8-byte unknown reference'
	     until the reference interface stabilizes a little.

	   * All other types including types not yet defined will be
	     printed like `4-byte class-9 unknown'.

	The dimensionality of scalar datasets is printed like `{SCALAR}'
	instead of just `{}'.

	If external raw files are used to store a dataset then the offsets,
	sizes, and file names of each are printed if `-v' or `--verbose'
	was given on the command-line.

	If an object is found and h5ls can't determine the object type then
	it still tries to print the number of hard links, the OID, and any
	comment that might be present if `-v' or `--verbose' was specified.

	If the `-d' or `--dump' switch is turned on then ragged arrays will
	report that the data can only be dumped by dumping the component
	datasets explicitly.  I'm not planning to implement this since
	we're going to eventually change the whole way ragged arrays are
	stored.

	Compound data values do not have the component names displayed by
	default when `-v' or `--verbose' is turned on.  Instead, the names
	can be displayed with `-l' or `--label'.

	The output width is determined by the first rule that applies:

	   * If the `-wN', `-w N' or `--width=N' switch appeared on
	     the command line then use N for the output width.

	   * Query the OS for the tty width in a highly unportable way
	     borrowed from GNU `less' depending on what functions and
	     data structures were found during configuration (if any):
	     _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(),
	     GetConsoleScreenBufferInfo(), struct videoconfig, struct
	     text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl.

	   * If the `COLUMNS' environment variable is set then use
	     its value.

	   * Use the value 80.

	Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv
	test.vbt'.  You can also try it on the various *.h5 files in the
	test/example directories.

./config/linux
	Removed turning on parallel by default on Robb's macine.
1998-11-06 13:00:22 -05:00
Robb Matzke
46f683cf14 [svn-r876] Changes since 19981102
----------------------

./bin/snapshot
	Made same fix as for the release script yesterday.

./src/H5D.c
./src/H5Dprivate.h
./src/H5G.c
./src/H5Gprivate.h
./src/H5Gpublic.h
./src/H5O.c
./src/H5Oprivate.h
./src/H5RA.c
./src/H5RAprivate.h
./src/H5T.c
./src/H5Tprivate.h
	Improved object type checking.  Instead of determining the
	object type by trying to open each of the possible types, we
	keep a table of associations between object type number (like
	H5G_GROUP, H5G_DATASET, H5D_TYPE, and H5D_RAGGED) and an `isa'
	function that returns true if the object header has the right
	messages to make the object a particular type.  This mechanism
	also allows specialization of object types by permitting an
	object to satisfy more than one `isa' function.

	Added `isa' functions for groups, datasets, ragged arrays, and
	committed data types.

./src/H5config.h.in
	Added HAVE_STAT_ST_BLOCKS.  I thought this had already been
	added, but apparently not.

./tools/h5ls.c
	Removed system include files since they're already included by
	H5private.h and since I wasn't including them portably anyway.

	By default, 1-byte integer types are printed as integer values
	instead of ASCII characters. However, the `-s' or `--string'
	command-line switch causes the data to be interpretted as
	ASCII.  String data types are always printed as character
	data.

	Ragged arrays are now identified as ragged arrays and h5ls
	doesn't descend into the group automatically.  This uses the
	new object type specialization stuff.

./tools/h5tools.c
./tools/h5tools.h
	Added the ability to print 1-byte integer types as either
	ASCII or numeric data instead of always ASCII.  The default is
	to print as numeric data.
1998-11-05 15:28:34 -05:00
Robb Matzke
b7d05e45c8 [svn-r875] Snapshot 1998-11-05 04:20:30 -05:00
Robb Matzke
75551aae9d [svn-r874] merged bug fix from hdf5-1_0 branch 1998-11-04 21:09:57 -05:00
Robb Matzke
3c6de53a5b [svn-r867] Snapshot 1998-11-04 04:20:59 -05:00
Dan Wells
ccff15af14 [svn-r866] Modified for parallel configuration. 1998-11-03 14:49:28 -05:00
Dan Wells
09a871339d [svn-r865] Modifications required for 64 bit longs. 1998-11-03 14:48:54 -05:00
Robb Matzke
3039dac9dc [svn-r864] Snapshot 1998-11-03 04:20:56 -05:00
Albert Cheng
7fd471c43c [svn-r861] Set RUNTEST to /bin/sh because the test is actually a shell script file.
Updated development version too.
1998-11-02 15:20:06 -05:00
Robb Matzke
254ae8d43d [svn-r859] Changes since 19981030
----------------------

./MANIFEST
	Added new Pablo files HDF5record_RT.h and ProcIDs.h

./acconfig.h
./configure		[REGENERATED]
./configure.in
./src/H5.c
./src/H5Vprivate.h
./src/H5config.h.in	[REGENERATED]
./src/H5private.h
./src/H5public.h
./test/big.c
	Added more configuration stuff for the Win32 environment. Removed all
	the #ifdef WIN32 from the source and replaced them with OS-independent
	stuff.  Specifics follow:

	Check for non-Posix.1 `st_blocks' field in `struct stat' which is used
	by the big file test to decide if the file system supports holes.  If
	the st_blocks field isn't present then we just skip the test.

	Configure checks for <io.h> <sys/resource.h> <sys/time.h> and
	<winsock.h> and defines HAVE_IO_H, HAVE_SYS_RESOURCE_H,
	HAVE_SYS_TIME_H and HAVE_WINSOCK_H when they're found.

	Configure checks whether both <sys/time.h> and <time.h> can be
	included and defines SYS_TIME_WITH_TIME if so.  Otherwise include only
	<sys/time.h> or <time.h> even if both exist.

	Configure checks sizeof(__int64) and defines SIZEOF___INT64 to the
	result or to zero if __int64 isn't defined.  The source uses `long
	long' in preference to `__int64'.

	Removed null WIN32 definition for `inline' since such a definition
	already exists in H5config.h

	Protected gettimeofday() calls in debugging code with
	HAVE_GETTIMEOFDAY instead of WIN32.

./src/H5F.c
./src/H5Flow.c
./src/H5Fmpio.c
./src/H5Fsec2.c
./src/H5Fstdio.h
./src/H5P.c
./src/H5Tconv.c
./src/H5private.h
	Removed #include of system files from library source files and
	consolodated them into H5private.h where they're protected by various
	configuration macros (most of them were duplicated there already
	anyway).

./test/big.c
./test/chunk.c
./test/cmpd_dset.c
./test/dsets.c
./test/dtypes.c
./test/extend.c
./test/external.c
./test/fillval.c
./test/flush1.c
./test/flush2.c
./test/iopipe.c
./test/links.c
./test/mount.c
./test/mtime.c
./test/overhead.c
./test/ragged.c
./test/shtype.c
./test/unlink.c
	Protected system #include's with #ifdef's from H5config.h.

	Undefined NDEBUG since some of the tests rely on assert() to check
	return values.

	Removed WIN32 definitions for __unused__ since this can be controlled
	by the definition of HAVE_ATTRIBUTE in H5config.h

./test/testhdf5.h
	Removed the CLEAN_CMD definition because we no longer use it.
	Albert's cleanup() functions replaced it.

./test/fillval.c
	Initialized auto hid_t variables to fix warnings in error recovery
	code when data flow analysis is turned on in compilers.

./test/h5tools.c
	Initialized an auto variable to fix a compiler warning.

./test/chunk.c
./test/ragged.c
	The WIN32 had some unsigned variables changed to signed because the
	compiler generates warnings when coercing unsigned to double(?).  I
	changed them back to unsigned because they really are unsigned
	quantities. If this the change was just to shut up extraneous warnings
	then perhaps a compiler flag can do the same; otherwise if the
	compiler generates bad code then we should supply a patch file instead
	messing up source code with bug work-arounds.

./src/H5detect.c
	Protected system #include's with #ifdef's from H5config.h thereby
	removing a WIN32.

	If getpwuid() doesn't exist (HAVE_GETPWUID) then we assume that
	`struct passwd' doesn't exist either (we don't really need it in that
	case).

	The H5T_NATIVE_LLONG and H5T_NATIVE_ULLONG are defined in terms of
	`long long' or else `__int64' or else `long' depending on what's
	available.

./src/H5Flow.c
./src/H5Ofill.c
	Added __unused__ to some function arguments that aren't used when
	assertions are turned off.

./src/H5V.c
	Changed an auto variable name in some hand-inlined code to get rid of
	a warning about the variable shadowing a previous auto.
1998-11-02 12:58:28 -05:00
Robb Matzke
a125ee351b [svn-r858] Snapshot 1998-11-02 04:21:03 -05:00
Robb Matzke
3cf97133b0 [svn-r857] Snapshot 1998-11-01 04:21:07 -05:00
Robb Matzke
d7c2a05970 [svn-r856] Snapshot 1998-10-31 04:21:20 -05:00
Dan Wells
98f5e5bc85 [svn-r855] Added some include files to the list of things to be made. 1998-10-30 15:13:58 -05:00
Dan Wells
9fa15860d0 [svn-r854] Latest list of HDF 5 entry points. 1998-10-30 14:46:40 -05:00
Dan Wells
75b0660dbc [svn-r853] Updated code to better handle new HDF entry points. 1998-10-30 14:46:05 -05:00
Dan Wells
6089dc9098 [svn-r852] Include files used for building trace routines. 1998-10-30 14:45:00 -05:00
Robb Matzke
95ca8d543f [svn-r849] ./doc/html/Version.html
Added comment about rewinding the version number to 1.0 for
	the initial release.
1998-10-30 09:40:46 -05:00
Robb Matzke
c9102de1c5 [svn-r848] ./RELEASE
Updated version number. Added a `Changes since the Beta
	Release' section.  Please fill in with anything appropriate.
1998-10-30 09:40:37 -05:00
Albert Cheng
ec2a200ee0 [svn-r845] Set it to use vendor provided cc compiler.
Updated developer version too.
1998-10-30 09:08:17 -05:00
Robb Matzke
707f99cd0c [svn-r843] Snapshot 1998-10-30 04:20:08 -05:00
Frank Baker
04001aa89b [svn-r837] Changed links to DDL.html to read ddl.html. 1998-10-29 20:30:57 -05:00
Frank Baker
340c89a358 [svn-r836] Added files:
hdf5/doc/html/RM_H5I.html
	hdf5/doc/html/RM_H5R.html
	hdf5/doc/html/References.html

Labelled all files in hdf5/doc/src/ as "do not distribute."

Added hdf5/doc/html/DDL.html, but labelled as "do not distribute."
1998-10-29 20:26:52 -05:00
Frank Baker
0cf4d3a79c [svn-r835] New DDL for Release 1.0. 1998-10-29 20:09:28 -05:00
Frank Baker
ed5859ad80 [svn-r831] DDL.html
References.html
	New User Guide documents.

RM_H5I.html  Identifier Interface
RM_H5R.html  Reference Interface
	Created these two sections of Reference Manual.
1998-10-29 17:35:48 -05:00
Frank Baker
cd3b105997 [svn-r830] ======
Intro
======
H5.intro.html
	Major rewrite to Groups section.  New Example 7 (groups).
	Added TOC and requisite links.
	Numbered sections.
	Labelled figures and centered those that were not.
	Fixed table formatting.

===========
User Guide
===========
H5.user.html
	Linked in Chunking.html.
	Linked in References.html.
	Linked in DDL.html.

Chunking.html
        Minor edits.

DDL.html
References.html
	New documents.

Datatypes.html
	Added "R Reference" to base name description and
	   "H5T_STD_ROBJ -- Reference to an entire object
	   in a file" to list of datatype names.

Files.html
	H5Fflush
	   Added scope parameter.

Groups.html
	Removed references to "current working group."
	Removed H5Gpush, H5Gpop, and H5Gset functions.
        Removed note that H5Glink and H5Gunlink were not implemented.

=================
Reference Manual
=================
RM_*.html and Tools.html
	Updated Reference Manual internal cross-linking (the link
	   banner at the top and bottom of each page).
	Changed
		Returns SUCCEED (0) if successful;
		otherwise FAIL (-1).
	   to read
		Returns a non-negative value if successful;
		otherwise returns a negative value.
	   and several derived changes where circumstances differred
	   only slightly.
	Minor copy edits throughout.

RM_H5.html
	Corrected H5open "Purpose" statement.

RM_H5A.html
	Changed H5Aget_name return type to hssize_t.

RM_H5F.html
	H5Fflush
	   Added scope parameter.
        Added H5Freopen.

RM_H5Front.html
	Reordered listing of interfaces to alphabetical order (H5,
	   H5A, H5D, ...)
 	Added H5I, H5R, and H5RA.

RM_H5G.html
	H5Gopen
	   Edited "Description."
	H5Gget_objinfo
	   Added named datatype to list of valid values for loc_id.

RM_H5I.html  Identifier Interface
	New section.

RM_H5P.html
	Added H5Pset_fill_value and H5Pget_fill_value.
        Several minor copy edits.

RM_H5R.html  Reference Interface
	New section.

H5RA.html
	Essentially a new section.  It was in the tree previously,
	but it did not actually have content.

RM_H5S.html
	Changed H5Sget_select_npoints return type to hssize_t.

Tools.html
	Updated h5dump documentation.
1998-10-29 17:13:17 -05:00
Robb Matzke
f9fd7a35c2 [svn-r829] Snapshot 1998-10-29 04:20:55 -05:00
Ruey-Hsia Li
8d2cb24e51 [svn-r827] Updated expected output for dumper tests. 1998-10-29 01:40:30 -05:00
Ruey-Hsia Li
049e666104 [svn-r826] Added files ./tools/testfiles/*. 1998-10-29 01:39:43 -05:00
Ruey-Hsia Li
056814423f [svn-r825] Added features:
* display selected named data type
* display named/unamed data type
* hard link
Also added testing scripts in testh5dump.sh.
1998-10-29 01:27:31 -05:00
Albert Cheng
54240b9657 [svn-r821] Set the metadata writing by 1 process to be TRUE by default
except when it is in the Intel Red in which it is not working
yet.
Update the development version too.
1998-10-28 18:07:19 -05:00
Quincey Koziol
9a4d614a0b [svn-r817] Fixed return value check. 1998-10-28 13:51:56 -05:00
Quincey Koziol
5834d25997 [svn-r816] Fixed bug with references on certain platforms. 1998-10-28 13:51:20 -05:00
Quincey Koziol
b506e17d08 [svn-r815] Changed default compilation options for HPUX 9.x 1998-10-28 13:50:46 -05:00
Robb Matzke
8f5444033e [svn-r814] Snapshot 1998-10-28 04:20:34 -05:00
Albert Cheng
52305e0fe6 [svn-r812] Moved -fullwarn flag to be used for debug mode only. 1998-10-27 18:54:01 -05:00
Quincey Koziol
6317a4684f [svn-r810] Reset version number on development branch back to 1.1.0 1998-10-27 15:30:57 -05:00
Robb Matzke
5013e0d2b5 [svn-r807] Added pablo file names 1998-10-27 12:29:12 -05:00
Albert Cheng
93493d2a97 [svn-r806] Set it to exit with non-zero code when errors encountered or when
test table overflows.

Tested Platform: Irix 6.2
1998-10-27 12:05:37 -05:00
Quincey Koziol
2a5409cf5c [svn-r805] Fixed H5Fis_hdf5 from reporting "true" for non-HDF5 files. 1998-10-27 10:32:23 -05:00
Robb Matzke
1e88d9ac67 [svn-r804] Snapshot 1998-10-27 04:19:56 -05:00
Robb Matzke
27cf1577ba [svn-r803] Something I forgot to add earlier... 1998-10-27 00:08:09 -05:00
Robb Matzke
1203b16528 [svn-r802] Misc. white space adjustments here and there, mostly in comments. 1998-10-26 22:56:31 -05:00
Albert Cheng
cd6234d0a0 [svn-r801] Added compiler options to suppress some warning messages from
the compiler and loader.
1998-10-26 17:55:45 -05:00
Quincey Koziol
7dcbae97f2 [svn-r800] Made a "htri_t" as a return value from "boolean" functions returning
TRUE/FALSE/FAIL, hbool_t is now strictly for true boolean values.
1998-10-26 17:44:13 -05:00
Quincey Koziol
a7b166727d [svn-r799] Included htri_t as a hbool_t for now. 1998-10-26 17:42:26 -05:00
Albert Cheng
bedcfc85bd [svn-r798] Suppress the warning that a certain library is not used during
the loading.  It would be hard to customerize library list for
individual loading.
1998-10-26 17:28:48 -05:00
Quincey Koziol
69d3cf72b3 [svn-r797] Changed comments from returning "SUCCEED/FAIL" to "non-negative/negative"
and also fixed a few more explicit checks against FAIL.
1998-10-26 16:18:54 -05:00
Dan Wells
4d5f1b72de [svn-r796] Pablo instrumentation support files. 1998-10-26 15:07:31 -05:00
Robb Matzke
f7545efc76 [svn-r795] Changes since 19981026
----------------------

./MANIFEST
./test/th5s.h5			[NEW]
./test/th5s.c
	Added a test to make sure that creating a data space with too
	large a rank fails.

	Added a test to make sure that reading a file that has a
	dataset with a space with too large a rank fails.  Actually,
	this one is a little weird: the code that reads the data space
	message assumes the space is scalar if the message cannot be
	read. Fortunately the layout message fails also, preventing
	the dataset from being opened.  However, since the data type
	message is still visible h5ls will report that the object is a
	named data type.

./test/space_overflow.c		[NEW]
	This is the little program that makes the th5s.h5 file.

./src/H5A.c
./src/H5R.c
./src/H5Sselect.c
	Updated trace info.

./src/H5Olayout.c
./src/H5Osdspace.c
	Added code to fail if the dimensionality is too large when
	decoding a layout or simple data space message.

./src/H5Oprivate.h
	Redefined H5O_LAYOUT_NDIMS in terms of H5S_MAX_RANK.

./src/H5P.c
./src/H5S.c
	Check for ndims>H5S_MAX_RANK in API function calls, added
	assert to internal functions.

./src/H5V.c
	Changed a `<' to an `<=' in an assert.

./test/flush2.c
	Includes stdlib.h for getenv().

./tools/h5tools.c
	Able to handle up to H5S_MAX_RANK dimensions during output.
1998-10-26 14:55:54 -05:00
Elena Pourmal
ac90ad84f6 [svn-r794] Group example was modified to use the H5Glink/unlink and
H5Dopen(grp, dataset) functions.

Tested on SUN Sparc (baldric)
1998-10-26 13:02:52 -05:00
Quincey Koziol
91fa389935 [svn-r793] Changed return value for H5Sget_select_npoints to hssize_t to enable negative
return values.
1998-10-26 12:42:48 -05:00
Quincey Koziol
bda4c6c94e [svn-r792] Changed return type for H5Aget_name from size_t to hssize_t to allow negative
error values to be returned correctly.
1998-10-26 12:25:35 -05:00
Quincey Koziol
808847e0a1 [svn-r791] Internal API tweaks to H5D_open_oid 1998-10-26 12:23:29 -05:00
Quincey Koziol
5ff842ebef [svn-r790] Updated parameters for H5R API and changed constants from pointers to references 1998-10-26 12:14:00 -05:00
Robb Matzke
db9525c2a3 [svn-r789] Changes since 19981023
----------------------

./MANIFEST
./test/Makefile.in
./test/flush1.c			[NEW]
./test/flush2.c			[NEW]
	Test to see if calling H5Fflush() results in a consistent
	file.

./src/H5.c
./src/H5A.c
./src/H5D.c
./src/H5Fistore.c
./src/H5I.c
./src/H5S.c
./src/H5Shyper.c
./src/H5Sselect.c
./src/H5TB.c
	Changed comparisons against SUCCEED and FAIL to >=0 and <0 in
	about 15 places.

./src/H5.c
./src/H5V.c
./src/H5detect.c
./src/H5private.h
./src/H5public.h
./test/big.c
./test/chunk.c
./test/cmpd_dset.c
./test/dsets.c
./test/dtypes.c
./test/external.c
./test/fillval.c
./test/iopipe.c
./test/links.c
./test/mount.c
./test/mtime.c
./test/ragged.c
./test/shtype.c
./test/unlink.c
	Removed ^M from the end of lines inserted on broken OS's ;-)

./src/H5private.h
	Changed c++ comments to c comments.

./src/H5R.c
	Added tracing macros.
1998-10-26 09:49:52 -05:00
Robb Matzke
7f020a4f3c [svn-r788] Snapshot 1998-10-26 04:20:01 -05:00
Robb Matzke
39ae8f3879 [svn-r787] Snapshot 1998-10-24 04:19:59 -05:00
Quincey Koziol
db59b0650e [svn-r786] Added H5S_MAX_RANK as publicly visible constant for the maximum number of
dimensions a dataset can have, currently set to 31.
1998-10-23 15:12:37 -05:00
Quincey Koziol
6b449ba34a [svn-r785] Moved SUCCEED & FAIL back into H5private.h 1998-10-23 15:10:29 -05:00
Patrick Lu
15a78f9786 [svn-r784] Added a readme and H5Tinit.c. Also changed where the files are going to be
exported.  Now they are in a directory called NTPort
1998-10-23 15:03:54 -05:00
Patrick Lu
4ec4c61cfc [svn-r783] The zip file for Windows. Contains all the projects for the NT port.
Use all.dsw and allexamples.dsw.  Will build all the projects.  2 errors
are expected for each at the end of compilation since all and allexamples
are not creating any executables or libraries of their own.
1998-10-23 13:51:46 -05:00
Patrick Lu
ca5f819b46 [svn-r782] Win NT port- tested on Unix and NT
changes - all changes surrounded by a #if defined(WIN32)
	  defined __undef__ to be equal to nothing, changed long long to __int64
	  removed body of H5TimerBegin, defined F_OK,R_OK,W_OK, some other
	  changes involving header files.
1998-10-23 13:23:29 -05:00
Patrick Lu
3a7c54b06f [svn-r781] Windows NT port-tested on Unix and NT
changes: defined __unused__ as nothing, other little changes.
	all changes are surrounded by #if defined(WIN32)
1998-10-23 13:16:48 -05:00
Robb Matzke
9bba487ca4 [svn-r780] *** empty log message *** 1998-10-23 10:44:52 -05:00
Robb Matzke
e1d1bf607f [svn-r779] Changes since 19981022
----------------------

./MANIFEST
./doc/html/study.html		[DELETED]
./doc/html/study_1000x1000.gif	[DELETED]
./doc/html/study_250x250.gif	[DELETED]
./doc/html/study_499x499.gif	[DELETED]
./doc/html/study_5000x1000.gif	[DELETED]
./doc/html/study_500x500.gif	[DELETED]
./doc/html/study_p1.gif		[DELETED]
./doc/html/study_p1.obj		[DELETED]
	Removed these old files -- the data was from before the chunk
	cache was implemented and therefore the whole file was pretty
	much garbage.

./MANIFEST
./doc/html/Chunking.html	[NEW]
./doc/html/Chunk_f1.gif		[NEW]
./doc/html/Chunk_f1.obj		[NEW]
./doc/html/Chunk_f2.gif		[NEW]
./doc/html/Chunk_f2.obj		[NEW]
./doc/html/Chunk_f3.gif		[NEW]
./doc/html/Chunk_f4.gif		[NEW]
./doc/html/Chunk_f5.gif		[NEW]
./doc/html/Chunk_f6.gif		[NEW]
./doc/html/Chunk_f6.obj		[NEW]
	New documentation for chunking.  It's not quite complete but
	it gives a pretty good idea of some of the issues affecting
	performance.
1998-10-23 10:44:02 -05:00
Robb Matzke
97621ca893 [svn-r778] Snapshot 1998-10-23 04:20:00 -05:00
Frank Baker
85cf3f4bb8 [svn-r777] RM_H5S.html
Changed H5Sget_space_type to H5Sget_simple_extent_type.
	Changed H5Sget_simple_extent_type FAIL return value to
		H5S_NO_CLASS.

RM_H5F.html
	H5Fflush.  Corrected function name in sytax line, which
		had read H5Fis_hdf.

RM_H5G.html
	Removed discussion of "current working group" and associated
		information from the introductory discussion.
	H5Gset, H5Gpush, H5Gpop
		Removed these functions.
	H5Gunlink, H5Gmove
		Removed the "not yet implemented" notations from
		these functions.
1998-10-22 18:52:02 -05:00
Quincey Koziol
671ed57123 [svn-r776] Fixed references, object references should be working now. 1998-10-22 17:49:16 -05:00
Robb Matzke
f571a762fd [svn-r775] Changes since 19981021
----------------------

./src/H5I.c
	If we ran out of object ID's (which happens after about 67
	million requests) then we'd wrap back to the first possible ID
	but if we ran out a second time (after ~134 million requests)
	then H5I_register() failed.  Now it continues to wrap as often
	as needed.

	If we wrapped to the beginning of the possible ID's and then
	requested ID's till we got toward the end of the list then
	H5I_register() failed if the last possible ID's were in use.
	The new behavior is to try all possible ID's (not just higher
	ID's) before giving up.
1998-10-22 12:30:24 -05:00
Robb Matzke
5ba39f7ca2 [svn-r774] Snapshot 1998-10-22 04:20:10 -05:00
Robb Matzke
2bfbf4f707 [svn-r773] Changes since 19981019
----------------------

./src/H5Fistore.c
	Improved the hash function so it mixes bits better.  This
	results in a few percent improvement in raw data chunk cache
	efficiency because there are fewer collisions.

./test/chunk.c
	Added #define's for chunk preemption `w0' value and number of
	slots in cache.

./src/H5B.c
	Added some more comments to H5B_insert_helper() and
	H5B_remove_helper()  and also point to some additional
	documentation.
1998-10-21 10:14:15 -05:00
Robb Matzke
bf5d98d7b9 [svn-r772] Snapshot 1998-10-21 04:20:06 -05:00
Albert Cheng
5ce4069c24 [svn-r771] Changed exit(n) in main() to return(n) to pacify the compiler.
Platform tested:
    O2K
1998-10-21 00:12:58 -05:00
Albert Cheng
d774cf9daf [svn-r770] H5B.c:
Replaced FAIL with H5B_INS_ERROR in routine H5B_remove_helper.
    Updated code that calls H5B_remove_helper with the proper code.
H5Fmpio.c:
    Removed a typo.
H5Gnode.c:
    Replaced FAIL with H5B_INS_ERROR in routine H5G_node_remove.
H5Odtype.c:
    Put in proper casting to remove compiler warnings.
H5S.c:
    Replaced FAIL with H5S_NO_CLASS in routine H5Sget_simple_extent_type.
H5Sselect.c:
    Fixed couple typos to remove compiler warnings.

Platform tested:
    O2K.
1998-10-21 00:09:58 -05:00
Frank Baker
ca9639706e [svn-r769] H5.intro.html
Revised and extended hyperslab selection image.
	Added section "Selecting a union of hyperslabs."
IH_map*.gif  (6 new files)
	New images for "Intro to HDF5."
	As a composite, these replace H5.intro.datamap.gif.
H5.intro.datamap.gif
	Removed.  Replaced by the composite IH_map*.gif.

RM_H5RA.html  (new file)
RM_H5Front.html
Tools.html
Ragged.html
H5.user.html
	Changed all H5R functions to H5RA.
	Changed Ragged Array API references from H5R to H5RA.
	Changed links to RM_H5R.html to RM_H5RA.html.
RM_H5R.html
	Removed.  Replaced by RM_H5RA.html.
1998-10-20 22:33:19 -05:00
Albert Cheng
cf65d53dc8 [svn-r768] Changed declaration types of couple variables to remove prototype
warning messages.
1998-10-20 21:37:37 -05:00
Quincey Koziol
ef231947b3 [svn-r767] Commented out printfs. 1998-10-20 16:38:54 -05:00
Quincey Koziol
cd4af9da24 [svn-r766] Checkpointing the reference code. 1998-10-19 17:25:03 -05:00
Robb Matzke
c1d2006c0f [svn-r765] Changes since 19981016
----------------------

./src/H5F.c
./src/H5Fpublic.h
	Added H5Freopen() as documented in earlier e-mails.  This is
	really just a wrapper around H5F_new().
1998-10-19 12:46:40 -05:00
Robb Matzke
80f2033326 [svn-r764] Changes since 19981014
----------------------

./bin/trace
./src/H5.c
./src/H5F.c
./src/H5Fprivate.h
./src/H5Fpublic.h
	Added a `scope' argument to H5Fflush() which should be either
	H5F_SCOPE_LOCAL or H5F_SCOPE_GLOBAL and determines which files
	are flushed (just the specified file or the entire virtual
	file).

./src/H5F.c
	Added reference counts to the H5F_t struct so we get the
	correct behavior between H5Funmount() and H5Fclose().

./src/H5O.c
	Fixed a memory leak that happens during error handling.

./test/cmpd_dset.c
./test/unlink.c
	Fixed a memory leak.

./test/mount.c
	Enabled the H5Fclose() test.
1998-10-16 10:40:37 -05:00
Robb Matzke
194c45d07d [svn-r763] Snapshot 1998-10-16 04:21:02 -05:00
Robb Matzke
c82c719c21 [svn-r762] Snapshot 1998-10-15 04:21:00 -05:00
Robb Matzke
cfb2a264f1 [svn-r761] Changes since 19981013
----------------------

./src/H5.c
	Fixed a signed vs. unsigned comparison.

./src/H5D.c
	Setting a fill value of all zeros will cause the fill value to
	be written to the dataset instead of relying on the low-level
	file driver initializing unwritten areas with zero.

./src/H5D.c
./src/H5F.c
./src/H5Fprivate.h
./src/H5G.c
./src/H5Gpkg.h
./src/H5Gprivate.h
./src/H5O.c
./src/H5T.c
	More file mounting stuff.

./src/H5I.c
	Fixed a bug where trying to close an invalid object id caused
	a core dump.  For instance, H5Gclose(-1).

./MANIFEST
./test/Makefile.in
./test/mount.c		[NEW]
	Mounting tests.

./src/H5R.c
	Fixed a couple (herr_t)NULL casts.
1998-10-14 14:35:08 -05:00
Robb Matzke
6f9a11d046 [svn-r760] Snapshot 1998-10-14 04:20:49 -05:00
Quincey Koziol
41241d47e5 [svn-r759] Added missing test file. 1998-10-13 17:42:24 -05:00
Quincey Koziol
bfedcf281c [svn-r758] Added test code for object references. 1998-10-13 16:30:49 -05:00
Quincey Koziol
5389806ce8 [svn-r757] Added code for object references. 1998-10-13 16:28:53 -05:00
Quincey Koziol
6fd7f81615 [svn-r756] Detect reference parameters properly. 1998-10-13 16:28:13 -05:00
Quincey Koziol
85b6253118 [svn-r755] Added reference test to manifest. 1998-10-13 16:27:53 -05:00
Robb Matzke
88bb52df72 [svn-r754] Snapshot 1998-10-13 13:34:50 -05:00
Robb Matzke
0e9e49d635 [svn-r753] Changes since 19981008
----------------------

./src/H5F.c
./src/H5Fprivate.h
./src/H5G.c
./src/H5Gpkg.h
./src/H5Gprivate.h
./src/H5Gpublic.h
./test/istore.c
./test/tstab.c
	Removed CWG functionality.

./tools/Makefile.in
	Added `_test' where I added `test' last week.  Maybe now the
	snapshots will start up again...
1998-10-13 12:17:50 -05:00
Dan Wells
60b0109164 [svn-r752] added code to define Pablo_Mask 1998-10-08 16:31:05 -05:00
Dan Wells
b8800bf41f [svn-r751] Added Pablo Mask 1998-10-08 16:30:07 -05:00
Dan Wells
9865007240 [svn-r750] Put the MPIO header file inside the ifdef HAVE_PABLO 1998-10-08 16:28:06 -05:00
Dan Wells
82f645371d [svn-r749] Changes for Pablo Tracing. 1998-10-08 16:24:14 -05:00
Dan Wells
04ca978cba [svn-r748] added include file for Pablo Tracing inside the conditional expansion for
HAVE_PABLO.
1998-10-08 16:04:50 -05:00
Dan Wells
32684b8801 [svn-r747] Changed the macro expansion for Pablo. 1998-10-08 16:03:11 -05:00
Elena Pourmal
6016a7a47a [svn-r746] ../examples/h5_select.c
Selection of the hyperslab union was added to the example.

Tested on Sun Sparc ( baldric ).
1998-10-08 12:47:07 -05:00
Robb Matzke
19ec99786a [svn-r745] Changes since 19981002
----------------------

./doc/html/H5.format.html
./src/H5HG.c
	Fixed a bug in the global heap that caused H5HG_read() to
	write past the end of the buffer in certain cases.

./test/big.c
	The test is skipped if hdf5 was configured with
	`--disable-hsizet'.

./src/H5Ofill.c
	Data type conversions are implemented for the fill value.

./src/H5.c
	Tracing prints one of H5P_FILE_CREATE, H5P_FILE_ACCESS,
	H5P_DATASET_CREATE, H5P_DATASET_XFER, or H5P_MOUNT instead of
	the more cryptic H5I_TEMPLATE_* constants.

./src/H5D.c
	Removed prototype for H5D_find_name().

./src/H5I.c
	The GROUP_MASK and ID_MASK are both calculated from GROUP_BITS
	instead of being set by hand.

	We don't use the sign bit of hid_t; all valid hid_t values are
	positive so we can say things like `if ((file=H5Fopen(...))<0)'.

	Changed `(int)pow(2.0,x)' to `1<<x' so we don't have to worry
	about rounding.

	Fixed H5I_get_type() so it doesn't always fail an assertion.

./src/H5E.c
./src/H5Epublic.h
	Added minor error H5E_MOUNT

./src/H5F.c
./src/H5Fprivate.h
	Added H5Fmount() and H5Funmount().  Mounting and unmounting
	works as documented but some of the other things aren't
	implemented yet, the biggest being current working groups
	always acting on the root of the mount tree, and H5Fclose()
	closing the entire tree.  The rest of the stuff will be added
	shortly...

./src/H5P.c
./src/H5Ppublic.h
	Added the H5P_MOUNT property list but haven't implemented any
	particular properties for it yet.

./src/H5Gstab.c
	Hard links across files return an error instead of failing an
	assertion.
1998-10-08 12:13:14 -05:00
Frank Baker
1fddd40b8b [svn-r744] Checking in MS Word copy of Beta version of "Introduction to
HDF5."  (The HTML copy was checked in for the Beta; the MS Word
copy was overlooked at that time.)

The mapping image, used to illustrate hyperslab data selections,
is a separate gif image, H5.intro.datamap.gif, in docs/html.
1998-10-08 11:45:37 -05:00
Quincey Koziol
c4f1dfcf17 [svn-r743] Added H5I_type_t type to H5_trace and added H5Iget_type function call. Also
checked in H5R skeleton files.
1998-10-07 16:04:51 -05:00
Quincey Koziol
fe135c15da [svn-r742] Added H5I_type_t type to types auto-detected. 1998-10-07 16:04:09 -05:00
Quincey Koziol
0a91cc84c1 [svn-r741] Added H5R*.[ch] files 1998-10-07 16:03:47 -05:00
Frank Baker
b94c94ff6f [svn-r740] Correct erroneous cross-reference. (I.e., cross-reference to
Datatypes.html was corrected to point to Dataspaces.html.)
1998-10-07 15:54:55 -05:00
Quincey Koziol
2c4af336d3 [svn-r739] Switched ragged array "H5R" API to "H5RA" to make room for the reference API. 1998-10-06 16:37:57 -05:00
Robb Matzke
deeb5978c0 [svn-r738] *** empty log message *** 1998-10-06 08:16:04 -05:00
Quincey Koziol
9d11032a98 [svn-r737] Changed H5I groups to have a H5I_ prefix before them, to better align with the
library.
1998-10-05 18:41:30 -05:00
Robb Matzke
8a2ecf8fa6 [svn-r736] Updated the dependency files. 1998-10-05 16:27:25 -05:00
Robb Matzke
21943f5d35 [svn-r735] Changes since 19981002
----------------------

./src/H5D.c
	Fill values are working for contiguous datasets now except
	there are two things that need more support from the data
	space layer, specifically the ability to form a selection from
	the difference of two selections.  They are (1) extending an
	external contiguous dataset, (2) optimization by delaying the
	fill until after the first H5Dwrite().

	Renamed H5D_allocate() to H5D_init_storage() since allocation
	is only part of the story. Added a data space argument so it
	doesn't have to query the space from the object header -- the
	space is always available in the caller anyway.

	Removed `#ifdef HAVE_PARALLEL' from a few places where it
	wasn't necessary.  We don't need it around code that doesn't
	compile anything from mpi.h or mpio.h.

./src/H5Fistore.c
	Uncommented H5F_istore_alloc() for non-parallel and moved the
	`#ifdef HAVE_PARALLEL' just around Kim's barrier.

./src/H5Fmpio.c
	Wrapped a couple long lines.

	Got rid of two signed vs. unsigned comparison warnings.

./MANIFEST
./test/Makefile.in
./test/fillval.c	[NEW]
	Added tests for fill values.  The contiguous dataset extend
	test is disabled until H5S_SELECT_DIFF is implemented.

./tools/Makefile.in
	Fixed a bug where `make test' didn't build the executables
	first. This should cause the snapshots to start up again.

./Makefile.in
	Changed to build in `test' directory before `tools'
	directory. We want the library tests to pass before we even
	start considering the tools.  You can still build and/or test
	the tools independent of the library tests passing.
1998-10-05 16:01:10 -05:00
Robb Matzke
58ee080e72 [svn-r734] Changes since 19981001
----------------------

./src/H5D.c
./src/H5Fistore.c
./src/H5Fprivate.h
	Fixed a couple things for parallel hdf5 that I broke with the
	last checkin.

./src/H5Ofill.c
	If no fill value is specified it isn't added to the object
	header.

./tools/h5ls.c
	Added a line-feed after `Unknown object' is printed.

./tools/h5tools.c
	Fixed printing of scalar values.  Need to still track down a
	failed assertion when H5Sselect_hyperslab() is called with a
	zero size....
1998-10-02 08:31:24 -05:00
Robb Matzke
849d36019d [svn-r733]
Changes since 19980930
----------------------

./MANIFEST
./doc/html/H5.format.html
./src/H5D.c
./src/H5Dprivate.h
./src/H5Farray.c
./src/H5Fistore.c
./src/H5Fprivate.h
./src/H5O.c
./src/H5Ofill.c		[NEW]
./src/H5Oprivate.h
./src/H5P.c
./src/H5Ppublic.h
./src/H5Sall.c
./src/H5Shyper.c
./src/H5Spoint.c
./src/H5Sprivate.h
./src/Makefile.in
	Added fill values as documented in previous e-mails. They only
	work for chunked datasets so far.

./src/H5E.c
./src/H5Epublic.h
./src/H5P.c
	Changed H5E_TEMPLATE to H5E_PLIST.

./src/H5Omtime.c
./src/H5V.c
	Fixed a typo in a comment.

./src/H5Tconv.c
	Fixed a bug in compound type conversions that caused an
	assertion to fail.
1998-10-01 13:56:51 -05:00
Ruey-Hsia Li
d809c9309b [svn-r732] Disabled error reporting. 1998-09-30 17:01:13 -05:00
Robb Matzke
177e41c948 [svn-r731] Changes since 19980930
----------------------

./src/H5G.c
./test/unlink.c
	Renaming a symbolic link works like on Unix: the link is
	renamed but the link value is unchanged.
1998-09-30 15:17:26 -05:00
Robb Matzke
beab7f66e5 [svn-r730] Changes since 19980928
----------------------

./MANIFEST
	Changed freebsd2.2.1 to freebsd2.2.7 to match change in file name.

	Added a few missing files.  Are all of these supposed to be
	distributed?

	  ./tools/testfiles/h5dumptst.c
	+ ./tools/testfiles/tall-1.ddl
	+ ./tools/testfiles/tall-2.ddl
	+ ./tools/testfiles/tall-3.ddl
	  ./tools/testfiles/tall.ddl
	  ./tools/testfiles/tall.h5
	+ ./tools/testfiles/tattr-1.ddl
	+ ./tools/testfiles/tattr-2.ddl
	+ ./tools/testfiles/tattr-3.ddl
	+ ./tools/testfiles/tattr-4.ddl
	  ./tools/testfiles/tattr.ddl
	  ./tools/testfiles/tattr.h5
	+ ./tools/testfiles/tdset-1.ddl
	+ ./tools/testfiles/tdset-2.ddl
	+ ./tools/testfiles/tdset-3.ddl
	+ ./tools/testfiles/tdset-4.ddl
	  ./tools/testfiles/tdset.ddl
	  ./tools/testfiles/tdset.h5
	+ ./tools/testfiles/tgroup-1.ddl
	+ ./tools/testfiles/tgroup-2.ddl
	+ ./tools/testfiles/tgroup-3.ddl
	  ./tools/testfiles/tgroup.ddl
	  ./tools/testfiles/tgroup.h5
	+ ./tools/testfiles/tslink-1.ddl
	+ ./tools/testfiles/tslink-2.ddl
	  ./tools/testfiles/tslink.ddl
	  ./tools/testfiles/tslink.h5

./src/H5B.c
./src/H5Bprivate.h
./src/H5D.c
./src/H5Dprivate.h
./src/H5Farray.c
./src/H5Fistore.c
./src/H5Fprivate.h
./src/H5Gstab.c
./src/H5P.c
./src/H5Ppublic.h
./src/H5Sall.c
./src/H5Shyper.c
./src/H5Spoint.c
./src/H5Sprivate.h
./test/istore.c
	Implemented split ratios as documented in previous
	e-mails. Frank, the new API functions are H5Pget_btree_ratios()
	and H5Pset_btree_ratios().

./src/H5Sall.c
./src/H5Shyper.c
./src/H5Spoint.c
./src/H5Sprivate.h
	Added more type checking for the data transfer property list
	passed to these functions.

./src/H5D.c
	Added a dataset transfer property list as an argument to
	H5D_allocate() for the parallel version in order to pass split
	ratios down to H5F_istore_lock().  Eventually we won't need
	the split ratios for H5D_allocate() because we'll build a
	completely full B-tree from the leaves up, but it might be
	useful to have other transfer properties at that level
	anyway.  I always caled H5D_allocate() with &H5D_dflt_xfer.

./MANIFEST
./test/Makefile.in
./test/overhead.c	[NEW]
	Added an `overhead' test run by `make timings'.
1998-09-30 13:50:49 -05:00
Ruey-Hsia Li
8460a082a4 [svn-r729] Added expected output for dumper option test. 1998-09-28 10:49:18 -05:00
Ruey-Hsia Li
af405e8a6f [svn-r728] Added tests and expected optput for dumper options. 1998-09-28 10:12:14 -05:00
Ruey-Hsia Li
1b13f305ad [svn-r727] Implemented dumper command line options.
Added tests for dumper options.
1998-09-28 09:59:49 -05:00
Robb Matzke
c0941f01e3 [svn-r726] Changes since 19980924
----------------------

./MANIFEST
./src/H5B.c
./src/H5Bprivate.h
./src/H5G.c
./src/H5Gnode.c
./src/H5Gprivate.h
./test/Makefile.in
./test/unlink.c		[NEW]
	Finished H5Gunlink() and H5Grename().

./src/H5F.c
./src/H5Fistore.c
./src/H5Fprivate.h
	Removed the last memcpy() from the chunk cache.

./src/H5Fistore.c
	The offset of a chunk within a dataset is an 8-byte quantity
	per dimension instead of 4 bytes.

./src/H5HL.c
	Fixed infinite loops in H5HL_remove().
1998-09-28 09:20:21 -05:00
Albert Cheng
b1df4a74cd [svn-r725] Added the testh5dump test back into the automatic test.
During make test, it copies the master copy testh5dump.sh
to a temperary copy, testh5dump and run it.  Make clean
remove only duplicated version, not the original master.
Platform test:
baldric.
1998-09-25 17:40:09 -05:00
Quincey Koziol
06935ba4bb [svn-r724] Changed inline declarations back. 1998-09-25 17:16:37 -05:00
Quincey Koziol
18b24252a6 [svn-r723] Changed some "inline" to "__inline__" in function definitions to better conform
to ANSI standard.
1998-09-25 16:55:49 -05:00
Quincey Koziol
274a88f52c [svn-r722] Updated FreeBSD config file for new version of OS on hawkwind 1998-09-25 16:54:36 -05:00
Robb Matzke
b3ac7d4c7f [svn-r721] Snapshot 1998-09-25 04:20:47 -05:00
Robb Matzke
311e4c9ebf [svn-r720] Changes since 19980922
----------------------

./src/H5F.c
./src/H5Fprivate.h
./src/H5P.c
./src/H5Ppublic.h
./test/chunk.c
./test/dsets.c
	The number of slots in the raw data cache can be queried or
	set with H5Pget/set_cache(), which now take an extra argument.
	The default number of slots is 521 and the default maximum
	size is 1MB.

./src/H5Fistore.c
./src/H5Fprivate.h
	Finished optimizations.  The cache is now a hash and a linked
	list instead of an array.  The cpu time on my machine for
	H5F_istore_lock() has been cut by 60% and H5F_istore_unlock() by
	35%.
1998-09-24 10:51:05 -05:00
Robb Matzke
f180bc993f [svn-r719] Snapshot 1998-09-24 04:20:07 -05:00
Quincey Koziol
0e8e2d56c5 [svn-r718] Added tests for unioning hyperslabs with the H5S_SELECT_OR operation to
H5Sselect_hyperslab.
1998-09-23 18:29:25 -05:00
Quincey Koziol
8af76560a0 [svn-r717] Added code to support unioning hyperslabs with the H5S_SELECT_OR operation to
H5Sselect_hyperslab.
1998-09-23 18:29:09 -05:00
Robert Kim Yates
0db7facffe [svn-r716] Added barrier to H5F_istore_allocate to preclude racing with data writes. 1998-09-23 12:24:50 -05:00
Robb Matzke
5fcf0dc22e [svn-r715] Snapshot 1998-09-23 04:20:01 -05:00
Robb Matzke
6d9af58391 [svn-r714] Changes since 19980911
----------------------

This checkin is to fix a couple bugs for Jim Reus.  Some features are
not fully implemented but it shouldn't break anything.

./config/conclude.in
./test/Makefile.in
	`make clean' removes object files from the test directory as
	well as a couple more *.h5 temp files.

./config/hpux9.03		[NEW]
	New config file for HP/UX 9.03

./src/H5B.c
./src/H5Bprivate.h
./src/H5Fistore.c
./src/H5G.c
./src/H5Gnode.c
./src/H5Gpkg.h
./src/H5Gprivate.h
./src/H5Gstab.c
	Not-yet-complete version of object removal.

./src/H5Fistore.c
./src/H5Fprivate.h
	Experimental optimizations, disabled by default.

./src/H5Fprivate.h
	Default low-level driver was changed to H5F_LOW_SEC instead of
	H5F_LOW_STDIO because the sec2 driver is much easier to debug.

./src/H5Fsplit.c
./src/H5G.c
./src/H5Z.c
	Changed a couple return statements to HRETURN.

./src/H5Odtype.c
	Removed a check for nested compound data types from back when
	they weren't implemented that raised an error.

./tools/h5tools.c
	Increased temp buffer sizes and added a check for buffer
	overflow so we fail an assertion (hopefully).  This really
	needs to be fixed sometime.

	Added support for printing H5T_STRING data types.
1998-09-22 10:27:26 -05:00
Robb Matzke
b20de8612a [svn-r713] Snapshot 1998-09-22 04:20:07 -05:00
Quincey Koziol
1fe48c7f19 [svn-r712] Added temporary buffer support to several places in the library which were
calling malloc too often.  Also, added caching of hyperslab blocks, which
improves performance _significantly_ for hyperslab I/O.
1998-09-21 18:43:19 -05:00
Quincey Koziol
7b18991338 [svn-r711] Updated flags for better production compiling 1998-09-21 18:41:45 -05:00
Robb Matzke
19369ba422 [svn-r710] Snapshot 1998-09-21 04:19:54 -05:00
Robb Matzke
42c184af74 [svn-r709] Snapshot 1998-09-20 04:20:11 -05:00
Robb Matzke
a3170cae38 [svn-r708] Snapshot 1998-09-19 04:19:57 -05:00
Robert Kim Yates
1d134c4d3f [svn-r707] Made correction to reading zeroes at end of file, in H5F_mpio_read. 1998-09-18 18:09:33 -05:00
Robert Kim Yates
8718c53e6b [svn-r706] Added must_convert parameter to sconv->read and sconv->write functions
so that reads/writes can proceed in the unoptimized way if necessary,
rather than simply failing if they can't be optimized.
1998-09-18 18:08:09 -05:00
Robb Matzke
d3c8def6aa [svn-r705] Snapshot 1998-09-18 04:20:09 -05:00
Robb Matzke
50e980f28e [svn-r704] Snapshot 1998-09-17 04:20:17 -05:00
Frank Baker
971c7617db [svn-r703] Added NCSA header, title bar, and footer. 1998-09-16 15:48:59 -05:00
Frank Baker
929051eae4 [svn-r702] Spelling corrections in comments. No changes to code. 1998-09-16 08:57:56 -05:00
Robb Matzke
f7b0fee6ef [svn-r701] Snapshot 1998-09-16 04:20:11 -05:00
Quincey Koziol
51ff984269 [svn-r699] Updated version number for release. 1998-09-15 16:50:28 -05:00
Frank Baker
d38baac55f [svn-r698] Corrected octal apostrophe problem.
Clarifying edit re: named datatypes.
Assorted spelling corrections and minor edits.
1998-09-15 16:00:50 -05:00
Frank Baker
5e6d6c51b8 [svn-r697] Replaced examples 1-8 with new code.
Reordered examples to coincide with the sequence of use within the document.
Moved NATIVE and named datatype discussions to be with the rest of the
	datatypes discussion.
Fixed arrays illustrated in tables so that empty cells show clearly.
Several dozen minor edits.
1998-09-14 17:33:27 -05:00
Frank Baker
220a0db842 [svn-r696] Added copyright notice/link.
Added dataspace mapping immage (H5.intro.datamap.gif).
Fixed a few formatting errors.
1998-09-11 16:18:33 -05:00
Frank Baker
a994a49fa9 [svn-r695] New dataspace mapping image for "Introduction to HDF5." 1998-09-11 16:16:30 -05:00
Frank Baker
57d3af6e2d [svn-r694] Copying developer's changes to doc/html/ version from doc/src/:
Revised the description of h5dump.
	Changed argument 'files' to 'file'.
	Added ../html/ to the DDL hyperlink.
1998-09-11 13:40:14 -05:00
Frank Baker
3672cb4c1c [svn-r693] Update for beta release. Complete CVS log messages can be found with
the versions of these files that are maintained in hdf5/doc/src/.
1998-09-11 11:00:43 -05:00
Frank Baker
f56f76eb1d [svn-r692] Modified loc_id parameter description to accomodate more more liberal
set of loc_id values.  Functions requiring a change:
	H5Acreate
	H5Dopen
	H5Gpop, H5Glink, H5Gget_objinfo, H5Gget_linkval,
		H5Gset_comment, H5Gget_comment
	H5Topen
1998-09-11 10:51:53 -05:00
Robb Matzke
b02e452be5 [svn-r691] Changes since 19980910
----------------------

./MANIFEST
	Removed duplicate Ragged.html

./doc/src/Glossary.html
	Changed 1.0 to 1.2 since 1.0 is the current development
	branch, 1.1 will be development after beta release, and 1.2
	will be the first complete release (see Version.html).

./test/dsets.c
./test/tstab.c
	Added more tests.
1998-09-11 10:39:28 -05:00
Ruey-Hsia Li
309f5f85dc [svn-r690] Revised the description of h5dump. 1998-09-11 10:31:46 -05:00
Frank Baker
a3de842d90 [svn-r689] Fixed broken hyperlink. 1998-09-11 10:29:53 -05:00
Frank Baker
1e3bbd6cbe [svn-r688] Added new documentation files:
./doc/html/Copyright.html
    ./doc/html/Environment.html
    ./doc/html/Ragged.html
    ./doc/src/Copyright.html
    ./doc/src/RM_H5R.html
    ./doc/src/Tools.html
1998-09-11 08:56:20 -05:00
Frank Baker
9043973a57 [svn-r687] New "Introduction to HDF5" for the beta release.
Extensive revisions and additions.
1998-09-11 08:38:30 -05:00
Ruey-Hsia Li
70c8b120c2 [svn-r686] Changed argument files to file.
Corrected the address of DDL.
1998-09-10 11:26:30 -05:00
Frank Baker
581af787af [svn-r685] Changed H5Gget_stat to H5Gget_objinfo. 1998-09-10 11:23:46 -05:00
Frank Baker
750856c53a [svn-r684] RM_H5Front.html
Added link to Tools.html
   Clean up formatting.
   Added RM_H5R.html, Ragged Arrays, but link is commented out for Beta.

RM_H5.html
   H5version       Removed patch number parameter.
   H5check_version Removed patch number parameter.
                   Corrected datatype to unsigned (was unsigned *).
                   Added missing "Purpose:" statement.

RM_H5A.html
   H5Aread/write   Added reference to data conversion limitations.

RM_H5D.html
   H5Dwrite        Added "Writing to an external dataset will fail
                   if the HDF5 file is not open for writing."
   H5Dread/write   Added reference to data conversion limitations.

RM_H5F.html
   H5Fflush        Added H5Fflush.

RM_H5G.html
   H5Gget_stat     Fixed formatting error.
                   Added mtime to the description of the data structure.
                   Added the following "Note:", per Robb's checkin mesage:
                   "Some systems will be able to record the time
                   accurately but unable to retrieve the correct time;
                   such systems (e.g., Irix64) will report an mtime
                   value of 0 (zero)."
                   Corrected successful return value.
   H5Gset_comment  Added the following statement to "Description:"
                   "Comments can be attached to any object that
                   has an object header, e.g., data sets, groups,
                   named data types, and data spaces,
                   but not symbolic links.

RM_H5P.html
	Cleaned up file formatting.

   H5Pset_filter         Added these three functions.
   H5Pget_nfilters
   H5Pget_filter

   H5Pget_deflate        Removed these three functions.  (Actually,
   H5Pset_compression    they are commented out, in case they should
   H5Pget_compression    be reinstated.)

RM_H5R.html
   Intial version of H5R reference manual entry, but still largely
   just a template.
   Not yet ready for distribution.
   Links to this document are currently commented out.

RM_H5S.html
   H5S_set_extent_simple Changed name to H5Sselect_extent_simple.
	now: H5Sselect_extent_simpl
   H5Sselect_npoints  Corrected return value.
        Now: H5Sget_select_npoints
   H5Sget_class          Reinstated to RM.  Changed name.
	now: H5Sget_space_type

   H5Soffset_simple      Added these 6 functions.  The there is a
   H5Sextent_copy        link to Dataspaces.html for the 10 "not yet
   H5Sset_extent_none    implemented (NYI)" functions.
   H5Sselect_all
   H5Sselect_none
   H5Sselect_valid

RM_H5T.html
   Added the following datatypes (though the list of native datatypes
   is commented out):
	H5T_NATIVE_HSIZE
	H5T_NATIVE_HSSIZE
	H5T_NATIVE_HERR
	H5T_NATIVE_HBOOL


Tools.html
   Corrected h5ls and h5repart sections.

Glossary.html
   Unlinked for Beta.

Copyright.html
   New file.
   Copyright statement, linked into User's Guide and Reference Manual.

General
   Changed the following function names:
	From:                       To:
	H5version                   H5get_libversion
	H5vers_check                H5check_version
	H5Anum_attrs                H5Aget_num_attrs
	H5Fget_create_template      H5Fget_create_plist
	H5Fget_access_template      H5Fget_access_plist
           And associated "template" -> "property list" edits.
	H5Gstat                     H5Gget_stat
	H5Sextent_npoints           H5Sget_simple_extent_npoints
	H5Sextent_ndims             H5Sget_simple_extent_ndims
	H5Sextent_dims              H5Sget_simple_extent_dims
	H5Sget_class                H5Sget_simple_extent_type
	H5Sselect_npoints           H5Sget_select_npoints
   Added links to Tools.html and RM_H5R.html (Ragged Arrays),
      though link to RM_H5R.html is commented out for now.
1998-09-10 10:40:15 -05:00
Robb Matzke
d07894304f [svn-r683] ./tools/h5ls.c
Changed usage message.
1998-09-10 09:18:17 -05:00
Robb Matzke
a56bf73058 [svn-r682] *** empty log message *** 1998-09-10 09:17:59 -05:00
Frank Baker
858bf7813a [svn-r681] Environment.html
New file.
   Environmental variables and configuration parameters.

Copyright.html
   New file.
   Copyright statement, linked into User's Guide and Reference Manual.
1998-09-10 08:59:48 -05:00
Frank Baker
dd99ecc1bc [svn-r680] H5.user.html
A little editorial cleanup.
   Added link to Ragged.html, Ragged Arrays.
   Added link to Environment.html, Environmental Variables and
	Configuration Parameters.
   Added link to Copyright.html.

Ragged.html
   Added "Use at your own risk" notice.

Environment.html
   New file for environmental variables and configuration parameters.

Datatypes.html
   Added the following datatypes:
	H5T_NATIVE_HSIZE
	H5T_NATIVE_HSSIZE
	H5T_NATIVE_HERR
	H5T_NATIVE_HBOOL
   Section 8, "Data Conversions"
	Added named link tag to catch hyperlink from RM.
	Revised "Note:" to emphasize limited inate data-conversion capability.

Copyright.html
   New file.
   Copyright statement, linked into User's Guide and Reference Manual.

Glossary.html
   Unlinked for Beta.

General
   Changed email link at bottom of "user guide level documents"
	(as contrasted with "developer guide level documents"
	listed on the lower half of the User's Guide front page)
	to HDF Help Desk, hdfhelp@ncsa.uiuc.edu.
   Changed the following function names:
	From:                       To:
	H5version                   H5get_libversion
	H5vers_check                H5check_version
	H5Anum_attrs                H5Aget_num_attrs
	H5Fget_create_template()    H5Fget_create_plist()
	H5Fget_access_template()    H5Fget_access_plist()
	H5Gstat                     H5Gget_stat
	H5Sextent_npoints           H5Sget_simple_extent_npoints
	H5Sextent_ndims             H5Sget_simple_extent_ndims
	H5Sextent_dims              H5Sget_simple_extent_dims
	H5Sget_class                H5Sget_simple_extent_type
	H5Sselect_npoints           H5Sget_select_npoints
1998-09-09 17:48:37 -05:00
Frank Baker
2a7c272a69 [svn-r679] User-level descriptions of the HDF5 interactive tools:
h5dump
	h5ls
	h5repart
This page is accessed via the HDF5 Reference Manual (RM_H5Front.html).
1998-09-09 14:23:06 -05:00
Robb Matzke
ba9581e64c [svn-r678] ./bin/h5vers
./bin/release
	Fixed some minor things to make them work better.
1998-09-09 13:19:59 -05:00
Robb Matzke
b44eb55b33 [svn-r677] ./MANIFEST
Removed ./doc/html/H5.api.html
1998-09-09 13:19:18 -05:00
Frank Baker
d4e41165c4 [svn-r676] H5.api.html is superseded by RM_H5*.html family of files. (This change
occured at the time of the second alpha release.)
1998-09-09 13:11:31 -05:00
Quincey Koziol
586a7e645b [svn-r675] Added some missing files. 1998-09-09 12:31:19 -05:00
Robert Kim Yates
bd07e10e56 [svn-r674] Removed no-longer valid comment from H5F_low_class_t definition. 1998-09-08 18:59:01 -05:00
Robb Matzke
b5e2752ad6 [svn-r673] Changes since 19980908
----------------------

./COPYING
	Reformatted as text instead of C.  Removed zlib crew from the
	list of contributors since no zlib code is actually in the
	hdf5 library.

./INSTALL
./INSTALL.ascired
./MANIFEST
	Minor updates for Beta release including version number
	change.

./INSTALL_MAINT
	Added information about making a release.

./RELEASE
	Updated function list based on public header files.

./bin/checkposix
	Got rid of complaints about some obvious things.

./doc/html/H5.api.html
./doc/html/RM_H5F.html
./src/H5F.c
./src/H5Fpublic.h
./test/tfile.c
	Changed H5Fget_create_template() and H5Fget_access_template()
	to H5Fget_create_plist() and H5Fget_access_plist() since that
	conforms better to lots of other names.

./doc/html/Datatypes.html
./doc/html/ExternalFiles.html
./doc/html/Files.html
./doc/html/H5.api.html
./doc/html/H5.sample_code.html
./doc/html/RM_H5F.html
./doc/html/RM_H5Front.html
	Changed `template' to `property list', etc.

./doc/html/Ragged.html	   [NEW]
	Documentation for ragged arrays.

./src/H5Iprivate.h
./src/H5Ipublic.h
./src/H5I.c
	Changed the scope of some symbols to be more local.

./src/H5.c
./src/H5AC.c
./src/H5D.c
./src/H5E.c
./src/H5F.c
./src/H5Ffamily.c
./src/H5Fistore.c
./src/H5Flow.c
./src/H5Fsec2.c
./src/H5Fsplit.c
./src/H5Fstdio.c
./src/H5G.c
./src/H5Gnode.c
./src/H5HG.c
./src/H5I.c
./src/H5O.c
./src/H5Ocomp.c
./src/H5Odtype.c
./src/H5Oefl.c
./src/H5Omtime.c
./src/H5Oname.c
./src/H5P.c
./src/H5S.c
./src/H5Shyper.c
./src/H5Tbit.c
./src/H5Tconv.c
./src/H5V.c
./src/H5Z.c
./src/H5private.h
	Fixed some violations of our naming scheme by adding HD to the
	beginning of all Posix functions.
1998-09-08 14:15:44 -05:00
Robb Matzke
72a58073cd [svn-r672] Changes since 19980904
----------------------

./MANIFEST
./bin/release
./bin/snapshot
	The format of the MANIFEST file has been relaxed -- comments
	and blank lines should no longer confuse the tools that use
	it.

	As before, this file should contain a list of *all* files that
	are part of HDF5, which means all files which are managed by
	CVS/SVF.  However, files can be marked so they're not part of
	a release by adding _DO_NOT_DISTRIBUTE_ after the file name.

	I've removed all the *.obj files from the distribution by
	adding _DO_NOT_DISTRIBUTE_ after their names.  I also removed
	the old white-papers that might not apply to the current
	version of the library and documentation about chunking
	performance since it's wrong now that chunk caching is
	implemented. Everyone please check the files you're
	responsible for to make sure that they should really be part
	of a release.

	To get a list of all files use
	   grep '^\.' MANIFEST | cut -f1

	To get a list of files for distribution use:
	   grep '^\.' MANIFEST | grep -v _DO_NOT_DISTRIBUTE_

	(These commands assume tabs in the MANIFEST file.  If the file
	might contain spaces then run it through `unexpand' or `tr'
	first).

./configure.in
./configure
./src/H5config.h.in
./test/ragged.c
	Check for sigaction().

./test/Makefile.in
	The `clean' target removes the timing tests.
1998-09-08 08:39:18 -05:00
Robb Matzke
fbacf0337a [svn-r671] Changes since 19980904
----------------------

./MANIFEST
./bin/release
./bin/snapshot
	The format of the MANIFEST file has been relaxed -- comments
	and blank lines should no longer confuse the tools that use
	it.

	As before, this file should contain a list of *all* files that
	are part of HDF5, which means all files which are managed by
	CVS/SVF.  However, files can be marked so they're not part of
	a release by adding _DO_NOT_DISTRIBUTE_ after the file name.

	I've removed all the *.obj files from the distribution by
	adding _DO_NOT_DISTRIBUTE_ after their names.  I also removed
	the old white-papers that might not apply to the current
	version of the library and documentation about chunking
	performance since it's wrong now that chunk caching is
	implemented. Everyone please check the files you're
	responsible for to make sure that they should really be part
	of a release.

	To get a list of all files use
	   grep '^\.' MANIFEST | cut -f1

	To get a list of files for distribution use:
	   grep '^\.' MANIFEST | grep -v _DO_NOT_DISTRIBUTE_

	(These commands assume tabs in the MANIFEST file.  If the file
	might contain spaces then run it through `unexpand' or `tr'
	first).

./configure.in
./configure
./test/ragged.c
	Check for sigaction().

./test/Makefile.in
	The `clean' target removes the timing tests.
1998-09-08 08:38:29 -05:00
Robb Matzke
fb838d175c [svn-r670] Fixed a bandwidth calculation for the partial read test. 1998-09-04 10:20:58 -05:00
Robb Matzke
e589c2ed3d [svn-r669] Added missing file from tools directory 1998-09-04 10:20:29 -05:00
Ruey-Hsia Li
9384202d42 [svn-r668] Tempory turned off the automatic test. 1998-09-04 10:02:10 -05:00
Ruey-Hsia Li
970f5f068c [svn-r667] Revised output because now the h5dump tests are done in
the directory testfiles.
1998-09-03 15:47:17 -05:00
Ruey-Hsia Li
23d08b3509 [svn-r666] Added TESTS entries to Makefile.in for automatic tests.
Initial version of testh5dump.sh which runs the h5dump tests.
1998-09-03 15:46:32 -05:00
Ruey-Hsia Li
2bbe015b85 [svn-r665] HDF5 binary files for h5dump tests. Generated by h5dumptst.c. 1998-09-03 15:43:57 -05:00
Ruey-Hsia Li
5a1be3bda3 [svn-r664] Initial version of program that generates hdf5 binary files for
h5dump tests.
1998-09-03 15:20:02 -05:00
Ruey-Hsia Li
85bd27dbd7 [svn-r663] Expected output for the h5dump test. 1998-09-03 15:16:05 -05:00
Robb Matzke
7081f2d6e6 [svn-r662] Fixed a typo in a string 1998-09-03 10:31:04 -05:00
Robb Matzke
ea951145b8 [svn-r661] Skipping a test is not the same as failing. 1998-09-03 10:30:11 -05:00
Robb Matzke
37247875fe [svn-r660] Fixed timeout problems on slow machines 1998-09-03 09:59:51 -05:00
Robb Matzke
f6e70a6142 [svn-r659] Fixed a parallel build problem; make -j should work again now. 1998-09-03 09:59:27 -05:00
Robb Matzke
6589650eea [svn-r658] Changes since 19980901
----------------------

./test/dtypes.c
	Got rid of one of some of the `increases alignment' warnings.

./test/tselect.c
	Got rid of an unused variable.
1998-09-03 08:49:48 -05:00
Robb Matzke
40bf5deddd [svn-r657] Snapshot 1998-09-03 04:20:38 -05:00
Robert Kim Yates
2041938568 [svn-r656] Changed error report for failed optimized parallel xfers
in H5D_read and H5D_write.
1998-09-02 18:52:33 -05:00
Robert Kim Yates
07f1057ec7 [svn-r655] Changed H5F_low_write's treatment of eof in nonblock parallel writes. 1998-09-02 16:52:25 -05:00
Quincey Koziol
97f56b57a0 [svn-r654] Fixed last bug (hah! ;-) for beta release, changed H5Gget_stat to H5Gget_objinfo
and renamed internal functions to match up with the renamed API functions.
1998-09-02 16:16:24 -05:00
Quincey Koziol
8fde009d73 [svn-r653] Removed weird binary character in comment. (Probably copyright mark, but it
was confusing cvs)
1998-09-02 16:11:04 -05:00
Robert Kim Yates
0a6f9f16d8 [svn-r652] Removed H5Fmpioprivate.h, moved its contents to H5Fprivate.h. 1998-09-01 17:42:00 -05:00
Robert Kim Yates
260af101fa [svn-r651] Changed name: call H5Sget_simple_extent_dims instead of old H5Sextent_dims. 1998-09-01 17:31:30 -05:00
Robert Kim Yates
1af0223f4e [svn-r650] Eliminated H5Fmpioprivate.h, moved contents to H5Fprivate.h. 1998-09-01 16:42:41 -05:00
Robert Kim Yates
caefe38d87 [svn-r649] Eliminated H5Fmpioprivate. 1998-09-01 16:40:50 -05:00
Frank Baker
ac784dcef4 [svn-r648] Make subheading numbering consistent and fix error in level 3 header
numbering sequence.

Add internal named link to "File Families" section (for references
from Reference Manual).
1998-09-01 16:18:42 -05:00
Elena Pourmal
f4567c67fb [svn-r647] Source code was reformatted according to the hdf5 programming standards. 1998-09-01 11:19:23 -05:00
Elena Pourmal
ebbe57c142 [svn-r646] Source code was reformatted according to the hdf5 programming standards. 1998-09-01 10:57:33 -05:00
Elena Pourmal
94a9576ee7 [svn-r645] ./examples/h5_attribute.c
./examples/h5_select.c

                         Cosmetic changes to the source format

./examples/h5_chunk_read.c
./examples/h5_read.c

                         Third argument in the H5select_hyperslab
                         function had wrong datatype. Fixed.
1998-09-01 10:07:02 -05:00
Robb Matzke
697b9c5ad0 [svn-r644] Changes since 19980931
----------------------

./test/cmpd_dset.c
	Uncommented the last test again and there are still bugs.
1998-09-01 09:49:30 -05:00
Elena Pourmal
e145787beb [svn-r643] INSTALL : Section "for those who do not like to read" has been edited.
MANIFEST: New example files have been added.
1998-09-01 08:02:15 -05:00
Robb Matzke
96c626d42f [svn-r642] Snapshot 1998-09-01 04:19:50 -05:00
Quincey Koziol
4aa79bb211 [svn-r641] Changed function names for beta release. 1998-08-31 22:35:23 -05:00
Robert Kim Yates
5aa61b6fcf [svn-r640] Added __unused__ to H5S_mpio_spaces_xfer parameters pline and efl. 1998-08-31 16:46:36 -05:00
Elena Pourmal
65dea75ab8 [svn-r639] Two new examples h5_select.c and h5_attribute.c were added to the directory.
Makefile.in was modified to reflect those changes.

Tested on Sun Sparc ( baldric) and DEC Alpha (gondolin)
1998-08-31 16:36:28 -05:00
Robert Kim Yates
0d7ec99e1d [svn-r638] Added function prototypes. 1998-08-31 16:30:31 -05:00
Robert Kim Yates
0c6c4eeb60 [svn-r637] Added include H5Fmpioprivate.h 1998-08-31 16:28:11 -05:00
Ruey-Hsia Li
ca953eb331 [svn-r636] Removed warning messages during compilation.
Used H5Gstat to check object type.
Modified h5dumputil.c to reflect changes of h5tools.c
1998-08-31 14:52:53 -05:00
Robb Matzke
2ab2e14bb5 [svn-r635] Changes since 19980831
----------------------

./Makefile.in
	Running `make distclean' will not fail if one of the
	subdirectories has already been cleaned.

./config/BlankForm
./config/irix5.3
	Cleaned it up more.  Added better support/documentation for
	systems that have more than one compiler.

./config/alpha-dec-osf4.0	[NEW]
	Added a new config file as a result of testing on Jim Reus's
	machine.

./test/chunk.c
	Scaled down the testing range so we can actually run it
	interactively.

./tools/h5import.c
	Included <unistd.h> to get rid of warning for close().

./src/H5detect.c
	Seg-faults on Linux for some reason when NDEBUG is defined, so
	I just undef it at the top of the source.

./test/big.c
	Added a fflush().

./tools/h5ls.c
	The `-d' flag now works even when `-v' isn't specified.

./examples/h5_chunk_read.c
./examples/h5_compound.c
./examples/h5_extend_write.c
./examples/h5_group.c
./examples/h5_read.c
./examples/h5_write.c
	Indented according to hdf5 standards.

	Fixed compiler warnings
1998-08-31 14:21:23 -05:00
Albert Cheng
473452205d [svn-r634] *** empty log message *** 1998-08-31 14:07:58 -05:00
Robb Matzke
1e38c13785 [svn-r633] Changes since 19980828
----------------------

./RELEASE
	Updated with important changes I made since the second beta.

./src/H5A.c
./src/H5D.c
./src/H5Dprivate.h
./src/H5G.c
./src/H5Gprivate.h
./src/H5R.c
./src/H5Rprivate.h
./src/H5T.c
./src/H5Tprivate.h
	Any API function that used to take an `hid_t loc_id' followed
	by a `const char *name' can now take any type of object for
	the loc_id as long as the object is somehow associated with a
	file. Internally, H5G_loc() was modified to return an
	H5G_entry_t* instead of an H5G_t* so it's more general.

	Among other things, this allows one to retrieve information
	about an object like a named type or dataset without knowing
	the name of the type or dataset:

	    int
	    get_nlinks (hid_t obj)
	    {
	        H5G_stat_t	sb;
		if (H5Gstat(obj, ".", TRUE, &sb)<0) return -1;
		return sb.nlink;
	    }

./test/gheap.c
./test/istore.c
	These files needed a couple of changes because they call some
	of the internal functions whose H5G_t arguments changed to
	H5G_entry_t.

./src/H5A.c
	Got rid of all the switch statements for getting symbol table
	entries for varous objects and replaced them with a call to
	H5G_loc() allowing attributes to automatically apply to any
	type of object that belongs to a file.

./test/Makefile.in
	Moved the ragged array tests from the normal list of tests to
	the `make timings' target.

./test/ragged.c
	Added rewrite tests -- rewrite the rows of a dataset changing
	the number of rows and the length of each row.

./test/mtime.c
	Added a test that checks that H5Gstat() can be called with a
	dataset as the first argument.

./src/H5S.c
	Added #ifdef HAVE_PARALLEL around code to check for the
	HDF5_MPI_OPT_TYPES environment variable because the global
	variable that gets set is #ifdef'd.

./bin/release
	bzip2 uses .bz2 as the file extension.
1998-08-31 08:46:47 -05:00
Robert Kim Yates
e4053f38c2 [svn-r632] Extended comment about elimination of redundant metadata writes. 1998-08-28 19:17:20 -05:00
Robert Kim Yates
c435f33870 [svn-r631] Added H5Fmpioprivate.h 1998-08-28 18:40:13 -05:00
Robert Kim Yates
1373661a78 [svn-r630] Added code to eliminate redundant writes of metadata,
so only proc 0 writes it to disk.  The elimination is activated
only when the environment variable HDF5_MPI_1_METAWRITE is nonzero;
otherwise all processes that opened the file will write the metadata to disk.
1998-08-28 18:37:58 -05:00
Robert Kim Yates
96c2b5fec4 [svn-r629] Put ifdef HAVE_PARALLEL around init of H5_mpi_opt_types_g. 1998-08-28 17:59:41 -05:00
Robert Kim Yates
01b8b7cc52 [svn-r628] MPI buffer and file type optimization is bypassed,
unless the environment variable HDF5_MPI_OPT_TYPES is nonzero.
1998-08-28 14:08:33 -05:00
Robb Matzke
1b1be9918c [svn-r627] Changes since 19980827
----------------------

./src/H5G.c
	Fixed a link count on groups.  Groups were always created with
	a link count of zero instead of one.

./src/H5Gpublic.h
	Added H5G_NTYPES so applications can easily declare arrays
	which are indexed by object type.

./src/H5O.c
	Calling `H5O_link(&ent,0)' will succeed when the file is open
	for read only because it's the only way to get the object's
	current link count.

./tools/h5ls.c
	Can take non-group object names on the command line (and
	multiple objects).  Reorganized to be more extendible. The
	link count is displayed for `-v'.

./src/H5F.c
	Dumping of cache statistics is controlled by only the
	HDF5_DEBUG environment variable and not the H5F_ACC_DEBUG flag
	for H5Fopen() and H5Fcreate() since this makes it similar to
	the other debugging options.

./src/H5R.c
./test/ragged.c
./test/Makefile.in
	Tests pass but still a little work left to be done.
1998-08-28 10:24:12 -05:00
Robert Kim Yates
69ed3c270a [svn-r626] Turned some MPI hyperslab type optimization back on
(may coalesce contiguous blocks of outer dims, but won't collapse inner dims).
1998-08-28 00:01:36 -05:00
Robert Kim Yates
2ac39bef22 [svn-r625] Have temporarily turned off coalescing optimizations in MPI hyperslab types
until I can test and debug them more fully.
Transfers using MPI buf and file types are correct, but this version
doesn't attempt to optimize the types by coalescing contiguous blocks.
1998-08-27 22:59:23 -05:00
Ruey-Hsia Li
d06b3afc6c [svn-r624] Removed <hardlink>.
Added <nlink>opt to <dataset> and <group>.
1998-08-27 16:44:08 -05:00
Robert Kim Yates
6d223fa00f [svn-r623] Cosmetic change: H5F_mpio_read uses local var use_types_this_time in condition. 1998-08-27 14:04:51 -05:00
Quincey Koziol
1100b30ddc [svn-r622] Fixed memory leak in point selections. 1998-08-27 12:56:50 -05:00
Quincey Koziol
1908710891 [svn-r621] Re-checkin memory fixes 1998-08-27 12:38:24 -05:00
Robb Matzke
eb5e01d37c [svn-r620] Changes since 19980825
----------------------

./MANIFEST
./src/H5R.c		[NEW]
./src/H5Rprivate.h	[NEW]
./src/H5Rpublic.h	[NEW]
./src/Makefile.in
./src/hdf5.h
./test/ragged.c		[NEW]
	Preliminary support for 2d ragged arrays for Mark Miller and
	Jim Reus.  Not fully implemented yet. The test is not actually
	part of `make test' because we still have some memory problems.

./src/H5E.c
./src/H5Epublic.h
	Added H5E_RAGGED as a major error number.

./bin/release
	Checks the MANIFEST file against `svf ls' on systems that have
	it.

./bin/trace
	Fixed a bug that caused arguments of type `void *x[]' to not
	be handled.

./src/H5.c
	Removed unused variables and changed a couple types to
	fix compiler warnings.

	Added tracing support for ragged array object ID's and arrays
	of pointers.

./src/H5D.c
	H5Dcreate() will complain if either of the property lists are
	invalid (instead of using the default).

./src/H5D.c
./src/H5Dprivate.h
	Split H5Dget_space() into an API and internal function so it
	can be called from the new ragged array layer.

./src/H5Fistore.c
	Fixed warnings about unsigned vs. signed comparisons.

./src/H5Flow.c
	Fixed a warning about a variable being shadowed in the MPI-IO
	stuff.

./src/H5Iprivate.h
./src/H5Ipublic.h
	Added the H5_RAGGED atom group.

./src/H5Shyper.c
	Fixed some freeing-free-memory errors that resulted when
	certain arrays were freed but the pointers were left in the
	data structures.  I simply set the pointers to null after they
	were freed.

./src/H5Sprivate.h
./src/H5Sselect.c
	Split the H5Sselect_hyperslab() function into an API and a
	private function so it could be called from the ragged array
	layer.

	Added H5S_SEL_ERROR and H5S_SEL_N to the switch statements to
	get rid or compiler warnings.

./src/H5Tconv.c
	Removed a misleading comment.

./test/bittests.c
	Fixed a warning about a printf().

./test/cmpd_dset.c
	Fixed warnings about unused variables because of test #11
	being commented out.

./bin/trace
	Shortened the right margin for the output to allow room for
	the `);' at the end of the TRACE() macros.
1998-08-27 11:48:50 -05:00
Robb Matzke
11f1b67c87 [svn-r619] Snapshot 1998-08-27 04:20:42 -05:00
Robert Kim Yates
3500281e8c [svn-r618] Corrected comment in H5F_low_write about MPI derived datatype writes. 1998-08-26 17:13:56 -05:00
Robert Kim Yates
9124be67f6 [svn-r617] Added optimization to coalesce outer dims of hyperslab,
and changed error return of H5S_mpio_spaces_xfer to simple FAIL
in case file layout is not contiguous (so that the xfer will still be
done, but in the old chunk-by-chunk method).
1998-08-26 12:51:19 -05:00
Robb Matzke
8fc352b7cd [svn-r616] Snapshot 1998-08-26 04:20:28 -05:00
Quincey Koziol
75a293691e [svn-r615] Fixed memory leaks & duplicates frees. 1998-08-25 15:46:17 -05:00
Robb Matzke
3ba4755c33 [svn-r614] Snapshot 1998-08-24 04:20:30 -05:00
Robb Matzke
8cf69185f2 [svn-r613] Snapshot 1998-08-23 04:20:33 -05:00
Robb Matzke
1fc23babac [svn-r612] Snapshot 1998-08-22 04:20:35 -05:00
Ruey-Hsia Li
4f2d4020d8 [svn-r611] Removed warning messages during compilation. 1998-08-21 12:22:14 -05:00
Ruey-Hsia Li
278a9b9486 [svn-r610] Made ddl.html consistent with dumper output. 1998-08-21 10:44:36 -05:00
Robb Matzke
49133159c8 [svn-r609] Debugging.html
Fixed errors

H5.c
	Fixed core dump with setvbuf() for debugging.

H5Fistore.c
	Fixed bug with sparse datasets.

H5Omtime.c
	Found a typo in "Posix Programmer's Guide".  The `%z' in the
	strftime() should be `%Z' instead.

H5T.c
H5Tpublic.h
	Improved api tracing for H5Tinsert_array().

h5tools.c
	Doesn't dump core for empty datasets.
1998-08-20 17:57:35 -05:00
Robb Matzke
2c61dcc3ee [svn-r608] Snapshot 1998-08-20 04:20:15 -05:00
Albert Cheng
f5fb0d9db9 [svn-r607] Added new entries for source files of tools/h5dump. 1998-08-19 19:22:24 -05:00
Robb Matzke
e455040749 [svn-r606] Debugging can be enabled/disabled at runtime though code is still
conditionally included at compile time.  Tracing and debugging share
the same environment variable.  All is documented in Debugging.html.
1998-08-19 17:46:31 -05:00
Albert Cheng
4322bfe90a [svn-r605] Added in h5dump tools created by Ruey-Hsia.
Renamed what was called h5dump.c to h5tools.c.
Changed Makefile.in to reflect all the changes.
(Make dependence is to be processed later.)

Tested in Solaris 2.5
1998-08-19 16:46:55 -05:00
Albert Cheng
9945c358aa [svn-r604] Added #ifdef HAVE_PARALLEL macro so that the code
is compiled only in parallel version but an "empty"
source in the serial version.

Tested in solaris 2.5.
1998-08-19 09:07:14 -05:00
Robb Matzke
93e5190bb1 [svn-r603] Changes since 19980818
----------------------

./src/H5.c
        Fixed an argument promotion bug in HDfprintf()

./src/H5Fistore.c
        Fixed a array bounds read error.

./src/H5HG.c
        Fixed uninitialized (but unused) data appearing in the hdf5
        file, a potential security problem.

./src/H5T.c
./src/H5Tpublic.h
        Added new data types for hdf5 types: H5T_NATIVE_HSIZE,
        H5T_NATIVE_HSSIZE, H5T_NATIVE_HERR, and H5T_NATIVE_HBOOL. I
        did not add H5T_NATIVE_HID since I couldn't think of a reason
        that it would be stored in a file anyway.
1998-08-18 18:19:27 -05:00
Albert Cheng
da3fcf286a [svn-r602] Added entry of H5Smpio.c. 1998-08-18 13:26:32 -05:00
Robb Matzke
d27a31461c [svn-r601] Changes since 19980814
----------------------

./src/H5Fistore.c
        Fixed a bug that caused the wrong number of chunk offsets to
        be read or written from the file.

./src/H5Z.c
        Fixed a memory bug.

./test/dtypes.c
        Removed redundant tests.

./bin/snapshot
        Removed Perl code from a shell script. Oops :-)

./src/H5D.c
        Removed cvs merge conflicts.

./src/H5Omtime.c
        Fixed a typo in the Irix5.3 code.

./src/H5S.c
        Fixed a memory leak.

./src/H5Shyper.c
        Fixed a bad call to malloc() that didn't allocate enough
        memory. Reordered a comparison to eliminate an array bounds
        read error.
1998-08-18 12:14:43 -05:00
Robb Matzke
d9b9ed853d [svn-r600] *** empty log message *** 1998-08-17 13:08:00 -05:00
Robert Kim Yates
a1e8ce1d81 [svn-r599] Added code to convert HDF dataspace selections to MPI datatypes. 1998-08-17 10:20:56 -05:00
Robert Kim Yates
8ed18c9e73 [svn-r598] Added code to convert HDF dataspace selections to MPI datatypes. 1998-08-17 10:15:19 -05:00
Robert Kim Yates
05db4b09cd [svn-r597] Functions to convert HDF dataspace selections to MPI datatypes. 1998-08-17 10:13:45 -05:00
Robert Kim Yates
62176d7836 [svn-r596] Added conversion to MPI datatypes. 1998-08-17 10:10:55 -05:00
Robert Kim Yates
c7270e7e36 [svn-r595] Added code to convert HDF dataspace selections to MPI-IO datatypes. 1998-08-17 10:09:19 -05:00
Robb Matzke
25b825965e [svn-r594] Changes since 19980813
----------------------

./src/H5G.c
./src/H5Gpublic.h
./test/links.c
	Fixed a bug in H5Gstat() that caused the wrong information to
	be returned sometimes.  Added check for named data types.

./test/extend.c
./test/links.c
./test/mtime.c
	Added `all tests passed' messages.
1998-08-14 16:05:16 -05:00
Albert Cheng
a7e57b2779 [svn-r593] Added couple banner lines around the "Testing ...." message and
also a trailing blank line to make it easier to identify the
output of each test program.
1998-08-14 14:39:41 -05:00
Robert Kim Yates
692a2f0859 [svn-r592] Added testpar/Makefile.ibmsp. 1998-08-13 16:11:03 -05:00
Robert Kim Yates
d809d38b01 [svn-r591] For IBM SP using mpich v1.1.1 and ROMIO. 1998-08-13 15:50:12 -05:00
Robert Kim Yates
1181d87cbe [svn-r590] Cache numeric type sizes and C std headers. 1998-08-13 15:48:57 -05:00
Robert Kim Yates
d97121d35c [svn-r589] Use mpich v1.1.1 and ROMIO. 1998-08-13 15:48:09 -05:00
Robb Matzke
678eb19d71 [svn-r588] Changes since 19980810
----------------------

./MANIFEST
./src/H5Ssimp.c		[REMOVED]
./src/Makefile.in
	Removed H5Ssimp.c since it was no longer used.

./bin/snapshot
	Fixed a few minor things to make it work better.

./src/H5D.c
	Cleaned up H5D_read() and H5D_write() by combining some code
	in each. Added timing calls around the data space calls when
	H5S_DEBUG is defined.

./src/H5S.c
./src/H5Sall.c
./src/H5Shyper.c
./src/H5Spoint.c
./src/H5Sprivate.h
	Changed H5S_find() so it returns a table entry again instead
	of copying the data into a caller-supplied buffer.  This
	allows the timers to be stored in the table and updated by the
	caller.  Added H5S_register() to register new table entries
	and added entry creation to all the H5S selection
	methods. Also changed lots of global functions to static
	functions.

./src/H5Fistore.c
	Fixed a memory bug in the raw data cache.
1998-08-13 15:17:47 -05:00
Frank Baker
349b9094a0 [svn-r587] Added H5Gset_comment and H5Gget_comment. 1998-08-12 09:16:39 -05:00
Albert Cheng
06d4abfb4d [svn-r586] The for loop in debugging statistics of H5Z_term_interface had
a typo, causing the debugging to try dump H5Z_table beyond what
is being used.  Changed "<=" to "<".
1998-08-11 18:45:03 -05:00
Robb Matzke
ed85f64ee7 [svn-r585] Fixed Step 11 but didn't turn it on yet because of a failed assertion. 1998-08-10 14:54:35 -05:00
Robb Matzke
9754e9373b [svn-r584] Changes since 19980806
----------------------

./doc/html/Datatypes.html
./doc/html/H5.format.html
./src/H5.c
./src/H5Odtype.c
./src/H5T.c
./src/H5Tconv.c
./src/H5Tpkg.h
./src/H5Tpublic.h
./test/dtypes.c
	Changed the values of the H5T_str_t type in order to make a
	distinction between C's null terminated strings and strings
	which are not null terminated.

	The string character set and padding method are saved to the
	hdf5 file instead of using defaults.

	Added conversion function from one fixed-length string type
	to another.

./test/chunk.c
	Fixed to work with new filter API
1998-08-10 13:15:14 -05:00
Robb Matzke
1d0b2915c2 [svn-r583] Snapshot 1998-08-10 04:14:06 -05:00
Robb Matzke
acf41defc1 [svn-r582] Snapshot 1998-08-09 04:14:06 -05:00
Robb Matzke
6f0ec99bdd [svn-r581] Snapshot 1998-08-08 04:14:12 -05:00
Robb Matzke
d99a7a8ab0 [svn-r580] Snapshot 1998-08-07 04:14:16 -05:00
Robb Matzke
acd04a1aa6 [svn-r579] Changes since 19980806
----------------------

./config/solaris2.5
	Hopefully set up now so it honors the CC and CFLAGS variables
	and understands solaris cc flags.

./test/big.c
	Checks to see if creating lots of large sparse files exceeds
	the user disk quota and skips the test.  It also checks that
	we can actually open ~64 files at once.

./doc/html/Files.html
./src/H5A.c
./src/H5Aprivate.h
./src/H5F.c
./src/H5Fpublic.h
	Added the H5Fflush() function which takes any object as an
	argument as long as the object is in some way associated with
	a file.  This required an H5A_entof()

./src/H5.c
./src/H5Flow.c
	The `%a' format of HDfprintf() now allows a field width and
	justification flag etc, like the other formats.  The old
	H5F_addr_print() was recoded to call HDfprintf() instead of
	vice versa.
1998-08-06 16:32:33 -05:00
Robb Matzke
de87544235 [svn-r578] Changes since 19980805
----------------------

./MANIFEST
	Replaced Compression.html with Filters.html

./doc/html/Filters.html
./src/H5Ocomp.c
./src/H5P.c
./src/H5Ppublic.h
./src/H5Z.c
./src/H5Zprivate.h
	Added two extra arguments to H5Pget_filter() in order to
	retrieve the filter name.  The name is the name registered for
	the filter with H5Zregister(), but if the dataset creation
	property originally came from an existing file then the name
	is that which is stored in the file.

./tools/h5ls.c
	The `-v' option now prints the names of the filters.

./src/H5B.c
./src/H5Fistore.c
./src/H5O.c
./src/H5Oefl.c
./src/H5Oprivate.h
./src/H5P.c
	Plugged a memory leak.

./src/H5MMprivate.h
	H5MM_malloc(0) and H5MM_calloc(0) actually allocate a single
	byte in order to be sure that we get a valid pointer.

./src/H5S.c
./src/H5Sselect.c
	Fixed pointer->integer conversions in error return values in
	three places.
1998-08-06 14:39:22 -05:00
Robb Matzke
430b1a9c84 [svn-r577] Testing 1998-08-06 08:09:03 -05:00
Robb Matzke
1ba806475b [svn-r576] *** empty log message *** 1998-08-06 08:06:20 -05:00
Robb Matzke
e2be5b3d49 [svn-r575] Snapshot 1998-08-06 04:13:59 -05:00
Robb Matzke
7ede57157f [svn-r574] *** empty log message *** 1998-08-05 17:26:08 -05:00
Robb Matzke
9d5ee01b17 [svn-r573] *** empty log message *** 1998-08-05 17:25:04 -05:00
Robb Matzke
87cafe6f15 [svn-r572] *** empty log message *** 1998-08-05 17:24:35 -05:00
Robb Matzke
8a37120968 [svn-r571] *** empty log message *** 1998-08-05 17:24:18 -05:00
Robb Matzke
32295ad53d [svn-r570] *** empty log message *** 1998-08-05 17:23:51 -05:00
Robb Matzke
002b1494b7 [svn-r569] Changes since 19980731
----------------------

./bin/release
	Added ./Makefile to the distribution again -- it got lost in
	the changes last week although it isn't all that important a
	file since it gets clobbered by configure anyway.

./bin/trace
./doc/html/Filters.html
./doc/html/H5.format.html
./doc/html/H5.user.html
./src/H5.c
./src/H5D.c
./src/H5Dprivate.h
./src/H5E.c
./src/H5Epublic.h
./src/H5Farray.c
./src/H5Fistore.c
./src/H5Fprivate.h
./src/H5O.c
./src/H5Ocomp.c
./src/H5Oprivate.h
./src/H5P.c
./src/H5Ppublic.h
./src/H5Sall.c
./src/H5Shyper.c
./src/H5Spoint.c
./src/H5Sprivate.h
./src/H5Ssimp.c
./src/H5Z.c
./src/H5Zprivate.h
./src/H5Zpublic.h
./src/hdf5.h
./test/dsets.c
./tools/h5ls.c
	Added the data filter pipeline, a generalization of the
	compression stuff which allows things like checksums,
	encryption, compression, performance monitoring, etc.  See
	./doc/html/Filters.html for details -- it replaces the
	Compression.html doc.

./src/H5T.c
	Cleaned up debugging output.

./config/linux
	Added checks for egcs and pgcc and changed optimization flags
	for the compilers.

./src/H5G.c
./tools/h5dump.c
	Fixed compiler warnings in these files and others.

./configure.in
./src/H5private.h
./test/mtime.c
	Added a check for difftime() and defined HDdifftime() to do
	something else on systems that don't have difftime().
1998-08-05 17:22:59 -05:00
Robb Matzke
99506091b3 [svn-r568] Snapshot 1998-08-05 04:14:40 -05:00
Robb Matzke
c3074b5cb4 [svn-r567] Snapshot 1998-08-04 04:14:15 -05:00
Quincey Koziol
48f8e55c0a [svn-r566] Fixed offset code [finally :-/ ] for selections. 1998-08-03 19:30:35 -05:00
Paul Harten
b91c283315 [svn-r565] Purpose:
Documentation

Solution:
    Reference the README file in testpar directory for expansion on
    how to input User preferered file prefixes.

Platform tested:
    ASCI Red
1998-08-03 15:45:06 -05:00
Paul Harten
96106282bb [svn-r564] Purpose:
New feature

Problem:
    Source code must be modified prior to compiling to allow full
    filenames to contain preferred user directories. Source must be
    recompiled everytime the preferred user directory changes.

Solution:
    Instead, allow file prefixes preferred by user to be passed at
    runtime using the arguments "-f <prefix>".  The "-f" to signal the
    next argument is to be a file prefix, and the "<prefix>" to be the
    actual prefix used.

Platform tested:
    ASCI Red
1998-08-03 15:22:23 -05:00
Robb Matzke
6c6d0c90a2 [svn-r563] Snapshot 1998-08-03 04:14:16 -05:00
Robb Matzke
c7f5d9c4a3 [svn-r562] Snapshot 1998-08-02 04:14:20 -05:00
Robb Matzke
53d271ee42 [svn-r561] Snapshot 1998-08-01 04:14:21 -05:00
Robb Matzke
0fd8e427c7 [svn-r560] Snapshot 1998-07-31 04:14:12 -05:00
Robb Matzke
a78d6c70ab [svn-r559] Modifies first line of README again. 1998-07-30 15:55:00 -05:00
Robb Matzke
6ef50c3f9b [svn-r558] *** empty log message *** 1998-07-30 15:54:25 -05:00
Robb Matzke
786009a853 [svn-r557] Snapshot 1998-07-30 15:40:39 -05:00
Robb Matzke
bd3ae84dde [svn-r556] *** empty log message *** 1998-07-30 15:38:31 -05:00
Robb Matzke
b499a05011 [svn-r555] Snapshot 1998-07-30 15:34:23 -05:00
Robb Matzke
a0f7f1279c [svn-r554] *** empty log message *** 1998-07-30 15:33:08 -05:00
Robb Matzke
b4f144907e [svn-r553] *** empty log message *** 1998-07-30 15:24:10 -05:00
Robb Matzke
dde81bb76b [svn-r552] Fixed exit status 1998-07-30 15:15:13 -05:00
Robb Matzke
3ed85f3f35 [svn-r551] *** empty log message *** 1998-07-30 14:52:24 -05:00
Robb Matzke
dcf8dbfe7f [svn-r550] Snapshot 1998-07-30 14:50:28 -05:00
Robb Matzke
e4aae4fd9b [svn-r549] ./bin/h5vers
Fixed a bug that caused `h5vers -i' to fail with a usage
	message.  The new behavior is the same as `h5vers -i release'
	which increments the release number.

./bin/snapshot
	A shell script intended to be run nightly from cron which
	compares the current version of hdf5 against the previous
	version.  If there are differences it creates a tar file in an
	ftp directory, increments the hdf5 release number, and commits
	the changes back into the cvs repository.  The name of the ftp
	directory in which to place the release can be given on the
	command line (default /hdf3/ftp/pub/outgoing/hdf5/snapshots).
	The CVSROOT environment variable must be set.
1998-07-30 14:48:20 -05:00
Robb Matzke
f21dbd337f [svn-r548] ./bin/release
Simplified greatly.  When run from the top of the hdf5 source
	tree with no arguments a new tar file is created in the
	`releases' directory.  When given one or more of the words
	`tar', `compress', `gzip', or `bzip2' each type of archive is
	created.  The name of the releases directory can be changed
	with the `-d DIR' switch.
1998-07-30 14:26:54 -05:00
Robb Matzke
c7b935a9ac [svn-r547] Changes since 19980729
----------------------

./MANIFEST
./test/Makefile.in
./test/mtime.c		[NEW]
	Test for the modification time message.

./src/H5AC.c
./src/H5Fistore.c
	Turned off printing of statistics on H5close() if H5AC_DEBUG
	isn't defined.
1998-07-30 11:38:21 -05:00
Robb Matzke
a34534c9b8 [svn-r546] Changes since 19980724
----------------------

./MANIFEST
./doc/html/H5.format.html
./src/H5O.c
./src/H5Oprivate.h
./src/H5Omtime.c	[NEW]
./src/H5private.h
./src/Makefile.in
	Added the modification time message.  If an object header has
	this message then it's value is updated with the current time
	whenever anything changes in the object header.

./acconfig.h
./configure.in
	Alas, there seems to be no standard way to convert a string
	time like 19980727122800 in UTC to a time_t since mktime()
	only converts local times to time_t.  So I've modified the
	configuration to check for various ways of getting the time
	zone information:

	   * Added checks for the `tm_gmtoff' field of `struct tm'.
	   * Added a check for the `timezone' global variable.
	   * Added a check for `struct timezone'.
	   * Added a check for BSDgettimeofday().
	   * Added a check for gettimeofday() although it doesn't
	     actually set the timezone argument on some systems.
	   * Added a check to see if `tm_zone' is a member of `struct tm'.
	   * Added a check to see if `tzname' is a global variable.
	   * Added a check to see if `struct tm' is defined in time.h
	     or sys/time.h.

	It's not difficult to get the right UTC modification message
	into the object header, but some systems might have problems
	getting the right time back out (Irix64 is one) and those
	systems will report zero for the H5G_stat_t.mtime from an
	H5Gstat() call as if the mtime message isn't even present.  It
	will, however, continue to be updated as normal.

./src/H5G.c
./src/H5Gpublic.h
	The H5G_stat_t struct now contains an `mtime' field which will
	hold the object modification time.  If the object has no
	object modification time then the `mtime' will be initialized
	to zero.

	Fixed a bug in H5G_stat() that caused the `objno' field of the
	H5G_stat_t to be set incorrectly on some machines.

./src/H5D.c
	Writing to external datasets fail if the hdf5 file is not open
	for writing.

	A modification time message is added to the dataset object
	header when it's created and H5O_touch() is called from
	H5D_write() to update that message.

./src/H5T.c
	Fixed a bug in H5Tget_member_dims() that caused a segmentation
	fault if one of the output array arguments was the null
	pointer.

	Relaxed the member dimension checking in H5Tinsert_array() so
	it can also be used for scalar members.

./test/Makefile.in
	Added additional file names to the `mostlyclean' target.

./tools/h5dump.c
./tools/h5tools.h
	Increased the temporary buffer size to 1MB.

	Added support for printing compound data types with array
	members.

	When printing H5T_NATIVE_CHAR and H5T_NATIVE_UCHAR we escape
	double quote characters.

./tools/h5ls.c
	Changed the output format a little because we were starting to
	get too much info to fit on a line.  Without `--verbose' each
	object occupies one line of output.  Otherwise, additional
	information is printed below the object name: object file
	address, comment, and modification time.  If `--dump' is given
	then the data is printed after the other information.

./test/cmpd_dset.c
	Changed the way the dataset is initialized to be more uniform.
1998-07-29 11:43:59 -05:00
Quincey Koziol
14ea12a6ba [svn-r545] Added test for H5Sselect_none call. 1998-07-24 15:46:31 -05:00
Quincey Koziol
3a6a09d4fd [svn-r544] Added code for H5Sselect_none call. 1998-07-24 15:46:19 -05:00
Paul Harten
ca426e2f32 [svn-r543] Purpose:
Link Bug Fix

Problem:
    Fixed a typo, Woops!

Solution:
    replaced `H5Sexent_dims' with `H5Sextent_dims'

Platform tested:
    ASCI Red
1998-07-24 11:25:30 -05:00
Paul Harten
b4107d530a [svn-r542] Purpose:
Link Bug Fix

Problem:
    undefined reference to `H5Sget_dims'

Solution:
    replaced with reference to `H5Sextent_dims'

Platform tested:
    ASCI Red
1998-07-24 10:05:04 -05:00
Robb Matzke
78c70d7be5 [svn-r541] Changes since 19980723
----------------------

./tools/h5dump.c
./tools/h5ls.c
./tools/h5tools.h
	Able to handle compound data types now.  Moved code that
	chooses memory data type based on file data type from h5ls to
	libh5tools.a(h5dump.o)
1998-07-24 09:28:32 -05:00
Quincey Koziol
181a423f85 [svn-r540] Added H5Sselect_all test code 1998-07-23 18:29:54 -05:00
Quincey Koziol
86a68d5e46 [svn-r539] Added H5Sselect_all code 1998-07-23 18:29:44 -05:00
Quincey Koziol
451404ceee [svn-r538] Added H5Sset_extent_none and H5Sextent_copy functions. They are wrappers
around features already tested.
1998-07-23 16:28:22 -05:00
Robb Matzke
c8d2f1e17a [svn-r537] Changes since 19980722
----------------------

./src/H5A.c
./src/H5Apublic.h
./test/tattr.c
	Switched the order of the second and third argument of
	H5Aget_name() to make it consistent with other functions that
	take buffers and buffer sizes.

./src/H5G.c
./src/H5Gpublic.h
./src/H5Gprivate.h
	The H5Gget_comment() function returns the size of the comment
	including the null terminator.  If the object has no comment
	then zero is returned.  If an error occurs then a negative
	value is returned.

./MANIFEST
./tools/Makefile.in
./tools/h5tools.h	[NEW]
./tools/h5dump.c	[NEW]
	Created a library for printing values of datasets in a way
	that looks nice.  It's not done yet, but I needed it for
	debugging the contents of files from Jim Reus.

./tools/h5ls.c
	Added the `-d' and `--dump' options which cause the contents
	of a dataset to be printed.  Added `-w N' and `--width=N'
	options to control how wide the raw data output should be. If
	you want single-column output then say `-w1'.

	Printing dataset values can now handle datasets of any integer
	or floating point atomic type.  As a special case, integers
	which are one byte wide are treated a character strings for
	now.

	Sample output:
	    $ h5ls --dump --width=60 banana.hdf
	    ARCHIVE                   0:0:0:744            Dataset {52/Inf}
		Data:
		    (0) "U struct complex { double R; double I; };\012V"
		    (43) " double;\012"
	    U                         0:0:0:2500           Dataset {256/512}
		Data: printing of compound data types is not implemented yet
	    V                         0:0:0:3928           Dataset {256/512}
		Data:
		    (0) 0, 0.015625, 0.03125, 0.046875, 0.0625,
		    (5) 0.078125, 0.09375, 0.109375, 0.125, 0.140625,
		    (10) 0.15625, 0.171875, 0.1875, 0.203125, 0.21875,
		    (15) 0.234375, 0.25, 0.265625, 0.28125, 0.296875,
	    ...
1998-07-23 16:19:17 -05:00
Quincey Koziol
8821a3c015 [svn-r536] Updated version 1998-07-23 14:07:36 -05:00
Quincey Koziol
54965f9760 [svn-r535] Changed H5Sget_class to H5Sextent_class in docs 1998-07-23 14:07:28 -05:00
Quincey Koziol
5c77c9a0da [svn-r534] Version update 1998-07-23 14:07:01 -05:00
Quincey Koziol
8e9136b837 [svn-r533] Added tests for H5Sextent_class (renamed H5Sget_class) 1998-07-23 14:03:01 -05:00
Quincey Koziol
3ca1c8b131 [svn-r532] Added code for H5Sextent_class (renamed H5Sget_class) 1998-07-23 14:02:54 -05:00
Quincey Koziol
d4088f3610 [svn-r531] Added test code for hyperslab and point selection copying. 1998-07-22 17:11:42 -05:00
Quincey Koziol
b970dce3ec [svn-r530] Added code so H5Scopy copies selections properly. 1998-07-22 17:11:22 -05:00
Robb Matzke
29a029d7e7 [svn-r529] Changes since 19980722
----------------------

./src/H5.c
	Handle hid_t of type H5_TEMPBUF, arguments usually called tbuf_id.

	Added array tracing where the array rank is stored in a simple
	data space.  Just use the name of the data space argument when
	declaring the array argument:

	    herr_t
	    H5Sselect_hyperslab (hid_t space_id, H5S_seloper_t op,
				 const hssize_t start[/*space_id*/],
				 const hsize_t _stride[/*space_id*/],
				 const hsize_t count[/*space_id*/],
				 const hsize_t _block[/*space_id*/])

	and when the program runs you'll see array values printed:

	    H5Sselect_hyperslab(space=218103813, op=H5S_SELECT_SET,
                                start=0xbfffef4c {0}, _stride=NULL,
                                count=0xbfffef44 {64},
				_block=NULL) = SUCCEED;

	Added more symbolic data types to the tracing output.

./src/H5A.c
./src/H5Apublic.h
./src/H5D.c
./src/H5Dpublic.h
./src/H5F.c
./src/H5Fpublic.h
./src/H5G.c
./src/H5Gpublic.h
./src/H5P.c
./src/H5Ppublic.h
./src/H5S.c
./src/H5Sall.c
./src/H5Shyper.c
./src/H5Spoint.c
./src/H5Spublic.h
./src/H5Sselect.c
./src/H5Ssimp.c
./src/H5TB.c
./src/H5V.c
	Changed some API argument names to be more consistent with
	other API functions and to produce better tracing output.
	Reformatted some long lines. Indented printf statements.

./tools/h5ls.c
	Fixed warnings about unsigned vs. signed comparisons.
1998-07-22 13:45:46 -05:00
Robb Matzke
c638ee5659 [svn-r528] Updated version 1998-07-22 08:53:00 -05:00
Robb Matzke
4fc2d723f5 [svn-r527] *** empty log message *** 1998-07-22 08:52:48 -05:00
Robb Matzke
b56f011989 [svn-r526] Changes since 19980721
----------------------

./tools/h5ls.c
	If the dataset is of type H5T_NATIVE_CHAR then we print the
	value as a string.  This is temporary -- I plan to add better
	control of this later but needed something now for debugging.

./src/H5Fistore.c
	Squashed a bug in the chunk caching code that caused the wrong
	chunk to be returned.

./bin/trace
./src/H5.c
	Added support for printing values of array arguments when the
	size of the array is supplied by some previous argument.  You
	must declare the argument as an array in order for the
	automatic tracing stuff to work.  For instance, the third
	argument of H5Pset_chunk() is an array whose size is
	determined by the second argument `ndims'.  Here's how you
	should declare it:

	    herr_t
	    H5Pset_chunk(hid_t plist_id, intn rank, hsize_t dims[/*rank*/])

	The comment inside the `[]' is the name of some previous
	integer argument (int, unsigned, size_t, ssize_t, hsize_t,
	hssize_t).  The trace output will look something like:

	    H5Pset_chunk(plist=1234567, rank=2, dims=0x112233 {11, 22})

	Changed tracing so that data types are printed out
	symbolically when possible.

	Changed tracing so data type initializations are not printed.
	This used to be confusing because lots of H5Tcopy() and
	H5Tregister...() calls showed up before the applications first
	explicit API call.

./src/H5Ipublic.h
	Changed the file atom group from zero to one so printing of
	atoms during tracing is more consistent -- they're all big
	numbers now.

./src/H5A.c
./src/H5E.c
./src/H5F.c
./src/H5G.c
./src/H5Sselect.c
./src/H5T.c
./src/H5TB.c
./src/H5Z.c
	Accidently modified these when working on the tracing, but
	nothing should have changed.

./src/H5P.c
	Changed the definition of H5Pset_chunk() for tracing.

./src/H5S.c
./src/H5Spublic.h
	Changed the definitions of H5Sset_extent_simple() and
	H5Screate_simple() for tracing.  Changed the FUNC_ENTER() name
	for H5Screate_simple() so tracing shows the correct name.
1998-07-22 08:51:51 -05:00
Quincey Koziol
0aa506cc6c [svn-r525] Corrected type of 'start' array for hyperslab selections. 1998-07-21 15:46:16 -05:00
Quincey Koziol
de5389cc27 [svn-r524] Fixed potential core dump on freeing uninitialized selection iterators in
H5D_read and H5D_write.
1998-07-21 15:39:10 -05:00
Robb Matzke
bdce66f69a [svn-r523] Changes since 19980720
----------------------

./test/dtypes.c
	We try to detect whether floating point overflow generates a
	SIGFPE and if it does we don't test overflow cases.

./test/H5Sprivate.h
./test/H5S.c
./test/H5Oattr.c
	Added an H5S_debug() which is called from H5O_attr_debug() and
	which has a switch statement to handle the various data type
	messages.
1998-07-21 11:11:56 -05:00
Robb Matzke
2423411a64 [svn-r522] Changes since 19980720
----------------------

./src/H5Gpublic.h
./src/H5Gprivate.h
./src/H5G.c
./test/dsets.c
./doc/html/Groups.html
	Added the H5Gset_comment() and H5Gget_comment() functions
	described in an earlier e-mail.

./src/H5.c
	Fixed a bug in the tracing code that caused certain data space
	enum types to not be printed.  Nested case statements can get
	confusing to the eyes!

./tools/h5ls.c
	Prints the first 50 bytes or so of object comments.
1998-07-20 16:01:32 -05:00
Quincey Koziol
00aa39c66f [svn-r521] Added note about strided hyperslab selections. 1998-07-20 15:16:04 -05:00
Quincey Koziol
d45c20d713 [svn-r520] Added test for strided hyperslabs. 1998-07-20 15:14:55 -05:00
Quincey Koziol
c3caa3f269 [svn-r519] Strided hyperslab selections now work. 1998-07-20 15:14:08 -05:00
Robb Matzke
34595bac3b [svn-r518] Changes since 19980720
----------------------

./doc/html/H5.format.html
./src/H5Oattr.c
./src/H5Odtype.c
./src/H5Oefl.c
./src/H5Olayout.c
./src/H5Osdspace.c
./src/H5Oshared.c
	Added version numbers to some object header messages so we can
	update them easier in the future.  The library currently just
	gives up if the version numbers don't match, but in the future
	the library could handle multiple versions of a message.

./test/testhdf5.c
	Removed an argument from the H5version() call that I missed
	last time.
1998-07-20 12:58:37 -05:00
Robb Matzke
1dbacc8377 [svn-r517] Changes since 19980720
----------------------

./bin/release
	The archive names have only three parts to a version number.
	Instead of `hdf5-1.2.3d.tar.gz' they will be named like
	`hdf5-1.2.3.tar.gz'.

./src/H5public.h
./src/H5.c
	Dropped the patch level from the version number.  The version
	number is now a major number, a minor number, and a release
	number.

./doc/html/Version.html
	Updated to get rid of patch numbers.

./tools/h5repart.c
	Added a `-V' flag like for `h5ls' that prints the version number.
1998-07-20 11:05:43 -05:00
Robb Matzke
29bf0662db [svn-r516] Changes since 19980720
----------------------

./doc/html/H5.format.html
./src/H5F.c
./src/H5Gprivate.h
./src/H5Oshared.c
	Added file alignment fields: the boot block has an extra
	reserved address field.  The symbol table entry scratch pad
	space was reduced from 24 bytes to 16 bytes.  The index
	permutation was moved earlier in the data type message for
	compound data types and extra padding was added.  Four bytes
	of padding was added to the shared message format.
1998-07-20 09:41:13 -05:00
Robb Matzke
365dac33e3 [svn-r515] Changes since 19980715
----------------------

./doc/html/H5.format.html
./src/H5Gent.c
./src/H5Gprivate.h
./src/H5Oattr.c
./src/H5Oprivate.h
./src/H5Oshared.c
./src/H5HG.c
./src/H5HGprivate.h
	Added padding fields in symbol table entries, attribute
	messages, shared messages, and global heap objects to insure
	that things are aligned on 8-byte boundaries in the file, and
	thus in memory.  Otherwise some little endian machines
	complain (DEC Alpha) during encoding/decoding of file meta
	data.  I chose to add alignment to the file rather than
	rewriting the ENCODE/DECODE macros for the little endian case.

	Completely rewrote the section on attribute messages.

	More alignment stuff will follow.

./src/H5detect.c
	Fixed a typo `nd'->`dn'

./test/dtypes.c
	Commented out conversion tests to/from `long double' on
	machines where it's the same size as `double' to get rid of
	compiler warnings.

./doc/html/Big.html
	Fixed a couple typos.
1998-07-20 08:45:25 -05:00
Robb Matzke
79d65106ab [svn-r514] Changes since 19980715
----------------------

./src/H5Flow.c
./src/H5Fprivate.h
./src/H5Fsplit.c
	Changed the allocation size request from `size_t' to `hsize_t'
	because it was overflowing for the `big' test.

./src/H5detect.c
	If `long double' and `double' are the same size then we define
	H5T_NATIVE_LDOUBLE to be the same as H5T_NATIVE_DOUBLE.
	Similarly for `long' vs. `long long' and `unsigned long' vs.
	`unsigned long long'.

./test/Makefile.in
	Added `big' to the list of tests to normally run.

./test/big.c
	Added a check to see if the file system supports holes and if
	it doesn't then the test is skipped.

./RELEASE
	Added a couple minor details details about API tracing and
	symbolic links.

./src/H5public.h
	Added comments about the use of hbool_t. Fixed a comment
	spelling error.

./test/testhdf5.h
	Changed the way the version number is printed.  The old method
	was `hdf5-1.2.3d' and the new method is `hdf5 version 1.2
	release 3'

./tools/h5ls.c
	Only prints the max dimension if it differs from the current
	dimension or if verbose mode is enabled.  Added switches `-?',
	`-h', and `--help' to print a usage message.  Added switches
	`-v' and `--verbose' to generate more verbose output.  Added
	switches `-V' and `--version' to print the version number and
	exit.  The version number is printed like: This is h5ls
	version 1.0 release 24'

./bin/h5vers	[NEW]
	This script prints, sets, and/or increments the hdf5 version
	number. It can be run from the top directory or any of the
	child directories like src, tools, test, etc. Some examples:

	  $ h5vers				# Display current version
	  1.0.24

	  $ h5vers -v
	  version 1.0 release 24		# Display current version.

	  $ h5vers -s 5.2.8			# Set version and display
	  5.2.8

	  $ h5vers -s 2.1
	  2.1.0

	  $ h5vers -s hdf5-1.0.24a.tar.bz2
	  1.0.24

	  $ h5vers -s 'version 2.0 release 8'
	  2.0.8

	  $ h5vers -s 'junk 22 junk 33 more junk 66 and 99 junk'
	  33.66.99

	  $ h5vers -i major			# Increment from 1.0.24
	  2.0.0

	  $ h5vers -i minor			# Increment from 1.0.24
	  1.1.0

	  $ h5vers -i release			# Increment from 1.0.24
	  1.0.25

	  $ h5vers ~/hdf5/src/H5public.h	# Use an alternate file
	  1.0.24

./bin/checkapi		[NEW]
	Run from the src directory with arguments H5[A-Z]*.c and it
	will print the locations of each place where an API function
	was called from within the library.  Use it as the compile or
	grep command under Emacs and you can C-x ` through the list.

./bin/debug-ohdr	[NEW]
	Keeps track of H5O_open() and H5O_close() debugging messages
	and lists the file addresses of the object headers that are
	opened but never closed.  You must enable the `o' debugging at
	configuration time and pipe stderr into this script.

./bin/errors
	Added a note to indicate that this script no longer works
	because of changes in the HRETURN_ERROR() and HGOTO_ERROR()
	macros.

./bin/iostats		[NEW]
	Watches output from the Linux strace program and accumulates
	statistics about low-level access to an hdf5 file.  The output
	is a list of 2d data points which can be plotted by gnuplot to
	show file seeking behavior.

./MANIFEST
	Added new files.
1998-07-17 14:03:43 -05:00
Quincey Koziol
6bea093682 [svn-r513] Removed debugging statement. 1998-07-15 16:24:31 -05:00
Quincey Koziol
c40c53d0af [svn-r512] Tracked down some problems with the number of dimensions used for point/element
selections and also fixed part of the problem with scalar dataspaces being
written/read from the file.
1998-07-15 16:23:25 -05:00
Robb Matzke
077d7c8c86 [svn-r511] Changes since 19980715
----------------------

./src/H5Flow.c
./src/H5Fprivate.h
./src/H5Fsplit.c
	Changed the allocation size request from `size_t' to `hsize_t'
	because it was overflowing for the `big' test.

./src/H5detect.c
	If `long double' and `double' are the same size then we define
	H5T_NATIVE_LDOUBLE to be the same as H5T_NATIVE_DOUBLE.
	Similarly for `long' vs. `long long' and `unsigned long' vs.
	`unsigned long long'.

./test/Makefile.in
	Added `big' to the list of tests to normally run.

./test/big.c
	Added a check to see if the file system supports holes and if
	it doesn't then the test is skipped.
1998-07-15 16:21:15 -05:00
Robb Matzke
8ad2f1aae0 [svn-r510] Changes since 19980713
----------------------

./config/conclude.in
	Fixed so `make test' and `make progs' work on a clean source tree.
1998-07-15 11:39:46 -05:00
Quincey Koziol
0c67b4e2bc [svn-r509] Added a couple of lines from the prevous file on the web-site which pointed
people to the ftp server for the distribution and to the project plan for the
code development.
1998-07-15 11:31:26 -05:00
400 changed files with 102466 additions and 29741 deletions

63
COPYING
View File

@@ -1,48 +1,39 @@
/*=======================================================================
Copyright Notice and Statement for NCSA Hierarchical Data Format (HDF)
Software Library and Utilities
Copyright Notice and Statement for
NCSA Hierarchical Data Format (HDF) Software Library and Utilities
NCSA Hierarchical Data Format (HDF) Software Library and Utilities Copyright
1998 the Board of Trustees of the University of Illinois. All rights reserved.
NCSA Hierarchical Data Format (HDF) Software Library and Utilities
Copyright 1998 the Board of Trustees of the University of Illinois
All rights reserved.
Contributors: National Center for Supercomputing Applications (NCSA) at
the University of Illinois, Lawrence Livermore Nat'l Laboratory (LLNL),
Sandia National Laboratories (SNL), Los Alamos National Laboratory (LANL),
Jean-loup Gailly and Mark Adler (gzip library)
Contributors: National Center for Supercomputing Applications (NCSA) at the
University of Illinois, Lawrence Livermore Nat'l Laboratory (LLNL), Sandia
National Laboratories (SNL), Los Alamos National Laboratory (LANL).
Redistribution and use in source and binary forms, with or without
modification, are permitted for any purpose (including commercial purposes)
provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or materials provided with the distribution.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or materials provided with the distribution.
3. In addition, redistributions of modified forms of the source or binary
code must carry prominent notices stating that the original code was
changed and the date of the change.
3. In addition, redistributions of modified forms of the source or binary
code must carry prominent notices stating that the original code was
changed and the date of the change.
4. All publications or advertising materials mentioning features or use of
this software must acknowledge that it was developed by the National Center
for Supercomputing Applications at the University of Illinois, and credit
the Contributors.
4. All publications or advertising materials mentioning features or use of
this software must acknowledge that it was developed by the National
Center for Supercomputing Applications at the University of Illinois, and
credit the Contributors.
5. Neither the name of the University nor the names of the Contributors may
be used to endorse or promote products derived from this software without
specific prior written permission from the University or the Contributors.
6. THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY AND THE CONTRIBUTORS "AS IS"
WITH NO WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED. In no event
shall the University or the Contributors be liable for any damages suffered
by the users arising out of the use of this software, even if advised of
the possibility of such damage.
=======================================================================*/
5. Neither the name of the University nor the names of the Contributors may
be used to endorse or promote products derived from this software without
specific prior written permission from the University or the Contributors.
6. THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY AND THE CONTRIBUTORS "AS IS"
WITH NO WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED. In no event
shall the University or the Contributors be liable for any damages
suffered by the users arising out of the use of this software, even if
advised of the possibility of such damage.

483
INSTALL
View File

@@ -1,149 +1,410 @@
-*- outline -*-
This file contains instructions for the installation of HDF5 on
Unix-like systems. First, one must obtain a tarball of the HDF5
release from the ftp://hdf.ncsa.uiuc.edu/pub/dist/HDF5 repository.
The files are available in uncompressed tar, gzip, bzip2, and compress
formats.
Unix-like systems. Users of the Intel TFLOPS machine should see the
INSTALL.ascired for instructions.
For those that like to live dangerously and don't like to read ;-) you
can do the following:
* Obtaining HDF5
The latest supported public release of HDF5 is available from
ftp://hdf.ncsa.uiuc.edu/pub/dist/HDF5 and is available in tar
format uncompressed or compressed with compress, gzip, or
bzip2.
$ tar xf hdf5-1.0.0a.tar
$ cd hdf5-1.0.0a
$ make test
$ make install # Optional
The HDF team also makes snapshots of the source code available
on a regular basis but these. These snapshots are unsupported
(that is, the HDF team will not release a bug-fix on a
particular snapshot; rather any bug fixes will be rolled into
the next snapshot). Furthermore, the snapshots have only been
tested on a few machines and may not test correctly for
parallel applications. Snapshots can be found at
ftp://hdf.ncsa.uiuc.edu/pub/outgoing/hdf5/snapshots in a
limited number for formats.
Note:
For the users of the Intel TFLOPS machine, a special sequence of steps
for the install may be found in the file: INSTALL.ascired.
* Warnings about compilers
OUTPUT FROM THE FOLLOWING COMPILERS SHOULD BE EXTREMELY
SUSPECT WHEN USED TO COMPILE THE HDF5 LIBRARY, ESPECIALLY IF
OPTIMIZATIONS ARE ENABLED. IN ALL CASES, HDF5 ATTEMPTS TO WORK
AROUND THE COMPILER BUGS BUT THE HDF5 DEVELOPMENT TEAM MAKES
NO GUARANTEES THAT THERE ARE OTHER CODE GENERATION PROBLEMS.
=======
Step 0: Install optional third-party packages.
** GNU (Intel platforms)
Versions before 2.8.1 have serious problems allocating
registers when functions contain operations on `long long'
data types. Supplying the `--disable-hsizet' switch to
configure (documented below) will prevent hdf5 from using
`long long' data types in situations that are known not to
work, but it limits the hdf5 address space to 2GB.
* GNU zlib compression library, version 1.0.2 or later is used for
the `deflate' compression method. If libz.a cannot be found then
this form of compression is not compiled into the library.
** DEC
The V5.2-038 compiler (and possibly others) occasionally
generates incorrect code for memcpy() calls when optimizations
are enabled, resulting in unaligned access faults. HDF5 works
around the problem by casting the second argument to `char*'.
Step 1. Unpack the source tree.
** SGI (Irix64 6.2)
The Mongoose 7.00 compiler has serious optimization bugs and
should be upgraded to MIPSpro 7.2.1.2m. Patches are available
from SGI.
* The tarball will unpack into an hdf5-1.0.0a directory with one of
the following commands:
$ tar xf hdf5-1.0.0a.tar OR
$ gunzip <hdf5-1.0.0a.tar.gz |tar xf - OR
$ bunzip2 <hdf5-1.0.0a.tar.bz2 |tar xf - OR
$ uncompress -c <hdf5-1.0.0a.tar.Z |tar xf -
Step 2. Configure.
* HDF5 uses the GNU autoconf program for configuration. Most
installations can be configured by typing just (from the
hdf5-1.0.0a directory)
$ sh configure
** Windows/NT
The MicroSoft Win32 5.0 compiler is unable to cast unsigned
long long values to doubles. HDF5 works around this bug by
first casting to signed long long and then to double.
* The configuration process can be controlled through environment
variables, command-line switches, and host configuration files.
For a complete list of switches say `sh configure --help'.
* Quick installation
For those that don't like to read ;-) the following steps can
be used to configure, build, test, and install the HDF5
library, header files, and support programs.
* Host configuration files are located in the `config' directory
and are based on architecture name, vendor name, and/or operating
system which are displayed near the beginning of the `configure'
output. Not all hosts require a host configuration file.
* The C compiler and flags, the `ar' and `ranlib' program names,
and the `make' program can be specified with environment
variables if configure doesn't properly detect them and they are
not defined in a host config file.
$ gunzip <hdf5-1.0.0.tar.gz |tar xf -
$ cd hdf5-1.0.0
$ make check
$ make install
CC Name of the C compiler.
CFLAGS Switches for the C compiler.
CPPFLAGS Additional switches for the .c -> .o step.
AR Name of the `ar' program.
RANLIB Name of the `ranlib' program or `:' if none.
MAKE Name of the `make' program (GNU make is preferred)
* HDF5 dependencies
** Zlib
The HDF5 library has a predefined compression filter that uses
the "deflate" method for chunked datatsets. If zlib-1.1.2 or
later is found then hdf5 will use it, otherwise HDF5's
predefined compression method will degenerate to a no-op (the
compression filter will succeed but the data will not be
compressed).
* This version of HDF5 is normally built with various debugging
code enabled. To turn it off add the `--disable-debug' switch
to the configure command.
** MPI and MPI-IO
The parallel version of the library is built upon the
foundation provided by MPI and MPI-IO. If these libraries are
not available when HDF5 is configured then only a serial
version of HDF5 can be built.
* This version of HDF5 is normally built with support for symbolic
debugging with dbx or gdb and without compiler optimization
switches. To disable symbolic debugging and enable
optimizations add `--enable-production' to the configure
command.
* Full installation instructions for source distributions
** Unpacking the distribution
The HDF5 source code is distributed in a variety of formats
which can be unpacked with the following commands, each of
which creates an `hdf5-1.0.0' directory.
* This version of HDF5 is normally built with the ability to print
the names, arguments, and return values of all API functions
when they're called. For more information refer to the
doc/html/tracing.html file. To disable tracing support add
`--disable-trace' to the configure command.
*** Non-compressed tar archive (*.tar)
$ tar xf hdf5-1.0.0.tar
* Old versions of gcc (<2.8.0) may experience register allocation
problems on some architectures. If this happens then the
`--disable-hsizet' can be given but the resulting library will
be unable to handle datasets larger than 4GB.
*** Compressed tar archive (*.tar.Z)
$ uncompress -c <hdf5-1.0.0.tar.Z |tar xf -
* By default libraries, include files, programs, and documentation
are installed (when one says `make install') under
/usr/local/lib, /usr/local/include, /usr/local/bin, and
/usr/local/man. However, if you want them in some other
location you can specify a prefix to use instead of /usr/local.
For instance, to install in /usr/lib, /usr/include, /usr/bin,
and /usr/man one would say
*** Gzip'd tar archive (*.tar.gz)
$ gunzip <hdf5-1.0.0.tar.gz |tar xf -
$ ./configure --prefix=/usr
*** Bzip'd tar archive (*.tar.bz2)
$ bunzip2 <hdf5-1.0.0.tar.gz |tar xf -
The library can be used directly from the source tree without
installing it.
** Configuring
HDF5 uses the GNU autoconf system for configuration, which
detects various features of the host system and creates the
Makefiles. On most systems it should be sufficient to say:
Step 3. Compile library, tests, and programs.
$ ./configure OR
$ sh configure
* Build library targets by saying
The configuration process can be controlled through
environment variables, command-line switches, and host
configuration files. For a complete list of switches say
`./configure --help'. The host configuration files are located
in the `config' directory and are based on architecture name,
vendor name, and/or operating system which are displayed near
the beginning of the `configure' output. The host config file
influences the behavior of configure by setting or augmenting
shell variables.
$ make
*** Specifying the installation directories
Typing `make install' will install the HDF5 library, header
files, and support programs in /usr/local/lib,
/usr/local/include, and /usr/local/bin. To use a path other
than /usr/local specify the path with the `--prefix=PATH'
switch:
Note: If you supplied some other make command through the MAKE
environment variable in the previous step then use that command
instead. The same applies below.
$ ./configure --prefix=/home/robb
Note: When using GNU make you can add `-j -l6' to the make
command to compile in parallel on SMP machines. Do not give a
number after the `-j' since GNU make will turn it off for
recursive invocations of make.
If shared libraries are being built (the default) then the
final home of the shared library must be specified with this
switch before the library and executables are built.
Step 4. Run confidence tests.
*** Using an alternate C compiler
By default, configure will look for the C compiler by trying
`gcc' and `cc'. However, if the environment variable "CC" is
set then its value is used as the C compiler (users of csh and
derivatives will need to prefix the commands below with
`env'). For instance, to use the native C compiler on a system
which also has the GNU gcc compiler:
* All confidence tests should be run by saying
$ CC=cc ./configure
$ make test
A parallel version of hdf5 can be built by specifying `mpicc'
as the C compiler (the `--enable-parallel' flag documented
below is optional). Using the `mpicc' compiler will insure
that the correct MPI and MPI-IO header files and libraries are
used.
The command will fail if any test fails, and one will see the
word "*FAIL*" in the output.
$ CC=/usr/local/mpi/bin/mpicc ./configure
Note: some old versions of make will report that `test is up to
date'. If this happens then run `make _test' instead or run
`make test' from within the test directory.
On Irix64 the default compiler is `cc -64'. To use an
alternate compiler specify it with the CC variable:
Temporary files will be deleted by each test when it completes,
but may continue to exist in an incomplete state if the test
fails. To prevent deletion of the files define the
HDF5_NOCLEANUP environment variable.
$ CC='cc -o32' ./configure
Step 5. Install public files.
*** Additional compilation flags
If addtional flags must be passed to the compilation commands
then specify those flags with the CFLAGS variable. For
instance, to enable symbolic debugging of a production version
of HDF5 one might say:
* Install the library, header files, and programs by saying:
$ CFLAGS=-g ./confgure --enable-production
$ make install
*** Specifying other programs
The build system has been tuned for use with GNU make but
works also with other versions of make. If the `make' command
runs a non-GNU version but a GNU version is available under a
different name (perhaps `gmake') then HDF5 can be configured
to use it by setting the MAKE variable. Note that whatever
value is used for MAKE must also be used as the make command
when building the library:
This step will fail unless you have permission to write to the
installation directories. Of course, you can use the header
files, library, and programs directly out of the source tree if
you like, skipping this step. The directory specified for the
--prefix switch (or "/usr/local") must exist, but the directories
under it are created automatically by make.
$ MAKE=gmake ./configure
$ gmake
Step 6. Subscribe to mailing lists.
The `AR' and `RANLIB' variables can also be set to the names
of the `ar' and `ranlib' (or `:') commands to override values
detected by configure.
* Subscribe to the mailing lists described in the README file.
The HDF5 library, include files, and utilities are installed
during `make install' (described below) with a BSD-compatible
install program detected automatically by configure. If none
is found then the shell script bin/install-sh is
used. Configure doesn't check that the install script actually
works, but if a bad install is detected on your system (e.g.,
on the ASCI blue machine as of March 2, 1999) you have two
choices:
1. Copy the bin/install-sh program to your $HOME/bin
directory, name it `install', and make sure that
$HOME/bin is searched before the system bin
directories.
2. Specify the full path name of the `install-sh' program
as the value of the INSTALL environment variable. Note:
do not use `cp' or some other program in place of
install because the HDF5 makefiles also use the install
program to also change file ownership and/or access
permissions.
*** Specifying other libraries and headers
Configure searches the standard places (those places known by
the systems compiler) for include files and header
files. However, additional directories can be specified by
using the CPPFLAGS and/or LDFLAGS variables:
$ CPPFLAGS=-I/home/robb/include \
LDFLAGS=-L/home/robb/lib \
./configure
HDF5 uses the zlib library for two purposes: it provides
support for the HDF5 deflate data compression filter, and it
is used by the h5toh4 converter in support of HDF4. Configure
searches the standard places (plus those specified above with
CPPFLAGS and LDFLAGS variables) for the zlib headers and
library. The search can be disabled by specifying
`--without-zlib' or alternate directories can be specified
with `--with-zlib=INCDIR,LIBDIR' or through the CPPFLAGS and
LDFLAGS variables:
$ ./configure --with-zlib=/usr/unsup/include,/usr/unsup/lib
$ CPPFLAGS=-I/usr/unsup/include \
LDFLAGS=-L/usr/unsup/lib \
./configure
The HDF5-to-HDF4 conversion tool requires the HDF4 library and
header files which are detected the same way as zlib. The
switch to give to configure is `--with-hdf4'. Note that HDF5
requires a newer version of zlib than the one shipped with
some versions of HDF4. Also, unless you have the "correct"
version of hdf4 the confidence testing will fail in the tools
directory.
*** Static versus shared linking
The build process will create static libraries on all systems
and shared libraries on systems that support dynamic linking
to a sufficient degree. Either form of library may be
suppressed by saying `--disable-static' or `--disable-shared'.
$ ./configure --disable-shared
*** Optimization versus symbolic debugging
The library can be compiled to provide symbolic debugging
support so it can be debugged with gdb, dbx, ddd, etc or it
can be compiled with various optimizations. To compile for
symbolic debugging (the default for snapshots) say
`--disable-production'; to compile with optimizations (the
default for supported public releases) say
`--enable-production'. On some systems the library can also
be compiled for profiling with gprof by saying
`--enable-production=profile'.
$ ./configure --disable-production #symbolic debugging
$ ./configure --enable-production #optimized code
$ ./configure --enable-production=profile #for use with gprof
Regardless of whether support for symbolic debugging is
enabled, the library also is able to perform runtime debugging
of certain packages (such as type conversion execution times,
and extensive invariant condition checking). To enable this
debugging supply a comma-separated list of package names to to
the `--enable-debug' switch (see Debugging.html for a list of
package names). Debugging can be disabled by saying
`--disable-debug'. The default debugging level for snapshots
is a subset of the available packages; the default for
supported releases is no debugging (debugging can incur a
significant runtime penalty).
$ ./configure --enable-debug=s,t #debug only H5S and H5T
$ ./configure --enable-debug #debug normal packages
$ ./configure --enable-debug=all #debug all packages
$ ./configure --disable-debug #no debugging
HDF5 is also able to print a trace of all API function calls,
their arguments, and the return values. To enable or disable
the ability to trace the API say `--enable-trace' (the default
for snapthots) or `--disable-trace' (the default for public
releases). The tracing must also be enabled at runtime to see
any output (see Debugging.html).
*** Large (>2GB) vs. small (<2GB) file capability
In order to read or write files that could potentially be
larger than 2GB it is necessary to use the non-ANSI `long
long' data type on some platforms. However, some compilers
(e.g., GNU gcc versions before 2.8.1 on Intel platforms)
are unable to produce correct machine code for this data
type. To disable use of the `long long' type on these machines
say:
$ ./configure --disable-hsizet
*** Parallel vs. serial library
The HDF5 library can be configured to use MPI and MPI-IO for
parallelizm on a distributed multi-processor system. The easy
way to do this is to have a properly installed parallel
compiler (e.g., MPICH's mpicc or IBM's mpcc) and supply that
executable as the value of the CC environment variable:
$ CC=mpcc ./configure
$ CC=/usr/local/mpi/bin/mpicc ./configure
If no such wrapper script is available then you must specify
your normal C compiler along with the distribution of
MPI/MPI-IO which is to be used (values other than `mpich' will
be added at a later date):
$ ./configure --enable-parallel=mpich
If the MPI/MPI-IO include files and/or libraries cannot be
found by the compiler then their directories must be given as
arguments to CPPFLAGS and/or LDFLAGS:
$ CPPFLAGS=-I/usr/local/mpi/include \
LDFLAGS=-L/usr/local/mpi/lib/LINUX/ch_p4 \
./configure --enable-parallel=mpich
If a parallel library is being built then configure attempts
to determine how to run a parallel application on one
processor and on many processors. If the compiler is mpicc
and the user hasn't specified values for RUNSERIAL and
RUNPARALLEL then configure chooses `mpirun' from the same
directory as `mpicc':
RUNSERIAL: /usr/local/mpi/bin/mpirun -np 1
RUNPARALLEL: /usr/local/mpi/bin/mpirun -np $${NPROCS:=2}
The `$${NPROCS:=2}' will be substituted with the value of the
NPROCS environment variable at the time `make check' is run
(or the value 2).
** Building
The library, confidence tests, and programs can be build by
saying just
$ make
Note that if you supplied some other make command via the MAKE
variable during the configuration step then that same command
must be used here.
When using GNU make you can add `-j -l6' to the make command
to compile in arallel on SMP machines. Do not give a number
after th `-j' since GNU make will turn it off for recursive
invocations of make.
$ make -j -l6
** Testing
HDF5 comes with various test suites, all of which can be run
by saying
$ make check
To run only the tests for the library change to the `test'
directory before issuing the command. Similarly, tests for the
parallel aspects of the library are in `testpar' and tests for
the support programs are in `tools'.
Temporary files will be deleted by each test when it complets,
but may continue to exist in an incomplete state if the test
fails. To prevent deletion of the files define the
HDF5_NOCLEANUP environment variable.
** Installing
The HDF5 library, include files, and support programs can be
installed in a (semi-)public place by saying `make
install'. The files are installed under the directory
specified with `--prefix=DIR' (or '/usr/local') in directories
named `lib', `include', and `bin'. The prefix directory must
exist prior to `make install', but its subdirectories are
created automatically.
The library can be used without installing it by pointing the
compiler at the `src' directory for both include files and
libraries. However, the minimum which must be installed to
make the library publically available is:
The library:
./src/libhdf5.a
The public header files:
./src/H5*public.h
The main header file:
./src/hdf5.h
The configuration information:
./src/H5config.h
The support programs that are useful are:
./tools/h5ls (list file contents)
./tools/h5dump (dump file contents)
./tools/h5repart (repartition file families)
./tools/h5toh4 (hdf5 to hdf4 file converter)
./tools/h5debug (low-level file debugging)
./tools/h5import (a demo)
* Using the Library
Please see the User Manual in the doc/html directory.
Most programs will include <hdf5.h> and link with
-lhdf5. Additional libraries may also be necessary depending
on whether support for compression, etc. was compiled into the
hdf5 library.
A summary of the hdf5 installation can be found in the
libhdf5.settings file in the same directory as the static
and/or shared hdf5 libraries.
* Support
Support is described in the README file.

View File

@@ -17,9 +17,9 @@ effort is shown here at steps 9) and steps 10).
The total required steps are something similar to:
FROM SASN100,
1) uncompress hdf5-1.0.0a.tar.Z
1) uncompress hdf5-1.1.0.tar.Z
2) tar xvf hdf5-1.0.0a.tar
2) tar xvf hdf5-1.1.0.tar
3) cd ./hdf5
@@ -73,9 +73,9 @@ execution of parallel tests described in steps 12) through 16).
The total required steps are something similar to:
FROM SASN100,
1) uncompress hdf5-1.0.0a.tar.Z
1) uncompress hdf5-1.1.0.tar.Z
2) tar xvf hdf5-1.0.0a.tar
2) tar xvf hdf5-1.1.0.tar
3) cd ./hdf5
@@ -111,18 +111,11 @@ FROM SASN100,
12) cd testpar
13) /* edit testphdf5.c, change the following lines */
char *filenames[]={ "pfs:/pfs/multi/tmp_1/your_own/ParaEg1.h5f",
"pfs:/pfs/multi/tmp_1/your_own/ParaEg2.h5f",
"pfs:/pfs/multi/tmp_1/your_own/ParaEg3.h5f" };
/* change "your_own" to your own directory name */
char *filenames[]={ "pfs:/pfs/multi/tmp_1/my_dir/ParaEg1.h5f",
"pfs:/pfs/multi/tmp_1/my_dir/ParaEg2.h5f",
"pfs:/pfs/multi/tmp_1/my_dir/ParaEg3.h5f" };
13) go through the README file.
14) make -f Makefile.ascired
When everything is finished compiling and linking,
FROM JANUS,

View File

@@ -37,7 +37,9 @@
# (We use csh here, but of course you can adapt to whatever shell you like.)
# compile for MPI jobs
setenv CC mpcc
# setenv CC mpcc (for IBM's MPI)
# setenv CC "/usr/local/mpich-1.1.1/lib/rs6000/ch_mpl/mpicc" (for mpich)
setenv CC "/usr/local/mpich-1.1.1/lib/rs6000/ch_mpl/mpicc"
# These compiler flags work on ASCI baby blue pacific (IBM SP),
# using IBM's MPI and Argonne's MPI-IO (ROMIO):
@@ -47,9 +49,9 @@ setenv CC mpcc
# The following flags are only needed when compiling/linking a user program
# for execution.
# -bI:/usr/include/piofs/piofs.exp this MPI-IO uses PIOFS file system
# -L/usr/local/mpio/lib/ibm -lmpio link to this MPI-IO lib
# -L/usr /local/mpio/lib/ibm -lmpio link to this MPI-IO lib
#
setenv CFLAGS "-g -D_LARGE_FILES -DHAVE_FUNCTION -I/usr/local/mpio/include/ibm -bI:/usr/include/piofs/piofs.exp -L/usr/local/mpio/lib/ibm -lmpio"
setenv CFLAGS "-g -qfullpath -bnoobjreorder -D_LARGE_FILES -DHAVE_FUNCTION"
# The configure/make process needs to be able to run some programs,
# need to specify a processor pool.

28
INSTALL.parallel Normal file
View File

@@ -0,0 +1,28 @@
This file contains instructions for the installation a version of HDF5
that uses the parallel file I/O facilities of the MPI-IO library. A
parallel version of HDF5 can run in a serial environment as long as
the appropriate MPI-IO and MPI header files and libraries are
available.
The parallel version of hdf5 can be build by generally following the
instructions in the INSTALL file for building a serial version and
using `mpicc' as the C compiler. This can be done by setting the CC
environment variable before invoking configure as with:
$ CC=mpicc ./configure
If the mpicc compiler is not available then a parallel library can
still be built as long as the appropriate header files and libraries
can be found. If these files are part of the default compiler search
paths then configuration is as simple as:
$ ./configure --enable-parallel
Otherwise, if the MPI and MPI-IO header files or library cannot be
found then the compiler search paths can be corrected, the files can
be moved, or configure can be told about the file locations. The
latter is done with something like:
$ CPPFLAGS=-I/usr/local/mpi/include \
LDFLAGS=-L/usr/local/mpi/lib/LINUX/ch_p4 \
./configure --enable-parallel

View File

@@ -97,3 +97,15 @@ Information for HDF5 maintainers:
which limits the number of children to two (this doesn't work at the
top level because the `-j2' is not passed to recursive makes).
* To create a release tarball go to the top-level directory and run
./bin/release. You can optionally supply one or more of the words
`tar', `gzip', `bzip2' or `compress' on the command line. The
result will be a (compressed) tar file(s) in the `releases'
directory. The README file is updated to contain the release date
and version number.
* To create a tarball of all the files which are part of HDF5 go to
the top-level directory and type:
tar cvf foo.tar `grep '^\.' MANIFEST |unexpand |cut -f1`

View File

@@ -1,19 +1,17 @@
Installation instructions for Parallel HDF5
-------------------------------------------
(last updated: April 22, 1998)
(last updated: May 21, 1999)
1. Overview
-----------
This file contains instructions for the installation of parallel
HDF5. Platforms supported by this release are SGI Origin 2000,
IBM SP2, and the Intel TFLOP. The steps are kind of unnatural and
will be more automized in the next release. If you have difficulties
installing the software in your system, please send mail to
hdfparallel@ncsa.uiuc.edu
Note:
For the users of the Intel TFLOPS machine, a special sequence of steps
for the parallel install may be found in the file: INSTALL.ascired.
Also, MPI/MPIO information similar to that found below may be found in
INSTALL_parallel.ascired.
In your mail, please enclose the output of "uname -a". Also attach the
content of "config.log" if you have run the "configure" command.
First, you must obtain and unpack the HDF5 source as
described in the file INSTALL. You also need to obtain the
@@ -21,21 +19,69 @@ information of the include and library paths of MPI and MPIO
software installed in your system since the parallel HDF5 library
uses them for parallel I/O access.
For an IBM SP2 system, follow the instructions in INSTALL.ibm.sp.parallel.
For an SGI Origin 2000 system, use the following shell commands. (The
one shown here is what works in the NCSA O2K machine in which MPI library
is installed in system area but no official MPIO software is available.
I use a private installation of ROMIO for it.)
mpi1_inc="" #mpi-1 include
mpi1_lib="" #mpi-1 library
mpio_inc="-I$HOME/ROMIO/include" #mpio include
mpio_lib="-L$HOME/ROMIO/lib/IRIX64/" #mpio library
2. Quick Instruction for known systems
--------------------------------------
The following shows particular steps to run the parallel HDF5
configure for a few machines we tested. If your particular platform
is not shown or somehow the steps do not work for yours, please go
to the next section for more detail explanations.
IBM SP2: follow the instructions in INSTALL.ibm.sp.parallel.
TFLOPS: follow the instuctions in INSTALL.ascired.
SGI Origin 2000:
Cray T3E:
(where MPI-IO is part of system MPI library such as mpt 1.3)
#!/bin/sh
RUNPARALLEL="mpirun -np 2"
export RUNPARALLEL
LIBS="-lmpi"
export LIBS
./configure --enable-parallel --disable-shared --prefix=$PWD/installdir
make
make check
make install
SGI Origin 2000:
Cray T3E:
(where MPI-IO is not part of system MPI library or I want to
use my own version of MPIO)
mpi1_inc="" #mpi-1 include
mpi1_lib="" #mpi-1 library
mpio_inc=-I$HOME/ROMIO/include #mpio include
mpio_lib="-L$HOME/ROMIO/lib/IRIX64" #mpio library
MPI_INC="$mpio_inc $mpi1_inc"
MPI_LIB="$mpio_lib $mpi1_lib"
#for version 1.1
CPPFLAGS=$MPI_INC
export CPPFLAGS
LDFLAGS=$MPI_LIB
export LDFLAGS
RUNPARALLEL="mpirun -np 2"
export RUNPARALLEL
LIBS="-lmpio -lmpi"
export LIBS
./configure --enable-parallel --disable-shared --prefix=$PWD/installdir
make
make check
make install
3. Detail explanation
---------------------
[Work in progress. Please send mail to hdfparallel@ncsa.uiuc.edu.]
MPI_INC="$mpi1_inc $mpio_inc"
export MPI_INC
MPI_LIB="$mpi1_lib $mpio_lib"
export MPI_LIB
./configure --enable-parallel

View File

@@ -18,7 +18,7 @@
# (We use sh here, but of course you can adapt to whatever shell you like.)
# compile for MPI jobs
CC=cicc
#CC=cicc
# The following flags are only needed when compiling/linking a user program
# for execution.
@@ -26,19 +26,32 @@ CC=cicc
debug="-g -UH5O_DEBUG -DH5F_OPT_SEEK=0"
default_mode="-DDOS386 $debug -DH5F_LOW_DFLT=H5F_LOW_SEC2"
MPICH=""
ROMIO="/usr/community/mpi-io/romio/current"
# Using the MPICH libary by Daniel Sands.
# It contains both MPI-1 and MPI-IO functions.
ROMIO="${HOME}/MPIO/mpich"
if [ ! -d $ROMIO ]
then
echo "ROMIO directory ($ROMIO) not found"
echo "Aborted"
exit 1
fi
mpi1_inc=""
mpi1_lib=""
mpio_inc="-I$ROMIO/include"
mpio_lib="-L$ROMIO/lib/tflop"
mpio_lib="-L$ROMIO/lib"
MPI_INC="$mpi1_inc $mpio_inc"
MPI_LIB="$mpi1_lib $mpio_lib"
CFLAGS="$default_mode"
#for version 1.1 and later
RUNSERIAL="yod -sz 1"
export RUNSERIAL
RUNPARALLEL="yod -sz 8"
export RUNPARALLEL
LIBS="-lmpich"
export LIBS
export CC CFLAGS MPI_INC MPI_LIB
# Once these variables are set to the proper values for your installation,
# you can run the configure program (i.e., ./configure tflop --enable-parallel=mpio)
@@ -49,5 +62,7 @@ export CC CFLAGS MPI_INC MPI_LIB
# cicc and link to the MPI-IO library and the parallel version of the HDF5
# library (that was created and installed with the configure/make process).
./configure tflop --enable-parallel=mpio
CFLAGS="$default_mode" \
CPPFLAGS=$MPI_INC \
LDFLAGS=$MPI_LIB \
./configure --enable-parallel --disable-shared tflop

332
MANIFEST
View File

@@ -1,3 +1,10 @@
#------------------------------------------------------------------------------
# This is the list of files that are part of HDF5. All files have a
# `./' prefix and appear in lexicographic order. Lines that end with
# _DO_NOT_DISTRIBUTE_ will not be included in a release. Blank lines
# and comments are ignored. Comments must start in column one.
#------------------------------------------------------------------------------
./COPYING
./INSTALL
./INSTALL.ascired
@@ -11,57 +18,97 @@
./README
./RELEASE
./acconfig.h
./bin/checkposix
./bin/config.guess
./bin/config.sub
./bin/distdep
./bin/errors
./bin/install-sh
./bin/release
./bin/trace
./bin/versinc
./config/BlankForm
./config/alpha-dec
./config/commence.in
./config/conclude.in
./config/depend.in
./config/freebsd2.2.1
./config/hpux10.20
./config/intel-osf1
./config/irix5.3
./config/irix6.2
./config/irix64
./config/linux
./config/powerpc-ibm-aix4.2.1.0
./config/rs6000-ibm-aix4.1.4.0
./config/solaris2.5
./aclocal.m4
./configure
./configure.in
./doc/html/ddl.html
./all.zip
./bin/checkapi _DO_NOT_DISTRIBUTE_
./bin/checkposix _DO_NOT_DISTRIBUTE_
./bin/config.guess
./bin/config.sub
./bin/debug-ohdr _DO_NOT_DISTRIBUTE_
./bin/distdep
./bin/errors _DO_NOT_DISTRIBUTE_
./bin/h5vers
./bin/install-sh
./bin/iostats
./bin/ltconfig
./bin/ltmain.sh
./bin/release
./bin/snapshot
./bin/trace
./bin/versinc _DO_NOT_DISTRIBUTE_
./config/BlankForm
./config/commence.in
./config/conclude.in
./config/dec-flags
./config/dec-osf4.x
./config/depend.in
./config/freebsd
./config/gnu-flags
./config/hpux10.20
./config/hpux9.03
./config/intel-osf1
./config/irix5.x
./config/irix6.x
./config/linux-gnu
./config/linux-gnulibc1
./config/linux-gnulibc2
./config/powerpc-ibm-aix4.x
./config/rs6000-ibm-aix4.x
./config/solaris2.x
./config/unicosmk
./doc/html/Attributes.html
./doc/html/Big.html
./doc/html/Caching.html
./doc/html/CodeReview.html
./doc/html/Chunking.html
./doc/html/Chunk_f1.gif
./doc/html/Chunk_f1.obj _DO_NOT_DISTRIBUTE_
./doc/html/Chunk_f2.gif
./doc/html/Chunk_f2.obj _DO_NOT_DISTRIBUTE_
./doc/html/Chunk_f3.gif
./doc/html/Chunk_f4.gif
./doc/html/Chunk_f5.gif
./doc/html/Chunk_f6.gif
./doc/html/Chunk_f6.obj _DO_NOT_DISTRIBUTE_
./doc/html/CodeReview.html _DO_NOT_DISTRIBUTE_
./doc/html/Coding.html
./doc/html/Compression.html
./doc/html/Copyright.html
./doc/html/Datasets.html
./doc/html/Dataspaces.html
./doc/html/Datatypes.html
./doc/html/DatatypesEnum.html
./doc/html/ddl.html
./doc/html/Debugging.html
./doc/html/EnumMap.gif
./doc/html/Environment.html
./doc/html/Errors.html
./doc/html/ExternalFiles.html
./doc/html/ExternalFiles.html _DO_NOT_DISTRIBUTE_
./doc/html/Files.html
./doc/html/Filters.html
./doc/html/Glossary.html
./doc/html/Groups.html
./doc/html/H5.api.html
./doc/html/H5.api_map.html
./doc/html/H5.format.html
./doc/html/H5.intro.html
./doc/html/H5.sample_code.html
./doc/html/H5.user.html
./doc/html/IH_map1.gif
./doc/html/IH_map2.gif
./doc/html/IH_map3.gif
./doc/html/IH_map4.gif
./doc/html/IH_mapFoot.gif
./doc/html/IH_mapHead.gif
./doc/html/IOPipe.html
./doc/html/MemoryManagement.html
./doc/html/ObjectHeader.txt
./doc/html/MemoryManagement.html _DO_NOT_DISTRIBUTE_
./doc/html/NCSAfooterlogo.gif
./doc/html/ObjectHeader.txt _DO_NOT_DISTRIBUTE_
./doc/html/Properties.html
./doc/html/Ragged.html
./doc/html/References.html
./doc/html/RM_H5.html
./doc/html/RM_H5A.html
./doc/html/RM_H5D.html
@@ -69,76 +116,76 @@
./doc/html/RM_H5F.html
./doc/html/RM_H5Front.html
./doc/html/RM_H5G.html
./doc/html/RM_H5I.html
./doc/html/RM_H5P.html
./doc/html/RM_H5R.html
./doc/html/RM_H5RA.html
./doc/html/RM_H5S.html
./doc/html/RM_H5T.html
./doc/html/RM_H5Z.html
./doc/html/Tools.html
./doc/html/Version.html
./doc/html/chunk1.gif
./doc/html/chunk1.obj
./doc/html/chunk1.obj _DO_NOT_DISTRIBUTE_
./doc/html/compat.html
./doc/html/dataset_p1.gif
./doc/html/dataset_p1.obj
./doc/html/extern1.gif
./doc/html/extern1.obj
./doc/html/extern1.obj _DO_NOT_DISTRIBUTE_
./doc/html/extern2.gif
./doc/html/extern2.obj
./doc/html/extern2.obj _DO_NOT_DISTRIBUTE_
./doc/html/group_p1.gif
./doc/html/group_p1.obj
./doc/html/group_p1.obj _DO_NOT_DISTRIBUTE_
./doc/html/group_p2.gif
./doc/html/group_p2.obj
./doc/html/group_p2.obj _DO_NOT_DISTRIBUTE_
./doc/html/group_p3.gif
./doc/html/group_p3.obj
./doc/html/group_p3.obj _DO_NOT_DISTRIBUTE_
./doc/html/h5s.examples
./doc/html/hdf2.jpg
./doc/html/ph5design.html
./doc/html/ph5example.c
./doc/html/ph5implement.txt
./doc/html/pipe1.gif
./doc/html/pipe1.obj
./doc/html/pipe1.obj _DO_NOT_DISTRIBUTE_
./doc/html/pipe2.gif
./doc/html/pipe2.obj
./doc/html/pipe2.obj _DO_NOT_DISTRIBUTE_
./doc/html/pipe3.gif
./doc/html/pipe3.obj
./doc/html/pipe3.obj _DO_NOT_DISTRIBUTE_
./doc/html/pipe4.gif
./doc/html/pipe4.obj
./doc/html/pipe4.obj _DO_NOT_DISTRIBUTE_
./doc/html/pipe5.gif
./doc/html/pipe5.obj
./doc/html/heap.txt
./doc/html/pipe5.obj _DO_NOT_DISTRIBUTE_
./doc/html/heap.txt _DO_NOT_DISTRIBUTE_
./doc/html/index.html
./doc/html/move.html
./doc/html/review1.html
./doc/html/review1a.html
./doc/html/storage.html
./doc/html/study.html
./doc/html/study_1000x1000.gif
./doc/html/study_250x250.gif
./doc/html/study_499x499.gif
./doc/html/study_5000x1000.gif
./doc/html/study_500x500.gif
./doc/html/study_p1.gif
./doc/html/study_p1.obj
./doc/html/symtab
./doc/html/tracing.html
./doc/html/move.html _DO_NOT_DISTRIBUTE_
./doc/html/review1.html _DO_NOT_DISTRIBUTE_
./doc/html/review1a.html _DO_NOT_DISTRIBUTE_
./doc/html/storage.html _DO_NOT_DISTRIBUTE_
./doc/html/symtab _DO_NOT_DISTRIBUTE_
./doc/html/version.gif
./doc/html/version.obj
./doc/src/Glossary.html
./doc/src/H5.intro.doc
./doc/src/RM_H5.html
./doc/src/RM_H5A.html
./doc/src/RM_H5D.html
./doc/src/RM_H5E.html
./doc/src/RM_H5F.html
./doc/src/RM_H5Front.html
./doc/src/RM_H5G.html
./doc/src/RM_H5P.html
./doc/src/RM_H5S.html
./doc/src/RM_H5T.html
./doc/src/RM_H5Z.html
./doc/tgif/APIGrammar.obj
./doc/tgif/FileGrammar.obj
./doc/tgif/IOPipe.obj
./doc/tgif/RobbPipe.obj
./doc/tgif/UserView.obj
./doc/html/version.obj _DO_NOT_DISTRIBUTE_
./doc/src/Copyright.html _DO_NOT_DISTRIBUTE_
./doc/src/Glossary.html _DO_NOT_DISTRIBUTE_
./doc/src/H5.intro.doc _DO_NOT_DISTRIBUTE_
./doc/src/RM_H5.html _DO_NOT_DISTRIBUTE_
./doc/src/RM_H5A.html _DO_NOT_DISTRIBUTE_
./doc/src/RM_H5D.html _DO_NOT_DISTRIBUTE_
./doc/src/RM_H5E.html _DO_NOT_DISTRIBUTE_
./doc/src/RM_H5F.html _DO_NOT_DISTRIBUTE_
./doc/src/RM_H5Front.html _DO_NOT_DISTRIBUTE_
./doc/src/RM_H5G.html _DO_NOT_DISTRIBUTE_
./doc/src/RM_H5P.html _DO_NOT_DISTRIBUTE_
./doc/src/RM_H5R.html _DO_NOT_DISTRIBUTE_
./doc/src/RM_H5S.html _DO_NOT_DISTRIBUTE_
./doc/src/RM_H5T.html _DO_NOT_DISTRIBUTE_
./doc/src/RM_H5Z.html _DO_NOT_DISTRIBUTE_
./doc/src/Tools.html _DO_NOT_DISTRIBUTE_
./doc/tgif/APIGrammar.obj _DO_NOT_DISTRIBUTE_
./doc/tgif/FileGrammar.obj _DO_NOT_DISTRIBUTE_
./doc/tgif/IOPipe.obj _DO_NOT_DISTRIBUTE_
./doc/tgif/RobbPipe.obj _DO_NOT_DISTRIBUTE_
./doc/tgif/UserView.obj _DO_NOT_DISTRIBUTE_
./examples/Attributes.txt
./examples/Makefile.in
./examples/h5_chunk_read.c
@@ -147,9 +194,29 @@
./examples/h5_group.c
./examples/h5_read.c
./examples/h5_write.c
./examples/h5_select.c
./examples/h5_attribute.c
./examples/h5_mount.c
./examples/h5_reference.c
./pablo/HDFIOTrace.h
./pablo/HDFTrace.h
./pablo/HDFmpioProtos.h
./pablo/HDFrecord_RT.h
./pablo/Makefile.in
./pablo/PabloHDF.c
./pablo/PabloHDF_RT.c
./pablo/PabloHDF_SDDF.c
./pablo/ProcIDs.h
./pablo/PabloSedscr
./pablo/ProcTrace.h
./pablo/ProcTrace.inc
./pablo/READ_ME
./src/.distdep
./src/.indent.pro
./src/.indent.pro _DO_NOT_DISTRIBUTE_
./src/H5.c
./src/H5api_adpt.h
./src/H5A.c
./src/H5Aprivate.h
./src/H5Apublic.h
@@ -206,7 +273,9 @@
./src/H5Ocont.c
./src/H5Odtype.c
./src/H5Oefl.c
./src/H5Ofill.c
./src/H5Olayout.c
./src/H5Omtime.c
./src/H5Oname.c
./src/H5Onull.c
./src/H5Oprivate.h
@@ -217,13 +286,20 @@
./src/H5P.c
./src/H5Pprivate.h
./src/H5Ppublic.h
./src/H5R.c
./src/H5Rprivate.h
./src/H5Rpublic.h
./src/H5RA.c
./src/H5RAprivate.h
./src/H5RApublic.h
./src/H5S.c
./src/H5Sall.c
./src/H5Shyper.c
./src/H5Smpio.c
./src/H5Snone.c
./src/H5Spoint.c
./src/H5Sprivate.h
./src/H5Spublic.h
./src/H5Ssimp.c
./src/H5Sselect.c
./src/H5T.c
./src/H5Tbit.c
@@ -231,6 +307,7 @@
./src/H5Tpkg.h
./src/H5Tprivate.h
./src/H5Tpublic.h
./src/H5Tvlen.c
./src/H5TB.c
./src/H5TBprivate.h
./src/H5V.c
@@ -244,6 +321,8 @@
./src/H5public.h
./src/Makefile.in
./src/hdf5.h
./src/libhdf5.settings.in
./test/.distdep
./test/Makefile.in
./test/big.c
@@ -252,33 +331,118 @@
./test/cmpd_dset.c
./test/dsets.c
./test/dtypes.c
./test/enum.c
./test/extend.c
./test/external.c
./test/fillval.c
./test/flush1.c
./test/flush2.c
./test/gheap.c
./test/h5test.c
./test/h5test.h
./test/hyperslab.c
./test/iopipe.c
./test/istore.c
./test/lheap.c
./test/links.c
./test/shtype.c
./test/mount.c
./test/mtime.c
./test/ohdr.c
./test/overhead.c
./test/ragged.c
./test/space_overflow.c _DO_NOT_DISTRIBUTE_
./test/stab.c
./test/testhdf5.c
./test/testhdf5.h
./test/tattr.c
./test/tfile.c
./test/th5s.c
./test/theap.c
./test/th5s.h5
./test/tmeta.c
./test/tohdr.c
./test/trefer.c
./test/tselect.c
./test/tstab.c
./testpar/Makefile.ascired
./testpar/Makefile.irix64
./test/tvltypes.c
./test/unlink.c
./testpar/Makefile.in
./testpar/Makefile.ibmsp
./testpar/README
./testpar/t_dset.c
./testpar/t_file.c
./testpar/t_mpi.c
./testpar/testphdf5.c
./testpar/testphdf5.h
./tools/Makefile.in
./tools/h5debug.c
./tools/h5dump.c
./tools/h5dump.h
./tools/h5dumptst.c
./tools/h5dumputil.c
./tools/h5findshd.c
./tools/h5import.c
./tools/h5ls.c
./tools/h5repart.c
./tools/h5toh4.c
./tools/h5toh4.h
./tools/h5tools.c
./tools/h5tools.h
./tools/testh5dump.sh
./tools/testh5toh4
./tools/testfiles/tall-1.ddl
./tools/testfiles/tall-2.ddl
./tools/testfiles/tall-3.ddl
./tools/testfiles/tall.h5
./tools/testfiles/tattr-1.ddl
./tools/testfiles/tattr-2.ddl
./tools/testfiles/tattr-3.ddl
./tools/testfiles/tattr.h5
./tools/testfiles/tcomp-1.ddl
./tools/testfiles/tcomp-2.ddl
./tools/testfiles/tcomp-3.ddl
./tools/testfiles/tcompound.h5
./tools/testfiles/tcompound2.h5
./tools/testfiles/tdatareg.h5
./tools/testfiles/tdatareg.ddl
./tools/testfiles/tdset-1.ddl
./tools/testfiles/tdset-2.ddl
./tools/testfiles/tdset.h5
./tools/testfiles/tdset2.h5
./tools/testfiles/tenum.h5
./tools/testfiles/tenum.ddl
./tools/testfiles/tgroup-1.ddl
./tools/testfiles/tgroup-2.ddl
./tools/testfiles/tgroup.h5
./tools/testfiles/thlink-1.ddl
./tools/testfiles/thlink-2.ddl
./tools/testfiles/thlink-3.ddl
./tools/testfiles/thlink-4.ddl
./tools/testfiles/thlink-5.ddl
./tools/testfiles/thlink.h5
./tools/testfiles/tloop-1.ddl
./tools/testfiles/tloop.h5
./tools/testfiles/tloop2.h5
./tools/testfiles/tmany.h5
./tools/testfiles/tobjref.h5
./tools/testfiles/tobjref.ddl
./tools/testfiles/tslink-1.ddl
./tools/testfiles/tslink-2.ddl
./tools/testfiles/tslink.h5
./tools/testfiles/tstr-1.ddl
./tools/testfiles/tstr.h5
./tools/testfiles/tstr2.h5
./tools/testfiles/Expected/tall.hdf
./tools/testfiles/Expected/tattr.hdf
./tools/testfiles/Expected/tcompound.hdf
./tools/testfiles/Expected/tcompound2.hdf
./tools/testfiles/Expected/tdset.hdf
./tools/testfiles/Expected/tdset2.hdf
./tools/testfiles/Expected/tgroup.hdf
./tools/testfiles/Expected/thlink.hdf
./tools/testfiles/Expected/tloop.hdf
./tools/testfiles/Expected/tmany.hdf
./tools/testfiles/Expected/tslink.hdf
./tools/testfiles/Expected/tstr.hdf
./tools/testfiles/Expected/tstr2.hdf

View File

@@ -11,7 +11,7 @@
SHELL=/bin/sh
all lib progs test _test install uninstall dep depend: _config
all lib progs check test _test install uninstall dep depend: _config
$(MAKE) $@
clean mostlyclean distclean maintainer-clean TAGS: _config

View File

@@ -1,4 +1,4 @@
# Top-level HDF5 Makefile(.in) -*- makefile -*-
# Top-level HDF5 Makefile(.in)
#
# Copyright (C) 1997 National Center for Supercomputing Applications.
# All rights reserved.
@@ -8,10 +8,14 @@
# but does so in the correct order. You can alternatively invoke make from
# each subdirectory manually.
#
top_srcdir=@top_srcdir@
top_builddir=.
srcdir=@srcdir@
VPATH=.:@srcdir@
@COMMENCE@
# Subdirectories in build-order
SUBDIRS=src test tools
# Subdirectories in build-order (not including `examples')
SUBDIRS=src test tools @TESTPARALLEL@
##############################################################################
# T A R G E T S
@@ -21,7 +25,10 @@ SUBDIRS=src test tools
# library, header files, or programs. The components can be
# built individually with the targets lib, progs, and tests.
#
# test: Test the uninstalled library to make sure it works.
# check: Test the uninstalled library to make sure it works. You may
# also say `test' or `_test' (`test' doesn't work from the top
# level directory for some versions of make because `test' is
# also a directory).
#
# install: Installs libraries, header files, programs, and documentation
# in the various directories under the prefix directory (lib,
@@ -59,11 +66,22 @@ SUBDIRS=src test tools
# make used in combination with gcc will maintain dependency
# information automatically.
#
lib progs tests test _test install uninstall TAGS dep depend:
lib progs check test _test uninstall:
@@SETX@; for d in $(SUBDIRS); do \
(cd $$d && $(MAKE) $@) || exit 1; \
done
tests TAGS dep depend:
@@SETX@; for d in $(SUBDIRS) examples; do \
(cd $$d && $(MAKE) $@) || exit 1; \
done
install:
@@SETX@; for d in $(SUBDIRS); do \
(cd $$d && $(MAKE) $@) || exit 1; \
done
@$(LT) --mode=finish $(libdir);
# Number format detection
H5detect:
(cd src && $(MAKE) $@)
@@ -75,24 +93,26 @@ H5Tinit.c:
mostlyclean distclean maintainer-clean
clean mostlyclean:
@@SETX@; for d in $(SUBDIRS); do \
(cd $$d && $(MAKE) $@) || exit 1; \
@@SETX@; for d in $(SUBDIRS) examples pablo; do \
(cd $$d && $(MAKE) $@); \
done
-$(RM) conftest conftest.c
distclean:
@@SETX@; for d in $(SUBDIRS); do \
(cd $$d && $(MAKE) $@) || exit 1; \
@@SETX@; for d in $(SUBDIRS) examples pablo; do \
(cd $$d && $(MAKE) $@); \
done
$(RM) config/commence config/conclude config/depend
$(RM) config.cache config.log config.status src/H5config.h
$(RM) Makefile
$(CP) Makefile.dist Makefile
-$(RM) config/commence config/conclude config/depend
-$(RM) config.cache config.log config.status src/H5config.h
-$(RM) config/stamp1 config/stamp2 libtool Makefile
-$(CP) Makefile.dist Makefile
maintainer-clean:
@echo "This command is intented for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
@@SETX@; for d in $(SUBDIRS); do \
(cd $$d && $(MAKE) $@) || exit 1; \
@@SETX@; for d in $(SUBDIRS) examples pablo; do \
(cd $$d && $(MAKE) $@); \
done
$(RM) config.cache config.log config.status src/H5config.h
$(RM) configure src/H5config.h.in
-$(RM) config.cache config.log config.status src/H5config.h
-$(RM) configure src/H5config.h.in

2
README
View File

@@ -1,4 +1,4 @@
This is hdf5-1.0.23a released on 1998-06-15 05:41 UTC
This is hdf5-1.1.110 currently under development
Please refer to the INSTALL file for installation instructions.
------------------------------------------------------------------------------

232
RELEASE
View File

@@ -1,5 +1,59 @@
Release information for hdf5-1.0.23a
-----------------------------------
Release information for hdf5-1.1.x
------------------------------------
CHANGES SINCE THE Version 1.0.0 RELEASE
* [Improvement]: configure sets up the Makefile in the parallel tests
suit (testpar/) correctly. (Tested for O2K only.)
* [Bug-Fix]: Configure failed for all IRIX versions other than 6.3.
It now configures correctly for all IRIX 6.x version.
CHANGES SINCE THE BETA RELEASE
* Added fill values for datasets. For contiguous datasets fill value
performance may be quite poor since the fill value is written to the
entire dataset when the dataset is created. This will be remedied
in a future version. Chunked datasets using fill values do not
incur any additional overhead. See H5Pset_fill_value().
* Multiple hdf5 files can be "mounted" on one another to create a
larger virtual file. See H5Fmount().
* Object names can be removed or changed but objects are never
actually removed from the file yet. See H5Gunlink() and H5Gmove().
* Added a tuning mechanism for B-trees to insure that sequential
writes to chunked datasets use less overhead. See H5Pset_btree_ratios().
* Various optimizations and bug fixes.
CHANGES SINCE THE SECOND ALPHA
* Strided hyperslab selections in dataspaces now working.
* The compression API has been replaced with a more general filter
API. See doc/html/Filters.html for details.
* Alpha-quality 2d ragged arrays are implemented as a layer built on
top of other hdf5 objects. The API and storage format will almost
certainly change.
* More debugging support including API tracing. See Debugging.html.
* C and Fortran style 8-bit fixed-length character string types are
supported with space or null padding or null termination and
translations between them.
* Added function H5Fflush() to write all cached data immediately to
the file.
* Datasets maintain a modification time which can be retrieved with
H5Gstat().
* The h5ls tool can display much more information, including all the
values of a dataset.
CHANGES SINCE THE FIRST ALPHA
@@ -37,12 +91,12 @@ Release information for hdf5-1.0.23a
which correspond to the standard C types like H5T_NATIVE_INT.
* More debugging support was added. If tracing is enabled at
configuration time and the HDF5_TRACE environment variable is set to
a file descriptor then all API calls will emit the function name,
argument names and values, and return value on that file number.
There is an html document that describes this. If appropriate
debugging options are enabled at configuration time, some packages
will display performance information on stderr.
configuration time (the default) and the HDF5_TRACE environment
variable is set to a file descriptor then all API calls will emit
the function name, argument names and values, and return value on
that file number. There is an html document that describes this.
If appropriate debugging options are enabled at configuration time,
some packages will display performance information on stderr.
* Data types can be stored in the file as independent objects and
multiple datasets can share a data type.
@@ -60,7 +114,7 @@ Release information for hdf5-1.0.23a
HDF5.
* Hard and soft (symbolic) links are implemented which allow groups to
share objects.
share objects. Dangling and recursive symbolic links are supported.
* User-defined data compression is implemented although we may
generalize the interface to allow arbitrary user-defined filters
@@ -113,8 +167,8 @@ Library
H5open - initialize library (happens automatically)
H5close - shut down the library (happens automatically)
H5dont_atexit - don't call H5close on exit
H5version - retrieve library version info
H5version_check - check for specific library version
H5get_libversion - retrieve library version info
H5check_version - check for specific library version
Property Lists
H5Pclose - release template resources
@@ -156,10 +210,10 @@ Property Lists
H5Pset_buffer - set raw-data I/O pipe buffer properties
H5Pget_preserve - get type conversion preservation properties
H5Pset_preserve - set type conversion preservation properties
H5Pget_compression - get raw data compression properties
H5Pset_compression - set raw data compression properties
H5Pget_deflate - get deflate compression properties
H5Pset_deflate - set deflate compression properties
H5Pget_nfilters - get number of raw data filters
H5Pget_filter - get raw data filter properties
H5Pset_filter - set raw data filter properties
H5Pset_deflate - set deflate compression filter properties
H5Pget_mpi - get MPI-IO properties
H5Pset_mpi - set MPI-IO properties
H5Pget_xfer - get data transfer properties
@@ -177,64 +231,74 @@ Datasets
H5Dextend - extend a dataset
Attributes
H5Acreate - create a new attribute
H5Aopen_name - open an attribute by name
H5Aopen_idx - open an attribute by number
H5Acreate - create a new attribute
H5Aopen_name - open an attribute by name
H5Aopen_idx - open an attribute by number
H5Awrite - write values into an attribute
H5Aread - read values from an attribute
H5Aget_space - get attribute data space
H5Aget_type - get attribute data type
H5Aget_name - get attribute name
H5Anum_attrs - return the number of attributes for an object
H5Aiterate - iterate over an object's attributes
H5Adelete - delete an attribute
H5Aget_space - get attribute data space
H5Aget_type - get attribute data type
H5Aget_name - get attribute name
H5Anum_attrs - return the number of attributes for an object
H5Aiterate - iterate over an object's attributes
H5Adelete - delete an attribute
H5Aclose - close an attribute
Errors
H5Eclear - clear the error stack
H5Eprint - print an error stack
H5Eget_auto - get automatic error reporting settings
H5Eset_auto - set automatic error reporting
H5Eget_auto - get automatic error reporting settings
H5Eset_auto - set automatic error reporting
H5Ewalk - iterate over the error stack
H5Ewalk_cb - the default error stack iterator function
H5Eget_major - get the message for the major error number
H5Eget_minor - get the message for the minor error number
H5Ewalk_cb - the default error stack iterator function
H5Eget_major - get the message for the major error number
H5Eget_minor - get the message for the minor error number
Files
H5Fclose - close a file and release resources
H5Fclose - close a file and release resources
H5Fcreate - create a new file
H5Fget_create_template- get file creation property list
H5Fget_access_template- get file access property list
H5Fget_create_plist - get file creation property list
H5Fget_access_plist - get file access property list
H5Fis_hdf5 - determine if a file is an hdf5 file
H5Fopen - open an existing file
H5Fopen - open an existing file
Groups
H5Gclose - close a group and release resources
H5Gcreate - create a new group
H5Gcreate - create a new group
H5Gopen - open an existing group
H5Gpop - pop a group from the cwg stack
H5Gpush - push a group onto the cwg stack
H5Gset - set the current working group (cwg)
H5Giterate - iterate over the contents of a group
H5Giterate - iterate over the contents of a group
H5Gmove - change the name of some object
H5Glink - create a hard or soft link to an object
H5Gunlink - break the link between a name and an object
H5Gstat - get information about a group entry
H5Gunlink - break the link between a name and an object
H5Gget_objinfo - get information about a group entry
H5Gget_linkval - get the value of a soft link
H5Gget_comment - get the comment string for an object
H5Gset_comment - set the comment string for an object
Dataspaces
H5Sclose - release dataspace
H5Screate - create a new dataspace
H5Screate_simple - create a new simple dataspace
H5Sextent_dims - get dataspace size
H5Screate - create a new data space
H5Scopy - copy a data space
H5Sclose - release data space
H5Screate_simple - create a new simple data space
H5Sset_space - set simple data space extents
H5Sis_simple - determine if data space is simple
H5Sset_extent_simple - set simple data space dimensionality and size
H5Sget_simple_extent_npoints - get number of points in simple extent
H5Sget_simple_extent_ndims - get simple data space dimensionality
H5Sget_simple_extent_dims - get simple data space size
H5Sget_simple_extent_type - get type of simple extent
H5Sset_extent_none - reset extent to be empty
H5Sextent_copy - copy the extent from one data space to another
H5Sget_select_npoints - get number of points selected for I/O
H5Sselect_hyperslab - set hyperslab dataspace selection
H5Sselect_elements - set element sequence dataspace selection
H5Sextent_ndims - get dataspace dimensionality
H5Sextent_npoints - get number of points in extent of dataspace
H5Sselect_npoints - get number of selected points in dataspace
H5Sis_simple - determine if dataspace is simple
H5Sset_extent_simple - set simple dataspace dimensionality and size
H5Scopy - copy a dataspace
H5Sselect_all - select entire extent for I/O
H5Sselect_none - deselect all elements of extent
H5Soffset_simple - set selection offset
H5Sselect_valid - determine if selection is valid for extent
Datatypes
H5Tclose - release data type resources
@@ -244,8 +308,14 @@ Datatypes
H5Tcopy - copy a data type
H5Tcreate - create a new data type
H5Tequal - compare two data types
H5Tlock - lock type to prevent changes
H5Tfind - find a data type conversion function
H5Tconvert - convert data from one type to another
H5Tregister_hard - register specific type conversion function
H5Tregister_soft - register general type conversion function
H5Tunregister - remove a type conversion function
H5Tget_overflow - get function that handles overflow conv. cases
H5Tset_overflow - set function to handle overflow conversion cases
H5Tget_class - get data type class
H5Tget_cset - get character set
H5Tget_ebias - get exponent bias
@@ -264,11 +334,9 @@ Datatypes
H5Tget_sign - get integer sign type
H5Tget_size - get size in bytes
H5Tget_strpad - get string padding
H5Tinsert - insert struct member
H5Tlock - lock type to prevent changes
H5Tinsert - insert scalar struct member
H5Tinsert_array - insert array struct member
H5Tpack - pack struct members
H5Tregister_hard - register specific type conversion function
H5Tregister_soft - register general type conversion function
H5Tset_cset - set character set
H5Tset_ebias - set exponent bias
H5Tset_fields - set floating point fields
@@ -281,36 +349,54 @@ Datatypes
H5Tset_sign - set integer sign type
H5Tset_size - set size in bytes
H5Tset_strpad - set string padding
H5Tunregister - remove a type conversion function
Compression
H5Tregister - register a new compression method
Filters
H5Tregister - register a new filter method
Ragged Arrays (alpha)
H5Rcreate - create a new ragged array
H5Ropen - open an existing array
H5Rclose - close a ragged array
H5Rwrite - write to an array
H5Rread - read from an array
This release has been tested on UNIX platforms only; specifically:
Linux, FreedBSD, IRIX, Solaris & Dec UNIX.
Release information for parallel HDF5
-------------------------------------
RELEASE INFORMATION FOR PARALLEL HDF5
-------------------------------------
+) Current release supports independent access to fixed dimension datasets
only.
* Current release supports independent access to fixed dimension datasets
only.
+) The comm and info arguments of H5Cset_mpi are not used. All parallel
I/O are done via MPI_COMM_WORLD. Access_mode for H5Cset_mpi can be
H5ACC_INDEPENDENT only.
* The comm and info arguments of H5Cset_mpi are not used. All parallel
I/O are done via MPI_COMM_WORLD. Access_mode for H5Cset_mpi can be
H5ACC_INDEPENDENT only.
+) This release of parallel HDF5 has been tested on IBM SP2 and SGI
Origin 2000 systems. It uses the ROMIO version of MPIO interface
for parallel I/O supports.
* This release of parallel HDF5 has been tested on IBM SP2 and SGI
Origin 2000 systems. It uses the ROMIO version of MPIO interface
for parallel I/O supports.
+) Useful URL's.
Parallel HDF webpage: "http://hdf.ncsa.uiuc.edu/Parallel_HDF/"
ROMIO webpage: "http://www.mcs.anl.gov/home/thakur/romio/"
* Useful URL's.
Parallel HDF webpage: "http://hdf.ncsa.uiuc.edu/Parallel_HDF/"
ROMIO webpage: "http://www.mcs.anl.gov/home/thakur/romio/"
+) Some to-do items for future releases
support for Intel Teraflop platform.
support for unlimited dimension datasets.
support for file access via a communicator besides MPI_COMM_WORLD.
support for collective access to datasets.
support for independent create/open of datasets.
* Some to-do items for future releases
support for Intel Teraflop platform.
support for unlimited dimension datasets.
support for file access via a communicator besides MPI_COMM_WORLD.
support for collective access to datasets.
support for independent create/open of datasets.
PLATFORMS SUPPORTED
-------------------
Platform(OS) C-Compiler Fortran-Compiler
------------ ---------- ----------------
Sun4(Solaris 2.5) CC SC4.0 f77 SC4.0
SGI (IRIX v6.5) CC 7.21 f77 7.21
SGI-Origin(IRIX64 v6.4-n32) CC 7.2.1.2m f77 7.2.1.2m
SGI-Origin(IRIX64 v6.4-64) CC 7.2.1.2m f77 7.2.1.2m

View File

@@ -10,5 +10,32 @@
/* Define if it's safe to use `long long' for hsize_t and hssize_t */
#undef HAVE_LARGE_HSIZET
/* The width parameter for printf formats for type `long long', us. `ll' */
/* Width for printf() for type `long long' or `__int64', us. `ll' */
#undef PRINTF_LL_WIDTH
/* Define if `tm_gmtoff' is a member of `struct tm' */
#undef HAVE_TM_GMTOFF
/* Define if `__tm_gmtoff' is a member of `struct tm' */
#undef HAVE___TM_GMTOFF
/* Define if `timezone' is a global variable */
#undef HAVE_TIMEZONE
/* Define if `struct timezone' is defined */
#undef HAVE_STRUCT_TIMEZONE
/* Define if `struct stat' has the `st_blocks' field */
#undef HAVE_STAT_ST_BLOCKS
/* Define if `struct text_info' is defined */
#undef HAVE_STRUCT_TEXT_INFO
/* Define if `struct videoconfig' is defined */
#undef HAVE_STRUCT_VIDEOCONFIG
/* Define if the ioctl TIOCGETD is defined */
#undef HAVE_TIOCGETD
/* Define if the ioctl TIOCGWINSZ is defined */
#undef HAVE_TIOCGWINSZ

259
aclocal.m4 vendored Normal file
View File

@@ -0,0 +1,259 @@
## libtool.m4 - Configure libtool for the target system. -*-Shell-script-*-
## Copyright (C) 1996-1998 Free Software Foundation, Inc.
## Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation; either version 2 of the License, or
## (at your option) any later version.
##
## This program is distributed in the hope that it will be useful, but
## WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
## General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with this program; if not, write to the Free Software
## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
##
## As a special exception to the GNU General Public License, if you
## distribute this file as part of a program that contains a
## configuration script generated by Autoconf, you may include it under
## the same distribution terms that you use for the rest of that program.
# serial 24 AM_PROG_LIBTOOL
AC_DEFUN(AM_PROG_LIBTOOL,
[AC_REQUIRE([AM_ENABLE_SHARED])dnl
AC_REQUIRE([AM_ENABLE_STATIC])dnl
AC_REQUIRE([AC_CANONICAL_HOST])dnl
AC_REQUIRE([AC_PROG_RANLIB])dnl
AC_REQUIRE([AC_PROG_CC])dnl
AC_REQUIRE([AM_PROG_LD])dnl
AC_REQUIRE([AM_PROG_NM])dnl
AC_REQUIRE([AC_PROG_LN_S])dnl
dnl
# Always use our own libtool.
LIBTOOL='$(SHELL) $(top_builddir)/libtool'
AC_SUBST(LIBTOOL)dnl
# Check for any special flags to pass to ltconfig.
libtool_flags=
test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static"
test "$silent" = yes && libtool_flags="$libtool_flags --silent"
test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc"
test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
# Some flags need to be propagated to the compiler or linker for good
# libtool support.
case "$host" in
*-*-irix6*)
# Find out which ABI we are using.
echo '[#]line __oline__ "configure"' > conftest.$ac_ext
if AC_TRY_EVAL(ac_compile); then
case "`/usr/bin/file conftest.o`" in
*32-bit*)
LD="${LD-ld} -32"
;;
*N32*)
LD="${LD-ld} -n32"
;;
*64-bit*)
LD="${LD-ld} -64"
;;
esac
fi
rm -rf conftest*
;;
*-*-sco3.2v5*)
# On SCO OpenServer 5, we need -belf to get full-featured binaries.
CFLAGS="$CFLAGS -belf"
;;
esac
# Actually configure libtool. ac_aux_dir is where install-sh is found.
AR="$AR" CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
LD="$LD" NM="$NM" RANLIB="$RANLIB" LN_S="$LN_S" \
${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig \
$libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \
|| AC_MSG_ERROR([libtool configure failed])
])
# AM_ENABLE_SHARED - implement the --enable-shared flag
# Usage: AM_ENABLE_SHARED[(DEFAULT)]
# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
# `yes'.
AC_DEFUN(AM_ENABLE_SHARED,
[define([AM_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
AC_ARG_ENABLE(shared,
changequote(<<, >>)dnl
<< --enable-shared build shared libraries [default=>>AM_ENABLE_SHARED_DEFAULT]
changequote([, ])dnl
[ --enable-shared=PKGS only build shared libraries if the current package
appears as an element in the PKGS list],
[p=${PACKAGE-default}
case "$enableval" in
yes) enable_shared=yes ;;
no) enable_shared=no ;;
*)
enable_shared=no
# Look at the argument we got. We use all the common list separators.
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
for pkg in $enableval; do
if test "X$pkg" = "X$p"; then
enable_shared=yes
fi
done
IFS="$ac_save_ifs"
;;
esac],
enable_shared=AM_ENABLE_SHARED_DEFAULT)dnl
])
# AM_DISABLE_SHARED - set the default shared flag to --disable-shared
AC_DEFUN(AM_DISABLE_SHARED,
[AM_ENABLE_SHARED(no)])
# AM_DISABLE_STATIC - set the default static flag to --disable-static
AC_DEFUN(AM_DISABLE_STATIC,
[AM_ENABLE_STATIC(no)])
# AM_ENABLE_STATIC - implement the --enable-static flag
# Usage: AM_ENABLE_STATIC[(DEFAULT)]
# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
# `yes'.
AC_DEFUN(AM_ENABLE_STATIC,
[define([AM_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
AC_ARG_ENABLE(static,
changequote(<<, >>)dnl
<< --enable-static build static libraries [default=>>AM_ENABLE_STATIC_DEFAULT]
changequote([, ])dnl
[ --enable-static=PKGS only build shared libraries if the current package
appears as an element in the PKGS list],
[p=${PACKAGE-default}
case "$enableval" in
yes) enable_static=yes ;;
no) enable_static=no ;;
*)
enable_static=no
# Look at the argument we got. We use all the common list separators.
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
for pkg in $enableval; do
if test "X$pkg" = "X$p"; then
enable_static=yes
fi
done
IFS="$ac_save_ifs"
;;
esac],
enable_static=AM_ENABLE_STATIC_DEFAULT)dnl
])
# AM_PROG_LD - find the path to the GNU or non-GNU linker
AC_DEFUN(AM_PROG_LD,
[AC_ARG_WITH(gnu-ld,
[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]],
test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
AC_REQUIRE([AC_PROG_CC])
ac_prog=ld
if test "$ac_cv_prog_gcc" = yes; then
# Check if gcc -print-prog-name=ld gives a path.
AC_MSG_CHECKING([for ld used by GCC])
ac_prog=`($CC -print-prog-name=ld) 2>&5`
case "$ac_prog" in
# Accept absolute paths.
/* | [A-Za-z]:\\*)
test -z "$LD" && LD="$ac_prog"
;;
"")
# If it fails, then pretend we aren't using GCC.
ac_prog=ld
;;
*)
# If it is relative, then search for the first ld in PATH.
with_gnu_ld=unknown
;;
esac
elif test "$with_gnu_ld" = yes; then
AC_MSG_CHECKING([for GNU ld])
else
AC_MSG_CHECKING([for non-GNU ld])
fi
AC_CACHE_VAL(ac_cv_path_LD,
[if test -z "$LD"; then
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
for ac_dir in $PATH; do
test -z "$ac_dir" && ac_dir=.
if test -f "$ac_dir/$ac_prog"; then
ac_cv_path_LD="$ac_dir/$ac_prog"
# Check to see if the program is GNU ld. I'd rather use --version,
# but apparently some GNU ld's only accept -v.
# Break only if it was the GNU/non-GNU ld that we prefer.
if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
test "$with_gnu_ld" != no && break
else
test "$with_gnu_ld" != yes && break
fi
fi
done
IFS="$ac_save_ifs"
else
ac_cv_path_LD="$LD" # Let the user override the test with a path.
fi])
LD="$ac_cv_path_LD"
if test -n "$LD"; then
AC_MSG_RESULT($LD)
else
AC_MSG_RESULT(no)
fi
test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
AC_SUBST(LD)
AM_PROG_LD_GNU
])
AC_DEFUN(AM_PROG_LD_GNU,
[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], ac_cv_prog_gnu_ld,
[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
ac_cv_prog_gnu_ld=yes
else
ac_cv_prog_gnu_ld=no
fi])
])
# AM_PROG_NM - find the path to a BSD-compatible name lister
AC_DEFUN(AM_PROG_NM,
[AC_MSG_CHECKING([for BSD-compatible nm])
AC_CACHE_VAL(ac_cv_path_NM,
[case "$NM" in
/* | [A-Za-z]:\\*)
ac_cv_path_NM="$NM" # Let the user override the test with a path.
;;
*)
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
for ac_dir in /usr/ucb /usr/ccs/bin $PATH /bin; do
test -z "$ac_dir" && ac_dir=.
if test -f $ac_dir/nm; then
# Check to see if the nm accepts a BSD-compat flag.
# Adding the `sed 1q' prevents false positives on HP-UX, which says:
# nm: unknown option "B" ignored
if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
ac_cv_path_NM="$ac_dir/nm -B"
elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
ac_cv_path_NM="$ac_dir/nm -p"
else
ac_cv_path_NM="$ac_dir/nm"
fi
break
fi
done
IFS="$ac_save_ifs"
test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm
;;
esac])
NM="$ac_cv_path_NM"
AC_MSG_RESULT([$NM])
AC_SUBST(NM)
])

BIN
all.zip Normal file

Binary file not shown.

35
bin/checkapi Executable file
View File

@@ -0,0 +1,35 @@
#!/usr/bin/perl -w
require 5.003;
# Purpose: insures that API functions aren't called internally.
# Usage: checkapi H5*.c
my $comment = 0;
while (<>) {
# Remove comments within the line.
s/\/\*.*?\*\///g;
# Process comment begin and end tokens on this line.
$comment-- if /\*\//; # count comment ends
next if $comment; # skip line if in comment
$comment++ if /\/\*/; # count comment starts
s/(.*)\/\*.*/$1/; # remove comments that begin on this line
# Remove character strings
s/\\.//g; # remove escaped characters
s/\".*?\"//g; # remove string constants
# Disregard the following hits
next if /^H5/;
next if /^\#/;
next if /FUNC_ENTER/;
next unless /(H5[A-Z]{1,2}[a-z]\w*)/;
print "$ARGV:$.: $1\n";
} continue {
if (eof) {
print "$ARGV:$.: bad comment nesting\n" if $comment;
$comment = 0;
close ARGV; # reset line number
}
}

View File

@@ -35,6 +35,8 @@ while (<>) {
# Get rid of string constants if they begin and end on this line.
s/([\'\"])([^\1]|\\\1)*?\1/$1$1/g;
# Get rid of preprocessor directives
s/^\#.*//;
# Now find all function calls on this line
while (($name)=/\b([a-gi-z_A-GI-Z]\w*)\s*\(/) {
@@ -44,14 +46,19 @@ while (<>) {
# calls.
next if $name =~ /^(if|for|return|sizeof|switch|while|void)$/;
# Ignore things that get misdetected because of the simplified
# parsing that takes place here.
next if $name =~ /^int$/;
# These are really HDF5 functions/macros even though they don't
# start with `h' or `H'.
next if $name =~ /^FUNC_(ENTER|LEAVE)(_INIT)?$/;
next if $name =~ /^U?INT(8|16|32|64)(ENCODE|DECODE)$/;
next if $name =~ /^(MIN|MAX3?|NELMTS|BOUND|CONSTR)$/;
next if $name =~ /^(MIN3?|MAX3?|NELMTS|BOUND|CONSTR)$/;
next if $name =~ /^addr_defined$/;
# These functions/macros are exempt.
next if $name =~ /^(assert|main|[fs]?printf)$/;
next if $name =~ /^(assert|main|[fs]?printf|va_(start|arg|end))$/;
print "$ARGV:$.: $name\n";
}

451
bin/config.guess vendored
View File

@@ -1,6 +1,6 @@
#! /bin/sh
# Attempt to guess a canonical system name.
# Copyright (C) 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
# Copyright (C) 1992, 93, 94, 95, 96, 1997 Free Software Foundation, Inc.
#
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -51,35 +51,110 @@ trap 'rm -f dummy.c dummy.o dummy; exit 1' 1 2 15
# Note: order is significant - the case branches are not exclusive.
case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
alpha:OSF1:V*:*)
# After 1.2, OSF1 uses "V1.3" for uname -r.
echo alpha-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^V//'`
exit 0 ;;
alpha:OSF1:*:*)
if test $UNAME_RELEASE = "V4.0"; then
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
fi
# A Vn.n version is a released version.
# A Tn.n version is a released field test version.
# A Xn.n version is an unreleased experimental baselevel.
# 1.2 uses "1.2" for uname -r.
echo alpha-dec-osf${UNAME_RELEASE}
exit 0 ;;
cat <<EOF >dummy.s
.globl main
.ent main
main:
.frame \$30,0,\$26,0
.prologue 0
.long 0x47e03d80 # implver $0
lda \$2,259
.long 0x47e20c21 # amask $2,$1
srl \$1,8,\$2
sll \$2,2,\$2
sll \$0,3,\$0
addl \$1,\$0,\$0
addl \$2,\$0,\$0
ret \$31,(\$26),1
.end main
EOF
${CC-cc} dummy.s -o dummy 2>/dev/null
if test "$?" = 0 ; then
./dummy
case "$?" in
7)
UNAME_MACHINE="alpha"
;;
15)
UNAME_MACHINE="alphaev5"
;;
14)
UNAME_MACHINE="alphaev56"
;;
10)
UNAME_MACHINE="alphapca56"
;;
16)
UNAME_MACHINE="alphaev6"
;;
esac
fi
rm -f dummy.s dummy
echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr [[A-Z]] [[a-z]]`
exit 0 ;;
21064:Windows_NT:50:3)
echo alpha-dec-winnt3.5
exit 0 ;;
Amiga*:UNIX_System_V:4.0:*)
echo m68k-cbm-sysv4
exit 0;;
amiga:NetBSD:*:*)
echo m68k-cbm-netbsd${UNAME_RELEASE}
exit 0 ;;
amiga:OpenBSD:*:*)
echo m68k-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
arc64:OpenBSD:*:*)
echo mips64el-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
arc:OpenBSD:*:*)
echo mipsel-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
hkmips:OpenBSD:*:*)
echo mips-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
pmax:OpenBSD:*:*)
echo mipsel-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
sgi:OpenBSD:*:*)
echo mips-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
wgrisc:OpenBSD:*:*)
echo mipsel-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
echo arm-acorn-riscix${UNAME_RELEASE}
exit 0;;
Pyramid*:OSx*:*:*)
arm32:NetBSD:*:*)
echo arm-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
exit 0 ;;
SR2?01:HI-UX/MPP:*:*)
echo hppa1.1-hitachi-hiuxmpp
exit 0;;
Pyramid*:OSx*:*:*|MIS*:OSx*:*:*)
# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
if test "`(/bin/universe) 2>/dev/null`" = att ; then
echo pyramid-pyramid-sysv3
else
echo pyramid-pyramid-bsd
fi
exit 0 ;;
sun4*:SunOS:5.*:*)
NILE:*:*:dcosx)
echo pyramid-pyramid-svr4
exit 0 ;;
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit 0 ;;
i86pc:SunOS:5.*:*)
echo i386-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit 0 ;;
sun4*:SunOS:6*:*)
# According to config.sub, this is the proper way to canonicalize
@@ -99,27 +174,86 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
sun3*:SunOS:*:*)
echo m68k-sun-sunos${UNAME_RELEASE}
exit 0 ;;
sun*:*:4.2BSD:*)
UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
case "`/bin/arch`" in
sun3)
echo m68k-sun-sunos${UNAME_RELEASE}
;;
sun4)
echo sparc-sun-sunos${UNAME_RELEASE}
;;
esac
exit 0 ;;
aushp:SunOS:*:*)
echo sparc-auspex-sunos${UNAME_RELEASE}
exit 0 ;;
atari*:NetBSD:*:*)
echo m68k-atari-netbsd${UNAME_RELEASE}
exit 0 ;;
atari*:OpenBSD:*:*)
echo m68k-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
sun3*:NetBSD:*:*)
echo m68k-sun-netbsd${UNAME_RELEASE}
exit 0 ;;
sun3*:OpenBSD:*:*)
echo m68k-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
mac68k:NetBSD:*:*)
echo m68k-apple-netbsd${UNAME_RELEASE}
exit 0 ;;
mac68k:OpenBSD:*:*)
echo m68k-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
mvme68k:OpenBSD:*:*)
echo m68k-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
mvme88k:OpenBSD:*:*)
echo m88k-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
powerpc:machten:*:*)
echo powerpc-apple-machten${UNAME_RELEASE}
exit 0 ;;
RISC*:Mach:*:*)
echo mips-dec-mach_bsd4.3
exit 0 ;;
RISC*:ULTRIX:*:*)
echo mips-dec-ultrix${UNAME_RELEASE}
exit 0 ;;
VAX*:ULTRIX*:*:*)
echo vax-dec-ultrix${UNAME_RELEASE}
exit 0 ;;
mips:*:4*:UMIPS)
echo mips-mips-riscos4sysv
2020:CLIX:*:*)
echo clipper-intergraph-clix${UNAME_RELEASE}
exit 0 ;;
mips:*:5*:RISCos)
mips:*:*:UMIPS | mips:*:*:RISCos)
sed 's/^ //' << EOF >dummy.c
int main (argc, argv) int argc; char **argv; {
#if defined (host_mips) && defined (MIPSEB)
#if defined (SYSTYPE_SYSV)
printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
#endif
#if defined (SYSTYPE_SVR4)
printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
#endif
#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
#endif
#endif
exit (-1);
}
EOF
${CC-cc} dummy.c -o dummy \
&& ./dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
&& rm dummy.c dummy && exit 0
rm -f dummy.c dummy
echo mips-mips-riscos${UNAME_RELEASE}
exit 0 ;;
Night_Hawk:Power_UNIX:*:*)
echo powerpc-harris-powerunix
exit 0 ;;
m88k:CX/UX:7*:*)
echo m88k-harris-cxux7
exit 0 ;;
@@ -130,12 +264,17 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
echo m88k-motorola-sysv3
exit 0 ;;
AViiON:dgux:*:*)
# DG/UX returns AViiON for all architectures
UNAME_PROCESSOR=`/usr/bin/uname -p`
if [ $UNAME_PROCESSOR = mc88100 -o $UNAME_PROCESSOR = mc88110 ] ; then
if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx \
-o ${TARGET_BINARY_INTERFACE}x = x ] ; then
echo m88k-dg-dgux${UNAME_RELEASE}
else
echo m88k-dg-dguxbcs${UNAME_RELEASE}
fi
else echo i586-dg-dgux${UNAME_RELEASE}
fi
exit 0 ;;
M88*:DolphinOS:*:*) # DolphinOS (SVR3)
echo m88k-dolphin-sysv3
@@ -150,16 +289,13 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
echo m68k-tektronix-bsd
exit 0 ;;
*:IRIX64:*:*)
echo mips-sgi-irix64
exit 0 ;;
*:IRIX*:*:*)
echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
exit 0 ;;
????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
i[34]86:AIX:*:*)
i?86:AIX:*:*)
echo i386-ibm-aix
exit 0 ;;
*:AIX:2:3)
@@ -204,7 +340,7 @@ EOF
echo romp-ibm-bsd4.4
exit 0 ;;
ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC NetBSD and
echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
exit 0 ;; # report: romp-ibm BSD 4.3
*:BOSX:*:*)
echo rs6000-bull-bosx
@@ -222,7 +358,7 @@ EOF
case "${UNAME_MACHINE}" in
9000/31? ) HP_ARCH=m68000 ;;
9000/[34]?? ) HP_ARCH=m68k ;;
9000/7?? | 9000/8?[79] ) HP_ARCH=hppa1.1 ;;
9000/7?? | 9000/8?[1679] ) HP_ARCH=hppa1.1 ;;
9000/8?? ) HP_ARCH=hppa1.0 ;;
esac
HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
@@ -270,6 +406,13 @@ EOF
hp8??:OSF1:*:*)
echo hppa1.0-hp-osf
exit 0 ;;
i?86:OSF1:*:*)
if [ -x /usr/sbin/sysversion ] ; then
echo ${UNAME_MACHINE}-unknown-osf1mk
else
echo ${UNAME_MACHINE}-unknown-osf1
fi
exit 0 ;;
parisc*:Lites*:*:*)
echo hppa1.1-hp-lites
exit 0 ;;
@@ -297,20 +440,36 @@ EOF
CRAY*Y-MP:*:*:*)
echo ymp-cray-unicos${UNAME_RELEASE}
exit 0 ;;
CRAY*C90:*:*:*)
echo c90-cray-unicos${UNAME_RELEASE}
CRAY*[A-Z]90:*:*:*)
echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
-e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/
exit 0 ;;
CRAY*TS:*:*:*)
echo t90-cray-unicos${UNAME_RELEASE}
exit 0 ;;
CRAY*T3E:*:*:*)
echo t3e-cray-unicosmk
exit 0 ;;
CRAY-2:*:*:*)
echo cray2-cray-unicos
exit 0 ;;
F300:UNIX_System_V:*:*)
FUJITSU_SYS=`uname -p | tr [A-Z] [a-z] | sed -e 's/\///'`
FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
echo "f300-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
exit 0 ;;
F301:UNIX_System_V:*:*)
echo f301-fujitsu-uxpv`echo $UNAME_RELEASE | sed 's/ .*//'`
exit 0 ;;
hp3[0-9][05]:NetBSD:*:*)
echo m68k-hp-netbsd${UNAME_RELEASE}
exit 0 ;;
i[3456]86:Paragon*:*:*)
echo ${UNAME_MACHINE}-intel-osf1
hp300:OpenBSD:*:*)
echo m68k-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
i[34]86:BSD/386:*:* | *:BSD/OS:*:*)
echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
i?86:BSD/386:*:* | *:BSD/OS:*:*)
echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
exit 0 ;;
*:FreeBSD:*:*)
echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
@@ -318,36 +477,143 @@ EOF
*:NetBSD:*:*)
echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
exit 0 ;;
*:OpenBSD:*:*)
echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
exit 0 ;;
i*:CYGWIN*:*)
echo i386-pc-cygwin32
exit 0 ;;
i*:MINGW*:*)
echo i386-pc-mingw32
exit 0 ;;
p*:CYGWIN*:*)
echo powerpcle-unknown-cygwin32
exit 0 ;;
prep*:SunOS:5.*:*)
echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit 0 ;;
*:GNU:*:*)
echo `echo ${UNAME_MACHINE}|sed -e 's,/.*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
exit 0 ;;
*:Linux:*:*)
# The BFD linker knows what the default object file format is, so
# first see if it will tell us.
ld_help_string=`ld --help 2>&1`
if echo $ld_help_string | grep >/dev/null 2>&1 "supported emulations: elf_i[345]86"; then
echo "${UNAME_MACHINE}-unknown-linux" ; exit 0
elif echo $ld_help_string | grep >/dev/null 2>&1 "supported emulations: i[345]86linux"; then
echo "${UNAME_MACHINE}-unknown-linuxaout" ; exit 0
elif echo $ld_help_string | grep >/dev/null 2>&1 "supported emulations: i[345]86coff"; then
echo "${UNAME_MACHINE}-unknown-linuxcoff" ; exit 0
elif test "${UNAME_MACHINE}" = "alpha" ; then
echo alpha-unknown-linux ; exit 0
else
# Either a pre-BFD a.out linker (linuxoldld) or one that does not give us
# useful --help. Gcc wants to distinguish between linuxoldld and linuxaout.
test ! -d /usr/lib/ldscripts/. \
&& echo "${UNAME_MACHINE}-unknown-linuxoldld" && exit 0
# Determine whether the default compiler is a.out or elf
ld_supported_emulations=`echo $ld_help_string \
| sed -ne '/supported emulations:/!d
s/[ ][ ]*/ /g
s/.*supported emulations: *//
s/ .*//
p'`
case "$ld_supported_emulations" in
i?86linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" ; exit 0 ;;
i?86coff) echo "${UNAME_MACHINE}-pc-linux-gnucoff" ; exit 0 ;;
sparclinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;;
m68klinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;;
elf32ppc) echo "powerpc-unknown-linux-gnu" ; exit 0 ;;
esac
if test "${UNAME_MACHINE}" = "alpha" ; then
sed 's/^ //' <<EOF >dummy.s
.globl main
.ent main
main:
.frame \$30,0,\$26,0
.prologue 0
.long 0x47e03d80 # implver $0
lda \$2,259
.long 0x47e20c21 # amask $2,$1
srl \$1,8,\$2
sll \$2,2,\$2
sll \$0,3,\$0
addl \$1,\$0,\$0
addl \$2,\$0,\$0
ret \$31,(\$26),1
.end main
EOF
LIBC=""
${CC-cc} dummy.s -o dummy 2>/dev/null
if test "$?" = 0 ; then
./dummy
case "$?" in
7)
UNAME_MACHINE="alpha"
;;
15)
UNAME_MACHINE="alphaev5"
;;
14)
UNAME_MACHINE="alphaev56"
;;
10)
UNAME_MACHINE="alphapca56"
;;
16)
UNAME_MACHINE="alphaev6"
;;
esac
objdump --private-headers dummy | \
grep ld.so.1 > /dev/null
if test "$?" = 0 ; then
LIBC="libc1"
fi
fi
rm -f dummy.s dummy
echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ; exit 0
elif test "${UNAME_MACHINE}" = "mips" ; then
cat >dummy.c <<EOF
main(argc, argv)
int argc;
char *argv[];
int argc;
char *argv[];
{
#ifdef __MIPSEB__
printf ("%s-unknown-linux-gnu\n", argv[1]);
#endif
#ifdef __MIPSEL__
printf ("%sel-unknown-linux-gnu\n", argv[1]);
#endif
return 0;
}
EOF
${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0
rm -f dummy.c dummy
else
# Either a pre-BFD a.out linker (linux-gnuoldld)
# or one that does not give us useful --help.
# GCC wants to distinguish between linux-gnuoldld and linux-gnuaout.
# If ld does not provide *any* "supported emulations:"
# that means it is gnuoldld.
echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations:"
test $? != 0 && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0
case "${UNAME_MACHINE}" in
i?86)
VENDOR=pc;
;;
*)
VENDOR=unknown;
;;
esac
# Determine whether the default compiler is a.out or elf
cat >dummy.c <<EOF
#include <features.h>
main(argc, argv)
int argc;
char *argv[];
{
#ifdef __ELF__
printf ("%s-unknown-linux\n", argv[1]);
# ifdef __GLIBC__
# if __GLIBC__ >= 2
printf ("%s-${VENDOR}-linux-gnu\n", argv[1]);
# else
printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]);
# endif
# else
printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]);
# endif
#else
printf ("%s-unknown-linuxaout\n", argv[1]);
printf ("%s-${VENDOR}-linux-gnuaout\n", argv[1]);
#endif
return 0;
}
@@ -357,30 +623,45 @@ EOF
fi ;;
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. earlier versions
# are messed up and put the nodename in both sysname and nodename.
i[34]86:DYNIX/ptx:4*:*)
i?86:DYNIX/ptx:4*:*)
echo i386-sequent-sysv4
exit 0 ;;
i[34]86:*:4.*:* | i[34]86:SYSTEM_V:4.*:*)
i?86:UNIX_SV:4.2MP:2.*)
# Unixware is an offshoot of SVR4, but it has its own version
# number series starting with 2...
# I am not positive that other SVR4 systems won't match this,
# I just have to hope. -- rms.
# Use sysv4.2uw... so that sysv4* matches it.
echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
exit 0 ;;
i?86:*:4.*:* | i?86:SYSTEM_V:4.*:*)
if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
echo ${UNAME_MACHINE}-univel-sysv${UNAME_RELEASE}
else
echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}
echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE}
fi
exit 0 ;;
i[34]86:*:3.2:*)
i?86:*:3.2:*)
if test -f /usr/options/cb.name; then
UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
echo ${UNAME_MACHINE}-unknown-isc$UNAME_REL
echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
elif /bin/uname -X 2>/dev/null >/dev/null ; then
UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')`
(/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486
echo ${UNAME_MACHINE}-unknown-sco$UNAME_REL
(/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
&& UNAME_MACHINE=i586
echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
else
echo ${UNAME_MACHINE}-unknown-sysv32
echo ${UNAME_MACHINE}-pc-sysv32
fi
exit 0 ;;
pc:*:*:*)
# uname -m prints for DJGPP always 'pc', but it prints nothing about
# the processor, so we play safe by assuming i386.
echo i386-pc-msdosdjgpp
exit 0 ;;
Intel:Mach:3*:*)
echo i386-unknown-mach3
echo i386-pc-mach3
exit 0 ;;
paragon:*:*:*)
echo i860-intel-osf1
@@ -396,28 +677,36 @@ EOF
# "miniframe"
echo m68010-convergent-sysv
exit 0 ;;
M680[234]0:*:R3V[567]*:*)
M68*:*:R3V[567]*:*)
test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
3[34]??:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0)
uname -p 2>/dev/null | grep 86 >/dev/null \
&& echo i486-ncr-sysv4.3 && exit 0 ;;
3[34]??:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0)
OS_REL=''
test -r /etc/.relid \
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
&& echo i486-ncr-sysv4.3${OS_REL} && exit 0
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
&& echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
uname -p 2>/dev/null | grep 86 >/dev/null \
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
&& echo i486-ncr-sysv4 && exit 0 ;;
m680[234]0:LynxOS:2.[23]*:*)
echo m68k-lynx-lynxos${UNAME_RELEASE}
m68*:LynxOS:2.*:*)
echo m68k-unknown-lynxos${UNAME_RELEASE}
exit 0 ;;
mc68030:UNIX_System_V:4.*:*)
echo m68k-atari-sysv4
exit 0 ;;
i[34]86:LynxOS:2.[23]*:*)
echo i386-lynx-lynxos${UNAME_RELEASE}
i?86:LynxOS:2.*:*)
echo i386-unknown-lynxos${UNAME_RELEASE}
exit 0 ;;
TSUNAMI:LynxOS:2.[23]*:*)
echo sparc-lynx-lynxos${UNAME_RELEASE}
TSUNAMI:LynxOS:2.*:*)
echo sparc-unknown-lynxos${UNAME_RELEASE}
exit 0 ;;
rs6000:LynxOS:2.[23]*:*)
echo rs6000-lynx-lynxos${UNAME_RELEASE}
rs6000:LynxOS:2.*:* | PowerPC:LynxOS:2.*:*)
echo rs6000-unknown-lynxos${UNAME_RELEASE}
exit 0 ;;
SM[BE]S:UNIX_SV:*:*)
echo mips-dde-sysv${UNAME_RELEASE}
exit 0 ;;
RM*:SINIX-*:*:*)
echo mips-sni-sysv4
@@ -430,6 +719,32 @@ EOF
echo ns32k-sni-sysv
fi
exit 0 ;;
PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
# says <Richard.M.Bartel@ccMail.Census.GOV>
echo i586-unisys-sysv4
exit 0 ;;
*:UNIX_System_V:4*:FTX*)
# From Gerald Hewes <hewes@openmarket.com>.
# How about differentiating between stratus architectures? -djm
echo hppa1.1-stratus-sysv4
exit 0 ;;
*:*:*:FTX*)
# From seanf@swdc.stratus.com.
echo i860-stratus-sysv4
exit 0 ;;
mc68*:A/UX:*:*)
echo m68k-apple-aux${UNAME_RELEASE}
exit 0 ;;
news*:NEWS-OS:*:6*)
echo mips-sony-newsos6
exit 0 ;;
R3000:*System_V*:*:* | R4000:UNIX_SYSV:*:*)
if [ -d /usr/nec ]; then
echo mips-nec-sysv${UNAME_RELEASE}
else
echo mips-unknown-sysv${UNAME_RELEASE}
fi
exit 0 ;;
esac
#echo '(No uname command or uname output not recognized.)' 1>&2
@@ -473,7 +788,7 @@ main ()
#endif
int version;
version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
printf ("%s-next-nextstep%s\n", __ARCHITECTURE__, version==2 ? "2" : "3");
printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
exit (0);
#endif
@@ -490,7 +805,7 @@ main ()
#endif
#if defined (__386BSD__)
printf ("i386-unknown-bsd\n"); exit (0);
printf ("i386-pc-bsd\n"); exit (0);
#endif
#if defined (sequent)

208
bin/config.sub vendored
View File

@@ -1,9 +1,9 @@
#! /bin/sh
# Configuration validation subroutine script, version 1.1.
# Copyright (C) 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
# Copyright (C) 1991, 92, 93, 94, 95, 96, 1997 Free Software Foundation, Inc.
# This file is (in principle) common to ALL GNU software.
# The presence of a machine in this file suggests that SOME GNU software
# can handle that machine. It does not imply ALL GNU software can.
# can handle that machine. It does not imply ALL GNU software can.
#
# This file is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -41,10 +41,9 @@
# The goal of this file is to map all the various variations of a given
# machine specification into a single specification in the form:
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
# or in some cases, the newer four-part form:
# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
# It is wrong to echo any other type of specification.
#
# Robb Matzke, 24 Sep 1997
# Changed i[345]86 to i[3456]86 so pentium pro processors are recognized.
if [ x$1 = x ]
then
@@ -65,11 +64,21 @@ case $1 in
;;
esac
# Separate what the user gave into CPU-COMPANY and OS (if any).
basic_machine=`echo $1 | sed 's/-[^-]*$//'`
if [ $basic_machine != $1 ]
then os=`echo $1 | sed 's/.*-/-/'`
else os=; fi
# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
# Here we must recognize all the valid KERNEL-OS combinations.
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
case $maybe_os in
linux-gnu*)
os=-$maybe_os
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
;;
*)
basic_machine=`echo $1 | sed 's/-[^-]*$//'`
if [ $basic_machine != $1 ]
then os=`echo $1 | sed 's/.*-/-/'`
else os=; fi
;;
esac
### Let's recognize common machines as not being operating systems so
### that things like config.sub decstation-3100 work. We also
@@ -84,38 +93,43 @@ case $os in
-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp )
-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
-apple)
os=
basic_machine=$1
;;
-hiux*)
os=-hiuxwe2
;;
-sco5)
os=sco3.2v5
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-sco4)
os=-sco3.2v4
basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'`
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-sco3.2.[4-9]*)
os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'`
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-sco3.2v[4-9]*)
# Don't forget version if it is 3.2v4 or newer.
basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'`
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-sco*)
os=-sco3.2v2
basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'`
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-isc)
os=-isc2.2
basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'`
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-clix*)
basic_machine=clipper-intergraph
;;
-isc*)
basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'`
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-lynx*)
os=-lynxos
@@ -126,35 +140,49 @@ case $os in
-windowsnt*)
os=`echo $os | sed -e 's/windowsnt/winnt/'`
;;
-psos*)
os=-psos
;;
esac
# Decode aliases for certain CPU-COMPANY combinations.
case $basic_machine in
# Recognize the basic CPU types without company name.
# Some are omitted here because they have special meanings below.
tahoe | i[3456]86 | i860 | m68k | m68000 | m88k | ns32k | arm \
| arme[lb] | pyramid \
| tron | a29k | 580 | i960 | h8300 | hppa1.0 | hppa1.1 \
| alpha | we32k | ns16k | clipper | sparclite | i370 | sh \
| powerpc | powerpcle | sparc64 | 1750a | dsp16xx | mips64 | mipsel \
| pdp11 | mips64el | mips64orion | mips64orionel \
| sparc)
tahoe | i860 | m32r | m68k | m68000 | m88k | ns32k | arc | arm \
| arme[lb] | pyramid | mn10200 | mn10300 \
| tron | a29k | 580 | i960 | h8300 | hppa | hppa1.0 | hppa1.1 \
| alpha | alphaev5 | alphaev56 | we32k | ns16k | clipper \
| i370 | sh | powerpc | powerpcle | 1750a | dsp16xx | pdp11 \
| mips64 | mipsel | mips64el | mips64orion | mips64orionel \
| mipstx39 | mipstx39el \
| sparc | sparclet | sparclite | sparc64 | v850)
basic_machine=$basic_machine-unknown
;;
# We use `pc' rather than `unknown'
# because (1) that's what they normally are, and
# (2) the word "unknown" tends to confuse beginning users.
i[3456]86)
basic_machine=$basic_machine-pc
;;
# Object if more than one company name word.
*-*-*)
echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
exit 1
;;
# Recognize the basic CPU types with company name.
vax-* | tahoe-* | i[3456]86-* | i860-* | m68k-* | m68000-* | m88k-* \
| sparc-* | ns32k-* | fx80-* | arm-* | c[123]* \
| mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* | power-* \
| none-* | 580-* | cray2-* | h8300-* | i960-* | xmp-* | ymp-* \
| hppa1.0-* | hppa1.1-* | alpha-* | we32k-* | cydra-* | ns16k-* \
| pn-* | np1-* | xps100-* | clipper-* | orion-* | sparclite-* \
| pdp11-* | sh-* | powerpc-* | powerpcle-* | sparc64-* | mips64-* | mipsel-* \
| mips64el-* | mips64orion-* | mips64orionel-*)
vax-* | tahoe-* | i[3456]86-* | i860-* | m32r-* | m68k-* | m68000-* \
| m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | arm-* | c[123]* \
| mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \
| power-* | none-* | 580-* | cray2-* | h8300-* | i960-* \
| xmp-* | ymp-* | hppa-* | hppa1.0-* | hppa1.1-* \
| alpha-* | alphaev5-* | alphaev56-* | we32k-* | cydra-* \
| ns16k-* | pn-* | np1-* | xps100-* | clipper-* | orion-* \
| sparclite-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \
| sparc64-* | mips64-* | mipsel-* \
| mips64el-* | mips64orion-* | mips64orionel-* \
| mipstx39-* | mipstx39el-* \
| f301-*)
;;
# Recognize the various machine names and aliases which stand
# for a CPU type and a company and sometimes even an OS.
@@ -181,9 +209,9 @@ case $basic_machine in
amiga | amiga-*)
basic_machine=m68k-cbm
;;
amigados)
amigaos | amigados)
basic_machine=m68k-cbm
os=-amigados
os=-amigaos
;;
amigaunix | amix)
basic_machine=m68k-cbm
@@ -193,6 +221,10 @@ case $basic_machine in
basic_machine=m68k-apollo
os=-sysv
;;
aux)
basic_machine=m68k-apple
os=-aux
;;
balance)
basic_machine=ns32k-sequent
os=-dynix
@@ -225,6 +257,14 @@ case $basic_machine in
basic_machine=cray2-cray
os=-unicos
;;
cray-t3e | t3e | t3e-cray)
basic_machine=t3e-cray
os=-unicosmk
;;
[ctj]90-cray)
basic_machine=c90-cray
os=-unicos
;;
crds | unos)
basic_machine=m68k-crds
;;
@@ -306,25 +346,28 @@ case $basic_machine in
hp9k8[0-9][0-9] | hp8[0-9][0-9])
basic_machine=hppa1.0-hp
;;
hppa-next)
os=-nextstep3
;;
i370-ibm* | ibm*)
basic_machine=i370-ibm
os=-mvs
;;
# I'm not sure what "Sysv32" means. Should this be sysv3.2?
i[3456]86v32)
basic_machine=`echo $1 | sed -e 's/86.*/86-unknown/'`
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
os=-sysv32
;;
i[3456]86v4*)
basic_machine=`echo $1 | sed -e 's/86.*/86-unknown/'`
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
os=-sysv4
;;
i[3456]86v)
basic_machine=`echo $1 | sed -e 's/86.*/86-unknown/'`
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
os=-sysv
;;
i[3456]86sol2)
basic_machine=`echo $1 | sed -e 's/86.*/86-unknown/'`
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
os=-solaris2
;;
iris | iris4d)
@@ -355,6 +398,14 @@ case $basic_machine in
miniframe)
basic_machine=m68000-convergent
;;
mipsel*-linux*)
basic_machine=mipsel-unknown
os=-linux-gnu
;;
mips*-linux*)
basic_machine=mips-unknown
os=-linux-gnu
;;
mips3*-*)
basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
;;
@@ -413,10 +464,10 @@ case $basic_machine in
basic_machine=i860-intel
os=-osf
;;
janus | tflop)
basic_machine=i386-intel
os=-osf1
;;
tflop*)
basic_machine=i386-intel
os=-osf1
;;
pbd)
basic_machine=sparc-tti
;;
@@ -426,14 +477,18 @@ case $basic_machine in
pc532 | pc532-*)
basic_machine=ns32k-pc532
;;
pentium | p5 | p6)
# We don't have specific support for the Intel Pentium (p6) followon yet, so just call it a Pentium
pentium | p5)
basic_machine=i586-intel
;;
pentium-* | p5-* | p6-*)
# We don't have specific support for the Intel Pentium (p6) followon yet, so just call it a Pentium
pentiumpro | p6)
basic_machine=i686-intel
;;
pentium-* | p5-*)
basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
pentiumpro-* | p6-*)
basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
k5)
# We don't have specific support for AMD's K5 yet, so just call it a Pentium
basic_machine=i586-amd
@@ -524,6 +579,12 @@ case $basic_machine in
basic_machine=i386-sequent
os=-dynix
;;
tx39)
basic_machine=mipstx39-unknown
;;
tx39el)
basic_machine=mipstx39el-unknown
;;
tower | tower-32)
basic_machine=m68k-ncr
;;
@@ -543,6 +604,9 @@ case $basic_machine in
basic_machine=vax-dec
os=-vms
;;
vpp*|vx|vx-*)
basic_machine=f301-fujitsu
;;
vxworks960)
basic_machine=i960-wrs
os=-vxworks
@@ -570,7 +634,11 @@ case $basic_machine in
# Here we handle the default manufacturer of certain CPU types. It is in
# some cases the only manufacturer, in others, it is the most popular.
mips)
basic_machine=mips-mips
if [ x$os = x-linux-gnu ]; then
basic_machine=mips-unknown
else
basic_machine=mips-mips
fi
;;
romp)
basic_machine=romp-ibm
@@ -622,6 +690,8 @@ esac
if [ x"$os" != x"" ]
then
case $os in
# First match some system type aliases
# that might get confused with valid system types.
# -solaris* is a basic system type, with this one exception.
-solaris1 | -solaris1.*)
os=`echo $os | sed -e 's|solaris1|sunos4|'`
@@ -629,28 +699,37 @@ case $os in
-solaris)
os=-solaris2
;;
-unixware* | svr4*)
-svr4*)
os=-sysv4
;;
-unixware*)
os=-sysv4.2uw
;;
-gnu/linux*)
os=`echo $os | sed -e 's|gnu/linux|linux|'`
os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
;;
# First accept the basic system types.
# The portable systems comes first.
# Each alternative MUST END IN A *, to match a version number.
# -sysv* is not here because it comes later, after sysvr4.
-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
| -vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[345]* \
| -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
| -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
| -amigados* | -msdos* | -newsos* | -unicos* | -aos* \
| -nindy* | -vxworks* | -ebmon* | -hms* | -mvs* | -clix* \
| -riscos* | -linux* | -uniplus* | -iris* | -rtu* | -xenix* \
| -hiux* | -386bsd* | -netbsd* | -freebsd* | -riscix* \
| -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
| -aos* \
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
| -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \
| -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* \
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
| -udi* | -eabi* | -lites* )
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
| -cygwin32* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
| -mingw32* | -linux-gnu* | -uxpv*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-linux*)
os=`echo $os | sed -e 's|linux|linux-gnu|'`
;;
-sunos5*)
os=`echo $os | sed -e 's|sunos5|solaris2|'`
;;
@@ -675,6 +754,9 @@ case $os in
-ctix* | -uts*)
os=-sysv
;;
-ns2 )
os=-nextstep2
;;
# Preserve the version number of sinix5.
-sinix5.*)
os=`echo $os | sed -e 's|sinix|sysv|'`
@@ -768,7 +850,7 @@ case $basic_machine in
os=-sysv
;;
*-cbm)
os=-amigados
os=-amigaos
;;
*-dg)
os=-dgux
@@ -782,6 +864,9 @@ case $basic_machine in
m88k-omron*)
os=-luna
;;
*-next )
os=-nextstep
;;
*-sequent)
os=-ptx
;;
@@ -815,6 +900,9 @@ case $basic_machine in
*-masscomp)
os=-rtu
;;
f301-fujitsu)
os=-uxpv
;;
*)
os=-none
;;
@@ -833,9 +921,6 @@ case $basic_machine in
-sunos*)
vendor=sun
;;
-lynxos*)
vendor=lynx
;;
-aix*)
vendor=ibm
;;
@@ -863,9 +948,12 @@ case $basic_machine in
-ptx*)
vendor=sequent
;;
-vxworks*)
-vxsim* | -vxworks*)
vendor=wrs
;;
-aux*)
vendor=apple
;;
esac
basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
;;

26
bin/debug-ohdr Executable file
View File

@@ -0,0 +1,26 @@
#!/usr/bin/perl
require 5.003;
# Looks for lines emitted by H5O_open() and H5O_close() and tries to
# determine which objects were not properly closed.
while (<>) {
next unless /^([<>])(0x[\da-f]+|\d+)$/;
my ($op, $addr) = ($1, $2);
if ($op eq ">") {
# Open object
$obj{$addr} += 1;
} else {
# Close object
die unless $obj{$addr}>0;
$obj{$addr} -= 1;
delete $obj{$addr} unless $obj{$addr};
}
}
for (sort keys %obj) {
printf "%3d %s\n", $obj{$_}, $_;
}
exit 0;

View File

@@ -2,6 +2,9 @@
require 5.003;
use Text::Tabs;
# NOTE: THE FORMAT OF HRETURN_ERROR AND HGOTO_ERROR MACROS HAS
# CHANGED. THIS SCRIPT NO LONGER WORKS! --rpm
# Copyright (C) 1997 National Center for Supercomputing Applications.
# All rights reserved.
#

202
bin/h5vers Executable file
View File

@@ -0,0 +1,202 @@
#!/usr/bin/perl -w
require 5.003;
### Copyright © 1998 NCSA.
# Robb Matzke <matzke@llnl.gov>
# 17 July 1998
### Purpose
# Increments the hdf5 version number by changing the value of
# constants in the src/H5public.h file. The new version number is
# printed on the standard output. An alternate source file name can be
# specified as an argument. In any case, the original file is saved
# by appending a tilde `~' to the name.
### Usage:
# h5vers [OPTIONS] [FILE]
# Without options this program only displays the current version and
# doesn't modify any files or create backups. The default is to print
# the version number as a dotted triple like `1.0.24' but with the
# `-v' option the version will be printed as `version 1.0 release 24'.
#
# The `-s VERSION' switch will set the version as specified. If the
# string contains a dotted triple then it will be used as the version
# number, otherwise up to three numbers will be read from the end of
# the string and used as the major version, minor version, and release
# number. If any numbers are missing then zero is assumed. This
# allows versions to be specified like `-s "version 2.1 release 8"' or
# `-s hdf5-2.1.8.tar.bz2'. If the new version is less than the old
# version then a warning message is generated on standard error.
#
# The `-i [major|minor|release]' option increments the major, minor,
# or release (the default) number. If the minor number is incremented
# then the release number is set to zero; if the major number is
# incremented then the minor and release numbers are set to zero.
#
# If a file is specified then that file is used instead of
# ./H5public.h or ./src/H5public.h.
#
# If the version number is changed (either `-s' or `-i' was used on
# the command line) then the first line of the README file one
# directory above the H5public.h file is also modified so it looks
# something like: This is hdf5-1.2.3 currently under development.
##############################################################################
sub getvers {
local ($_) = @_;
my (@vers);
($vers[0]) = /^\#\s*define\s+H5_VERS_MAJOR\s+(\d+)/m;
($vers[1]) = /^\#\s*define\s+H5_VERS_MINOR\s+(\d+)/m;
($vers[2]) = /^\#\s*define\s+H5_VERS_RELEASE\s+(\d+)/m;
return @vers;
}
sub setvers {
my ($contents, @vers) = @_;
$_[0] =~ s/^(\#\s*define\s+H5_VERS_MAJOR\s+)\d+/$1$vers[0]/m;
$_[0] =~ s/^(\#\s*define\s+H5_VERS_MINOR\s+)\d+/$1$vers[1]/m;
$_[0] =~ s/^(\#\s*define\s+H5_VERS_RELEASE\s+)\d+/$1$vers[2]/m;
}
sub usage {
my ($prog) = $0 =~ /([^\/]+)$/;
print STDERR <<EOF;
Usage: $prog [OPTS] [FILE]
-i major|minor|release
Increment specified version component and set following components
to zero.
-s VERSION
Set the version as specified. The version number can be embedded in
some other string such as \"hdf5-1.1.0.tar.bz2\" or even \"this is
hdf5 version 1.1 release 0\" for convenience.
-v
Instead of displaying only a dotted triple version number a line such
as \"version 1.1 release 0\" will be printed.
FILE
The name of the file that contains version information. This is
seldom necessary since files H5public.h, src/H5public.h and
../src/H5public.h are automatically checked.
EOF
exit 1;
}
# Parse arguments
my ($verbose, $set, $inc, $file);
my (@files) = ("H5public.h", "src/H5public.h", "../src/H5public.h");
while ($_ = shift) {
$_ eq "-s" && do {
die "-s switch needs a version number\n" unless @ARGV;
$set = shift;
next;
};
$_ eq "-i" && do {
if (@ARGV && $ARGV[1]=~/^(major|minor|release)$/) {
$inc = shift;
} else {
$inc = "release";
}
next;
};
$_ eq "-v" && do {
$verbose = 1;
next;
};
/^-(h|\?|-?help)$/ && usage;
/^-/ && die "unrecognized option: $_\n";
die "only one file name can be specified\n" if $file;
$file = $_;
}
die "mutually exclusive options given\n" if $set && $inc;
# Determine file to use as H5public.h and README. The README file is
# always in the directory above H5public.h
unless ($file) {
for (@files) {
($file=$_,last) if -f $_;
}
}
die "unable to read file: $file\n" unless -r $file;
$README = $file;
$README =~ s/[^\/]*$/..\/README/;
die "unable to read file: $README\n" unless -r $file;
# Get the current version number.
open FILE, $file or die "unable to open $file: $!\n";
my ($contents) = join "", <FILE>;
close FILE;
my (@curver) = getvers $contents;
# Determine the new version number.
if ($set) {
if ($set =~ /(\d+)\.(\d+)\.(\d+)/) {
@newver = ($1, $2, $3);
} elsif ($set =~ /(\d+)\D+(\d+)\D+(\d+)\D*$/) {
@newver = ($1, $2, $3);
} elsif ($set =~ /(\d+)\D+(\d+)\D*$/) {
@newver = ($1, $2, 0);
} elsif ($set =~ /(\d+)\D*$/) {
@newver = ($1, 0, 0);
} else {
die "illegal version number specified: $set\n";
}
} elsif ($inc && $inc eq "major") {
$newver[0] = $curver[0]+1;
@newver[1,2] = (0,0);
} elsif ($inc && $inc eq "minor") {
$newver[0] = $curver[0];
$newver[1] = $curver[1]+1;
$newver[2] = 0;
} elsif ($inc && $inc eq "release") {
@newver[0,1] = @curver[0,1];
$newver[2] = $curver[2]+1;
} elsif ($inc) {
die "unknown increment field: $inc\n";
} else {
# Nothing to do but print result
$README = "";
@newver = @curver;
}
# Print a warning if the version got smaller.
if ($newver[0]*1000000 + $newver[1]*1000 + $newver[2] <
$curver[0]*1000000 + $curver[1]*1000 + $curver[2]) {
printf STDERR "Warning: version decreased from %d.%d.%d to %d.%d.%d\n",
@curver, @newver;
}
# Update the version number if it changed.
if ($newver[0]!=$curver[0] ||
$newver[1]!=$curver[1] ||
$newver[2]!=$curver[2]) {
setvers $contents, @newver or die "unable to set version\n";
rename $file, "$file~" or die "unable to save backup file\n";
open FILE, ">$file" or die "unable to open $file but backup saved!\n";
print FILE $contents;
close FILE;
}
# Update the README file
if ($README) {
open FILE, $README or die "$README: $!\n";
@contents = <FILE>;
close FILE;
$contents[0] = sprintf("This is hdf5-%d.%d.%d currently under development\n",
@newver);
open FILE, ">$README" or die "$README: $!\n";
print FILE @contents;
close FILE;
}
# Print the new version number
if ($verbose) {
printf "version %d.%d release %d\n", @newver;
} else {
printf "%d.%d.%d\n", @newver;
}
exit 0;

83
bin/iostats Executable file
View File

@@ -0,0 +1,83 @@
#!/usr/bin/perl
# Usage: pipe the output of Linux's `strace' program into the stdin of
# this command, and the output of this command into gnuplot.
my ($fast,$npasses);
if ($ARGV[0] =~ /^--?fast$/) {
$fast = 1;
shift;
}
my $filename = shift || "tstab2.h5";
my $total = 0;
my %What; # What{pos}{nbytes}{r|w} = naccesses
my($total_writes, $total_bytes_out, $total_reads, $total_bytes_in);
while (<>) {
if (!defined $fd) {
if (/^open\("(.*?)".*=\s+(\d+)/ && $1 eq $filename) {
$fd = $2;
$pos = 0;
}
} elsif (/^close\((\d+)/ && $1==$fd) {
$fd = undef;
} elsif (!$fast &&
/^lseek\((\d+), -?\d+,.*= (\d+)/ &&
$1==$fd && $2>=0) {
$pos = $2;
} elsif (!$fast && /^lseek\((\d+),/ && $1==$fd) {
die $_;
} elsif (/^write\((\d+), ".*?"(\.\.\.)?, \d+\)\s*= (\d+)/ &&
$1==$fd && $3>=0) {
my $nbytes = $3;
if ($fast) {
$total_writes++;
$total_bytes_out += $nbytes;
} else {
$What{$pos}{$nbytes}{w}++;
printf "%d %d\n", $total, $pos;
$pos += $nbytes;
$total += $nbytes;
}
} elsif (/^write\((\d+),/ && $1==$fd) {
die $_;
} elsif (/^read\((\d+), ".*?"(\.\.\.)?, \d+\)\s*= (\d+)/ &&
$1==$fd && $3>=0) {
my $nbytes = $3;
if ($fast) {
$total_reads++;
$total_bytes_in += $nbytes;
} else {
$What{$pos}{$nbytes}{r}++;
printf "%d %d\n", $total, $pos;
$pos += $nbytes;
$total += $nbytes;
}
} elsif (/^read\((\d+),/ && $1==$fd) {
die $_;
}
}
if (!$fast) {
print "="x36, "\n";
printf "%8s %8s %8s %8s\n","Position","NBytes","NReads","NWrites";
for $pos (sort {$a<=>$b} keys %What) {
for $nbytes (sort {$a<=>$b} keys %{$What{$pos}}) {
printf("%8d %8d %8d %8d\n", $pos, $nbytes,
$What{$pos}{$nbytes}{r},
$What{$pos}{$nbytes}{w});
$total_writes += $What{$pos}{$nbytes}{w};
$total_reads += $What{$pos}{$nbytes}{r};
$total_bytes_out += $What{$pos}{$nbytes}{w} * $nbytes;
$total_bytes_in += $What{$pos}{$nbytes}{r} * $nbytes;
}
}
}
print "="x36, "\n";
printf("Write: %8d calls, %10d total bytes, %10g average bytes\n",
$total_writes, $total_bytes_out, $total_bytes_out/$total_writes);
printf("Read: %8d calls, %10d total bytes, %10g average bytes\n",
$total_reads, $total_bytes_in, $total_bytes_in/$total_reads);

1512
bin/ltconfig Executable file

File diff suppressed because it is too large Load Diff

2453
bin/ltmain.sh Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,249 +1,165 @@
#! /usr/local/bin/perl -w
require 5.003;
use Cwd;
#!/bin/sh
# Builds a release. Arguments are zero or more of the words.
# Make a release of hdf5. The command-line switches are:
#
# tar -- build a tar file *.tar
# compress -- build a compressed tar file *.tar.Z
# gzip -- build a compressed tar file *.tar.gz
# bzip2 -- build a compressed tar file *.tar.bz2
# -d DIR The name of the directory where the releas(es) should be
# placed. By default, the directory is ./releases
#
# If no arguments are given then `gzip' is assumed. If the only argument
# is the word `all' then all forms are used.
$releases = "./releases"; # Directory for release tarballs
##############################################################################
# Read version info, return an array (MAJOR,MINOR,RELEASE,PATCHLEVEL) or
# a string "MAJOR.MINOR.RELEASE PATCHLEVEL"
# --nocheck Ignore errors in MANIFEST file.
#
# The other command-line options are the names of the programs to use
# for compressing the resulting tar archive (if none are given then
# `tar' is assumed):
#
sub getver () {
my @ver;
open SRC, "./src/H5public.h" or die "cannot read HDF5 version";
while (<SRC>) {
$ver[0] = $1 if /define\s+H5_VERS_MAJOR\s+(\d+)/;
$ver[1] = $1 if /define\s+H5_VERS_MINOR\s+(\d+)/;
$ver[2] = $1 if /define\s+H5_VERS_RELEASE\s+(\d+)/;
$ver[3] = $1 if /define\s+H5_VERS_PATCH\s+(\d+)/;
}
close SRC;
wantarray ? @ver : "$ver[0].$ver[1].$ver[2]".chr(ord('a')+$ver[3]);
}
##############################################################################
# Set version information. Input is a string or an array.
# tar -- use tar and don't do any compressing.
# compress -- use compress and append `.Z' to the output name.
# gzip -- use gzip with `-9' and append `.gz' to the output name.
# bzip2 -- use bzip2 with `-9' and append `.bz2' to the output name.
#
sub setver ($;$$$) {
my @ver = @_;
local $_;
if ($ver[0]=~/\D/) {
@ver = $ver[0] =~ /^(\d+)\.(\d+)\.(\d+)([a-z])$/ or return "";
$ver[3] = ord($ver[3])-ord('a');
}
$_ = `cat ./src/H5public.h`;
s/(define\s+H5_VERS_MAJOR\s+)(\d+)/$1$ver[0]/;
s/(define\s+H5_VERS_MINOR\s+)(\d+)/$1$ver[1]/;
s/(define\s+H5_VERS_RELEASE\s+)(\d+)/$1$ver[2]/;
s/(define\s+H5_VERS_PATCH\s+)(\d+)/$1$ver[3]/;
open SRC, "> ./src/H5public.h" or return "";
print SRC $_;
close SRC;
return 1;
}
##############################################################################
# Make sure MANIFEST contains all the necessary files. If we are running
# under CVS then look at the CVS/Entries files to get the names that should
# be in the manifest. Otherwise we really can't do anything.
# Examples:
#
sub manifest () {
my ($fname, %manifest);
my $nprobs=0;
# We can't do anything if we're not running under cvs.
return "" unless -d "CVS";
# Read the files from the manifest.
open MANIFEST, "MANIFEST" or die "unable to read manifest";
while (<MANIFEST>) {
chomp;
$manifest{$_} = 1;
}
close MANIFEST;
# Read files from CVS/Entries
open FIND, "find . -name Entries -print | sort |" or
die "unable to find CVS entries";
while (defined($fname=<FIND>)) {
chomp $fname;
my ($dir) = $fname =~ m%(.*)/CVS/Entries%;
open ENTRIES, $fname or die "unable to open $fname";
while (<ENTRIES>) {
my ($ename);
next unless ($ename) = m%^/([^/]+)/[^-]%;
$ename = "$dir/" . $ename;
if (exists $manifest{$ename}) {
delete $manifest{$ename};
} else {
print "NEW: $ename\n";
$nprobs++;
}
}
close ENTRIES;
}
close FIND;
for (sort keys %manifest) {
print "OLD: $_\n";
$nprobs++;
}
if ($nprobs) {
print "Please add the new files to MANIFEST and remove the old\n";
print "files and try again. The MANIFEST should contain all files\n";
print "that are to be distributed for a release.\n";
exit 1;
}
}
##############################################################################
# Build a release
# $ release
# releases/hdf5-1.0.38.tar
#
# $ release gzip
# releases/hdf5-1.0.38.tar.gz
#
# $ release -d /tmp tar compress gzip bzip2
# /tmp/hdf5-1.0.38.tar
# /tmp/hdf5-1.0.38.tar.Z
# /tmp/hdf5-1.0.38.tar.gz
# /tmp/hdf5-1.0.38.tar.bz2
#
sub release (@) {
my @types = @_;
my ($ver, $status, $created_symlink);
my ($batch) = 0;
local $_;
if (@types>0 && $types[0] =~ /^-?-batch$/) {
$batch = 1;
shift @types;
}
# Defaults
DEST=releases
VERS=`perl bin/h5vers`
test "$VERS" || exit 1
verbose=yes
check=yes
# Make sure no one forgot to update MANIFEST
manifest;
# Command-line arguments
while [ -n "$1" ]; do
arg=$1
shift
case "$arg" in
-d)
DEST=$1
shift
;;
--nocheck)
check=no
;;
-*)
echo "Unknown switch: $arg" 1>&2
exit 1
;;
*)
methods="$methods $arg"
;;
esac
done
# Make sure the version number is correct.
$ver = getver;
if ($batch) {
print "Releasing version $ver\n";
} else {
print "HDF version to release [$ver] ";
return "" unless defined ($_=<STDIN>);
chomp;
(setver ($ver=$_) or die "cannot set version") if /\S/;
}
# Default method is tar
if [ "X$methods" = "X" ]; then
methods=tar
fi
# Update the README file to contain the new version and date
# information.
my $today = sprintf "19%02d-%02d-%02d %02d:%02d UTC", (gmtime)[5,4,3,2,1];
$_ = `cat README`;
s[^(This is hdf5-)\d+.\d+.\d+[a-z]( released on )(\d+-?){3} \d+:\d+ UTC]
[$1$ver$2$today]s;
system ("cp -p README README~");
open README, ">README" or die "unable to open README: $!\n";
print README;
close README;
# Move default top-level makefile into place.
$status = system "cp Makefile.dist Makefile";
die "cannot install default Makefile" if $status >> 8;
# Make sure release directory exists
(mkdir $releases, 0777 or die "cannot create $releases")
unless -d $releases;
die "no manifest" unless -r "MANIFEST";
test "$verbose" && echo "Releasing hdf5-$VERS to $DEST" 1>&2
if [ ! -d $DEST ]; then
echo " Destination directory $DEST does not exist" 1>&2
exit 1
fi
# We build the release from above the root of the source tree so the
# hdf5 directory appears as part of the name in the tar file. We create
# a temporary symlink called something like `hdf5-1.0.0a' that points to
# our current working directory.
$_ = cwd;
my ($parent,$root) = m%(.*)/(.*)$% or die "cannot split directory";
if ($root ne "hdf5-$ver" && ! -e "../hdf5-$ver") {
symlink $root, "../hdf5-$ver" or die "cannot create link";
$created_symlink = 1;
}
my $name = "$root/$releases/hdf5-$ver";
# Copy the manifest file to get a list of file names.
MANIFEST=/tmp/H5_MANIFEST.$$
grep '^\.' MANIFEST | expand | cut -f1 -d' ' >$MANIFEST
# Build the releases.
@types = ("gzip") unless @types;
@types = qw/tar gzip compress bzip2/ if 1==@types && "all" eq $types[0];
$_ = `cat MANIFEST`;
s/^\.\///mg;
@filelist = ("Makefile", split /\s*\n/, $_);
$filelist = join " ", map {"hdf5-$ver/$_"} @filelist;
chdir ".." or die;
for (@types) {
print "Compressing with $_...\n";
/^tar$/ && do {
$status = system "tar cf $name.tar $filelist";
next;
};
/^gzip$/ && do {
$status = system "tar cf - $filelist |gzip -9 >$name.tar.gz";
next;
};
/^compress$/ && do {
$status = system "tar cf - $filelist |compress -c >$name.tar.Z";
next;
};
/^bzip2$/ && do {
$status = system "tar cf - $filelist |bzip2 -9 >$name.tar.bz2";
next;
};
} continue {
print STDERR "$_ failed\n" if $status >> 8;
}
chdir $root or die;
# Remove the temporary symlink we created above.
unlink "../hdf5-$ver" if $created_symlink;
# Update version info
if ($batch) {
my ($v1,$v2,$v3,$v4) = $ver =~ /^(\d+)\.(\d+)\.(\d+)([a-z])$/;
$v3 += 1;
setver ($ver = "$v1.$v2.${v3}a") or die "cannot set version";
print "Development version set to $ver\n";
} else {
print <<EOF;
If this is a real release then the version number for continued development
should be incremented. Otherwise just press return.
# Check that all the files in MANIFEST exist and that (if this is a
# CVS checkout) that all the CVS-managed files appear in the
# MANIFEST.
test "$verbose" && echo " Checking manifest..." 1>&2
test -f $MANIFEST || exit 1
for file in `cat $MANIFEST`; do
if [ ! -f $file ]; then
echo "- $file"
fail=yes
fi
done
for cvs in `find . -type d -name CVS -print`; do
path=`echo $cvs |sed s+/CVS++`
for file in `grep '^\/' $cvs/Entries |cut -d/ -f2`; do
if (grep $path/$file $MANIFEST >/dev/null); then
:
else
echo "+ $path/$file"
fail=yes
fi
done
done
# for file in ./Changes `sh -c 'svf ls' 2>/dev/null`; do
# if (grep $file $MANIFEST >/dev/null); then
# :
# elif [ $file = ./Changes ]; then
# :
# else
# echo "+ $file"
# fail=yes
# fi
# done
if [ "X$fail" = "Xyes" ]; then
cat 1>&2 <<EOF
The MANIFEST is out of date. Files marked with a minus sign (-) no
longer exist; files marked with a plus sign (+) are CVS-managed but do
not appear in the MANIFEST. Please remedy the situation and try again.
EOF
print "Set development version to [", ($ver=getver), "] ";
return "" unless defined ($_ = <STDIN>);
chomp;
(setver ($ver=$_) or die "cannot set version") if /\S/;
if [ $check = yes ]; then
exit 1
else
echo "Continuing anyway..."
fi
fi
if (-d "CVS") {
my $tag = $ver;
$tag =~ s/\./-/g;
print "Tag CVS sources with \"$tag\"? [n] ";
chomp ($_ = <STDIN>);
if ($_ eq 'y') {
print "Tagging CVS sources...\n";
my $status = system "cvs tag -R $tag";
die "cvs tag failed" if $status >> 8;
}
}
}
# Create a manifest that contains only files for distribution.
grep '^\.' MANIFEST | grep -v _DO_NOT_DISTRIBUTE_ >$MANIFEST
return 1;
}
# Prepare the source tree for a release.
test -h ../hdf5-$VERS && rm ../hdf5-$VERS
ln -s `pwd` ../hdf5-$VERS || exit 1
mv Makefile ../Makefile.x 2>/dev/null #might fail
cp -p Makefile.dist Makefile
echo "This is hdf5-$VERS released on `date`" >README.x
tail -n +2 <README >>README.x
mv README.x README
test "$verbose" && echo " Running tar..." 1>&2
( \
cd ..; \
tar cf x.tar hdf5-$VERS/Makefile \
`sed s+^.+hdf5-$VERS+ $MANIFEST` || exit 1 \
)
release @ARGV;
# Compress
for comp in $methods; do
case $comp in
tar)
cp -p ../x.tar $DEST/hdf5-$VERS.tar;;
compress)
test "$verbose" && echo " Running compress..." 1>&2
compress -c <../x.tar >$DEST/hdf5-$VERS.tar.Z;;
gzip)
test "$verbose" && echo " Running gzip..." 1>&2
gzip -9 <../x.tar >$DEST/hdf5-$VERS.tar.gz;;
bzip2)
test "$verbose" && echo " Running bzip2..." 1>&2
bzip2 -9 <../x.tar >$DEST/hdf5-$VERS.tar.bz2;;
esac
done
# Remove temporary things
test -f ../Makefile.x && mv ../Makefile.x Makefile
rm -f $MANIFEST
rm -f ../hdf5-$VERS
rm -f ../x.tar
exit 0

192
bin/snapshot Executable file
View File

@@ -0,0 +1,192 @@
#!/bin/sh
set -x
date
#
# This script should be run nightly from cron. It checks out hdf5
# from the CVS source tree and compares it against the previous
# snapshot. If anything significant changed then a new snapshot is
# created, the minor version number is incremented, and the change is
# checked back into the CVS repository.
#
# The path isn't properly initialized on hawkwind -- /usr/local/bin is
# either missing or is after /usr/bin when it should be before.
PATH="/usr/local/bin:$PATH"
# Where are the snapshots stored?
ARCHIVES_default=/afs/ncsa/ftp/HDF/pub/outgoing/hdf5/snapshots
ARCHIVES=$ARCHIVES_default
# Where are the HDF4 library?
# At NCSA, the standard place to find HDF4 software is in /usr/ncsa/.
HDF4LIB_default="/usr/ncsa/include,/usr/ncsa/lib"
HDF4LIB=$HDF4LIB_default
# What compression methods to use?
METHODS="gzip bzip2"
# Make sure cvs would work
if [ -z "$CVSROOT" ]; then
echo "Where is the CVS repository?" 1>&2
exit 1
fi
#
# Command options
cmd="all"
errcode=0
echo '$#=' $# '$*="' $* '"'
while [ $# -gt 0 ] ; do
case "$1" in
all)
cmd="all"
;;
checkout)
cmdcheckout="checkout"
cmd=""
;;
test)
cmdtest="test"
cmd=""
;;
release)
cmdrel="release"
cmd=""
;;
help)
cmd="help"
break
;;
hdf4)
shift
if [ $# -lt 1 ]; then
echo "HDF4LIB information missing"
errcode=1
cmd="help"
break
fi
HDF4LIB="$1"
;;
archive)
shift
if [ $# -lt 1 ]; then
echo "Archive pathname missing"
errcode=1
cmd="help"
break
fi
ARCHIVES="$1"
;;
*)
echo "Unkown option $1"
errcode=1
cmd="help"
break
;;
esac
shift
done
if [ "$cmd" = help ]; then
set -
echo "Usage: $0 [all] [checkout] [test] [release] [help] [hdf4 <hdf4lib_path>] [archive <arch_path> ]"
echo " all: Run all commands (checkout, test & release)"
echo " [Default is all]"
echo " checkout: Run cvs checkout"
echo " test: Run test"
echo " release: Run release"
echo " help: Print this message"
echo " hdf4 <hdf4lib_path>:"
echo " Use <hdf4lib_path> as the HDF4LIB locations"
echo " [Default is $HDF4LIB_default]"
echo " archive <arch_path>: "
echo " Use <arch_path> as the release ARCHIVE area"
echo " [<arch_path> default as $ARCHIVES_default]"
exit $errcode
fi
# Setup the proper configure option (--with-hdf4) to use hdf4 library
# provide HDF4LIB is non-empty.
HDF4LIB=${HDF4LIB:+"--with-hdf4="$HDF4LIB}
CONFIGURE="./configure $HDF4LIB"
# Execute the requests
snapshot=yes
# Show all settings right before execution.
# set
# exit 0
#=============================
# Run CVS checkout
#=============================
if [ "$cmd" = "all" -o -n "$cmdcheckout" ]; then
# Create a working directory. Hopefully one is left over from last
# time that still has the contents of the previous release. But if
# not, just create one and assume that a snapshot is necessary.
COMPARE=${HOME}/hdf5-snapshots
test -d ${COMPARE} || mkdir -p ${COMPARE} || exit 1
# Check out the current version from CVS
cvs -Q co -d ${COMPARE}/current hdf5 || exit 1
fi # Do CVS checkout
#=============================
# Run Test the HDF5 library
#=============================
if [ "$cmd" = "all" -o -n "$cmdtest" ]; then
# Compare it with the previous version. Compare only files listed in
# the MANIFEST plus the MANIFEST itself.
if [ -d ${COMPARE}/previous ]; then
if (diff -c ${COMPARE}/previous/MANIFEST ${COMPARE}/current/MANIFEST); then
snapshot=no
for src in `grep '^\.' ${COMPARE}/current/MANIFEST|expand|cut -f1 -d' '`; do
diff -I H5_VERS_RELEASE -I " released on " \
-I " currently under development" \
${COMPARE}/previous/$src ${COMPARE}/current/$src || \
snapshot=yes
# Don't break because we want to see all the diffs.
done
fi
fi
# Make sure all the serial tests work.
if [ "$snapshot" = "yes" ]; then
if (cd ${COMPARE}/current; \
${CONFIGURE}; \
make _test); then
:
else
snapshot=no
fi
fi
fi # Test the HDF5 library
#=============================
# Run Release snapshot, update version, and commit to cvs and tag
#=============================
if [ "$cmd" = "all" -o -n "$cmdrel" ]; then
if [ "$snapshot" = "yes" ]; then
(cd ${COMPARE}/current; make distclean)
(
# Turn on exit on error in the sub-shell so that it does not
# cvs commit if errors encounter here.
set -e
cd ${COMPARE}/current
cvs -Q tag hdf5-`perl -w bin/h5vers |tr . _`
bin/release -d $ARCHIVES $METHODS
RELEASE_VERSION="`perl -w bin/h5vers -v`"
perl -w bin/h5vers -i
cvs -Q commit -m "Snapshot $RELEASE_VERSION"
)
fi
# Replace the previous version with the current version.
rm -rf ${COMPARE}/previous
mv ${COMPARE}/current ${COMPARE}/previous
fi #Release snapshot
exit 0

View File

@@ -15,6 +15,7 @@ $Source = "";
# usually the same as the package name.
#
%TypeString = ("hbool_t" => "b",
"htri_t" => "b",
"double" => "d",
"H5D_layout_t" => "Dl",
"H5D_transfer_t" => "Dt",
@@ -22,6 +23,7 @@ $Source = "";
"H5E_direction_t" => "Ed",
"H5E_error_t*" => "Ee",
"H5F_driver_t" => "Fd",
"H5F_scope_t" => "Fs",
"H5G_link_t" => "Gl",
"H5G_stat_t*" => "Gs",
"hsize_t" => "h",
@@ -30,10 +32,13 @@ $Source = "";
"int" => "Is",
"unsigned" => "Iu",
"unsigned int" => "Iu",
"H5I_type_t" => "It",
"MPI_Comm" => "Mc",
"MPI_Info" => "Mi",
"off_t" => "o",
"H5P_class_t" => "p",
"href_t" => "r",
"H5R_type_t" => "Rt",
"char*" => "s",
"H5S_class_t" => "Sc",
"H5S_seloper_t" => "Ss",
@@ -41,6 +46,7 @@ $Source = "";
"H5T_norm_t" => "Tn",
"H5T_order_t" => "To",
"H5T_pad_t" => "Tp",
"H5T_pers_t" => "Te",
"H5T_sign_t" => "Ts",
"H5T_class_t" => "Tt",
"H5T_str_t" => "Tz",
@@ -55,7 +61,7 @@ $Source = "";
"H5T_overflow_t" => "x",
"H5Z_func_t" => "x",
"size_t" => "z",
"H5Z_method_t" => "Zm",
"H5Z_filter_t" => "Zf",
"ssize_t" => "Zs",
);
@@ -80,17 +86,21 @@ sub errmesg ($$@) {
#
sub argstring ($$$) {
my ($file, $func, $atype) = @_;
my ($ptr, $tstr) = (0,"!");
my ($ptr, $tstr, $array) = (0, "!", "");
my ($fq_atype);
# Normalize the data type by removing redundant white space,
# certain type qualifiers, and indirection.
$atype =~ s/^\bconst\b//;
$atype =~ s/\b__unused__\b//g;
$atype =~ s/\bUNUSED\b//g;
$atype =~ s/\s+/ /g;
$ptr = length $1 if $atype =~ s/(\*+)//;
$atype =~ s/^\s+//;
$atype =~ s/\s+$//;
if ($atype =~ /(.*)\[(.*)\]$/) {
($array, $atype) = ($2, $1);
$atype =~ s/\s+$//;
}
$fq_atype = $atype . ('*' x $ptr);
if ($ptr>0 && exists $TypeString{$fq_atype}) {
@@ -104,7 +114,7 @@ sub argstring ($$$) {
} else {
$tstr = $TypeString{$atype};
}
return ("*" x $ptr) . $tstr;
return ("*" x $ptr) . ($array?"[$array]":"") . $tstr;
}
##############################################################################
@@ -129,15 +139,18 @@ sub rewrite_func ($$$$$) {
# comma, then split the arguments on commas.
$args =~ s/(\/\*\s*in),\s*(out\s*\*\/)/$1_$2/g;
my @args = split /,[\s\n]*/, $args;
my $argno = 0;
my %names;
for $arg (@args) {
unless ($arg=~/^(([a-z_A-Z]\w*\s+)+\**)
([a-z_A-Z]\w*)(\[\])?
([a-z_A-Z]\w*)(\[.*?\])?
(\s*\/\*\s*(in|out|in_out)\s*\*\/)?\s*$/x) {
errmesg $file, $name, "unable to parse \`$arg\'";
goto error;
} else {
my ($atype, $aname, $array, $adir) = ($1, $3, $4, $6);
$names{$aname} = $argno++;
$adir ||= "in";
$atype =~ s/\s+$//;
push @arg_name, $aname;
@@ -145,7 +158,18 @@ sub rewrite_func ($$$$$) {
if ($adir eq "out") {
push @arg_str, "x";
} else {
$atype .= "*" if $array;
if (defined $array) {
$atype .= "*";
if ($array =~ /^\[\/\*([a-z_A-Z]\w*)\*\/\]$/) {
my $asize = $1;
if (exists $names{$asize}) {
$atype .= '[a' . $names{$asize} . ']';
} else {
warn "bad array size: $asize";
$atype .= "*";
}
}
}
push @arg_str, argstring $file, $name, $atype;
}
}
@@ -154,7 +178,7 @@ sub rewrite_func ($$$$$) {
$trace .= join("", @arg_str) . "\"";
my $len = 4 + length $trace;
for (@arg_name) {
if ($len + length >= 78) {
if ($len + length >= 77) {
$trace .= ",\n $_";
$len = 13 + length;
} else {
@@ -185,7 +209,7 @@ sub rewrite_func ($$$$$) {
error:
return "\n$type\n$name ($args)$body";
return "\n$type\n$name($args)\n$body";
}
##############################################################################
@@ -203,8 +227,8 @@ for $file (@ARGV) {
my $original = $Source;
my $napi = $Source =~ s/\n([A-Za-z]\w*(\s+[a-z]\w*)*)\s*\n #type
(H5[A-Z]{1,2}[^_A-Z]\w*) #name
\s*\((.*?)\) #args
(.*?\n\}[^\n]*) #body
\s*\((.*?)\)\s* #args
(\{.*?\n\}[^\n]*) #body
/rewrite_func($file,$1,$3,$4,$5)/segx;
$total_api += $napi;

View File

@@ -9,31 +9,109 @@
# Compiler flags. The CPPFLAGS values should not include package debug
# flags like `-DH5G_DEBUG' since these are added with the
# `--enable-debug' switch of configure.
# Sometimes a particular compiler must be used. If that's the case
# then uncomment the following line. Otherwise the main configure
# script will try to detect the compiler automatically.
#CC=gcc
# What must *always* be present for things to compile correctly?
#CFLAGS="$CFLAGS -ansi"
#CPPFLAGS="$CPPFLAGS -I."
# What compiler flags should be used for code development?
DEBUG_CFLAGS=-g
DEBUG_CPPFLAGS=
# What compiler flags should be used for building a production
# library?
PROD_CFLAGS=-O
PROD_CPPFLAGS=
# What compiler flags enable code profiling?
PROFILE_CFLAGS=-pg
PROFILE_CPPFLAGS=
#----------------------------------------------------------------------------
# Choosing a C Compiler
# ---------------------
#
# The user should be able to specify the compiler by setting the CC
# environment variable to the name of the compiler and any switches it
# requires for proper operation. If CC is unset then this script may
# set it. If CC is unset by time this script completes then configure
# will try `gcc' and `cc' in that order (perhaps some others too).
#
# Note: Code later in this file may depend on the value of $CC_BASENAME
# in order to distinguish between different compilers when
# deciding which compiler command-line switches to use. This
# variable is set based on the incoming value of $CC and is only
# used within this file.
if test "X-" = "X-$CC"; then
CC="/some/default/compiler/named/foo -ansi"
CC_BASENAME=foo
fi
# C Compiler and Preprocessor Flags
# ---------------------------------
#
# Flags that end with `_CFLAGS' are always passed to the compiler.
# Flags that end with `_CPPFLAGS' are passed to the compiler when
# compiling but not when linking.
#
# DEBUG_CFLAGS Flags to pass to the compiler to create a
# DEBUG_CPPFLAGS library suitable for use with debugging
# tools. Usually this list will exclude
# optimization switches (like `-O') and include
# switches that turn on symbolic debugging
# support (like `-g').
#
# PROD_CFLAGS Flags to pass to the compiler to create a
# PROD_CPPFLAGS production version of the library. These
# usualy exclude symbolic debugging switches
# (like `-g') and include optimization switches
# (like `-O').
#
# PROFILE_CFLAGS Flags to pass to the compiler to create a
# PROFILE_CPPFLAGS library suitable for performance testing (like
# `-pg'). This may or may not include debugging
# or production flags.
#
# CFLAGS Flags can be added to this variable which
# might already be partially initialized. These
# flags will always be passed to the compiler
# and should include switches to turn on full
# warnings. HDF5 attempts to be ANSI and Posix
# compliant and employ good programming
# practices resulting in few if any
# warnings.
#
# Warning flags do not have to be added to CFLAGS
# variable if the compiler is the GNU gcc
# compiler or a descendent of gcc such as EGCS or PGCC.
#
# The CFLAGS should contains *something* or else
# configure will probably add `-g'. For most
# systems this isn't a problem but some systems
# will disable optimizations in favor of the
# `-g'.
#
#
# These flags should be set according to the compiler being used.
# There are two ways to check the compiler. You can try using `-v' or
# `--version' to see if the compiler will print a version string. You
# can use the value of $CC_BASENAME which is the base name of the
# first word in $CC (note that the value of CC may have changed
# above).
case $CC_BASENAME in
gcc)
CFLAGS="$CFLAGS -Wsign-compare" #Only works for some versions
DEBUG_CFLAGS="-g -fverbose-asm"
DEBUG_CPPFLAGS="-DH5F_OPT_SEEK=0 -DH5F_LOW_DFLT=H5F_LOW_SEC2"
PROD_CFLAGS="-O3 -fomit-frame-pointer"
PROD_CPPFLAGS=
PROFILE_CFLAGS="-pg"
PROFILE_CPPFLAGS=
;;
*)
CFLAGS="$CFLAGS -ansi"
DEBUG_CFLAGS="-g"
DEBUG_CPPFLAGS="-DH5F_OPT_SEEK=0 -DH5F_LOW_DFLT=H5F_LOW_SEC2"
PROD_CFLAGS="-O"
PROD_CPPFLAGS=
PROFILE_CFLAGS="-pg"
PROFILE_CPPFLAGS=
;;
esac
# Overriding Configure Tests
# --------------------------
#
# Values for overriding configuration tests when cross compiling.
# This includes compiling on some machines where the serial front end
# compiles for a parallel back end.

View File

@@ -1,38 +0,0 @@
# -*- shell-script -*-
#
# This file is part of the HDF5 build script. It is processed shortly
# after configure starts and defines, among other things, flags for
# the various compile modes.
#----------------------------------------------------------------------------
# Compiler flags. The CPPFLAGS values should not include package debug
# flags like `-DH5G_DEBUG' since these are added with the
# `--enable-debug' switch of configure.
# What must *always* be present for things to compile correctly?
#CFLAGS="$CFLAGS -ansi"
#CPPFLAGS="$CPPFLAGS -I."
# What compiler flags should be used for code development?
DEBUG_CFLAGS=-g
DEBUG_CPPFLAGS="-DH5F_OPT_SEEK=0 -DH5F_LOW_DFLT=H5F_LOW_SEC2"
# What compiler flags should be used for building a production
# library?
PROD_CFLAGS=-O
PROD_CPPFLAGS=
# What compiler flags enable code profiling?
PROFILE_CFLAGS=-pg
PROFILE_CPPFLAGS=
#----------------------------------------------------------------------------
# Values for overriding configuration tests when cross compiling.
# This includes compiling on some machines where the serial front end
# compiles for a parallel back end.
# Set this to `yes' or `no' depending on whether the target is big
# endian or little endian.
#ac_cv_c_bigendian=${ac_cv_c_bigendian='yes'}

View File

@@ -6,7 +6,7 @@
# Things that Make needs
.SUFFIXES:
.SUFFIXES: .c .o
.SUFFIXES: .c .o .lo
@SET_MAKE@
# Programs
@@ -14,6 +14,7 @@ SHELL=/bin/sh
CC=@CC@
CFLAGS=@CFLAGS@
CPPFLAGS=@CPPFLAGS@
LDFLAGS=@LDFLAGS@
LIBS=@LIBS@
AR=@AR@
RANLIB=@RANLIB@
@@ -22,19 +23,36 @@ CP=cp
INSTALL=@INSTALL@
INSTALL_PROGRAM=@INSTALL_PROGRAM@
INSTALL_DATA=@INSTALL_DATA@
RUNTEST=@RUNTEST@
RUNSERIAL=@RUNSERIAL@
RUNPARALLEL=@RUNPARALLEL@
RUNTEST=$(RUNSERIAL)
TRACE=:
# Installation points
ROOT=@ROOT@
prefix=@prefix@
exec_prefix=@exec_prefix@
bindir=@bindir@
libdir=@libdir@
includedir=@includedir@
PUB_LIB=$(LIB)
# The default is to build the library and/or programs
all: lib tests progs
# Shared libraries
LT=$(top_builddir)/libtool
LT_COMPILE=$(LT) --mode=compile $(CC)
LT_LINK_LIB=$(LT) --mode=link $(CC) -rpath $(libdir)
LT_LINK_EXE=$(LT) --mode=link $(CC) -rpath $(bindir)
LT_RUN=$(LT) --mode=execute
LT_INSTALL_PROG=$(LT) --mode=install $(INSTALL_PROGRAM)
LT_INSTALL_LIB=$(LT) --mode=install $(INSTALL_DATA)
LT_UNINSTALL=$(LT) --mode=uninstall $(RM)
# The default is to build the library and/or programs. We must build
# them sequentially.
all:
$(MAKE) lib
$(MAKE) progs
$(MAKE) tests
# The following rules insure that the Makefile is up-to-date by rerunning
# various autoconf components (although not all versions of make assume
@@ -45,22 +63,25 @@ all: lib tests progs
#
# Graphically, the dependencies are:
#
# configure.in
# | |
# +--------------------+ +-------------------+
# | |
# stamp1 configure
# | |
# | config.status
# | | |
# | +-------------------------------------+ |
# | | |
# stamp2 Makefile.in et al |
# | | |
# | +-----------+ +------+
# +-----------------------------+ | |
# | | |
# Makefile
# configure.in
# | |
# +-----------------+ +------------+
# | |
# stamp1 configure
# (H5config.h.in) |
# | | |
# | +---------------+ +-----------+
# | | |
# | config.status
# | |
# | +------------------+
# | |
# stamp2
# (H5config.h) Makefile.in et al
# | |
# +------------------+ +-----------+
# | |
# Makefile
#
# A side effect of updating stamp1 is to generate H5config.h.in and a
# side effect of updating stamp2 is to generate H5config.h. When using
@@ -68,30 +89,31 @@ all: lib tests progs
# the user may want to occassionally type `make Makefile' in any source
# directory.
#
STAMP1=$(ROOT)/config/stamp1
STAMP2=$(ROOT)/config/stamp2
STAMP1=$(top_builddir)/config/stamp1
STAMP2=$(top_builddir)/config/stamp2
MAKEFILE_PARTS=$(ROOT)/config/commence.in Makefile.in \
$(ROOT)/config/conclude.in $(ROOT)/config/depend.in
MAKEFILE_PARTS=$(srcdir)/Makefile.in \
$(top_srcdir)/config/commence.in \
$(top_srcdir)/config/conclude.in \
$(top_srcdir)/config/depend.in
$(STAMP1): $(ROOT)/configure.in
-(cd $(ROOT); \
touch $(STAMP1); \
autoheader)
$(STAMP1): $(top_srcdir)/configure.in
touch $(STAMP1)
-cd $(top_srcdir); autoheader
$(STAMP2): $(STAMP1) $(ROOT)/config.status
-(cd $(ROOT); \
touch $(STAMP2); \
CONFIG_FILES= CONFIG_HEADERS=src/H5config.h ./config.status)
$(STAMP2): $(STAMP1) $(top_builddir)/config.status
touch $(STAMP2)
-cd $(top_builddir); \
CONFIG_FILES= CONFIG_HEADERS=src/H5config.h ./config.status
$(ROOT)/configure: $(ROOT)/configure.in
-(cd $(ROOT); autoconf)
$(top_srcdir)/configure: $(top_srcdir)/configure.in
-cd $(top_srcdir); autoconf
$(ROOT)/config.status: $(ROOT)/configure
-(cd $(ROOT); ./config.status --recheck)
$(top_builddir)/config.status: $(top_srcdir)/configure $(STAMP1)
-cd $(top_builddir); ./config.status --recheck
Makefile: $(MAKEFILE_PARTS) $(ROOT)/config.status $(STAMP2)
-(cd $(ROOT); CONFIG_HEADERS= ./config.status)
Makefile: $(MAKEFILE_PARTS) $(STAMP2)
-cd $(top_builddir); CONFIG_HEADERS= ./config.status
#------------------------------------------------------------------------------
# The following section of this makefile comes from the middle of `Makefile.in'

View File

@@ -9,10 +9,9 @@
#
lib: $(LIB)
$(LIB) __no_library__: $(LIB_OBJ)
$(AR) -rc $@ $(LIB_OBJ)
$(RANLIB) $@
@$(LT_LINK_LIB) -o $@ $(CFLAGS) $(LIB_OBJ) $(LIBS)
progs: $(PROGS)
progs: $(LIB) $(PROGS)
# Build a tags file in this directory.
TAGS: $(LIB_SRC)
@@ -20,60 +19,99 @@ TAGS: $(LIB_SRC)
-etags $(LIB_SRC)
# Runs each test in order, passing $(TEST_FLAGS) to the program.
tests: $(TESTS)
test _test: tests
@for test in $(TESTS) dummy; do \
tests: $(TEST_PROGS) $(LIB)
check test _test: tests
@for test in $(TEST_PROGS) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
echo "Testing $$test $(TEST_FLAGS)"; \
$(RUNTEST) ./$$test $(TEST_FLAGS) || exit 1; \
echo "============================"; \
PATH=".:$$PATH" srcdir=$(srcdir) \
$(RUNTEST) $$test $(TEST_FLAGS) || \
exit 1; \
echo ""; \
fi; \
done;
@for test in $(TEST_SCRIPTS) dummy; do \
if test $$test != dummy; then \
echo "============================"; \
echo "Testing $$test $(TEST_FLAGS)"; \
echo "============================"; \
RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
srcdir=$(srcdir) \
/bin/sh $$test $(TEST_FLAGS) || \
exit 1; \
echo ""; \
fi; \
done;
# Make installation directories directories if they don't exist.
$(libdir):
mkdir $@ && chmod 755 $@
$(includedir):
mkdir $@ && chmod 755 $@
$(bindir):
mkdir $@ && chmod 755 $@
# Install the library, the public header files, and programs.
install: $(LIB) $(PUB_HDR) $(PROGS)
@test -d $(libdir) || mkdir $(libdir)
@for f in X $(LIB); do \
install: $(PUB_LIB) $(PUB_HDR) $(PROGS) $(libdir) $(includedir) $(bindir)
@for f in X $(PUB_LIB); do \
if test $$f != X; then \
(set -x; $(INSTALL_DATA) $$f $(libdir)/. || exit 1); \
($(LT_INSTALL_LIB) $$f $(libdir)/. || exit 1); \
fi; \
done
@test -d $(includedir) || mkdir $(includedir)
@if test -f libhdf5.settings; then \
(set -x; $(INSTALL_DATA) libhdf5.settings $(libdir)/. || exit 1); \
fi
@for f in X $(PUB_HDR); do \
if test $$f != X; then \
(set -x; $(INSTALL_DATA) $$f $(includedir)/. || exit 1); \
fi \
if test -f $$f; then \
(set -x; $(INSTALL_DATA) $$f $(includedir)/. || exit 1); \
else \
(set -x; $(INSTALL_DATA) $(srcdir)/$$f $(includedir)/. || \
exit 1); \
fi; \
fi; \
done
@test -d $(bindir) || mkdir $(bindir)
@for f in X $(PROGS); do \
if test $$f != X; then \
(set -x; $(INSTALL_PROGRAM) $$f $(bindir)/. || exit 1); \
($(LT_INSTALL_PROG) $$f $(bindir)/. || exit 1); \
fi; \
done
# Removes those things that `make install' (would have) installed.
uninstall:
@if test "X$(LIB)" != X; then \
set -x; cd $(libdir) && $(RM) $(LIB); \
for f in $(LIB); do \
$(LT_UNINSTALL) $(libdir)/$$f; \
done; \
fi
@if test "X$(PUBHDR)" != X; then \
@if test "X$(PUB_HDR)" != X; then \
set -x; cd $(includedir) && $(RM) $(PUB_HDR); \
fi
@if test "X$(PROGS)" != X; then \
set -x; cd $(bindir) && $(RM) $(PROGS); \
for f in $(PROGS); do \
$(LT_UNINSTALL) $(bindir)/$$f; \
done; \
fi
# Removes temporary files without removing the final target files. That is,
# remove things like object files but not libraries or executables.
#
mostlyclean:
$(RM) $(LIB_OBJ) $(PROG_OBJ) $(MOSTLYCLEAN)
-$(RM) $(LIB_OBJ) $(LIB_OBJ:.lo=.o)
-$(RM) $(TEST_OBJ) $(TEST_OBJ:.lo=.o)
-$(RM) $(PROG_OBJ) $(PROG_OBJ:.lo=.o) $(MOSTLYCLEAN)
# Like `mostlyclean' except it also removes the final targets: things like
# libraries and executables. This target doesn't remove any file that
# is part of the HDF5 distribution.
#
clean: mostlyclean
$(RM) $(LIB) $(TESTS) $(PROGS) $(CLEAN)
-$(RM) $(LIB) $(TEST_PROGS) $(PROGS) $(CLEAN)
-$(RM) -r .libs
# Like `clean' except it also removes files that were created by running
# configure. If you've unpacked the source and built HDF5 without creating
@@ -81,26 +119,25 @@ clean: mostlyclean
# in the distribution.
#
distclean: clean
$(RM) .depend TAGS *~ core *.core *.bak *.old *.new $(DISTCLEAN)
@if test -f Makefile.in; then \
-$(RM) .depend TAGS *~ core *.core *.bak *.old *.new $(DISTCLEAN)
@if test -f $(srcdir)/Makefile.in; then \
(set -x; $(RM) Makefile); \
fi
# Like `distclean' except it deletes all files that can be regenerated from
# the makefile, including those generated from autoheader and autoconf.
#
maintainer-clean: distclean
$(RM) *~ core core.* *.core *.bak *.contrib gmon.out
-$(RM) *~ core core.* *.core *.bak *.contrib gmon.out
# Implicit rules
.c.a:
$(CC) $(CFLAGS) $(CPPFLAGS) -c $<
$(AR) -rc $@ $*.o
$(RM) $*.o
.c.o:
$(CC) $(CFLAGS) $(CPPFLAGS) -c $<
.c.lo:
@$(LT_COMPILE) $(CFLAGS) $(CPPFLAGS) -c $<
#------------------------------------------------------------------------------
# The following section of this makefile contains dependencies between the
# source files and the header files. If GNU make and GCC are being used then
@@ -113,3 +150,5 @@ maintainer-clean: distclean
@DEPEND1@
@DEPEND2@
@DEPEND3@
@DEPEND4@

62
config/dec-flags Normal file
View File

@@ -0,0 +1,62 @@
# -*- shell-script -*-
#
# This file should be sourced into configure if the compiler is a DEC
# compiler. It is careful not to do anything if the compiler is not
# DEC; otherwise `cc_flags_set' is set to `yes'
#
# Get the compiler version unless it's already known.
#
# cc_vendor: The compiler vendor: DEC
# cc_version: Version number, like: V5.2-038
#
if test X = "X$cc_flags_set"; then
cc_vendor=DEC
cc_version="`$CC $CFLAGS -V 2>&1 |head -1 |\
sed 's/.*DEC C \(V[0-9][-\.0-9]*\).*/\1/'`"
if test X != "$gcc_version"; then
echo "compiler '$CC' is $cc_vendor-$cc_version"
else
cc_vendor=
fi
fi
# Warn about old compilers that don't work right.
case "$cc_vendor-$cc_version" in
DEC-V5.2-038)
cat <<EOF
**
** This compiler may generate incorrect code when optimizations are
** enabled. Please upgrade to a newer version (we're not sure which
** version actually works) before reporting bugs to the HDF5 team.
**
EOF
sleep 5
;;
esac
# Compiler flags
case "$cc_vendor-$cc_version" in
DEC-V5.*)
# Production
PROD_CFLAGS="-g0 -verbose -warnprotos -std -O4 $ARCH -ansi_args -fp_reorder -readonly_strings -inline speed"
PROD_CPPFLAGS="-D_INTRINSICS -D_INLINE_INTRINSICS"
# Debug
DEBUG_CFLAGS="-g -std -verbose -warnprotos"
DEBUG_CPPFLAGS="-DH5F_OPT_SEEK=0 -DH5F_LOW_DFLT=H5F_LOW_SEC2"
# Profile
PROFILE_CFLAGS="-pg -std -verbose -warnprotos"
PROFILE_CPPFLAGS=
# Flags are set
cc_flags_set=yes
;;
esac
# If no flags were set then clear the compiler vendor and version info.
if test X = "X$cc_flags_set"; then
cc_vendor=
cc_version=
fi

20
config/dec-osf4.x Normal file
View File

@@ -0,0 +1,20 @@
# -*- shell-script -*-
#
# This file is part of the HDF5 build script. It is processed shortly
# after configure starts and defines, among other things, flags for
# the various compile modes.
#
# See BlankForm in this directory for detailed information.
# The default compiler is `cc'
if test "X-" = "X-$CC"; then
CC=cc
CC_BASENAME=cc
fi
# Try GNU compiler flags.
. $srcdir/config/gnu-flags
# Try native DEC compiler
ARCH=${ARCH:='-arch host -tune host'}
. $srcdir/config/dec-flags

View File

@@ -25,20 +25,20 @@ dep depend: .distdep
.distdep: .depend
touch .distdep
-perl -p $(ROOT)/bin/distdep .depend >.distdep
-srcdir=$(srcdir) perl -p $(top_srcdir)/bin/distdep .depend >.distdep
.depend: $(LIB_SRC) $(TEST_SRC) $(PROG_SRC)
@touch .depend
@for dep in $? dummy; do \
if [ $$dep != "dummy" ]; then \
echo Building dependencies for $$dep; \
obj=`echo $$dep | sed 's/\.c/\\\\.o/'`; \
sed "/$$obj/,/[^\\]$$/d" <$@ >$@- && mv $@- $@; \
obj=`echo $$dep | sed 's/\.c/\\\\.lo/'`; \
sed '\%$$obj%,\%[^\\]$$%d' <$@ >$@- && mv $@- $@; \
$(TRACE) $$dep; \
$(CC) -M -MG $(CPPFLAGS) $$dep >>$@; \
$(CC) -M -MG $(CPPFLAGS) $$dep |sed 's/\.o/.lo/' >>$@; \
fi; \
done;
-perl -p $(ROOT)/bin/distdep .depend >.distdep
-perl -p $(top_srcdir)/bin/distdep .depend >$(srcdir)/.distdep
-include .depend

21
config/freebsd Normal file
View File

@@ -0,0 +1,21 @@
# -*- shell-script -*-
# This file is part of the HDF5 build script. It is processed shortly
# after configure starts and defines, among other things, flags for
# the various compile modes.
#
# See BlankForm in this directory for details.
# The default compiler is `gcc'
if test "X-" = "X-$CC"; then
CC=gcc
CC_BASENAME=gcc
fi
# Architecture-specific flags
ARCH=
# Omit frame pointer for optimized code?
NOFP=${NOFP:=-fomit-frame-pointer}
# Figure out compiler flags
. $srcdir/config/gnu-flags

156
config/gnu-flags Normal file
View File

@@ -0,0 +1,156 @@
# -*- shell-script -*-
#
# This file should be sourced into configure if the compiler is the
# GNU gcc compiler or a derivative. It is careful not to do anything
# if the compiler is not GNU; otherwise `cc_flags_set' is set to `yes'
#
# Get the compiler version in a way that works for gcc, egcs, and
# pgcc unless a compiler version is already known
#
# cc_vendor: The compiler name: gcc, egcs, or pgcc
# cc_version: Version number: 2.91.60, 2.7.2.1
#
if test X = "X$cc_flags_set"; then
cc_version="`$CC $CFLAGS -v 2>&1 |grep 'gcc version' |\
sed 's/.*gcc version \([-a-z0-9\.]*\).*/\1/'`"
cc_vendor=`echo $cc_version |sed 's/\([a-z]*\).*/\1/'`
cc_version=`echo $cc_version |sed 's/[-a-z]//g'`
if test X = "X$cc_vendor" -a X != "X$cc_version"; then
cc_vendor=gcc
fi
if test "-" != "$cc_vendor-$cc_version"; then
echo "compiler '$CC' is GNU $cc_vendor-$cc_version"
fi
fi
# Warn about old GNU compilers that don't work right.
case "$cc_vendor-$cc_version" in
gcc-2.7.*)
cat <<EOF
**
** This compiler may be unable to properly compile the long long
** data type used extensively by hdf5, although specifying
** --disable-hsizet for configure may work around those bugs.
** There may be other code generation problems also, especially
** when optimizations are enabled. Please upgrade to at least GNU
** gcc version 2.8.1 before reporting bugs to the HDF5 team.
**
EOF
sleep 5
;;
pgcc-2.*)
v2=`echo $cc_version |cut -f2 -d.`
v3=`echo $cc_version |cut -f3 -d.`
v=`expr $v2 '*' 1000 + $v3`
if test $v -le 91066; then
cat <<EOF
**
** This compiler may have problems allocating registers for long
** long data types when optimizations are enabled. There may be
** other code generation problems as well. We know of no version
** of pgcc which is capable of compiling HDF5 in production mode.
** Please use gcc-2.8 or egcs-1.1.1 before reporting bugs.
**
EOF
sleep 5
fi
;;
esac
# Architecture-specific flags
case "$host_cpu" in
i686)
ARCH=${ARCH:="-mcpu=pentiumpro -march=pentiumpro -malign-double"}
;;
esac
# Compiler flags
case "$cc_vendor-$cc_version" in
gcc-2.7*)
# General
CFLAGS="$CFLAGS -ansi"
# Production
PROC_CFLAGS="-O3 $NOFP -finline-functions -Wno-shadow"
PROD_CPPFLAGS=
# Debug
DEBUG_CFLAGS="-g -fverbose-asm -Wno-shadow"
DEBUG_CPPFLAGS="-DH5F_OPT_SEEK=0 -DH5F_LOW_DFLT=H5F_LOW_SEC2"
# Profile
PROFILE_CFLAGS=-pg
PROFILE_CPPFLAGS=
# Flags are set
cc_flags_set=yes
;;
gcc-2.8.*)
# General
CFLAGS="$CFLAGS -Wsign-compare"
# Production
PROD_CFLAGS="$ARCH -O3 $NOFP -finline-functions -fschedule-insns2 -Wno-shadow"
PROD_CPPFLAGS=
# Debug
DEBUG_CFLAGS="-g -fverbose-asm -Wno-shadow"
DEBUG_CPPFLAGS="-DH5F_OPT_SEEK=0 -DH5F_LOW_DFLT=H5F_LOW_SEC2"
# Profile
PROFILE_CFLAGS=-pg
PROFILE_CPPFLAGS=
# Flags are set
cc_flags_set=yes
;;
egcs-2.*|pgcc-2.*)
# General
CFLAGS="$CFLAGS -Wsign-compare"
# Production
PROD_CFLAGS="$ARCH -O6 $NOFP -Wno-shadow"
PROD_CPPFLAGS=
# Debug
DEBUG_CFLAGS="-g -fverbose-asm -Wno-shadow"
DEBUG_CPPFLAGS="-DH5F_OPT_SEEK=0 -DH5F_LOW_DFLT=H5F_LOW_SEC2"
# Profile
PROFILE_CFLAGS=-pg
PROFILE_CPPFLAGS=
# Flags are set
cc_flags_set=yes
;;
gcc-*|egcs-*|pgcc-*)
# This must be some other GNU compiler that we don't know about.
# Just use fairly generic flags.
# Production
PROD_CFLAGS=-O
PROD_CPPFLAGS=
# Debug
DEBUG_CFLAGS=-g
DEBUG_CPPFLAGS="-DH5F_OPT_SEEK=0 -DH5F_LOW_DFLT=H5F_LOW_SEC2"
# Profile
PROFILE_CFLAGS=-pg
PROFILE_CPPFLAGS=
# Flags are set
cc_flags_set=yes
;;
esac
# Clear cc info if no flags set
if test X = "X$cc_flags_set"; then
cc_vendor=
cc_version=
fi

View File

@@ -3,36 +3,34 @@
# This file is part of the HDF5 build script. It is processed shortly
# after configure starts and defines, among other things, flags for
# the various compile modes.
#
# See BlankForm in this directory for details.
# Default compiler is `cc'
if test "X-" = "X-$CC"; then
CC=cc
CC_BASENAME=cc
fi
#----------------------------------------------------------------------------
# Compiler flags. The CPPFLAGS values should not include package debug
# flags like `-DH5G_DEBUG' since these are added with the
# `--enable-debug' switch of configure.
# Flags
case "X-$CC" in
X-gcc)
CFLAGS="$CFLAGS -Wsign-compare" #Only works for some versions
DEBUG_CFLAGS="-g -fverbose-asm"
DEBUG_CPPFLAGS="-DH5F_OPT_SEEK=0 -DH5F_LOW_DFLT=H5F_LOW_SEC2"
PROD_CFLAGS="-O3"
PROD_CPPFLAGS=
PROFILE_CFLAGS="-pg"
PROFILE_CPPFLAGS=
;;
# What must *always* be present for things to compile correctly?
CFLAGS="$CFLAGS -Ae"
#CPPFLAGS="$CPPFLAGS -I."
# What compiler flags should be used for code development?
DEBUG_CFLAGS=
DEBUG_CPPFLAGS=
# What compiler flags should be used for building a production
# library?
PROD_CFLAGS=
PROD_CPPFLAGS=
# What compiler flags enable code profiling?
PROFILE_CFLAGS=
PROFILE_CPPFLAGS=
#----------------------------------------------------------------------------
# Values for overriding configuration tests when cross compiling.
# This includes compiling on some machines where the serial front end
# compiles for a parallel back end.
# Set this to `yes' or `no' depending on whether the target is big
# endian or little endian.
#ac_cv_c_bigendian=${ac_cv_c_bigendian='yes'}
*)
CFLAGS="$CFLAGS -Ae"
DEBUG_CFLAGS=-g
DEBUG_CPPFLAGS="-Ae"
PROD_CFLAGS=-O
PROD_CPPFLAGS="-Ae"
PROFILE_CFLAGS=
PROFILE_CPPFLAGS="-Ae"
;;
esac

36
config/hpux9.03 Normal file
View File

@@ -0,0 +1,36 @@
# -*- shell-script -*-
#
# This file is part of the HDF5 build script. It is processed shortly
# after configure starts and defines, among other things, flags for
# the various compile modes.
#
# See BlankForm in this directory for details
# Default compiler is `cc'
if test "X-" = "X-$CC"; then
CC=cc
CC_BASENAME=cc
fi
# Flags
case "X-$CC" in
X-gcc)
CFLAGS="$CFLAGS -Wsign-compare" #Only works for some versions
DEBUG_CFLAGS="-g -fverbose-asm"
DEBUG_CPPFLAGS="-DH5F_OPT_SEEK=0 -DH5F_LOW_DFLT=H5F_LOW_SEC2"
PROD_CFLAGS="-O3"
PROD_CPPFLAGS=
PROFILE_CFLAGS="-pg"
PROFILE_CPPFLAGS=
;;
*)
CFLAGS="$CFLAGS -Ae"
DEBUG_CFLAGS=-g
DEBUG_CPPFLAGS=
PROD_CFLAGS=
PROD_CPPFLAGS=
PROFILE_CFLAGS=
PROFILE_CPPFLAGS=
;;
esac

View File

@@ -3,24 +3,29 @@
# This file is part of the HDF5 build script. It is processed shortly
# after configure starts and defines, among other things, flags for
# the various compile modes.
#
# See BlankForm in this directory for details.
# The default compiler is `cicc'
if test "X-" = "X-$CC"; then
CC=cicc
CC_BASENAME=cicc
fi
#----------------------------------------------------------------------------
# Compiler flags. The CPPFLAGS values should not include package debug
# flags like `-DH5G_DEBUG' since these are added with the
# `--enable-debug' switch of configure.
# The default archiver is `xar'
AR=${AR:-xar}
# Sometimes a particular compiler must be used. If that's the case
# then uncomment the following line. Otherwise the main configure
# script will try to detect the compiler automatically.
CC=cicc
AR=xar
# There is no ranlib
RANLIB=:
LIBS="-L./ -L../ -lnoop_stubs"
RUNTEST="yod -sz 1"
# Additional libraries
LDFLAGS="$LDFLAGS -lnoop_stubs"
# How to run serial and parallel test programs
RUNSERIAL="yod -sz 1"
RUNPARALLEL="yod -sz 8"
# What must *always* be present for things to compile correctly?
CFLAGS="$CFLAGS -DDOS386"
#CPPFLAGS="$CPPFLAGS -I."
# What compiler flags should be used for code development?
@@ -36,17 +41,20 @@ PROD_CPPFLAGS=
PROFILE_CFLAGS=-pg
PROFILE_CPPFLAGS=
#----------------------------------------------------------------------------
# Values for overriding configuration tests when cross compiling.
# This includes compiling on some machines where the serial front end
# compiles for a parallel back end.
# Set this to `yes' or `no' depending on whether the target is big
# endian or little endian.
#ac_cv_c_bigendian=${ac_cv_c_bigendian='yes'}
# Turn off shared lib option. It does not work for TFLOPS yet.
enable_shared="${enable_shared:-no}"
# Set this to the width required by printf() to print type `long
# long'. For instance, if the format would be `%lld' then set it to
# `ll' or if the format would be `%qd' set it to `q'.
hdf5_cv_printf_ll=${hdf5_cv_printf_ll='ll'}
# Hard set sizeof_intn_t to 0 because they are not supported.
ac_cv_sizeof_int16_t=${ac_cv_sizeof_int16_t='0'}
ac_cv_sizeof_int32_t=${ac_cv_sizeof_int32_t='0'}
ac_cv_sizeof_int64_t=${ac_cv_sizeof_int64_t='0'}
ac_cv_sizeof_int8_t=${ac_cv_sizeof_int8_t='0'}
ac_cv_sizeof_uint16_t=${ac_cv_sizeof_uint16_t='0'}
ac_cv_sizeof_uint32_t=${ac_cv_sizeof_uint32_t='0'}
ac_cv_sizeof_uint64_t=${ac_cv_sizeof_uint64_t='0'}
ac_cv_sizeof_uint8_t=${ac_cv_sizeof_uint8_t='0'}

View File

@@ -1,50 +0,0 @@
# -*- shell-script -*-
#
# This file is part of the HDF5 build script. It is processed shortly
# after configure starts and defines, among other things, flags for
# the various compile modes.
#----------------------------------------------------------------------------
# Compiler flags. The CPPFLAGS values should not include package debug
# flags like `-DH5G_DEBUG' since these are added with the
# `--enable-debug' switch of configure.
# Sometimes a particular compiler must be used. If that's the case
# then uncomment the following line. Otherwise the main configure
# script will try to detect the compiler automatically.
CC=cc
RANLIB=:
# What must *always* be present for things to compile correctly?
CFLAGS="$CFLAGS -ansi -fullwarn -woff 799"
#CPPFLAGS="$CPPFLAGS -I."
# What compiler flags should be used for code development?
DEBUG_CFLAGS=-g
DEBUG_CPPFLAGS=
# What compiler flags should be used for building a production
# library?
PROD_CFLAGS=-O
PROD_CPPFLAGS=
# What compiler flags enable code profiling?
PROFILE_CFLAGS=-pg
PROFILE_CPPFLAGS=
#----------------------------------------------------------------------------
# Values for overriding configuration tests when cross compiling.
# This includes compiling on some machines where the serial front end
# compiles for a parallel back end.
# Set this to `yes' or `no' depending on whether the target is big
# endian or little endian.
#ac_cv_c_bigendian=${ac_cv_c_bigendian='yes'}
# Set this to the width required by printf() to print type `long
# long'. For instance, if the format would be `%lld' then set it to
# `ll' or if the format would be `%qd' set it to `q'.
#hdf5_cv_printf_ll=${hdf5_cv_printf_ll='ll'}

50
config/irix5.x Normal file
View File

@@ -0,0 +1,50 @@
# -*- shell-script -*-
#
# This file is part of the HDF5 build script. It is processed shortly
# after configure starts and defines, among other things, flags for
# the various compile modes.
#
# See BlankForm in this directory for details
# The default compiler is `cc' and there is no ranlib.
if test "X-" = "X-$CC"; then
CC=cc
CC_BASENAME=cc
fi
RANLIB=:
case "X-$CC_BASENAME" in
X-gcc)
CFLAGS="$CFLAGS -Wsign-compare" #Only works for some versions
DEBUG_CFLAGS="-g -fverbose-asm"
DEBUG_CPPFLAGS="-DH5F_OPT_SEEK=0 -DH5F_LOW_DFLT=H5F_LOW_SEC2"
PROD_CFLAGS="-O3"
PROD_CPPFLAGS=
PROFILE_CFLAGS="-pg"
PROFILE_CPPFLAGS=
;;
*)
# Do *not* use -ansi because it prevents hdf5 from being able
# to read modification dates from the file. On some systems it
# can also result in compile errors in system header files
# since hdf5 includes a couple non-ANSI header files.
#CFLAGS="$CFLAGS -ansi"
# Always turn off these compiler warnings:
CFLAGS="$CFLAGS -woff 799"
# Extra debugging flags
DEBUG_CFLAGS=-g
DEBUG_CPPFLAGS=
# Extra production flags
# Note: higher optimizations relax alignment requirements needed.
PROD_CFLAGS=-O
PROD_CPPFLAGS=
# Extra profiling flags
PROFILE_CFLAGS=-pg
PROFILE_CPPFLAGS=
;;
esac

View File

@@ -1,39 +0,0 @@
# -*- shell-script -*-
#
# This file is part of the HDF5 build script. It is processed shortly
# after configure starts and defines, among other things, flags for
# the various compile modes.
#----------------------------------------------------------------------------
# Compiler flags. The CPPFLAGS values should not include package debug
# flags like `-DH5G_DEBUG' since these are added with the
# `--enable-debug' switch of configure.
RANLIB=:
# What must *always* be present for things to compile correctly?
CFLAGS="$CFLAGS -ansi -n32"
#CPPFLAGS="$CPPFLAGS -I."
# What compiler flags should be used for code development?
DEBUG_CFLAGS=-g
DEBUG_CPPFLAGS=
# What compiler flags should be used for building a production
# library?
PROD_CFLAGS=-O
PROD_CPPFLAGS=
# What compiler flags enable code profiling?
PROFILE_CFLAGS=-pg
PROFILE_CPPFLAGS=
#----------------------------------------------------------------------------
# Values for overriding configuration tests when cross compiling.
# This includes compiling on some machines where the serial front end
# compiles for a parallel back end.
# Set this to `yes' or `no' depending on whether the target is big
# endian or little endian.
#ac_cv_c_bigendian=${ac_cv_c_bigendian='yes'}

87
config/irix6.x Normal file
View File

@@ -0,0 +1,87 @@
# -*- shell-script -*-
#
# This file is part of the HDF5 build script. It is processed shortly
# after configure starts and defines, among other things, flags for
# the various compile modes.
#
# See BlankForm in this directory for details.
# Use SGI supplied C compiler by default. There is no ranlib
if test "X-" = "X-$CC"; then
CC='cc'
CC_BASENAME=cc
fi
RANLIB=:
# Compiler flags
case "X-$CC_BASENAME" in
X-gcc)
CFLAGS="$CFLAGS -Wsign-compare" #Only works for some versions
DEBUG_CFLAGS="-g -fverbose-asm"
DEBUG_CPPFLAGS="-DH5F_OPT_SEEK=0 -DH5F_LOW_DFLT=H5F_LOW_SEC2"
PROD_CFLAGS="-O3"
PROD_CPPFLAGS=
PROFILE_CFLAGS="-pg"
PROFILE_CPPFLAGS=
;;
*)
# Check for old versions of the compiler that don't work right.
case "`$CC -version 2>&1 |head -1`" in
"Mongoose Compilers: Version 7.00")
echo " +---------------------------------------------------+"
echo " | You have an old version of cc (Mongoose Compilers |"
echo " | version 7.00). Please upgrade to MIPSpro version |"
echo " | 7.2.1.2m (patches are available from the SGI web |"
echo " | site). The 7.00 version may generate incorrect |"
echo " | code, especially when optimizations are enabled. |"
echo " +---------------------------------------------------+"
sleep 5
;;
esac
# Do *not* use -ansi because it prevents hdf5 from being able
# to read modification dates from the file. On some systems it
# can also result in compile errors in system header files
# since hdf5 includes a couple non-ANSI header files.
#CFLAGS="$CFLAGS -ansi"
# Always turn off these compiler warnings for the -64 compiler:
# 1174: function declared but not used
# 1429: the `long long' type is not standard
# 1209: constant expressions
# 1196: __vfork() (this is an SGI config problem)
# 1685: turn off warnings about turning off invalid warnings
CFLAGS="$CFLAGS -woff 1174,1429,1209,1196,1685"
# Always turn off these compiler warnings for the old compiler:
# 799: the `long long' type is not standard
# 803: turn off warnings about turning off invalid warnings
# 835: __vfork() (this is an SGI config problem)
CFLAGS="$CFLAGS -woff 799,803,835"
# Always turn off these loader warnings:
# (notice the peculiar syntax)
# 47: branch instructions that degrade performance on R4000
# 84: a library is not used
# 85: duplicate definition preemption (from -lnsl)
# 134: duplicate weak definition preemption (from -lnsl)
CFLAGS="$CFLAGS -Wl,-woff,47,-woff,84,-woff,85,-woff,134"
# Extra debugging flags
DEBUG_CFLAGS="-g -fullwarn"
DEBUG_CPPFLAGS=
# Extra production flags
PROD_CFLAGS=-O
PROD_CPPFLAGS=
# Extra profiling flags
PROFILE_CFLAGS=-pg
PROFILE_CPPFLAGS=
# Turn off shared lib option. It does not work for IRIX64 yet.
test `uname -s` = IRIX64 && enable_shared="${enable_shared:-no}"
;;
esac

View File

@@ -1,50 +0,0 @@
# -*- shell-script -*-
#
# This file is part of the HDF5 build script. It is processed shortly
# after configure starts and defines, among other things, flags for
# the various compile modes.
#----------------------------------------------------------------------------
# Compiler flags. The CPPFLAGS values should not include package debug
# flags like `-DH5G_DEBUG' since these are added with the
# `--enable-debug' switch of configure.
# Use SGI supplied C compiler
CC="cc"
RANLIB=:
# What must *always* be present for things to compile correctly?
# Always turn off these warnings:
# 1174: function declared but not used
# 1429: the `long long' type is not standard
# 1209: constant expressions
# 1196: __vfork() (this is an SGI config problem)
#
CFLAGS="$CFLAGS -fullwarn -ansi -64 -woff 1174,1429,1209,1196"
#CPPFLAGS="$CPPFLAGS -I."
# What compiler flags should be used for code development?
DEBUG_CFLAGS=-g
DEBUG_CPPFLAGS=
# What compiler flags should be used for building a production
# library?
PROD_CFLAGS=-O
PROD_CPPFLAGS=
# What compiler flags enable code profiling?
PROFILE_CFLAGS=-pg
PROFILE_CPPFLAGS=
#----------------------------------------------------------------------------
# Values for overriding configuration tests when cross compiling.
# This includes compiling on some machines where the serial front end
# compiles for a parallel back end.
# Set this to `yes' or `no' depending on whether the target is big
# endian or little endian.
#ac_cv_c_bigendian=${ac_cv_c_bigendian='yes'}
#!/bin/sh

View File

@@ -1,58 +0,0 @@
# -*- shell-script -*-
#
# This file is part of the HDF5 build script. It is processed shortly
# after configure starts and defines, among other things, flags for
# the various compile modes.
#----------------------------------------------------------------------------
# Compiler flags. The CPPFLAGS values should not include package debug
# flags like `-DH5G_DEBUG' since these are added with the
# `--enable-debug' switch of configure.
CC=${CC:-gcc}
case `$CC -v 2>&1 |tail -1 |sed 's/gcc version //'` in
2.7.*)
echo " +------------------------------------------------+"
echo " | You have an old version of gcc. Please upgrade |"
echo " | to 2.8.1 or better. Continuing anyway, but |"
echo " | code generation may be wrong on some platforms.|"
echo " +------------------------------------------------+"
sleep 5
;;
2.8.*)
CFLAGS="$CFLAGS -Wundef -Wsign-compare"
;;
esac
# What must *always* be present for things to compile correctly?
CFLAGS="$CFLAGS -ansi"
#CPPFLAGS="$CPPFLAGS -I."
# What compiler flags should be used for code development?
DEBUG_CFLAGS="-g -fverbose-asm"
DEBUG_CPPFLAGS="-DH5F_OPT_SEEK=0 -DH5F_LOW_DFLT=H5F_LOW_SEC2"
# What compiler flags should be used for building a production
# library?
PROD_CFLAGS="-mcpu=pentiumpro -march=pentiumpro -O3 -finline-functions -malign-double -fomit-frame-pointer -fschedule-insns2"
PROD_CPPFLAGS=
# What compiler flags enable code profiling?
PROFILE_CFLAGS=-pg
PROFILE_CPPFLAGS=
#----------------------------------------------------------------------------
# Enable parallel support by default for Robb's development system.
#
if [ 'robb@arborea' = `whoami`@`hostname` ]; then
enable_parallel=${enable_parallel:-yes}
fi
#----------------------------------------------------------------------------
# Values for overriding configuration tests when cross compiling.
# This includes compiling on some machines where the serial front end
# compiles for a parallel back end.
# Set this to `yes' or `no' depending on whether the target is big
# endian or little endian.
#ac_cv_c_bigendian=${ac_cv_c_bigendian='yes'}

4
config/linux-gnu Normal file
View File

@@ -0,0 +1,4 @@
# -*- shell-script -*-
# This is the same as linux-gnulibc1
. $srcdir/config/linux-gnulibc1

19
config/linux-gnulibc1 Normal file
View File

@@ -0,0 +1,19 @@
# -*- shell-script -*-
#
# This file is part of the HDF5 build script. It is processed shortly
# after configure starts and defines, among other things, flags for
# the various compile modes.
#
# See BlankForm in this directory for details.
# The default compiler is `gcc'.
if test "X-" = "X-$CC"; then
CC=gcc
CC_BASENAME=gcc
fi
# Omit frame pointer for optimized code?
NOFP=${NOFP:=-fomit-frame-pointer}
# Figure out compiler flags
. $srcdir/config/gnu-flags

View File

@@ -1,7 +1,10 @@
# -*- shell-script -*-
#
# This file is part of the HDF5 build script. It is processed shortly
# after configure starts and defines, among other things, flags for
# the various compile modes.
#
# See BlankForm in this directory for details.
. config/linux
CPP=/usr/bin/cpp
# Same as with gnulibc1 for now
. $srcdir/config/linux-gnulibc1

View File

@@ -1,39 +0,0 @@
# -*- shell-script -*-
#
# This file is part of the HDF5 build script. It is processed shortly
# after configure starts and defines, among other things, flags for
# the various compile modes.
#----------------------------------------------------------------------------
# Compiler flags. The CPPFLAGS values should not include package debug
# flags like `-DH5G_DEBUG' since these are added with the
# `--enable-debug' switch of configure.
# What must *always* be present for things to compile correctly?
#CFLAGS="$CFLAGS -ansi"
#CPPFLAGS="$CPPFLAGS -I."
# What compiler flags should be used for code development?
DEBUG_CFLAGS=
DEBUG_CPPFLAGS=
# What compiler flags should be used for building a production
# library?
PROD_CFLAGS=
PROD_CPPFLAGS=
# What compiler flags enable code profiling?
PROFILE_CFLAGS=
PROFILE_CPPFLAGS=
#----------------------------------------------------------------------------
# Values for overriding configuration tests when cross compiling.
# This includes compiling on some machines where the serial front end
# compiles for a parallel back end.
# Set this to `yes' or `no' depending on whether the target is big
# endian or little endian.
ac_cv_c_bigendian=${ac_cv_c_bigendian='yes'}

21
config/powerpc-ibm-aix4.x Normal file
View File

@@ -0,0 +1,21 @@
# -*- shell-script -*-
#
# This file is part of the HDF5 build script. It is processed shortly
# after configure starts and defines, among other things, flags for
# the various compile modes.
#
# See BlankForm in this directory for details.
# Cross compiling defaults
ac_cv_c_bigendian=${ac_cv_c_bigendian='yes'}
ac_cv_header_stdc=${ac_cv_header_stdc='yes'}
ac_cv_sizeof_short=${ac_cv_sizeof_short=2}
ac_cv_sizeof_int=${ac_cv_sizeof_int=4}
ac_cv_sizeof_long=${ac_cv_sizeof_long=4}
ac_cv_sizeof_long_long=${ac_cv_sizeof_long_long=8}
ac_cv_sizeof_float=${ac_cv_sizeof_float=4}
ac_cv_sizeof_double=${ac_cv_sizeof_double=8}
ac_cv_sizeof_long_double=${ac_cv_sizeof_long_double=8}
ac_cv_sizeof_int=${ac_cv_sizeof_int=4}
ac_cv_sizeof_size_t=${ac_cv_sizeof_size_t=4}
ac_cv_sizeof_off_t=${ac_cv_sizeof_off_t=8}

View File

@@ -1,39 +0,0 @@
# -*- shell-script -*-
#
# This file is part of the HDF5 build script. It is processed shortly
# after configure starts and defines, among other things, flags for
# the various compile modes.
#----------------------------------------------------------------------------
# Compiler flags. The CPPFLAGS values should not include package debug
# flags like `-DH5G_DEBUG' since these are added with the
# `--enable-debug' switch of configure.
# What must *always* be present for things to compile correctly?
#CFLAGS="$CFLAGS -ansi"
#CPPFLAGS="$CPPFLAGS -I."
# What compiler flags should be used for code development?
DEBUG_CFLAGS=
DEBUG_CPPFLAGS=
# What compiler flags should be used for building a production
# library?
PROD_CFLAGS=
PROD_CPPFLAGS=
# What compiler flags enable code profiling?
PROFILE_CFLAGS=
PROFILE_CPPFLAGS=
#----------------------------------------------------------------------------
# Values for overriding configuration tests when cross compiling.
# This includes compiling on some machines where the serial front end
# compiles for a parallel back end.
# Set this to `yes' or `no' depending on whether the target is big
# endian or little endian.
ac_cv_c_bigendian=${ac_cv_c_bigendian='yes'}

10
config/rs6000-ibm-aix4.x Normal file
View File

@@ -0,0 +1,10 @@
# -*- shell-script -*-
#
# This file is part of the HDF5 build script. It is processed shortly
# after configure starts and defines, among other things, flags for
# the various compile modes.
#
# See BlankForm in this directory for details.
# Cross compiling defaults
ac_cv_c_bigendian=${ac_cv_c_bigendian='yes'}

View File

@@ -1,41 +0,0 @@
# -*- shell-script -*-
#
# This file is part of the HDF5 build script. It is processed shortly
# after configure starts and defines, among other things, flags for
# the various compile modes.
#----------------------------------------------------------------------------
# Compiler flags. The CPPFLAGS values should not include package debug
# flags like `-DH5G_DEBUG' since these are added with the
# `--enable-debug' switch of configure.
# We can only use gcc
CC=gcc
# What must *always* be present for things to compile correctly?
CFLAGS="$CFLAGS -ansi"
#CPPFLAGS="$CPPFLAGS -I."
# What compiler flags should be used for code development?
DEBUG_CFLAGS=-g
DEBUG_CPPFLAGS=
# What compiler flags should be used for building a production
# library?
PROD_CFLAGS=-O2
PROD_CPPFLAGS=
# What compiler flags enable code profiling?
PROFILE_CFLAGS=-pg
PROFILE_CPPFLAGS=
#----------------------------------------------------------------------------
# Values for overriding configuration tests when cross compiling.
# This includes compiling on some machines where the serial front end
# compiles for a parallel back end.
# Set this to `yes' or `no' depending on whether the target is big
# endian or little endian.
#ac_cv_c_bigendian=${ac_cv_c_bigendian='yes'}

28
config/solaris2.x Normal file
View File

@@ -0,0 +1,28 @@
# -*- shell-script -*-
#
# This file is part of the HDF5 build script. It is processed shortly
# after configure starts and defines, among other things, flags for
# the various compile modes.
#
# See BlankForm in this directory for details
# The default compiler is `gcc'
if test "X-" = "X-$CC"; then
CC=gcc
CC_BASENAME=gcc
fi
# Try gcc compiler flags
. $srcdir/config/gnu-flags
# Try solaris native compiler flags
if test "X-" = "X-$cc_flags_set"; then
CFLAGS="-erroff=%none"
DEBUG_CFLAGS=-g
DEBUG_CPPFLAGS="-DH5F_LOW_DFLT=H5F_LOW_SEC2"
PROD_CFLAGS=-xO2
PROD_CPPFLAGS=
PROFILE_CFLAGS=-xpg
PROFILE_CPPFLAGS=
cc_flags_set=yes
fi

138
config/unicosmk Normal file
View File

@@ -0,0 +1,138 @@
# -*- shell-script -*-
#
# This file is part of the HDF5 build script. It is processed shortly
# after configure starts and defines, among other things, flags for
# the various compile modes.
#----------------------------------------------------------------------------
# Compiler flags. The CPPFLAGS values should not include package debug
# flags like `-DH5G_DEBUG' since these are added with the
# `--enable-debug' switch of configure.
#----------------------------------------------------------------------------
# Choosing a C Compiler
# ---------------------
#
# The user should be able to specify the compiler by setting the CC
# environment variable to the name of the compiler and any switches it
# requires for proper operation. If CC is unset then this script may
# set it. If CC is unset by time this script completes then configure
# will try `gcc' and `cc' in that order (perhaps some others too).
#
# Note: Code later in this file may depend on the value of $CC_BASENAME
# in order to distinguish between different compilers when
# deciding which compiler command-line switches to use. This
# variable is set based on the incoming value of $CC and is only
# used within this file.
if test "X-" = "X-$CC"; then
CC=cc
CC_BASENAME=cc
fi
# no need to use RANLIB
RANLIB=:
# C Compiler and Preprocessor Flags
# ---------------------------------
#
# Flags that end with `_CFLAGS' are always passed to the compiler.
# Flags that end with `_CPPFLAGS' are passed to the compiler when
# compiling but not when linking.
#
# DEBUG_CFLAGS Flags to pass to the compiler to create a
# DEBUG_CPPFLAGS library suitable for use with debugging
# tools. Usually this list will exclude
# optimization switches (like `-O') and include
# switches that turn on symbolic debugging
# support (like `-g').
#
# PROD_CFLAGS Flags to pass to the compiler to create a
# PROD_CPPFLAGS production version of the library. These
# usualy exclude symbolic debugging switches
# (like `-g') and include optimization switches
# (like `-O').
#
# PROFILE_CFLAGS Flags to pass to the compiler to create a
# PROFILE_CPPFLAGS library suitable for performance testing (like
# `-pg'). This may or may not include debugging
# or production flags.
#
# CFLAGS Flags can be added to this variable which
# might already be partially initialized. These
# flags will always be passed to the compiler
# and should include switches to turn on full
# warnings. HDF5 attempts to be ANSI and Posix
# compliant and employ good programming
# practices resulting in few if any
# warnings.
#
# Warning flags do not have to be added to CFLAGS
# variable if the compiler is the GNU gcc
# compiler or a descendent of gcc such as EGCS or PGCC.
#
# The CFLAGS should contains *something* or else
# configure will probably add `-g'. For most
# systems this isn't a problem but some systems
# will disable optimizations in favor of the
# `-g'.
#
#
# These flags should be set according to the compiler being used.
# There are two ways to check the compiler. You can try using `-v' or
# `--version' to see if the compiler will print a version string. You
# can use the value of $CC_BASENAME which is the base name of the
# first word in $CC (note that the value of CC may have changed
# above).
case $CC_BASENAME in
gcc)
CFLAGS="$CFLAGS -Wsign-compare" #Only works for some versions
DEBUG_CFLAGS="-g -fverbose-asm"
DEBUG_CPPFLAGS="-DH5F_OPT_SEEK=0 -DH5F_LOW_DFLT=H5F_LOW_SEC2"
PROD_CFLAGS="-O3 -fomit-frame-pointer"
PROD_CPPFLAGS=
PROFILE_CFLAGS="-pg"
PROFILE_CPPFLAGS=
;;
cc)
CFLAGS="$CFLAGS"
DEBUG_CFLAGS="-g -h zero"
DEBUG_CPPFLAGS="-DH5F_OPT_SEEK=0 -DH5F_LOW_DFLT=H5F_LOW_SEC2"
PROD_CFLAGS="-O2"
PROD_CPPFLAGS=
PROFILE_CFLAGS="-pg"
PROFILE_CPPFLAGS=
;;
*)
CFLAGS="$CFLAGS -ansi"
DEBUG_CFLAGS="-g"
DEBUG_CPPFLAGS="-DH5F_OPT_SEEK=0 -DH5F_LOW_DFLT=H5F_LOW_SEC2"
PROD_CFLAGS="-O"
PROD_CPPFLAGS=
PROFILE_CFLAGS="-pg"
PROFILE_CPPFLAGS=
;;
esac
# Overriding Configure Tests
# --------------------------
#
# Values for overriding configuration tests when cross compiling.
# This includes compiling on some machines where the serial front end
# compiles for a parallel back end.
# Set this to `yes' or `no' depending on whether the target is big
# endian or little endian.
#ac_cv_c_bigendian=${ac_cv_c_bigendian='yes'}
# Set this to the width required by printf() to print type `long
# long'. For instance, if the format would be `%lld' then set it to
# `ll' or if the format would be `%qd' set it to `q'.
#hdf5_cv_printf_ll=${hdf5_cv_printf_ll='ll'}

3544
configure vendored

File diff suppressed because it is too large Load Diff

View File

@@ -1,10 +1,8 @@
dnl Process this file with autoconf to produce configure. -*-indented-text-*-
dnl Process this file with autoconf to produce configure.
dnl
dnl Copyright (C) 1997 National Center for Supercomputing Applications.
dnl All rights reserved.
dnl ----------------------------------------------------------------------
dnl Initialize configure.
dnl
@@ -15,6 +13,13 @@ AC_CONFIG_AUX_DIR(bin)
AC_CANONICAL_HOST
AC_SUBST(CPPFLAGS)
dnl ----------------------------------------------------------------------
dnl Dump all shell variables values.
dnl
AC_MSG_CHECKING(shell variables initial values)
set >&5
AC_MSG_RESULT(done)
dnl ----------------------------------------------------------------------
dnl Check that the cache file was build on the same host as what we're
dnl running on now.
@@ -28,8 +33,6 @@ elif test $hdf5_cv_host != $host; then
AC_MSG_ERROR(config.cache file is invalid)
fi
dnl ----------------------------------------------------------------------
dnl Source any special files that we need. These files normally aren't
dnl present but can be used by the maintainers to fine tune things like
@@ -44,33 +47,65 @@ dnl OS
dnl VENDOR
dnl CPU
dnl
AC_MSG_CHECKING(for host config file)
dnl If the `OS' ends with a version number then remove it. For instance,
dnl `freebsd3.1' would become `freebsd'
case $host_os in
aix4.*)
host_os_novers=aix4.x
;;
freebsd*)
host_os_novers=freebsd
;;
irix5.*)
host_os_novers=irix5.x
;;
irix6.*)
host_os_novers=irix6.x
;;
osf4.*)
host_os_novers=osf4.x
;;
solaris2.*)
host_os_novers=solaris2.x
;;
*)
host_os_novers=$host_os
;;
esac
host_config="none"
for f in $host \
$host_vendor-$host_os \
$host_cpu-$host_os \
for f in $host_cpu-$host_vendor-$host_os \
$host_cpu-$host_vendor-$host_os_novers \
$host_vendor-$host_os \
$host_vendor-$host_os_novers \
$host_cpu-$host_os \
$host_cpu-$host_os_novers \
$host_cpu-$host_vendor \
$host_os \
$host_os_novers \
$host_vendor \
$host_cpu ; do
if test -f config/$f; then
host_config=config/$f
AC_MSG_CHECKING(for config $f)
if test -f $srcdir/config/$f; then
host_config=$srcdir/config/$f
AC_MSG_RESULT(found)
break
fi
AC_MSG_RESULT(no)
done
AC_MSG_RESULT($host_config)
if test $host_config != "none"; then
CC_BASENAME="`echo $CC |cut -f1 -d' ' |xargs basename 2>/dev/null`"
. $host_config
fi
dnl ----------------------------------------------------------------------
dnl Check for programs.
dnl
AC_PROG_CC
CC_BASENAME="`echo $CC |cut -f1 -d' ' |xargs basename 2>/dev/null`"
AC_PROG_MAKE_SET
AC_PROG_INSTALL
AC_PROG_RANLIB
AM_PROG_LIBTOOL
if test "X$AR" = "X"; then
AC_CHECK_PROGS(AR,ar xar,:,$PATH)
@@ -94,61 +129,116 @@ if test Xyes = "X$GCC"; then
fi
dnl ----------------------------------------------------------------------
dnl Production flags?
dnl Production flags? Save the value in $CONFIG_MODE so we have it for
dnl the record.
dnl
AC_MSG_CHECKING(for production mode)
AC_ARG_ENABLE(production,
[--enable-production=yes|no Determines how to run the compiler.])
[ --enable-production Determines how to run the compiler.])
case "X-$enableval" in
X-yes)
AC_MSG_RESULT("production")
CONFIG_MODE=production
CFLAGS="$CFLAGS $PROD_CFLAGS"
CPPFLAGS="$CPPFLAGS $PROD_CPPFLAGS"
;;
X-|X-no)
AC_MSG_RESULT("development")
CONFIG_MODE=development
CFLAGS="$CFLAGS $DEBUG_CFLAGS"
CPPFLAGS="$CPPFLAGS $DEBUG_CPPFLAGS"
;;
X-pg|X-profile)
AC_MSG_RESULT("profile")
CONFIG_MODE=profile
CFLAGS="$CFLAGS $PROFILE_CFLAGS"
CPPFLAGS="$CPPFLAGS $PROFILE_CPPFLAGS"
;;
*)
AC_MSG_RESULT("user-defined")
CONFIG_MODE="$X-enableval"
;;
esac
dnl ----------------------------------------------------------------------
dnl Check for libraries. (none required yet)
dnl Check for system libraries.
dnl
AC_CHECK_LIB(m, ceil)
AC_CHECK_LIB(coug, main) dnl ...for ASCI/Red
AC_CHECK_LIB(z, compress2)
AC_CHECK_LIB(m,ceil)
AC_CHECK_LIB(nsl,xdr_int) dnl ...for Solaris and hdf4
AC_CHECK_LIB(coug,main) dnl ...for ASCI/Red
AC_CHECK_LIB(jpeg,main) dnl ...required for linking hdf4 apps
dnl ----------------------------------------------------------------------
dnl Check for header files.
dnl Check for system header files.
dnl
AC_HEADER_STDC
AC_CHECK_HEADERS(unistd.h zlib.h)
AC_HEADER_TIME
dnl Unix
AC_CHECK_HEADERS(sys/resource.h sys/time.h unistd.h sys/ioctl.h sys/stat.h)
AC_CHECK_HEADERS(stddef.h setjmp.h stdint.h)
dnl Windows
AC_CHECK_HEADERS(io.h winsock.h sys/timeb.h)
case $host in
alpha*-dec*-osf*)
dnl The <sys/sysinfo.h> and <sys/proc.h> are needed on the DEC
dnl Alpha to turn off UAC fixing. We do *not* attempt to
dnl locate these files on other systems because there are too
dnl many problems with including them.
AC_CHECK_HEADERS(sys/sysinfo.h sys/proc.h)
;;
esac
dnl ----------------------------------------------------------------------
dnl Data types and their sizes.
dnl
AC_TYPE_OFF_T
AC_TYPE_SIZE_T
AC_CHECK_TYPE(size_t, unsigned long)
AC_CHECK_TYPE(ssize_t, long)
AC_C_BIGENDIAN
AC_CHECK_SIZEOF(char, 1)
AC_CHECK_SIZEOF(short, 2)
AC_CHECK_SIZEOF(int, 4)
AC_CHECK_SIZEOF(long, 4)
AC_CHECK_SIZEOF(long long, 8)
AC_CHECK_SIZEOF(__int64, 8)
AC_CHECK_SIZEOF(float, 4)
AC_CHECK_SIZEOF(double, 8)
AC_CHECK_SIZEOF(long double, 8)
dnl Posix.1g types (C9x)
cat >>confdefs.h <<\EOF
#include <sys/types.h>
EOF
AC_CHECK_SIZEOF( int8_t, 1)
AC_CHECK_SIZEOF( uint8_t, 1)
AC_CHECK_SIZEOF( int_least8_t, 1)
AC_CHECK_SIZEOF( uint_least8_t, 1)
AC_CHECK_SIZEOF( int_fast8_t, 1)
AC_CHECK_SIZEOF( uint_fast8_t, 1)
AC_CHECK_SIZEOF( int16_t, 2)
AC_CHECK_SIZEOF( uint16_t, 2)
AC_CHECK_SIZEOF( int_least16_t, 2)
AC_CHECK_SIZEOF(uint_least16_t, 2)
AC_CHECK_SIZEOF( int_fast16_t, 2)
AC_CHECK_SIZEOF( uint_fast16_t, 2)
AC_CHECK_SIZEOF( int32_t, 4)
AC_CHECK_SIZEOF( uint32_t, 4)
AC_CHECK_SIZEOF( int_least32_t, 4)
AC_CHECK_SIZEOF(uint_least32_t, 4)
AC_CHECK_SIZEOF( int_fast32_t, 4)
AC_CHECK_SIZEOF( uint_fast32_t, 4)
AC_CHECK_SIZEOF( int64_t, 8)
AC_CHECK_SIZEOF( uint64_t, 8)
AC_CHECK_SIZEOF( int_least64_t, 8)
AC_CHECK_SIZEOF(uint_least64_t, 8)
AC_CHECK_SIZEOF( int_fast64_t, 8)
AC_CHECK_SIZEOF( uint_fast64_t, 8)
AC_CHECK_SIZEOF(size_t, 4)
cat >>confdefs.h <<\EOF
#include <sys/types.h> /*for off_t definition*/
@@ -156,30 +246,205 @@ EOF
AC_CHECK_SIZEOF(off_t, 4)
AC_ARG_ENABLE(hsizet,
[--disable-hsizet Datasets can normally be larger than memory
and/or files but some compilers are unable to
handle this (including versions of GCC before
2.8.0). Disabling the feature causes dataset
sizes to be restricted to the size of core memory,
or 'size_t'.],
[ --disable-hsizet Datasets can normally be larger than memory
and/or files but some compilers are unable to
handle this (including versions of GCC before
2.8.0). Disabling the feature causes dataset
sizes to be restricted to the size of core memory,
or 'size_t'.],
HSIZET=$enableval)
AC_MSG_CHECKING(for sizeof hsize_t and hssize_t)
AC_SUBST(HSIZET)
case $HSIZET in
no|small)
AC_MSG_RESULT(small)
HSIZET=small
;;
*)
AC_MSG_RESULT(large)
HSIZET=large
AC_DEFINE(HAVE_LARGE_HSIZET)
;;
esac
dnl ----------------------------------------------------------------------
dnl Is the GNU zlib present? It has a header file `zlib.h' and a library
dnl `-lz' and their locations might be specified with the `--enable-zlib'
dnl command-line switch. The value is an include path and/or a library path.
dnl If the library path is specified then it must be preceded by a comma.
dnl
AC_ARG_WITH(zlib,[ --with-zlib=INC,LIB Use the GNU zlib compression],
,withval=yes)
case $withval in
yes)
AC_CHECK_HEADERS(zlib.h)
AC_CHECK_LIB(z, compress)
;;
no)
AC_MSG_CHECKING(for GNU zlib)
AC_MSG_RESULT(suppressed)
;;
*)
zlib_inc="`echo $withval |cut -f1 -d,`"
if test "X" != "$zlib_inc"; then
saved_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS -I$zlib_inc"
AC_CHECK_HEADERS(zlib.h,,CPPFLAGS="$saved_CPPFLAGS")
else
AC_CHECK_HEADERS(zlib.h)
fi
zlib_lib="`echo $withval |cut -f2 -d, -s`"
if test "X" != "$zlb_lib"; then
saved_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS -L$zlib_lib"
AC_CHECK_LIB(z, compress,,LDFLAGS="$saved_LDFLAGS")
else
AC_CHECK_LIB(z, compress)
fi
;;
esac
dnl ----------------------------------------------------------------------
dnl Is HDF4 present? If so then we can compile the h5toh4 converter. We
dnl assume h5toh4 can be compiled and then prove otherwise when we don't find
dnl a header file or library.
dnl
AC_SUBST(H5TOH4)
H5TOH4=h5toh4
AC_SUBST(TESTH5TOH4)
TESTH5TOH4='$(srcdir)/testh5toh4'
AC_ARG_WITH(hdf4,[ --with-hdf4=INC,LIB Use the HDF4 library],,withval=yes)
case $withval in
yes)
AC_CHECK_HEADERS(mfhdf.h,,unset H5TOH4 TESTH5TOH4)
AC_CHECK_LIB(df,main,,unset H5TOH4 TESTH5TOH4)
AC_CHECK_LIB(mfhdf,main,,unset H5TOH4 TESTH5TOH4)
;;
no)
AC_MSG_CHECKING(for HDF4)
AC_MSG_RESULT(suppressed)
unset H5TOH4 TESTH5TOH4
;;
*)
hdf4_inc="`echo $withval |cut -f1 -d,`"
if test "X" != "$hdf4_inc"; then
saved_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS -I$hdf4_inc"
AC_CHECK_HEADERS(mfhdf.h,,
CPPFLAGS="$saved_CPPFLAGS"
unset H5TOH4 TESTH5TOH4
)
else
AC_CHECK_HEADERS(mfhdf.h)
fi
hdf4_lib="`echo $withval |cut -f2 -d, -s`"
if test "X" != "$hdf4_lib"; then
saved_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS -L$hdf4_lib"
AC_CHECK_LIB(df,main,,unset H5TOH4 TESTH5TOH4)
AC_CHECK_LIB(mfhdf,main,,unset H5TOH4 TESTH5TOH4)
else
AC_CHECK_LIB(df,main)
AC_CHECK_LIB(mfhdf,main)
fi
;;
esac
dnl ----------------------------------------------------------------------
dnl How does one figure out the local time zone? Anyone know of a
dnl Posix way to do this?
dnl
dnl First check if `struct tm' has a `tm_gmtoff' member.
AC_MSG_CHECKING(for tm_gmtoff in struct tm)
AC_TRY_COMPILE([
#include <sys/time.h>
#include <time.h>],[struct tm tm; tm.tm_gmtoff=0;],
AC_DEFINE(HAVE_TM_GMTOFF)
AC_MSG_RESULT(yes),
AC_MSG_RESULT(no))
dnl check if `struct tm' has a `__tm_gmtoff' member.
AC_MSG_CHECKING(for __tm_gmtoff in struct tm)
AC_TRY_COMPILE([
#include <sys/time.h>
#include <time.h>],[struct tm tm; tm.__tm_gmtoff=0;],
AC_DEFINE(HAVE___TM_GMTOFF)
AC_MSG_RESULT(yes),
AC_MSG_RESULT(no))
dnl Check whether the global variable `timezone' is defined.
AC_MSG_CHECKING(for global timezone variable)
AC_TRY_LINK([
#include <sys/time.h>
#include <time.h>], [timezone=0;],
AC_DEFINE(HAVE_TIMEZONE)
AC_MSG_RESULT(yes),
AC_MSG_RESULT(no))
dnl Check whether `struct timezone' is defined.
AC_STRUCT_TIMEZONE
AC_MSG_CHECKING(for struct timezone)
AC_TRY_COMPILE([
#include <sys/types.h>
#include <sys/time.h>
#include <time.h>],[struct timezone tz; tz.tz_minuteswest=0;],
AC_DEFINE(HAVE_STRUCT_TIMEZONE)
AC_MSG_RESULT(yes),
AC_MSG_RESULT(no))
dnl ----------------------------------------------------------------------
dnl Does the struct stat have the st_blocks field? This field is not Posix.
dnl
AC_MSG_CHECKING(for st_blocks in struct stat)
AC_TRY_COMPILE([
#include <sys/stat.h>],[struct stat sb; sb.st_blocks=0;],
AC_DEFINE(HAVE_STAT_ST_BLOCKS)
AC_MSG_RESULT(yes),
AC_MSG_RESULT(no))
dnl ----------------------------------------------------------------------
dnl How do we figure out the width of a tty in characters?
dnl
AC_CHECK_FUNCS(_getvideoconfig gettextinfo GetConsoleScreenBufferInfo)
AC_CHECK_FUNCS(_scrsize ioctl)
AC_MSG_CHECKING(for struct videoconfig)
AC_TRY_COMPILE(,[struct videoconfig w; w.numtextcols=0;],
AC_DEFINE(HAVE_STRUCT_VIDEOCONFIG)
AC_MSG_RESULT(yes),
AC_MSG_RESULT(no))
AC_MSG_CHECKING(for struct text_info)
AC_TRY_COMPILE(,[struct text_info w; w.screenwidth=0;],
AC_DEFINE(HAVE_STRUCT_TEXT_INFO)
AC_MSG_RESULT(yes),
AC_MSG_RESULT(no))
AC_MSG_CHECKING(for TIOCGWINSZ)
AC_TRY_COMPILE([#include <sys/ioctl.h>],[int w=TIOCGWINSZ;],
AC_DEFINE(HAVE_TIOCGWINSZ)
AC_MSG_RESULT(yes),
AC_MSG_RESULT(no))
AC_MSG_CHECKING(for TIOCGGETD)
AC_TRY_COMPILE([#include <sys/ioctl.h>],[int w=TIOCGETD;],
AC_DEFINE(HAVE_TIOCGETD)
AC_MSG_RESULT(yes),
AC_MSG_RESULT(no))
dnl ----------------------------------------------------------------------
dnl Check for functions.
dnl
AC_CHECK_FUNCS(getpwuid gethostname system getrusage fork waitpid)
AC_CHECK_FUNCS(gettimeofday BSDgettimeofday difftime snprintf vsnprintf)
AC_CHECK_FUNCS(compress2 setsysinfo longjmp signal sigaction)
AC_TRY_COMPILE([#include<sys/types.h>],
[off64_t n = 0;],
AC_CHECK_FUNCS(lseek64 fseek64),
@@ -194,13 +459,13 @@ AC_C_CONST
AC_C_INLINE
AC_MSG_CHECKING(for __attribute__ extension)
AC_TRY_COMPILE(,[int __attribute__((unused)) f(void){return 1;}],
AC_TRY_COMPILE(,[int __attribute__((unused)) x],
AC_DEFINE(HAVE_ATTRIBUTE)
AC_MSG_RESULT(yes),
AC_MSG_RESULT(no))
AC_MSG_CHECKING(for __FUNCTION__ extension)
AC_TRY_COMPILE(,[int f(void){return __FUNCTION__;}],
AC_TRY_COMPILE(,[(void)__FUNCTION__],
AC_DEFINE(HAVE_FUNCTION)
AC_MSG_RESULT(yes),
AC_MSG_RESULT(no))
@@ -212,7 +477,7 @@ dnl default in case none of the others work.
dnl
AC_MSG_CHECKING(how to print long long)
AC_CACHE_VAL(hdf5_cv_printf_ll,
for hdf5_cv_printf_ll in ll q l; do
for hdf5_cv_printf_ll in l L q ll unknown; do
AC_TRY_RUN([
#include <stdio.h>
#include <stdlib.h>
@@ -223,24 +488,24 @@ AC_CACHE_VAL(hdf5_cv_printf_ll,
exit (strcmp(s,"1099511627776"));}],
break)
done)
AC_MSG_RESULT($hdf5_cv_printf_ll)
AC_MSG_RESULT(%${hdf5_cv_printf_ll}d and %${hdf5_cv_printf_ll}u)
AC_DEFINE_UNQUOTED(PRINTF_LL_WIDTH,"$hdf5_cv_printf_ll")
dnl ----------------------------------------------------------------------
dnl Turn on debugging by setting compiler flags
dnl
AC_MSG_CHECKING(for debug flags)
AC_ARG_ENABLE(debug,
[--enable-debug=all Turn on debugging in all packages. One may also
[ --enable-debug[=all] Turn on debugging in all packages. One may also
specify a comma-separated list of package names
without the leading H5 or the word no. The default
is most packages.],
DEBUG_PKG=$enableval)
AC_SUBST(DEBUG_PKG)
all_packages="ac,b,d,e,f,g,hg,hl,i,mf,mm,o,p,s,t,v,z"
if test X = "X$DEBUG_PKG" -o Xyes = "X$DEBUG_PKG"; then
DEBUG_PKG=ac,b,d,e,f,g,hg,i,mm,p,s,t,v,z
DEBUG_PKG="d,e,f,g,hg,i,mm,o,p,s,t,v,z"
CPPFLAGS="$CPPFLAGS -UNDEBUG"
AC_MSG_RESULT(default ($DEBUG_PKG))
elif test Xall = "X$DEBUG_PKG"; then
@@ -266,53 +531,256 @@ dnl Enable tracing of the API
dnl
AC_MSG_CHECKING(for API tracing);
AC_ARG_ENABLE(trace,
[--disable-trace Disable API tracing capability],
[ --disable-trace Disable API tracing capability],
TRACE=$enableval)
AC_SUBST(TRACE_API)
if test X = "X$TRACE" -o Xyes = "X$TRACE"; then
AC_MSG_RESULT(yes)
TRACE_API=yes
CPPFLAGS="$CPPFLAGS -DH5_DEBUG_API"
else
AC_MSG_RESULT(no)
TRACE_API=no
CPPFLAGS="$CPPFLAGS -UH5_DEBUG_API"
fi
dnl ----------------------------------------------------------------------
dnl Check for parallel support
dnl The following variables are used to distinguish between building a
dnl serial and parallel library.
dnl
dnl HAVE_PARALLEL -- defined in H5config.h if we are building
dnl a parallel library even if configure wasn't
dnl able to find some header file or library that
dnl might be required. This is defined if the
dnl compiler looks like a parallel compiler (e.g.,
dnl mpicc or mpcc) or if the user explicitly states
dnl that a parallel library is being built by supplying
dnl the `--enable-parallel' configure switch.
dnl
dnl PARALLEL -- This variable is set to a non-null value if
dnl configure thinks we're compiling a parallel
dnl version of the library.
dnl
dnl RUNSERIAL -- This is a command which will be prepended to
dnl the executable name to run the executable using
dnl a single process. For serial versions of the
dnl library this will normally be empty. For parallel
dnl versions it might be something like `mpirun -np 1'.
dnl The value of this variable is substituted in *.in
dnl files.
dnl
dnl RUNPARALLEL -- This is a command which will be prepended to
dnl the executable name to run the executable on
dnl multiple processors. For the serial library the
dnl value will normally be the empty string. For
dnl parallel library it should be something like
dnl `mpi -np $$NPROCS' where NPROCS will eventually
dnl contain the number of processors on which to run
dnl the executable (the double dollarsigns are to
dnl protect the expansion until make executes the
dnl command). The value of this variable is
dnl substituted in *.in files.
dnl
AC_SUBST(PARALLEL)
AC_SUBST(RUNSERIAL)
AC_SUBST(RUNPARALLEL)
AC_SUBST(TESTPARALLEL)
dnl ----------------------------------------------------------------------
dnl If the compiler is obviously a parallel compiler then we're building
dnl a parallel version of hdf5 and should define HAVE_PARALLEL. Furthermore,
dnl the name of the compiler might tell us how to run the resulting
dnl executable. For `mpicc' the executable should be run with `mpirun' from
dnl the same directory as mpicc if it exists.
dnl
case "$CC_BASENAME" in
mpicc)
# The mpich compiler. Use mpirun from the same directory if it
# exists.
PARALLEL=mpicc
AC_MSG_CHECKING(for mpirun)
# Find the path where mpicc is located.
cmd=`echo $CC |cut -f1 -d' '`
if (echo $cmd |grep / >/dev/null); then
path="`echo $cmd |sed 's/\(.*\)\/.*$/\1/'`"
else
for path in `echo $PATH |tr : ' '`; do
if test -x $path/$cmd; then
break;
fi
done
fi
# Is there an mpirun at that path?
if test -x $path/mpirun; then
AC_MSG_RESULT($path/mpirun)
RUNSERIAL="${RUNSERIAL:-none}"
if test "X-" = "X-$RUNPARALLEL"; then
RUNPARALLEL="$path/mpirun -np \$\${NPROCS:=2}"
fi
else
AC_MSG_RESULT(none)
fi
;;
mpcc|mpcc_r)
# The IBM compiler
PARALLEL="$CC_BASENAME"
;;
*)
# Probably not a parallel compiler, but if `--enable-parallel'
# is defined below then we're still building a parallel hdf5.
;;
esac
dnl ----------------------------------------------------------------------
dnl What header files and libraries do we have to look for for parallel
dnl support? For the most part, search paths are already specified with
dnl CPPFLAGS and LDFLAGS or are known to the compiler. If the user says
dnl `--disable-parallel' but specifies a known parallel compiler (like mpicc
dnl or mpcc) then parallel support is enabled but configure doesn't search
dnl for any parallel header files or libraries.
dnl
AC_ARG_ENABLE(parallel,
--enable-parallel=mpio Enable parallel support with MPIO,
PARALLEL=$enableval)
AC_MSG_CHECKING(for parallel support);
AC_SUBST(RUNTEST)
[ --enable-parallel=TYPE Search for MPI-IO and MPI support files])
case "X-$PARALLEL" in
AC_MSG_CHECKING(for parallel support files)
case "X-$enable_parallel" in
X-|X-no|X-none)
# Either we are not compiling for parallel or the header and library
# files and locations are known to the compiler (this is the case
# for a correct installation of mpicc for instance).
AC_MSG_RESULT(skipped)
;;
X-|X-no)
# Parallel support is not enabled
AC_MSG_RESULT(disabled)
;;
X-yes)
# We want to compile a parallel library with a compiler that
# already knows how to link with MPI and MPI-IO.
AC_MSG_RESULT(provided by compiler)
PARALLEL=yes
;;
X-mpio|X-yes)
# Use MPIO. Define HAVE_PARALLEL in src/H5config.h (comes from
# ./acconfig.h) and augment the include and library search paths
# (it doesn't hurt to have extra paths). Then check for header
# files and libraries. Some extra source files are added to the
# list also so we don't have to ifdef out the whole file.
AC_MSG_RESULT(mpio)
AC_DEFINE(HAVE_PARALLEL)
CPPFLAGS="$CPPFLAGS $MPI_INC"
CFLAGS="$CFLAGS $MPI_LIB"
RUNTEST="$RUNTEST"
AC_CHECK_LIB(mpi,main) dnl Replace `main' with some function
AC_CHECK_LIB(mpio,main) dnl Replace `main' with some function
;;
X-mpich)
# For normal mpich installation the compiler, mpicc, should know
# where the MPI and MPI-IO header files are located and know which
# extra libraries need to be linked and will supply appropriate
# flags to the underlying compiler.
AC_MSG_RESULT(mpich)
AC_MSG_WARN(*** Why aren't you using an mpicc compiler? ***)
*)
AC_MSG_ERROR(unknown parallel support: $PARALLEL)
;;
# Apparently mpicc isn't installed correctly so configure must search
# for the header files and libraries. Actually we only have to search
# for the libraries in order to get the onto the link line, the user
# will have already told us about the locations. Fail if something
# is missing.
PARALLEL=mpich
AC_CHECK_LIB(mpich,MPI_Init,,AC_MSG_ERROR(no mpich library))
;;
*)
AC_MSG_RESULT(error)
AC_MSG_ERROR(\"$enable_parallel\" is not a valid parallel search type)
;;
esac
dnl ----------------------------------------------------------------------
dnl Should the `testpar' directory participate in the build?
dnl
if test "X-" != "X-$PARALLEL"; then
TESTPARALLEL=testpar
fi
dnl ----------------------------------------------------------------------
dnl Print some other parallel information and do some sanity checks.
dnl
if test "X-" != "X-$PARALLEL"; then
# We are building a parallel library
AC_DEFINE(HAVE_PARALLEL)
# Display what we found about running programs
AC_MSG_CHECKING(prefix for running on one processor)
AC_MSG_RESULT($RUNSERIAL)
AC_MSG_CHECKING(prefix for running in parallel)
AC_MSG_RESULT($RUNPARALLEL)
# Check that we can link a simple MPI and MPI-IO application
dnl AC_MSG_CHECKING(whether a simple MPI-IO program can be linked)
dnl AC_TRY_LINK(,[MPI_Init();MPI_File_open();],
dnl AC_MSG_RESULT(yes),
dnl AC_MSG_RESULT(no)
dnl AC_MSG_ERROR('unable to link a simple MPI-IO application'))
# There *must* be some way to run in parallel even if it's just the
# word `none'.
if test "X-" = "X-$RUNPARALLEL"; then
AC_MSG_ERROR(no way to run a parallel program)
fi
# If RUNSERIAL or RUNPARALLEL is the word `none' then replace it with
# the empty string.
if test "X-none" = "X-$RUNSERIAL"; then
RUNSERIAL=
fi
if test "X-none" = "X-$RUNPARALLEL"; then
RUNPARALLEL=
fi
fi
dnl ----------------------------------------------------------------------
dnl Set some variables for general configuration information to be saved
dnl and installed with the libraries.
dnl
# HDF5 version from the first line of the README file.
H5_VERSION=`cut -d' ' -f3 $srcdir/README |head -1`
AC_SUBST(H5_VERSION)
# Configuration date
AC_SUBST(CONFIG_DATE) CONFIG_DATE=`date`
# User doing the configuration
AC_SUBST(CONFIG_USER) CONFIG_USER="$USER@`hostname`"
if test "X-$ORGANIZATION" != "X-"; then
CONFIG_USER="$CONFIG_USER at $ORGANIZATION"
fi
# Configuration mode (production, development, profile, etc) saved above.
AC_SUBST(CONFIG_MODE)
# Byte sex from the AC_C_BIGENDIAN macro.
AC_SUBST(BYTESEX)
if test "X-$WORDS_BIGENDIAN" = "X-"; then
BYTESEX="little-endian"
else
BYTESEX="big-endian"
fi
# Are we compiling static libraries, shared libraries, or both?
AC_SUBST(STATIC_SHARED)
if test "X-$enable_static" = "X-yes" && test "X-$enable_shared" = "X-yes"; then
STATIC_SHARED="static, shared"
elif test "X-$enable_static" = "X-yes"; then
STATIC_SHARED="static"
elif test "X-$enable_shared" = "X-yes"; then
STATIC_SHARED="shared"
else
STATIC_SHARED="none"
fi
# Parallel support? (set above except empty if none)
PARALLEL=${PARALLEL:-no}
# Compiler with version information
AC_SUBST(CC_VERSION)
if test "X-$cc_vendor" != "X-" && test "X-$cc_version" != "X-"; then
CC_VERSION="$CC ($cc_vendor-$cc_version)"
else
CC_VERSION="$CC"
fi
dnl ----------------------------------------------------------------------
@@ -326,9 +794,13 @@ AC_SUBST_FILE(CONCLUDE) CONCLUDE=config/conclude
if test "X$GCC" = "Xyes" && test "X$GMAKE" = "Xyes"; then
AC_SUBST_FILE(DEPEND1) DEPEND1=config/depend
AC_SUBST_FILE(DEPEND2) DEPEND2=/dev/null
AC_SUBST_FILE(DEPEND3) DEPEND3=/dev/null
AC_SUBST_FILE(DEPEND4) DEPEND4=/dev/null
else
AC_SUBST_FILE(DEPEND1) DEPEND1=src/.distdep
AC_SUBST_FILE(DEPEND2) DEPEND2=test/.distdep
AC_SUBST_FILE(DEPEND1) DEPEND1=$srcdir/src/.distdep
AC_SUBST_FILE(DEPEND2) DEPEND2=$srcdir/test/.distdep
AC_SUBST_FILE(DEPEND3) DEPEND3=$srcdir/testpar/.distdep
AC_SUBST_FILE(DEPEND4) DEPEND4=$srcdirtools/.distdep
fi
dnl We don't need to say when we're entering directories if we're using
@@ -350,9 +822,28 @@ else
fi
AC_SUBST(ROOT) ROOT=`$pwd`
dnl Touch the time-stamp files for src/H5config.h.in and src/H5config.h
dnl before we generate them or the Makefiles.
touch ./config/stamp1 ./config/stamp2
dnl Some cleanup stuff
rm -f conftest conftest.o conftest.c dummy.o
AC_OUTPUT(config/depend config/commence config/conclude \
Makefile src/Makefile test/Makefile tools/Makefile examples/Makefile)
dnl Build config.status, touch the stamp files, and build all the Makefiles.
dnl The order is such that the first `make' does not need to update any
dnl configuration information. See config/commence.in for the order in which
dnl things need to be done.
# First the stamp1 file for H5config.h.in
mkdir ./config >/dev/null 2>&1
touch ./config/stamp1
# Then the config.status file (but not makefiles)
saved_no_create=$no_create
no_create=yes
AC_OUTPUT(src/libhdf5.settings config/depend config/commence config/conclude \
Makefile src/Makefile pablo/Makefile test/Makefile \
testpar/Makefile tools/Makefile examples/Makefile)
no_create=$saved_no_create
# Then the stamp2 file for H5config.h
touch ./config/stamp2
# Finally the makefiles
test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1

View File

@@ -1,18 +1,80 @@
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<title>Attributes</title>
</head>
<body>
<h1>Attributes</h1>
<body bgcolor="#FFFFFF">
<hr>
<center>
<table border=0 width=98%>
<tr><td valign=top align=left>
<a href="H5.intro.html">Introduction to HDF5</a>&nbsp;<br>
<a href="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<br>
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
Attributes&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
<hr>
<h1>The Attribute Interface (H5A)</h1>
<h2>1. Introduction</h2>
<p>The appribute API (H5A) is primarily designed to easily allow small
<p>The attribute API (H5A) is primarily designed to easily allow small
datasets to be attached to primary datasets as metadata information.
Additional goals for the H5A interface include keeping storage
requirement for each attribute to a minimum and easily sharing
requirements for each attribute to a minimum and easily sharing
attributes among datasets.
<p>Because attributes are intended to be small objects, large datasets
intended as additional information for a primary dataset should be
@@ -21,7 +83,7 @@
indicate a particular type of dataset with supplemental datasets is
located in the group. How small is "small" is not defined by the
library and is up to the user's interpretation.
<p>Attributes are not seperate objects in the file, they are always
<p>Attributes are not separate objects in the file, they are always
contained in the object header of the object they are attached to. The
I/O functions defined below are required to read or write attribute
information, not the H5D I/O routines.
@@ -44,12 +106,12 @@
and <em>space_id</em> are created with the H5T and H5S interfaces
respectively. Currently only simple dataspaces are allowed for attribute
dataspaces. The <em>create_plist_id</em> property list is currently
unused, but will be used int the future for optional properties of
unused, but will be used in the future for optional properties of
attributes. The attribute ID returned from this function must be released
with H5Aclose or resource leaks will develop. Attempting to create an
attribute with the same name as an already existing attribute will fail,
leaving the pre-existing attribute in place.
This function returns a attribute ID for success or negative for failure.
This function returns an attribute ID for success or negative for failure.
<br><br>
<dt><code>hid_t H5Aopen_name (hid_t <em>loc_id</em>, const char
@@ -58,7 +120,7 @@
specified with <em>loc_id</em>. The name specified with <em>name</em>
indicates the attribute to access. The attribute ID returned from this
function must be released with H5Aclose or resource leaks will develop.
This function returns a attribute ID for success or negative for failure.
This function returns an attribute ID for success or negative for failure.
<br><br>
<dt><code>hid_t H5Aopen_idx (hid_t <em>loc_id</em>, unsigned
@@ -68,7 +130,7 @@
indicates the <em>idx</em>th attribute to access, starting with '0'. The
attribute ID returned from this function must be released with H5Aclose or
resource leaks will develop.
This function returns a attribute ID for success or negative for failure.
This function returns an attribute ID for success or negative for failure.
<br><br>
<dt><code>herr_t H5Aclose (hid_t <em>attr_id</em>)</code>
@@ -116,7 +178,7 @@
unsigned *<em>attr_number</em>,
H5A_operator <em>operator</em>,
void *<em>operator_data</em>)</code>
<dd> This function interates over the attributes of dataset or group
<dd> This function iterates over the attributes of the dataset or group
specified with <em>loc_id</em>. For each attribute of the object, the
<em>operator_data</em> and some additional information (specified below)
are passed to the <em>operator</em> function. The iteration begins with
@@ -156,7 +218,7 @@
This function returns a datatype ID for success or negative for failure.
<br><br>
<dt><code>size_t H5Aget_name (hid_t <em>attr_id</em>,
char *<em>buf</em>, size_t <em>buf_size</em>)</code>
size_t <em>buf_size</em>, char *<em>buf</em>)</code>
<dd>This function retrieves the name of an attribute for an attribute ID.
Up to <em>buf_size</em> characters are stored in <em>buf</em> followed by a
'\0' string terminator. If the name of the attribute is longer than
@@ -165,13 +227,78 @@
This function returns the length of the attribute's name (which may be
longer than <em>buf_size</em>) on success or negative for failure.
<br><br>
<dt><code>int H5Anum_attrs (hid_t <em>loc_id</em>)</code>
<dt><code>int H5Aget_num_attrs (hid_t <em>loc_id</em>)</code>
<dd>This function returns the number of attributes attached to a dataset or
group, <em>loc_id</em>.
This function returns non-negative for success or negative for failure.
</dl>
<hr>
<address><a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Support</a></address>
<hr>
<center>
<table border=0 width=98%>
<tr><td valign=top align=left>
<a href="H5.intro.html">Introduction to HDF5</a>&nbsp;<br>
<a href="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<br>
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
Attributes&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
<hr>
<address>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
<br>
Last modified: 30 October 1998
</body>
</html>

View File

@@ -24,10 +24,18 @@
<h2>2. File Size Limits</h2>
<p>Some 32-bit operating systems have special file systems that
can support large (&gt;2GB) files and HDF5 will detect these and
use them automatically. If this is the case, the output from
configure will show:
<p>Systems that have 64-bit file addresses will be able to access
those files automatically. One should see the following output
from configure:
<p><code><pre>
checking size of off_t... 8
</pre></code>
<p>Also, some 32-bit operating systems have special file systems
that can support large (&gt;2GB) files and HDF5 will detect
these and use them automatically. If this is the case, the
output from configure will show:
<p><code><pre>
checking for lseek64... yes
@@ -42,25 +50,28 @@ checking for fseek64... yes
<p><code><pre>
hid_t plist, file;
plist = H5Pcreate (H5P_FILE_ACCESS);
H5Pset_family (plist, 1<<30, H5P_DEFAULT);
H5Pset_family (plist, 1&lt;&lt;30, H5P_DEFAULT);
file = H5Fcreate ("big%03d.h5", H5F_ACC_TRUNC, H5P_DEFAULT, plist);
</code></pre>
<p>The second argument (<code>30</code>) to
<p>The second argument (<code>1&lt;&lt;30</code>) to
<code>H5Pset_family()</code> indicates that the family members
are to be 2^30 bytes (1GB) each. In general, family members
cannot be 2GB because writes to byte number 2,147,483,647 will
fail, so the largest safe value for a family member is
2,147,483,647. HDF5 will create family members on demand as the
HDF5 address space increases, but since most Unix systems limit
the number of concurrently open files the effective maximum size
of the HDF5 address space will be limited.
are to be 2^30 bytes (1GB) each although we could have used any
reasonably large value. In general, family members cannot be
2GB because writes to byte number 2,147,483,647 will fail, so
the largest safe value for a family member is 2,147,483,647.
HDF5 will create family members on demand as the HDF5 address
space increases, but since most Unix systems limit the number of
concurrently open files the effective maximum size of the HDF5
address space will be limited (the system on which this was
developed allows 1024 open files, so if each family member is
approx 2GB then the largest HDF5 file is approx 2TB).
<p>If the effective HDF5 address space is limited then one may be
able to store datasets as external datasets each spanning
multiple files of any length since HDF5 opens external dataset
files one at a time. To arrange storage for a 5TB dataset one
could say:
files one at a time. To arrange storage for a 5TB dataset split
among 1GB files one could say:
<p><code><pre>
hid_t plist = H5Pcreate (H5P_DATASET_CREATE);
@@ -73,9 +84,9 @@ for (i=0; i&lt;5*1024; i++) {
<h2>3. Dataset Size Limits</h2>
<p>The second limit which must be overcome is that of
<code>sizeof(size_t)</code>. HDF5 defines a new data type
called <code>hsize_t</code> which is used for sizes of datasets
and is, by default, defined as <code>unsigned long long</code>.
<code>sizeof(size_t)</code>. HDF5 defines a data type called
<code>hsize_t</code> which is used for sizes of datasets and is,
by default, defined as <code>unsigned long long</code>.
<p>To create a dataset with 8*2^30 4-byte integers for a total of
32GB one first creates the dataspace. We give two examples
@@ -105,7 +116,7 @@ hid_t space2 = H5Screate_simple (1, size2, size2};
<address><a href="mailto:matzke@llnl.gov">Robb Matzke</a></address>
<!-- Created: Fri Apr 10 13:26:04 EDT 1998 -->
<!-- hhmts start -->
Last modified: Wed May 13 12:36:47 EDT 1998
Last modified: Sun Jul 19 11:37:25 EDT 1998
<!-- hhmts end -->
</body>
</html>

View File

@@ -4,7 +4,69 @@
<title>Data Caching</title>
</head>
<body>
<body bgcolor="#FFFFFF">
<hr>
<center>
<table border=0 width=98%>
<tr><td valign=top align=left>
<a href="H5.intro.html">Introduction to HDF5</a>&nbsp;<br>
<a href="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<br>
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
Caching&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
<hr>
<h1>Meta Data Caching</h1>
<p>The HDF5 library caches two types of data: meta data and raw
@@ -72,11 +134,83 @@
the pointer arguments may be null pointers.
</dl>
<hr>
<center>
<table border=0 width=98%>
<tr><td valign=top align=left>
<a href="H5.intro.html">Introduction to HDF5</a>&nbsp;<br>
<a href="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<br>
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
Caching&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
<!--
<hr>
<address><a href="mailto:matzke@llnl.gov">Robb Matzke</a></address>
-->
<!-- Created: Tue May 26 15:20:14 EDT 1998 -->
<!-- hhmts start -->
<!--
Last modified: Tue May 26 15:38:27 EDT 1998
-->
<!-- hhmts end -->
<hr>
<address>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
</address>
Last modified: 30 October 1998
</body>
</html>

BIN
doc/html/Chunk_f1.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

252
doc/html/Chunk_f1.obj Normal file
View File

@@ -0,0 +1,252 @@
%TGIF 3.0-p17
state(0,33,100.000,0,0,0,16,1,9,1,1,0,0,0,1,1,1,'Courier',0,17,0,0,0,10,0,0,1,1,0,16,0,0,1,1,1,0,1088,1408,0,0,2880).
%
% @(#)$Header$
% %W%
%
unit("1 pixel/pixel").
color_info(11,65535,0,[
"magenta", 65535, 0, 65535, 65280, 0, 65280, 1,
"red", 65535, 0, 0, 65280, 0, 0, 1,
"green", 0, 65535, 0, 0, 65280, 0, 1,
"blue", 0, 0, 65535, 0, 0, 65280, 1,
"yellow", 65535, 65535, 0, 65280, 65280, 0, 1,
"pink", 65535, 49344, 52171, 65280, 49152, 51968, 1,
"cyan", 0, 65535, 65535, 0, 65280, 65280, 1,
"CadetBlue", 24415, 40606, 41120, 24320, 40448, 40960, 1,
"white", 65535, 65535, 65535, 65280, 65280, 65280, 1,
"black", 0, 0, 0, 0, 0, 0, 1,
"DarkSlateGray", 12079, 20303, 20303, 12032, 20224, 20224, 1
]).
page(1,"",1).
text('black',432,272,'Courier',0,17,2,1,0,1,49,28,302,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"Point",
"Written"]).
box('black',256,288,320,352,0,3,1,70,0,0,0,0,0,'3',[
]).
text('black',288,272,'Courier',0,17,1,1,0,1,49,14,75,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"Dataset"]).
box('black',352,288,384,320,5,1,1,77,5,0,0,0,0,'1',[
]).
text('black',368,272,'Courier',0,17,1,1,0,1,35,14,80,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"Chunk"]).
box('black',96,32,544,384,0,1,1,118,0,0,0,0,0,'1',[
]).
box('black',128,64,256,128,5,1,1,131,5,0,0,0,0,'1',[
]).
box('black',128,128,256,192,5,1,1,132,5,0,0,0,0,'1',[
]).
box('black',384,64,512,128,5,1,1,137,5,0,0,0,0,'1',[
]).
box('black',256,128,384,192,5,1,1,142,5,0,0,0,0,'1',[
]).
box('black',256,192,384,256,5,1,1,144,5,0,0,0,0,'1',[
]).
box('black',384,192,512,256,5,1,1,146,5,0,0,0,0,'1',[
]).
box('black',128,64,432,224,0,3,1,26,0,0,0,0,0,'3',[
]).
group([
polygon('black',11,[
152,80,154,86,160,86,155,89,157,94,152,91,147,94,149,89,
144,86,150,86,152,80],1,1,1,0,178,0,0,0,0,0,'1',
"000",[
]),
box('black',148,84,156,92,0,1,0,179,0,0,0,0,0,'1',[
attr("", "auto_center_attr", 0, 1, 0,
text('black',152,83,'Courier',0,17,1,1,0,1,112,14,180,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"auto_center_attr"])),
attr("label=", "", 1, 0, 0,
text('black',152,80,'Courier',0,17,1,1,0,1,0,14,181,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
""]))
])
],
182,0,0,[
]).
group([
polygon('black',11,[
200,96,202,102,208,102,203,105,205,110,200,107,195,110,197,105,
192,102,198,102,200,96],1,1,1,0,188,0,0,0,0,0,'1',
"000",[
]),
box('black',196,100,204,108,0,1,0,189,0,0,0,0,0,'1',[
attr("", "auto_center_attr", 0, 1, 0,
text('black',200,99,'Courier',0,17,1,1,0,1,112,14,190,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"auto_center_attr"])),
attr("label=", "", 1, 0, 0,
text('black',200,96,'Courier',0,17,1,1,0,1,0,14,191,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
""]))
])
],
192,0,0,[
]).
group([
polygon('black',11,[
168,128,170,134,176,134,171,137,173,142,168,139,163,142,165,137,
160,134,166,134,168,128],1,1,1,0,198,0,0,0,0,0,'1',
"000",[
]),
box('black',164,132,172,140,0,1,0,199,0,0,0,0,0,'1',[
attr("", "auto_center_attr", 0, 1, 0,
text('black',168,131,'Courier',0,17,1,1,0,1,112,14,200,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"auto_center_attr"])),
attr("label=", "", 1, 0, 0,
text('black',168,128,'Courier',0,17,1,1,0,1,0,14,201,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
""]))
])
],
202,0,0,[
]).
group([
polygon('black',11,[
168,160,170,166,176,166,171,169,173,174,168,171,163,174,165,169,
160,166,166,166,168,160],1,1,1,0,208,0,0,0,0,0,'1',
"000",[
]),
box('black',164,164,172,172,0,1,0,209,0,0,0,0,0,'1',[
attr("", "auto_center_attr", 0, 1, 0,
text('black',168,163,'Courier',0,17,1,1,0,1,112,14,210,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"auto_center_attr"])),
attr("label=", "", 1, 0, 0,
text('black',168,160,'Courier',0,17,1,1,0,1,0,14,211,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
""]))
])
],
212,0,0,[
]).
group([
polygon('black',11,[
136,144,138,150,144,150,139,153,141,158,136,155,131,158,133,153,
128,150,134,150,136,144],1,1,1,0,218,0,0,0,0,0,'1',
"000",[
]),
box('black',132,148,140,156,0,1,0,219,0,0,0,0,0,'1',[
attr("", "auto_center_attr", 0, 1, 0,
text('black',136,147,'Courier',0,17,1,1,0,1,112,14,220,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"auto_center_attr"])),
attr("label=", "", 1, 0, 0,
text('black',136,144,'Courier',0,17,1,1,0,1,0,14,221,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
""]))
])
],
222,0,0,[
]).
group([
polygon('black',11,[
248,144,250,150,256,150,251,153,253,158,248,155,243,158,245,153,
240,150,246,150,248,144],1,1,1,0,228,0,0,0,0,0,'1',
"000",[
]),
box('black',244,148,252,156,0,1,0,229,0,0,0,0,0,'1',[
attr("", "auto_center_attr", 0, 1, 0,
text('black',248,147,'Courier',0,17,1,1,0,1,112,14,230,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"auto_center_attr"])),
attr("label=", "", 1, 0, 0,
text('black',248,144,'Courier',0,17,1,1,0,1,0,14,231,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
""]))
])
],
232,0,0,[
]).
group([
polygon('black',11,[
296,176,298,182,304,182,299,185,301,190,296,187,291,190,293,185,
288,182,294,182,296,176],1,1,1,0,238,0,0,0,0,0,'1',
"000",[
]),
box('black',292,180,300,188,0,1,0,239,0,0,0,0,0,'1',[
attr("", "auto_center_attr", 0, 1, 0,
text('black',296,179,'Courier',0,17,1,1,0,1,112,14,240,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"auto_center_attr"])),
attr("label=", "", 1, 0, 0,
text('black',296,176,'Courier',0,17,1,1,0,1,0,14,241,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
""]))
])
],
242,0,0,[
]).
group([
polygon('black',11,[
360,208,362,214,368,214,363,217,365,222,360,219,355,222,357,217,
352,214,358,214,360,208],1,1,1,0,248,0,0,0,0,0,'1',
"000",[
]),
box('black',356,212,364,220,0,1,0,249,0,0,0,0,0,'1',[
attr("", "auto_center_attr", 0, 1, 0,
text('black',360,211,'Courier',0,17,1,1,0,1,112,14,250,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"auto_center_attr"])),
attr("label=", "", 1, 0, 0,
text('black',360,208,'Courier',0,17,1,1,0,1,0,14,251,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
""]))
])
],
252,0,0,[
]).
group([
polygon('black',11,[
408,192,410,198,416,198,411,201,413,206,408,203,403,206,405,201,
400,198,406,198,408,192],1,1,1,0,258,0,0,0,0,0,'1',
"000",[
]),
box('black',404,196,412,204,0,1,0,259,0,0,0,0,0,'1',[
attr("", "auto_center_attr", 0, 1, 0,
text('black',408,195,'Courier',0,17,1,1,0,1,112,14,260,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"auto_center_attr"])),
attr("label=", "", 1, 0, 0,
text('black',408,192,'Courier',0,17,1,1,0,1,0,14,261,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
""]))
])
],
262,0,0,[
]).
group([
polygon('black',11,[
376,128,378,134,384,134,379,137,381,142,376,139,371,142,373,137,
368,134,374,134,376,128],1,1,1,0,268,0,0,0,0,0,'1',
"000",[
]),
box('black',372,132,380,140,0,1,0,269,0,0,0,0,0,'1',[
attr("", "auto_center_attr", 0, 1, 0,
text('black',376,131,'Courier',0,17,1,1,0,1,112,14,270,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"auto_center_attr"])),
attr("label=", "", 1, 0, 0,
text('black',376,128,'Courier',0,17,1,1,0,1,0,14,271,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
""]))
])
],
272,0,0,[
]).
group([
polygon('black',11,[
408,80,410,86,416,86,411,89,413,94,408,91,403,94,405,89,
400,86,406,86,408,80],1,1,1,0,278,0,0,0,0,0,'1',
"000",[
]),
box('black',404,84,412,92,0,1,0,279,0,0,0,0,0,'1',[
attr("", "auto_center_attr", 0, 1, 0,
text('black',408,83,'Courier',0,17,1,1,0,1,112,14,280,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"auto_center_attr"])),
attr("label=", "", 1, 0, 0,
text('black',408,80,'Courier',0,17,1,1,0,1,0,14,281,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
""]))
])
],
282,0,0,[
]).
group([
polygon('black',11,[
424,304,426,310,432,310,427,313,429,318,424,315,419,318,421,313,
416,310,422,310,424,304],1,1,1,0,288,0,0,0,0,0,'1',
"000",[
]),
box('black',420,308,428,316,0,1,0,289,0,0,0,0,0,'1',[
attr("", "auto_center_attr", 0, 1, 0,
text('black',424,307,'Courier',0,17,1,1,0,1,112,14,290,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"auto_center_attr"])),
attr("label=", "", 1, 0, 0,
text('black',424,304,'Courier',0,17,1,1,0,1,0,14,291,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
""]))
])
],
292,0,0,[
]).

BIN
doc/html/Chunk_f2.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

95
doc/html/Chunk_f2.obj Normal file
View File

@@ -0,0 +1,95 @@
%TGIF 3.0-p17
state(0,33,100.000,0,0,0,16,1,9,1,1,6,1,1,0,1,0,'Courier',0,17,0,2,0,10,0,0,1,1,0,16,0,0,1,1,1,0,1088,1408,0,0,2880).
%
% @(#)$Header$
% %W%
%
unit("1 pixel/pixel").
color_info(11,65535,0,[
"magenta", 65535, 0, 65535, 65280, 0, 65280, 1,
"red", 65535, 0, 0, 65280, 0, 0, 1,
"green", 0, 65535, 0, 0, 65280, 0, 1,
"blue", 0, 0, 65535, 0, 0, 65280, 1,
"yellow", 65535, 65535, 0, 65280, 65280, 0, 1,
"pink", 65535, 49344, 52171, 65280, 49152, 51968, 1,
"cyan", 0, 65535, 65535, 0, 65280, 65280, 1,
"CadetBlue", 24415, 40606, 41120, 24320, 40448, 40960, 1,
"white", 65535, 65535, 65535, 65280, 65280, 65280, 1,
"black", 0, 0, 0, 0, 0, 0, 1,
"DarkSlateGray", 12079, 20303, 20303, 12032, 20224, 20224, 1
]).
page(1,"",1).
group([
box('black',192,416,512,544,0,1,0,22,0,0,0,0,0,'1',[
]),
oval('black',192,384,512,448,0,1,1,23,0,0,0,0,0,'1',[
]),
arc('black',0,1,1,0,192,512,352,544,192,544,512,544,0,320,64,11520,11520,24,0,0,8,3,0,0,0,'1','8','3',[
]),
poly('black',2,[
192,416,192,544],0,1,1,25,0,0,0,0,8,3,0,0,0,'1','8','3',
"0",[
]),
poly('black',2,[
512,416,512,544],0,1,1,26,0,0,0,0,8,3,0,0,0,'1','8','3',
"0",[
]),
box('black',196,452,508,572,0,1,0,27,0,0,0,0,0,'1',[
attr("", "auto_center_attr", 0, 1, 0,
text('black',352,451,'Courier',0,17,1,1,0,1,112,14,28,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"auto_center_attr"])),
attr("label=", "HDF5 File", 1, 0, 0,
text('black',351,505,'Courier',0,17,1,1,0,1,63,14,29,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"HDF5 File"]))
])
],
30,0,0,[
]).
group([
polygon('black',5,[
240,160,240,352,464,352,464,160,240,160],0,1,1,0,63,0,0,0,0,0,'1',
"00",[
]),
box('black',254,164,450,348,0,1,0,64,0,0,0,0,0,'1',[
attr("", "auto_center_attr", 0, 1, 0,
text('black',352,163,'Courier',0,17,1,1,0,1,112,14,65,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"auto_center_attr"])),
attr("label=", "Filter", 1, 0, 0,
text('black',351,242,'Courier',0,17,2,1,0,1,49,28,66,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"Filter",
"Pipeine"]))
])
],
62,0,0,[
]).
group([
polygon('black',13,[
304,85,304,107,336,107,336,128,368,128,368,107,400,107,400,85,
368,85,368,64,336,64,336,85,304,85],0,1,1,0,103,0,0,0,0,0,'1',
"0000",[
]),
box('black',307,68,397,124,0,1,0,104,0,0,0,0,0,'1',[
attr("", "auto_center_attr", 0, 1, 0,
text('black',352,67,'Courier',0,17,1,1,0,1,112,14,105,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"auto_center_attr"])),
attr("label=", "Modify Bytes", 1, 0, 0,
text('black',352,89,'Courier',0,17,1,1,0,1,84,14,106,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"Modify Bytes"]))
])
],
107,0,0,[
]).
box('black',176,48,528,592,0,1,1,143,0,0,0,0,0,'1',[
]).
poly('black',4,[
256,416,256,128,256,96,304,96],1,7,1,168,1,0,2,0,22,9,0,0,0,'7','22','9',
"6",[
]).
poly('black',4,[
400,96,448,96,448,128,448,416],1,7,1,173,1,0,2,0,22,9,0,0,0,'7','22','9',
"6",[
]).
text('black',432,128,'Courier',0,17,1,0,0,1,35,14,312,0,11,3,2,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"Chunk"]).
text('black',240,368,'Courier',0,17,1,0,0,1,35,14,314,0,11,3,2,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"Chunk"]).

BIN
doc/html/Chunk_f3.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

BIN
doc/html/Chunk_f4.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

BIN
doc/html/Chunk_f5.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

BIN
doc/html/Chunk_f6.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

107
doc/html/Chunk_f6.obj Normal file
View File

@@ -0,0 +1,107 @@
%TGIF 3.0-p17
state(0,33,100.000,0,0,0,8,1,9,1,1,0,1,1,0,1,1,'Courier',0,17,0,0,0,10,0,0,1,1,0,16,0,0,1,1,1,0,1088,1408,0,0,2880).
%
% @(#)$Header$
% %W%
%
unit("1 pixel/pixel").
color_info(11,65535,0,[
"magenta", 65535, 0, 65535, 65280, 0, 65280, 1,
"red", 65535, 0, 0, 65280, 0, 0, 1,
"green", 0, 65535, 0, 0, 65280, 0, 1,
"blue", 0, 0, 65535, 0, 0, 65280, 1,
"yellow", 65535, 65535, 0, 65280, 65280, 0, 1,
"pink", 65535, 49344, 52171, 65280, 49152, 51968, 1,
"cyan", 0, 65535, 65535, 0, 65280, 65280, 1,
"CadetBlue", 24415, 40606, 41120, 24320, 40448, 40960, 1,
"white", 65535, 65535, 65535, 65280, 65280, 65280, 1,
"black", 0, 0, 0, 0, 0, 0, 1,
"DarkSlateGray", 12079, 20303, 20303, 12032, 20224, 20224, 1
]).
page(1,"",1).
polygon('black',5,[
128,256,256,256,256,320,128,320,128,256],5,1,1,0,26,5,0,0,0,0,'1',
"00",[
]).
polygon('black',7,[
256,128,256,256,128,256,128,192,192,192,192,128,256,128],5,1,1,0,25,5,0,0,0,0,'1',
"00",[
]).
polygon('black',7,[
128,64,256,64,256,128,192,128,192,192,128,192,128,64],5,1,1,0,24,5,0,0,0,0,'1',
"00",[
]).
box('black',128,64,256,320,0,3,1,22,0,0,0,0,0,'3',[
]).
text('black',192,96,'Courier',0,17,1,1,0,1,49,14,34,0,11,3,2,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"Strip 1"]).
text('black',224,160,'Courier',0,17,1,1,0,1,49,14,40,0,11,3,2,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"Strip 2"]).
text('black',192,272,'Courier',0,17,1,1,0,1,49,14,46,0,11,3,2,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"Strip 3"]).
polygon('black',5,[
448,256,576,256,576,320,448,320,448,256],5,1,1,0,59,5,0,0,0,0,'1',
"00",[
]).
polygon('black',7,[
576,128,576,256,448,256,448,192,512,192,512,128,576,128],5,1,1,0,60,5,0,0,0,0,'1',
"00",[
]).
polygon('black',7,[
448,64,576,64,576,128,512,128,512,192,448,192,448,64],5,1,1,0,61,5,0,0,0,0,'1',
"00",[
]).
box('black',448,64,576,320,0,3,1,62,0,0,0,0,0,'3',[
]).
text('black',512,96,'Courier',0,17,1,1,0,1,49,14,63,0,11,3,2,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"Strip 1"]).
text('black',544,160,'Courier',0,17,1,1,0,1,49,14,64,0,11,3,2,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"Strip 2"]).
text('black',512,272,'Courier',0,17,1,1,0,1,49,14,65,0,11,3,2,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"Strip 3"]).
text('black',192,32,'Courier',0,17,1,1,0,1,28,14,68,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"FILE"]).
text('black',512,32,'Courier',0,17,1,1,0,1,42,14,70,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"MEMORY"]).
group([
polygon('black',6,[
320,160,320,208,384,208,416,184,384,160,320,160],0,3,1,0,72,0,0,0,0,0,'3',
"00",[
]),
box('black',324,164,388,204,0,3,0,73,0,0,0,0,0,'3',[
attr("", "auto_center_attr", 0, 1, 0,
text('black',356,162,'Courier',0,17,1,1,0,1,112,14,74,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"auto_center_attr"])),
attr("label=", "TCONV", 1, 0, 0,
text('black',355,177,'Courier',0,17,1,1,0,1,35,14,75,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"TCONV"]))
])
],
76,0,0,[
]).
poly('black',5,[
256,96,288,96,320,96,320,128,320,160],1,7,1,87,1,0,5,0,22,9,0,0,0,'7','22','9',
"70",[
]).
poly('black',2,[
256,184,320,184],1,7,1,88,1,0,5,0,22,9,0,0,0,'7','22','9',
"0",[
]).
poly('black',5,[
256,288,288,288,320,288,320,256,320,208],1,7,1,89,1,0,5,0,22,9,0,0,0,'7','22','9',
"70",[
]).
poly('black',5,[
400,160,400,128,400,96,432,96,448,96],1,7,1,92,1,0,5,0,22,9,0,0,0,'7','22','9',
"70",[
]).
poly('black',2,[
416,184,512,184],1,7,1,93,1,0,5,0,22,9,0,0,0,'7','22','9',
"0",[
]).
poly('black',5,[
400,208,400,256,400,288,432,288,448,288],1,7,1,94,1,0,5,0,22,9,0,0,0,'7','22','9',
"70",[
]).
box('black',96,0,608,352,0,1,1,99,0,0,0,0,0,'1',[
]).

326
doc/html/Chunking.html Normal file
View File

@@ -0,0 +1,326 @@
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<title>Dataset Chunking Issues</title>
</head>
<body bgcolor="#FFFFFF">
<hr>
<center>
<table border=0 width=98%>
<tr><td valign=top align=left>
<a href="H5.intro.html">Introduction to HDF5</a>&nbsp;<br>
<a href="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<br>
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<br>
Chunking&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
<hr>
<h1>Dataset Chunking Issues</h1>
<h2>Table of Contents</h2>
<ul>
<li><a href="#S1">1. Introduction</a>
<li><a href="#S2">2. Raw Data Chunk Cache</a>
<li><a href="#S3">3. Cache Efficiency</a>
<li><a href="#S4">4. Fragmentation</a>
<li><a href="#S5">5. File Storage Overhead</a>
</ul>
<h2><a name="S1">1. Introduction</a></h2>
<p><em>Chunking</em> refers to a storage layout where a dataset is
partitioned into fixed-size multi-dimensional chunks. The
chunks cover the dataset but the dataset need not be an integral
number of chunks. If no data is ever written to a chunk then
that chunk isn't allocated on disk. Figure 1 shows a 25x48
element dataset covered by nine 10x20 chunks and 11 data points
written to the dataset. No data was written to the region of
the dataset covered by three of the chunks so those chunks were
never allocated in the file -- the other chunks are allocated at
independent locations in the file and written in their entirety.
<center><image src="Chunk_f1.gif"><br><b>Figure 1</b></center>
<p>The HDF5 library treats chunks as atomic objects -- disk I/O is
always in terms of complete chunks<a href="#fn1">(1)</a>. This
allows data filters to be defined by the application to perform
tasks such as compression, encryption, checksumming,
<em>etc</em>. on entire chunks. As shown in Figure 2, if
<code>H5Dwrite()</code> touches only a few bytes of the chunk,
the entire chunk is read from the file, the data passes upward
through the filter pipeline, the few bytes are modified, the
data passes downward through the filter pipeline, and the entire
chunk is written back to the file.
<center><image src="Chunk_f2.gif"><br><b>Figure 2</b></center>
<h2><a name="S2">2. The Raw Data Chunk Cache</a></h2>
<p>It's obvious from Figure 2 that calling <code>H5Dwrite()</code>
many times from the application would result in poor performance
even if the data being written all falls within a single chunk.
A raw data chunk cache layer was added between the top of the
filter stack and the bottom of the byte modification layer<a
href="#fn2">(2)</a>. By default, the chunk cache will store 521
chunks or 1MB of data (whichever is less) but these values can
be modified with <code>H5Pset_cache()</code>.
<p>The preemption policy for the cache favors certain chunks and
tries not to preempt them.
<ul>
<li>Chunks that have been accessed frequently in the near past
are favored.
<li>A chunk which has just entered the cache is favored.
<li>A chunk which has been completely read or completely written
but not partially read or written is penalized according to
some application specified weighting between zero and one.
<li>A chunk which is larger than the maximum cache size is not
eligible for caching.
</ul>
<h2><a name="S3">3. Cache Efficiency</a></h2>
<p>Now for some real numbers... A 2000x2000 element dataset is
created and covered by a 20x20 array of chunks (each chunk is 100x100
elements). The raw data cache is adjusted to hold at most 25 chunks by
setting the maximum number of bytes to 25 times the chunk size in
bytes. Then the application creates a square, two-dimensional memory
buffer and uses it as a window into the dataset, first reading and then
rewriting in row-major order by moving the window across the dataset
(the read and write tests both start with a cold cache).
<p>The measure of efficiency in Figure 3 is the number of bytes requested
by the application divided by the number of bytes transferred from the
file. There are at least a couple ways to get an estimate of the cache
performance: one way is to turn on <a href="Debugging.html">cache
debugging</a> and look at the number of cache misses. A more accurate
and specific way is to register a data filter whose sole purpose is to
count the number of bytes that pass through it (that's the method used
below).
<center><image src="Chunk_f3.gif"><br><b>Figure 3</b></center>
<p>The read efficiency is less than one for two reasons: collisions in the
cache are handled by preempting one of the colliding chunks, and the
preemption algorithm occasionally preempts a chunk which hasn't been
referenced for a long time but is about to be referenced in the near
future.
<p>The write test results in lower efficiency for most window
sizes because HDF5 is unaware that the application is about to
overwrite the entire dataset and must read in most chunks before
modifying parts of them.
<p>There is a simple way to improve efficiency for this example.
It turns out that any chunk that has been completely read or
written is a good candidate for preemption. If we increase the
penalty for such chunks from the default 0.75 to the maximum
1.00 then efficiency improves.
<center><image src="Chunk_f4.gif"><br><b>Figure 4</b></center>
<p>The read efficiency is still less than one because of
collisions in the cache. The number of collisions can often be
reduced by increasing the number of slots in the cache. Figure
5 shows what happens when the maximum number of slots is
increased by an order of magnitude from the default (this change
has no major effect on memory used by the test since the byte
limit was not increased for the cache).
<center><image src="Chunk_f5.gif"><br><b>Figure 5</b></center>
<p>Although the application eventually overwrites every chunk
completely the library has know way of knowing this before hand
since most calls to <code>H5Dwrite()</code> modify only a
portion of any given chunk. Therefore, the first modification of
a chunk will cause the chunk to be read from disk into the chunk
buffer through the filter pipeline. Eventually HDF5 might
contain a data set transfer property that can turn off this read
operation resulting in write efficiency which is equal to read
efficiency.
<h2><a name="S4">4. Fragmentation</a></h2>
<p>Even if the application transfers the entire dataset contents with a
single call to <code>H5Dread()</code> or <code>H5Dwrite()</code> it's
possible the request will be broken into smaller, more manageable
pieces by the library. This is almost certainly true if the data
transfer includes a type conversion.
<center><image src="Chunk_f6.gif"><br><b>Figure 6</b></center>
<p>By default the strip size is 1MB but it can be changed by calling
<code>H5Pset_buffer()</code>.
<h2><a name="S5">5. File Storage Overhead</a></h2>
<p>The chunks of the dataset are allocated at independent
locations throughout the HDF5 file and a B-tree maps chunk
N-dimensional addresses to file addresses. The more chunks that
are allocated for a dataset the larger the B-tree. Large B-trees
have two disadvantages:
<ul>
<li>The file storage overhead is higher and more disk I/O is
required to traverse the tree from root to leaves.
<li>The increased number of B-tree nodes will result in higher
contention for the meta data cache.
</ul>
<p>There are three ways to reduce the number of B-tree nodes. The
obvious way is to reduce the number of chunks by choosing a larger chunk
size (doubling the chunk size will cut the number of B-tree nodes in
half). Another method is to adjust the split ratios for the B-tree by
calling <code>H5Pset_split_ratios()</code>, but this method typically
results in only a slight improvement over the default settings.
Finally, the out-degree of each node can be increased by calling
<code>H5Pset_istore_k()</code> (increasing the out degree actually
increases file overhead while decreasing the number of nodes).
<hr>
<p><a name="fn1">Footnote 1:</a> Parallel versions of the library
can access individual bytes of a chunk when the underlying file
uses MPI-IO.
<p><a name="fn2">Footnote 2:</a> The raw data chunk cache was
added before the second alpha release.
<hr>
<center>
<table border=0 width=98%>
<tr><td valign=top align=left>
<a href="H5.intro.html">Introduction to HDF5</a>&nbsp;<br>
<a href="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<br>
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<br>
Chunking&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
<!--
<hr>
<address><a href="mailto:matzke@llnl.gov">Robb Matzke</a></address>
-->
<!-- Created: Tue Oct 20 12:38:40 EDT 1998 -->
<!-- hhmts start -->
<!--
Last modified: Fri Oct 23 10:30:52 EDT 1998
-->
<!-- hhmts end -->
<hr>
<address>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
<br>
Last modified: 30 October 1998
</body>
</html>

View File

@@ -1,409 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<title>Compression</title>
</head>
<body>
<h1>Compression</h1>
<h2>1. Introduction</h2>
<p>HDF5 supports compression of raw data by compression methods
built into the library or defined by an application. A
compression method is associated with a dataset when the dataset
is created and is applied independently to each storage chunk of
the dataset.
The dataset must use the <code>H5D_CHUNKED</code> storage
layout. The library doesn't support compression for contiguous
datasets because of the difficulty of implementing random access
for partial I/O, and compact dataset compression is not
supported because it wouldn't produce significant results.
<h2>2. Supported Compression Methods</h2>
<p>The library identifies compression methods with small
integers, with values less than 16 reserved for use by NCSA and
values between 16 and 255 (inclusive) available for general
use. This range may be extended in the future if it proves to
be too small.
<p>
<center>
<table align=center width="80%">
<tr>
<th width="30%">Method Name</th>
<th width="70%">Description</th>
</tr>
<tr valign=top>
<td><code>H5Z_NONE</code></td>
<td>The default is to not use compression. Specifying
<code>H5Z_NONE</code> as the compression method results
in better perfomance than writing a function that just
copies data because the library's I/O pipeline
recognizes this method and is able to short circuit
parts of the pipeline.</td>
</tr>
<tr valign=top>
<td><code>H5Z_DEFLATE</code></td>
<td>The <em>deflate</em> method is the algorithm used by
the GNU <code>gzip</code>program. It's a combination of
a Huffman encoding followed by a 1977 Lempel-Ziv (LZ77)
dictionary encoding. The aggressiveness of the
compression can be controlled by passing an integer value
to the compressor with <code>H5Pset_deflate()</code>
(see below). In order for this compression method to be
used, the HDF5 library must be configured and compiled
in the presence of the GNU zlib version 1.1.2 or
later.</td>
</tr>
<tr valign=top>
<td><code>H5Z_RES_<em>N</em></code></td>
<td>These compression methods (where <em>N</em> is in the
range two through 15, inclusive) are reserved by NCSA
for future use.</td>
</tr>
<tr valign=top>
<td>Values of <em>N</em> between 16 and 255, inclusive</td>
<td>These values can be used to represent application-defined
compression methods. We recommend that methods under
testing should be in the high range and when a method is
about to be published it should be given a number near
the low end of the range (or even below 16). Publishing
the compression method and its numeric ID will make a
file sharable.</td>
</tr>
</table>
</center>
<p>Setting the compression for a dataset to a method which was
not compiled into the library and/or not registered by the
application is allowed, but writing to such a dataset will
silently <em>not</em> compress the data. Reading a compressed
dataset for a method which is not available will result in
errors (specifically, <code>H5Dread()</code> will return a
negative value). The errors will be displayed in the
compression statistics if the library was compiled with
debugging turned on for the &quot;z&quot; package. See the
section on diagnostics below for more details.
<h2>3. Application-Defined Methods</h2>
<p>Compression methods 16 through 255 can be defined by an
application. As mentioned above, methods that have not been
released should use high numbers in that range while methods
that have been published will be assigned an official number in
the low region of the range (possibly less than 16). Users
should be aware that using unpublished compression methods
results in unsharable files.
<p>A compression method has two halves: one have handles
compression and the other half handles uncompression. The
halves are implemented as functions
<code><em>method</em>_c</code> and
<code><em>method</em>_u</code> respectively. One should not use
the names <code>compress</code> or <code>uncompress</code> since
they are likely to conflict with other compression libraries
(like the GNU zlib).
<p>Both the <code><em>method</em>_c</code> and
<code><em>method</em>_u</code> functions take the same arguments
and return the same values. They are defined with the type:
<dl>
<dt><code>typedef size_t (*H5Z_func_t)(unsigned int
<em>flags</em>, size_t <em>cd_size</em>, const void
*<em>client_data</em>, size_t <em>src_nbytes</em>, const
void *<em>src</em>, size_t <em>dst_nbytes</em>, void
*<em>dst</em>/*out*/)</code>
<dd>The <em>flags</em> are an 8-bit vector which is stored in
the file and which is defined when the compression method is
defined. The <em>client_data</em> is a pointer to
<em>cd_size</em> bytes of configuration data which is also
stored in the file. The function compresses or uncompresses
<em>src_nbytes</em> from the source buffer <em>src</em> into
at most <em>dst_nbytes</em> of the result buffer <em>dst</em>.
The function returns the number of bytes written to the result
buffer or zero if an error occurs. But if a result buffer
overrun occurs the function should return a value at least as
large as <em>dst_size</em> (the uncompressor will see an
overrun only for corrupt data).
</dl>
<p>The application associates the pair of functions with a name
and a method number by calling <code>H5Zregister()</code>. This
function can also be used to remove a compression method from
the library by supplying null pointers for the functions.
<dl>
<dt><code>herr_t H5Zregister (H5Z_method_t <em>method</em>,
const char *<em>name</em>, H5Z_func_t <em>method_c</em>,
H5Z_func_t <em>method_u</em>)</code>
<dd>The pair of functions to be used for compression
(<em>method_c</em>) and uncompression (<em>method_u</em>) are
associated with a short <em>name</em> used for debugging and a
<em>method</em> number in the range 16 through 255. This
function can be called as often as desired for a particular
compression method with each call replacing the information
stored by the previous call. Sometimes it's convenient to
supply only one half of the compression, for instance in an
application that opens files for read-only. Compression
statistics for the method are accumulated across calls to this
function.
</dl>
<p>
<center>
<table border align=center width="100%">
<caption align=bottom><h4>Example: Registering an
Application-Defined Compression Method</h4></caption>
<tr>
<td>
<p>Here's a simple-minded &quot;compression&quot; method
that just copies the input value to the output. It's
similar to the <code>H5Z_NONE</code> method but
slower. Compression and uncompression are performed
by the same function.
<p><code><pre>
size_t
bogus (unsigned int flags,
size_t cd_size, const void *client_data,
size_t src_nbytes, const void *src,
size_t dst_nbytes, void *dst/*out*/)
{
memcpy (dst, src, src_nbytes);
return src_nbytes;
}
</pre></code>
<p>The function could be registered as method 250 as
follows:
<p><code><pre>
#define H5Z_BOGUS 250
H5Zregister (H5Z_BOGUS, "bogus", bogus, bogus);
</pre></code>
<p>The function can be unregistered by saying:
<p><code><pre>
H5Zregister (H5Z_BUGUS, "bogus", NULL, NULL);
</pre></code>
<p>Notice that we kept the name &quot;bogus&quot; even
though we unregistered the functions that perform the
compression and uncompression. This makes compression
statistics more understandable when they're printed.
</td>
</tr>
</table>
</center>
<h2>4. Enabling Compression for a Dataset</h2>
<p>If a dataset is to be compressed then the compression
information must be specified when the dataset is created since
once a dataset is created compression parameters cannot be
adjusted. The compression is specified through the dataset
creation property list (see <code>H5Pcreate()</code>).
<dl>
<dt><code>herr_t H5Pset_deflate (hid_t <em>plist</em>, int
<em>level</em>)</code>
<dd>The compression method for dataset creation property list
<em>plist</em> is set to <code>H5Z_DEFLATE</code> and the
aggression level is set to <em>level</em>. The <em>level</em>
must be a value between one and nine, inclusive, where one
indicates no (but fast) compression and nine is aggressive
compression.
<br><br>
<dt><code>int H5Pget_deflate (hid_t <em>plist</em>)</code>
<dd>If dataset creation property list <em>plist</em> is set to
use <code>H5Z_DEFLATE</code> compression then this function
will return the aggression level, an integer between one and
nine inclusive. If <em>plist</em> isn't a valid dataset
creation property list or it isn't set to use the deflate
method then a negative value is returned.
<br><br>
<dt><code>herr_t H5Pset_compression (hid_t <em>plist</em>,
H5Z_method_t <em>method</em>, unsigned int <em>flags</em>,
size_t <em>cd_size</em>, const void *<em>client_data</em>)</code>
<dd>This is a catch-all function for defining compresion methods
and is intended to be called from a wrapper such as
<code>H5Pset_deflate()</code>. The dataset creation property
list <em>plist</em> is adjusted to use the specified
compression method. The <em>flags</em> is an 8-bit vector
which is stored in the file as part of the compression message
and passed to the compress and uncompress functions. The
<em>client_data</em> is a byte array of length
<em>cd_size</em> which is copied to the file and passed to the
compress and uncompress methods.
<br><br>
<dt><code>H5Z_method_t H5Pget_compression (hid_t <em>plist</em>,
unsigned int *<em>flags</em>, size_t *<em>cd_size</em>, void
*<em>client_data</em>)</code>
<dd>This is a catch-all function for querying the compression
method associated with dataset creation property list
<em>plist</em> and is intended to be called from a wrapper
function such as <code>H5Pget_deflate()</code>. The
compression method (or a negative value on error) is returned
by value, and compression flags and client data is returned by
argument. The application should allocate the
<em>client_data</em> and pass its size as the
<em>cd_size</em>. On return, <em>cd_size</em> will contain
the actual size of the client data. If <em>client_data</em>
is not large enough to hold the entire client data then
<em>cd_size</em> bytes are copied into <em>client_data</em>
and <em>cd_size</em> is set to the total size of the client
data, a value larger than the original.
</dl>
<p>It is possible to set the compression to a method which hasn't
been defined with <code>H5Zregister()</code> and which isn't
supported as a predefined method (for instance, setting the
method to <code>H5Z_DEFLATE</code> when the GNU zlib isn't
available). If that happens then data will be written to the
file in its uncompressed form and the compression statistics
will show failures for the compression.
<p>
<center>
<table border align=center width="100%">
<caption align=bottom><h4>Example: Statistics for an
Unsupported Compression Method</h4></caption>
<tr>
<td>
<p>If an application attempts to use an unsupported
method then the compression statistics will show large
numbers of compression errors and no data
uncompressed.
<p><code><pre>
H5Z: compression statistics accumulated over life of library:
Method Total Overrun Errors User System Elapsed Bandwidth
------ ----- ------- ------ ---- ------ ------- ---------
deflate-c 160000 0 160000 0.00 0.01 0.01 1.884e+07
deflate-u 0 0 0 0.00 0.00 0.00 NaN
</pre></code>
<p>This example is from a program that tried to use
<code>H5Z_DEFLATE</code> on a system that didn't have
the GNU zlib to write to a dataset and then read the
result. The read and write both succeeded but the
data was not compressed.
</td>
</tr>
</table>
</center>
<h2>5. Compression Diagnostics</h2>
<p>If the library is compiled with debugging turned on for the H5Z
layer (usually as a result of <code>configure --enable-debug=z</code>)
then statistics about data compression are printed when the
application exits normally or the library is closed. The
statistics are written to the standard error stream and include
two lines for each compression method that was used: the first
line shows compression statistics while the second shows
uncompression statistics. The following fields are displayed:
<p>
<center>
<table align=center width="80%">
<tr>
<th width="30%">Field Name</th>
<th width="70%">Description</th>
</tr>
<tr valign=top>
<td>Method</td>
<td>This is the name of the method as defined with
<code>H5Zregister()</code> with the letters
&quot;-c&quot; or &quot;-u&quot; appended to indicate
compression or uncompression.</td>
</tr>
<tr valign=top>
<td>Total</td>
<td>The total number of bytes compressed or decompressed
including buffer overruns and errors. Bytes of
non-compressed data are counted.</td>
</tr>
<tr valign=top>
<td>Overrun</td>
<td>During compression, if the algorithm causes the result
to be at least as large as the input then a buffer
overrun error occurs. This field shows the total number
of bytes from the Total column which can be attributed to
overruns. Overruns for decompression can only happen if
the data has been corrupted in some way and will result
in failure of <code>H5Dread()</code>.</td>
</tr>
<tr valign=top>
<td>Errors</td>
<td>If an error occurs during compression the data is
stored in it's uncompressed form; and an error during
uncompression causes <code>H5Dread()</code> to return
failure. This field shows the number of bytes of the
Total column which can be attributed to errors.</td>
</tr>
<tr valign=top>
<td>User, System, Elapsed</td>
<td>These are the amount of user time, system time, and
elapsed time in seconds spent by the library to perform
compression. Elapsed time is sensitive to system
load. These times may be zero on operating systems that
don't support the required operations.</td>
</tr>
<tr valign=top>
<td>Bandwidth</td>
<td>This is the compression bandwidth which is the total
number of bytes divided by elapsed time. Since elapsed
time is subject to system load the bandwidth numbers
cannot always be trusted. Furthermore, the bandwidth
includes overrun and error bytes which may significanly
taint the value.</td>
</tr>
</table>
</center>
<p>
<center>
<table border align=center width="100%">
<caption align=bottom><h4>Example: Compression
Statistics</h4></caption>
<tr>
<td>
<p><code><pre>
H5Z: compression statistics accumulated over life of library:
Method Total Overrun Errors User System Elapsed Bandwidth
------ ----- ------- ------ ---- ------ ------- ---------
deflate-c 160000 200 0 0.62 0.74 1.33 1.204e+05
deflate-u 120000 0 0 0.11 0.00 0.12 9.885e+05
</pre></code>
</td>
</tr>
</table>
</center>
<hr>
<address><a href="mailto:matzke@llnl.gov">Robb Matzke</a></address>
<!-- Created: Fri Apr 17 13:39:35 EDT 1998 -->
<!-- hhmts start -->
Last modified: Fri Apr 17 16:15:21 EDT 1998
<!-- hhmts end -->
</body>
</html>

76
doc/html/Copyright.html Normal file
View File

@@ -0,0 +1,76 @@
<html>
<head><title>
HDF5 Copyright Notice
</title></head>
<body>
<hr>
<h3>Copyright Notice and Statement for
<br>
NCSA Hierarchical Data Format (HDF) Software Library and Utilities</h3>
<hr>
<p>
NCSA Hierarchical Data Format (HDF) Software Library and Utilities
<br>
Copyright 1998 the Board of Trustees of the University of Illinois
<br>
<strong>All rights reserved.</strong>
<p>
Contributors: National Center for Supercomputing Applications (NCSA) at
the University of Illinois, Lawrence Livermore Nat'l Laboratory (LLNL),
Sandia National Laboratories (SNL), Los Alamos National Laboratory (LANL),
Jean-loup Gailly and Mark Adler (gzip library)
<p>
Redistribution and use in source and binary forms, with or without
modification, are permitted for any purpose (including commercial purposes)
provided that the following conditions are met:
<p>
<ol>
<li>Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
<li>Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or materials provided with the distribution.
<li>In addition, redistributions of modified forms of the source or binary
code must carry prominent notices stating that the original code was
changed and the date of the change.
<li>All publications or advertising materials mentioning features or use of
this software must acknowledge that it was developed by the National Center
for Supercomputing Applications at the University of Illinois, and credit
the Contributors.
<li>Neither the name of the University nor the names of the Contributors may
be used to endorse or promote products derived from this software without
specific prior written permission from the University or the Contributors.
<li>THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY AND THE CONTRIBUTORS "AS IS"
WITH NO WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED. In no event
shall the University or the Contributors be liable for any damages suffered
by the users arising out of the use of this software, even if advised of
the possibility of such damage.
</ol>
<hr>
<address>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
<br>
Last modified: 8 September 1998
</body>
</html>

View File

@@ -4,7 +4,67 @@
<title>The Dataset Interface (H5D)</title>
</head>
<body>
<body bgcolor="#FFFFFF">
<hr>
<center>
<table border=0 width=98%>
<tr><td valign=top align=left>
<a href="H5.intro.html">Introduction to HDF5</a>&nbsp;<br>
<a href="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<br>
Datasets&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
<hr>
<h1>The Dataset Interface (H5D)</h1>
<h2>1. Introduction</h2>
@@ -829,11 +889,83 @@ H5Pset_external (plist, "scan3.data", 0, 16);
</table>
</center>
<hr>
<center>
<table border=0 width=98%>
<tr><td valign=top align=left>
<a href="H5.intro.html">Introduction to HDF5</a>&nbsp;<br>
<a href="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<br>
Datasets&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
<!--
<hr>
<address><a href="mailto:matzke@llnl.gov">Robb Matzke</a></address>
-->
<!-- Created: Tue Dec 2 09:17:09 EST 1997 -->
<!-- hhmts start -->
<!--
Last modified: Wed May 13 18:57:47 EDT 1998
-->
<!-- hhmts end -->
<hr>
<address>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
</address>
Last modified: 30 October 1998
</body>
</html>

View File

@@ -3,7 +3,68 @@
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<TITLE>The Data Space Interface (H5S)</TITLE>
</HEAD>
<BODY>
<body bgcolor="#FFFFFF">
<hr>
<center>
<table border=0 width=98%>
<tr><td valign=top align=left>
<a href="H5.intro.html">Introduction to HDF5</a>&nbsp;<br>
<a href="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<br>
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
Dataspaces&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
<hr>
<H1>
The Dataspace Interface (H5S)</H1>
@@ -162,14 +223,14 @@ would look like this:
<br><strong>Example 3: Non-contiguous selection with 1,1 offset</strong>
</center>
<P>Selections also have an linearization ordering of the points selected
<P>Selections also have a linearization ordering of the points selected
(defaulting to "C" order, ie. last dimension changing fastest). The
linearization order may be specified for each point or it may be chosen by
the axis of the dataspace. For example, with the default "C" ordering,
example 1's selected points are iterated through in this order: (1,1), (2,1),
(3,1), (1,2), (2,2), etc. With "FORTRAN" ordering, example 1's selected points
would be iterated through in this order: (1,1), (1,2), (1,3), (1,4), (1,5),
(2,1), (2,2), etc.
example 1's selected points are iterated through in this order: (1,1), (1,2),
(1,3), (2,1), (2,2), etc. With "FORTRAN" ordering, example 1's selected points
would be iterated through in this order: (1,1), (2,1), (3,1), (4,1), (5,1),
(1,2), (2,2), etc.
<P>A dataspace may be stored in the file as a permanent object, to allow many
datasets to use a commonly defined dataspace. Dataspaces with extendable
@@ -195,9 +256,8 @@ by calling <TT>H5Sclose()</TT>.
<DD>
This function creates a new dataspace of a particular <I>type</I>. The
types currently supported are H5S_SCALAR, H5S_SIMPLE, or H5S_NONE, although
others are planned to be added later. The H5S_NONE dataspace can only hold a
selection, not an extent.
types currently supported are H5S_SCALAR and H5S_SIMPLE;
others are planned to be added later.
</DD>
<DT>
@@ -252,12 +312,12 @@ dataspace identifier after this call is undefined.
</DD>
<DT>
<TT>H5S_class_t H5Sget_class (hid_t <I>space</I>)</TT></DT>
<TT>H5S_class_t H5Sextent_class (hid_t <I>space</I>)</TT></DT>
<DD>
Query a dataspace to determine the current class of a dataspace. The value
which is returned is one of: H5S_SCALAR, H5S_SIMPLE, or H5S_NONE on success or
FAIL on failure.
which is returned is one of: H5S_SCALAR, H5S_SIMPLE on success or
H5S_NO_CLASS on failure.
</DD>
</DL>
@@ -284,7 +344,7 @@ H5S_SIMPLE and the extent is set as specified.
<TT>herr_t H5Sset_extent_none (hid_t <I>space</I>)</TT></DT>
<DD>
Removes the extent from a dataspace and sets the type to H5S_NONE.
Removes the extent from a dataspace and sets the type to H5S_NO_CLASS.
</DD>
<DT>
@@ -298,7 +358,7 @@ failure.
</DD>
<DT>
<TT>hsize_t H5Sextent_npoints (hid_t <I>space</I>)</TT></DT>
<TT>hsize_t H5Sget_simple_extent_npoints (hid_t <I>space</I>)</TT></DT>
<DD>
This function determines the number of elements in a dataspace. For example, a
@@ -308,7 +368,7 @@ Returns the number of elements in the dataspace, negative on failure.
</DD>
<DT>
<TT>int H5Sextent_ndims (hid_t <I>space</I>)</TT></DT>
<TT>int H5Sget_simple_extent_ndims (hid_t <I>space</I>)</TT></DT>
<DD>
This function determines the dimensionality (or rank) of a dataspace.
@@ -316,7 +376,7 @@ Returns the number of dimensions in the dataspace, negative on failure.
</DD>
<DT>
<TT>herr_t H5Sextent_dims (hid_t <I>space</I>, hsize_t *<I>dims</I>,
<TT>herr_t H5Sget_simple_extent_dims (hid_t <I>space</I>, hsize_t *<I>dims</I>,
hsize_t *<I>max</I>)</TT></DT>
<DD>
@@ -356,11 +416,24 @@ This function selects a hyperslab region to add to the current selected region
for the <I>space</I> dataspace. The <I>start</I>, <I>stride</I>, <I>count</I>
and <I>block</I> arrays must be the same size as the rank of the dataspace.
The selection operator <I>op</I> determines how the new selection is to be
combined with the already existing selection for the dataspace. Currently,
only the H5S_SELECT_SET operator is supported, which replaces the existing
selection with the parameters from this call. Overlapping blocks are not
supported with the H5S_SELECT_SET operator.
<P>The <I>start</I> array determines the starting coordinates of the hyperslab
combined with the already existing selection for the dataspace.
Currently, The following operators are supported:
<dir>
<table width=80% border=0>
<tr><td valign=top>
<code>H5S_SELECT_SET</code>
</td><td valign=top>
Replaces the existing selection with the parameters from this call.
Overlapping blocks are not supported with this operator.
</td></tr><tr><td valign=top>
<code>H5S_SELECT_OR</code>
</td><td valign=top>
Adds the new selection to the existing selection.
</td></tr>
</table>
</dir>
<P>
The <I>start</I> array determines the starting coordinates of the hyperslab
to select. The <I>stride</I> array chooses array locations from the dataspace
with each value in the <I>stride</I> array determining how many elements to move
in each dimension. Setting a value in the <I>stride</I> array to 1 moves to
@@ -398,9 +471,23 @@ iterated through when I/O is performed. Duplicate coordinate locations are not
checked for.
<P>The selection operator <I>op</I> determines how the new selection is to be
combined with the already existing selection for the dataspace. Currently,
only the H5S_SELECT_SET operator is supported, which replaces the existing
selection with the parameters from this call. When operators other than
combined with the already existing selection for the dataspace.
The following operators are supported:
<dir>
<table width=80% border=0>
<tr><td valign=top>
<code>H5S_SELECT_SET</code>
</td><td valign=top>
Replaces the existing selection with the parameters from this call.
Overlapping blocks are not supported with this operator.
</td></tr><tr><td valign=top>
<code>H5S_SELECT_OR</code>
</td><td valign=top>
Adds the new selection to the existing selection.
</td></tr>
</table>
</dir>
When operators other than
H5S_SELECT_SET are used to combine a new selection with an existing selection,
the selection ordering is reset to 'C' array ordering.
</DD>
@@ -481,7 +568,7 @@ the selection or extent is not defined).
</DD>
<DT>
<TT>hsize_t H5Sselect_npoints (hid_t <I>space</I>)</TT></DT>
<TT>hsize_t H5Sget_select_npoints (hid_t <I>space</I>)</TT></DT>
<DD>
This function determines the number of elements in the current selection
@@ -555,14 +642,87 @@ is returned.
</DL>
<HR>
<hr>
<center>
<table border=0 width=98%>
<tr><td valign=top align=left>
<a href="H5.intro.html">Introduction to HDF5</a>&nbsp;<br>
<a href="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<br>
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
Dataspaces&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
<!--
<ADDRESS>
<A HREF="mailto:matzke@llnl.gov">Robb Matzke</A></ADDRESS>
<ADDRESS>
<A HREF="mailto:koziol@ncsa.uiuc.edu">Quincey Koziol</A></ADDRESS>
<BR><!-- Created: Thu Dec 4 14:57:32 EST 1997 --><!-- hhmts start -->Last
modified: Thu May 28 15:12:04 EST 1998&nbsp;<!-- hhmts end -->
<BR>
-->
<!-- Created: Thu Dec 4 14:57:32 EST 1997 --><!-- hhmts start -->
<!--
Last modified: Thu May 28 15:12:04 EST 1998&nbsp;
-->
<!-- hhmts end -->
<hr>
<address>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
<br>
Last modified: 26 April 1999
</BODY>
</HTML>

View File

@@ -4,7 +4,69 @@
<title>The Data Type Interface (H5T)</title>
</head>
<body>
<body bgcolor="#FFFFFF">
<hr>
<center>
<table border=0 width=98%>
<tr><td valign=top align=left>
<a href="H5.intro.html">Introduction to HDF5</a>&nbsp;<br>
<a href="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<br>
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
Data Types&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
<hr>
<h1>The Data Type Interface (H5T)</h1>
<h2>1. Introduction</h2>
@@ -135,13 +197,12 @@
<dl>
<dt><code>H5T_class_t H5Tget_class (hid_t <em>type</em>)</code>
<dd>This property holds one of the class names:
<code>H5T_INTEGER, H5T_FLOAT, H5T_TIME, H5T_STRING,
H5T_BITFIELD</code>, or <code>H5T_OPAQUE</code>. This
property is read-only and is set when the datatype is
created or copied (see <code>H5Tcreate()</code>,
<code>H5Tcopy()</code>). If this function fails it returns
<code>H5T_NO_CLASS</code> which has a negative value (all
other class constants are non-negative).
<code>H5T_INTEGER, H5T_FLOAT, H5T_TIME, H5T_STRING, or
H5T_BITFIELD</code>. This property is read-only and is set
when the datatype is created or copied (see
<code>H5Tcreate()</code>, <code>H5Tcopy()</code>). If this
function fails it returns <code>H5T_NO_CLASS</code> which has
a negative value (all other class constants are non-negative).
<br><br>
<dt><code>size_t H5Tget_size (hid_t <em>type</em>)</code>
@@ -156,13 +217,11 @@
the significant part of the data still extends beyond the edge
of the data type then the <code>precision</code> property is
decremented a bit at a time. Decreasing the size of a data
type may fail if the precesion must be decremented and the
data type is of the <code>H5T_OPAQUE</code> class or the
<code>H5T_FLOAT</code> bit fields would extend beyond the
significant part of the type. Increasing the size of an
<code>H5T_STRING</code> automatically increases the precision
as well. On error, <code>H5Tget_size()</code> returns zero
which is never a valid size.
type may fail if the <code>H5T_FLOAT</code> bit fields would
extend beyond the significant part of the type. Adjusting the
size of an <code>H5T_STRING</code> automatically adjusts the
precision as well. On error, <code>H5Tget_size()</code>
returns zero which is never a valid size.
<br><br>
<dt><code>H5T_order_t H5Tget_order (hid_t <em>type</em>)</code>
@@ -358,9 +417,6 @@
<em>19971205162530</em>; as an integer value in Unix time(2)
format; or other variations.
<p>I'm deferring definition until later since they're probably not
as important as the other data types.
<h3>3.4. Properties of Character String Atomic Types</h3>
<p>Fixed-length character string types are used to store textual
@@ -388,9 +444,33 @@
programming language: C usually null terminates strings while
Fortran left-justifies and space-pads strings. This property
defines the storage mechanism and can be
<code>H5T_STR_NULL</code> for C-style strings or
<code>H5T_STR_SPACE</code> for Fortran-style
strings. <code>H5Tget_strpad()</code> returns
<p>
<dl>
<dt><code>H5T_STR_NULLTERM</code>
<dd>A C-style string which is guaranteed to be null
terminated. When converting from a longer string the
value will be truncated and then a null character
appended.
<br><br>
<dt><code>H5T_STR_NULLPAD</code>
<dd>A C-style string which is padded with null characters
but not necessarily null terminated. Conversion from a
long string to a shorter <code>H5T_STR_NULLPAD</code>
string will truncate but not null terminate. Conversion
from a short value to a longer value will append null
characters as with <code>H5T_STR_NULLTERM</code>.
<br><br>
<dt><code>H5T_STR_SPACEPAD</code>
<dd>A Fortran-style string which is padded with space
characters. This is the same as
<code>H5T_STR_NULLPAD</code> except the padding character
is a space instead of a null.
</dl>
<p><code>H5Tget_strpad()</code> returns
<code>H5T_STR_ERROR</code> on failure, a negative value (all
successful return values are non-negative).
</dl>
@@ -403,17 +483,100 @@
Otherwise new bits are filled according to the <code>msb</code>
padding type.
<h3>3.6. Properties of Opaque Atomic Types</h3>
<h3>3.6 Character and String Datatype Issues</h3>
<p>Opaque atomic types (<code>class=H5T_OPAQUE</code>) act like
bit fields except conversions which change the precision are not
allowed. However, padding can be added or removed from either
end and the bytes can be reordered. Opaque types can be used to
create novel data types not directly supported by the library,
but the application is responsible for data conversion of these
types.
The <code>H5T_NATIVE_CHAR</code> and <code>H5T_NATIVE_UCHAR</code>
data types are actually numeric data (1-byte integers). If the
application wishes to store character data, then an HDF5
<em>string</em> data type should be derived from
<code>H5T_C_S1</code> instead.
<h2>4. Properties of Compound Types</h2>
<h4>Motivation</h4>
HDF5 defines at least three classes of data types:
integer data, floating point data, and character data.
However, the C language defines only integer and
floating point data types; character data in C is
overloaded on the 8- or 16-bit integer types and
character strings are overloaded on arrays of those
integer types which, by convention, are terminated with
a zero element.
In C, the variable <code>unsigned char s[256]</code> is
either an array of numeric data, a single character string
with at most 255 characters, or an array of 256 characters,
depending entirely on usage. For uniformity with the
other <code>H5T_NATIVE_</code> types, HDF5 uses the
numeric interpretation of <code>H5T_NATIVE_CHAR</code>
and <code>H5T_NATIVE_UCHAR</code>.
<h4>Usage</h4>
To store <code>unsigned char s[256]</code> data as an
array of integer values, use the HDF5 data type
<code>H5T_NATIVE_UCHAR</code> and a data space that
describes the 256-element array. Some other application
that reads the data will then be able to read, say, a
256-element array of 2-byte integers and HDF5 will
perform the numeric translation.
To store <code>unsigned char s[256]</code> data as a
character string, derive a fixed length string data type
from <code>H5T_C_S1</code> by increasing its size to
256 characters. Some other application that reads the
data will be able to read, say, a space padded string
of 16-bit characters and HDF5 will perform the character
and padding translations.
<pre>
hid_t s256 = H5Tcopy(H5T_C_S1);
H5Tset_size(s256, 256);
</pre>
To store <code>unsigned char s[256]</code> data as
an array of 256 ASCII characters, use an
HDF5 data space to describe the array and derive a
one-character string type from <code>H5T_C_S1</code>.
Some other application will be able to read a subset
of the array as 16-bit characters and HDF5 will
perform the character translations.
The <code>H5T_STR_NULLPAD</code> is necessary because
if <code>H5T_STR_NULLTERM</code> were used
(the default) then the single character of storage
would be for the null terminator and no useful data
would actually be stored (unless the length were
incremented to more than one character).
<pre>
hid_t s1 = H5Tcopy(H5T_C_S1);
H5Tset_strpad(s1, H5T_STR_NULLPAD);
</pre>
<h4>Summary</h4>
The C language uses the term <code>char</code> to
represent one-byte numeric data and does not make
character strings a first-class data type.
HDF5 makes a distinction between integer and
character data and maps the C <code>signed char</code>
(<code>H5T_NATIVE_CHAR</code>) and
<code>unsigned char</code> (<code>H5T_NATIVE_UCHAR</code>)
data types to the HDF5 integer type class.
<h2>4. Properties of Opaque Types</h2>
<p>Opaque types (<code>class=H5T_OPAQUE</code>) provide the
application with a mechanism for describing data which cannot be
otherwise described by HDF5. The only properties associated with
opaque types are a size in bytes and an ASCII tag which is
manipulated with <code>H5Tset_tag()</code> and
<code>H5Tget_tag()</code> functions. The library contains no
predefined conversion functions but the application is free to
register conversions between any two opaque types or between an
opaque type and some other type.
<h2>5. Properties of Compound Types</h2>
<p>A compound data type is similar to a <code>struct</code> in C
or a common block in Fortran: it is a collection of one or more
@@ -507,7 +670,9 @@
<code>H5Tinsert()</code>) and cannot be subsequently modified.
This makes it imposible to define recursive data structures.
<h2>5. Predefined Atomic Data Types</h2>
<a name="DTypes-PredefinedAtomic">
<h2>6. Predefined Atomic Data Types</h2>
</a>
<p>The library predefines a modest number of data types having
names like <code>H5T_<em>arch</em>_<em>base</em></code> where
@@ -616,6 +781,10 @@
<td align=center>I</td>
<td>Signed integer</td>
</tr>
<tr>
<td align=center>R</td>
<td>References</td>
</tr>
<tr>
<td align=center>S</td>
<td>Character string</td>
@@ -687,6 +856,10 @@
<td><code>H5T_CRAY_F64</code></td>
<td>Eight-byte Cray floating point</td>
</tr>
<tr valign=top>
<td><code>H5T_STD_ROBJ</code></td>
<td>Reference to an entire object in a file</td>
</tr>
</table>
</center>
@@ -703,6 +876,10 @@
</tr>
<tr>
<td><code>H5T_NATIVE_CHAR</code></td>
<td><code>char</code></td>
</tr>
<tr>
<td><code>H5T_NATIVE_SCHAR</code></td>
<td><code>signed char</code></td>
</tr>
<tr>
@@ -753,6 +930,22 @@
<td><code>H5T_NATIVE_LDOUBLE</code></td>
<td><code>long double</code></td>
</tr>
<tr>
<td><code>H5T_NATIVE_HSIZE</code></td>
<td><code>hsize_t</code></td>
</tr>
<tr>
<td><code>H5T_NATIVE_HSSIZE</code></td>
<td><code>hssize_t</code></td>
</tr>
<tr>
<td><code>H5T_NATIVE_HERR</code></td>
<td><code>herr_t</code></td>
</tr>
<tr>
<td><code>H5T_NATIVE_HBOOL</code></td>
<td><code>hbool_t</code></td>
</tr>
</table>
</center>
@@ -799,7 +992,7 @@ H5Tset_size (str80, 80);
</table>
</center>
<h2>6. Defining Compound Data Types</h2>
<h2>7. Defining Compound Data Types</h2>
<p>Unlike atomic data types which are derived from other atomic
data types, compound data types are created from scratch. First,
@@ -955,7 +1148,21 @@ H5Tinsert (surf_id, "y", HOFFSET(surf_t,y), complex_id);
</table>
</center>
<h2>7. Sharing Data Types among Datasets</h2>
<a name="Datatypes_Enum">&nbsp;</a>
<h2>8. <a href="DatatypesEnum.html">Enumeration Data Types</a></h2>
An HDF5 enumeration data type is a 1:1 mapping between a set of
symbols and a set of integer values, and an order is imposed on
the symbols by their integer values. The symbols are passed
between the application and library as character strings and all
the values for a particular enumeration type are of the same
integer type, which is not necessarily a native type.
<p>
Details of enumeration data types and the related functions
are discussed on a separate
<a href="DatatypesEnum.html">Enumeration Data Types</a> page.
<h2>9. Sharing Data Types among Datasets</h2>
<p>If a file has lots of datasets which have a common data type
then the file could be made smaller by having all the datasets
@@ -1000,36 +1207,40 @@ hid_t dset4 = H5Dcreate (file, "dset4", t2, space, H5P_DEFAULT);
</table>
</center>
<h2>8. Data Conversion</h2>
<a name="Datatypes-DataConversion">
<h2>10. Data Conversion</h2>
</a>
<p>The library is capable of converting data from one type to
another and does so automatically when reading or writing the
raw data of a dataset. The data type interface does not provide
functions to the application for changing data types directly,
but the user is allowed a certain amount of control over the
conversion process.
raw data of a dataset, attribute data, or fill values. The
application can also change the type of data stored in an array.
<p>In order to insure that data conversion exceeds disk I/O rates,
common data conversion paths can be hand-tuned and optimized for
performance. If a hand-tuned conversion function is not
performance. The library contains very efficient code for
conversions between most native data types and a few non-native
data types, but if a hand-tuned conversion function is not
available, then the library falls back to a slower but more
general conversion function. Although conversion paths include
data space conversion, only data type conversions are described
here. Most applications will not be concerned with data type
conversions since the library will contain hand-tuned conversion
functions for many common conversion paths. In fact, if an
application does define a conversion function which would be of
general interest, we request that the function be submitted to
the HDF5 development team for inclusion in the library (there
might be less overhead involved with calling an internal
conversion functions than calling an application-defined
conversion function).
general conversion function. The application programmer can
define additional conversion functions when the libraries
repertoire is insufficient. In fact, if an application does
define a conversion function which would be of general interest,
we request that the function be submitted to the HDF5
development team for inclusion in the library.
<p><b>Note:</b> The alpha version of the library does not contain
a full set of conversions. It can convert from one integer
format to another and one struct to another. It can also
perform byte swapping when the source and destination types are
otherwise the same.
<p><b>Note:</b> The HDF5 library contains a deliberately limited
set of conversion routines. It can convert from one integer
format to another, from one floating point format to another,
and from one struct to another. It can also perform byte
swapping when the source and destination types are otherwise the
same. The library does not contain any functions for converting
data between integer and floating point formats. It is
anticipated that some users will find it necessary to develop
float to integer or integer to float conversion functions at the
application level; users are invited to submit those functions
to be considered for inclusion in future versions of the
library.
<p>A conversion path contains a source and destination data type
and each path contains a <em>hard</em> conversion function
@@ -1041,7 +1252,7 @@ hid_t dset4 = H5Dcreate (file, "dset4", t2, space, H5P_DEFAULT);
conversion path, then the hard function is favored and when
multiple soft functions apply, the one defined last is favored.
<p>A data conversion function is of type <code>H5T_conv_t</em>
<p>A data conversion function is of type <code>H5T_conv_t</code>
which is defined as:
<p>
@@ -1089,24 +1300,25 @@ typedef herr_t (*H5T_conv_t)(hid_t <em>src_type</em>,
<br><br>
<dt><code>H5T_CONV_CONV</code>
<dd>This is the usually command which indicates that
data points should be converted. The conversion function
should initialize the <code>priv</code> field of
<em>cdata</em> if it wasn't initialize during the
<code>H5T_CONV_INIT</code> command and then convert
<em>nelmts</em> instances of the <em>src_type</em> to the
<em>dst_type</em>. The <em>buffer</em> serves as both input
and output. The <em>background</em> buffer is supplied
according to the value of the <code>need_bkg</code> field of
<em>cdata</em> (the values are described below).
<dd>This command indicates that data points should be converted.
The conversion function should initialize the
<code>priv</code> field of <em>cdata</em> if it wasn't
initialize during the <code>H5T_CONV_INIT</code> command and
then convert <em>nelmts</em> instances of the
<em>src_type</em> to the <em>dst_type</em>. The
<em>buffer</em> serves as both input and output. The
<em>background</em> buffer is supplied according to the value
of the <code>need_bkg</code> field of <em>cdata</em> (the
values are described below).
<br><br>
<dt><code>H5T_CONV_FREE</code>
<dd>The conversion function is about to be removed from some
path and the private data (the
<code><em>cdata</em>->priv</code> pointer) should be freed and
set to null. All other pointer arguments are null and the
<em>nelmts</em> argument is zero.
set to null. All other pointer arguments are null, the
<em>src_type</em> and <em>dst_type</em> are invalid
(negative), and the <em>nelmts</em> argument is zero.
<br><br>
<dt><em>Others...</em>
@@ -1133,7 +1345,7 @@ typedef herr_t (*H5T_conv_t)(hid_t <em>src_type</em>,
initialized. This is useful for those functions requiring some
extra buffer space as the buffer can probably be allocated
more efficiently by the library (the application can supply
the buffer as part of the dataset transfer template).
the buffer as part of the dataset transfer property list).
<br><br>
<dt><code>H5T_BKG_YES</code>
@@ -1148,64 +1360,56 @@ typedef herr_t (*H5T_conv_t)(hid_t <em>src_type</em>,
destination.
</dl>
<p>Other fields of <em>cdata</em> can be read or written by
the conversion functions. Many of these contain
performance-measuring fields which can be printed by the
conversion function during the <code>H5T_CONV_FREE</code>
command which is issued whenever the function is removed from a
conversion path.
<dl>
<dt><code>hbool_t recalc</code>
<dd>This field is set by the library when any other data type
conversion function is registered or unregistered. It allows
conversion functions to cache pointers to other conversion
functions and be notified when the cache should be
recalculated.
<br><br>
<dt><code>unsigned long ncalls</code>
<dd>This field contains the number of times the conversion
function was called with the command
<code>H5T_CONV_CONV</code>. It is updated automatically by
the library.
<br><br>
<dt><code>unsigned long nelmts</code>
<dd>This is the total number of data points converted by this
function and is updated automatically by the library.
</dl>
<p>The <code>recalc</code> field of <em>cdata</em> is set when the
conversion path table changes. It can be used by conversion
function that cache other conversion paths so they know when
their cache needs to be recomputed.
<p>Once a conversion function is written it can be registered and
unregistered with these functions:
<dl>
<dt><code>herr_t H5Tregister_hard (const char *<em>name</em>,
hid_t <em>src_type</em>, hid_t <em>dest_type</em>,
H5T_conv_t <em>func</em>)</code>
<dt><code>herr_t H5Tregister(H5T_pers_t <em>pers</em>, const
char *<em>name</em>, hid_t <em>src_type</em>, hid_t
<em>dest_type</em>, H5T_conv_t <em>func</em>)</code>
<dd>Once a conversion function is written, the library must be
notified so it can be used. The function can be registered as a
hard conversion for one or more conversion paths by calling
<code>H5Tregister_hard()</code>, displacing any previous hard
conversion for those paths. The <em>name</em> is used only
for debugging but must be supplied.
notified so it can be used. The function can be registered as
a hard (<code>H5T_PERS_HARD</code>) or soft
(<code>H5T_PERS_SOFT</code>) conversion depending on the value
of <em>pers</em>, displacing any previous conversions for all
applicable paths. The <em>name</em> is used only for
debugging but must be supplied. If <em>pers</em> is
<code>H5T_PERS_SOFT</code> then only the type classes of the
<em>src_type</em> and <em>dst_type</em> are used. For
instance, to register a general soft conversion function that
can be applied to any integer to integer conversion one could
say: <code>H5Tregister(H5T_PERS_SOFT, "i2i", H5T_NATIVE_INT,
H5T_NATIVE_INT, convert_i2i)</code>. One special conversion
path called the "no-op" conversion path is always defined by
the library and used as the conversion function when no data
transformation is necessary. The application can redefine this
path by specifying a new hard conversion function with a
negative value for both the source and destination data types,
but the library might not call the function under certain
circumstances.
<br><br>
<dt><code>herr_t H5Tregister_soft (const char *<em>name</em>,
H5T_class_t <em>src_class</em>, H5T_class_t <em>dest_class</em>,
H5T_conv_t <em>func</em>)</code>
<dd>The function can be registered as a generic function which
will be automatically added to any conversion path for which
it returns an indication that it applies. The name is used
only for debugging but must be supplied.
<br><br>
<dt><code>herr_t H5Tunregister (H5T_conv_t <em>func</em>)</code>
<dd>A function can be removed from the set of known conversion
functions by calling <code>H5Tunregister()</code>. The
function is removed from all conversion paths.
<dt><code>herr_t H5Tunregister (H5T_pers_t <em>pers</em>, const
char *<em>name</em>, hid_t <em>src_type</em>, hid_t
<em>dest_type</em>, H5T_conv_t <em>func</em>)</code>
<dd>Any conversion path or function that matches the critera
specified by a call to this function is removed from the type
conversion table. All fields have the same interpretation as
for <code>H5Tregister()</code> with the added feature that any
(or all) may be wild cards. The
<code>H5T_PERS_DONTCARE</code> constant should be used to
indicate a wild card for the <em>pers</em> argument. The wild
card <em>name</em> is the null pointer or empty string, the
wild card for the <em>src_type</em> and <em>dest_type</em>
arguments is any negative value, and the wild card for the
<em>func</em> argument is the null pointer. The special no-op
conversion path is never removed by this function.
</dl>
<p>
@@ -1334,7 +1538,9 @@ typedef herr_t (*H5T_conv_t)(hid_t <em>src_type</em>,
paths it can handle.
<p><code><pre>
H5Tregister_soft ("cus2be", H5T_INTEGER, H5T_INTEGER, cray_ushort2be);
H5Tregister(H5T_PERS_SOFT, "cus2be",
H5T_NATIVE_INT, H5T_NATIVE_INT,
cray_ushort2be);
</pre></code>
<p>This causes it to be consulted for any conversion
@@ -1359,12 +1565,76 @@ H5Tregister_soft ("cus2be", H5T_INTEGER, H5T_INTEGER, cray_ushort2be);
conversion path whether that conversion path was actually used
or not.
<hr>
<address><a href="mailto:matzke@llnl.gov">Robb Matzke</a></address>
<address><a href="mailto:koziol@ncsa.uiuc.edu">Quincey Koziol</a></address>
<hr>
<center>
<table border=0 width=98%>
<tr><td valign=top align=left>
<a href="H5.intro.html">Introduction to HDF5</a>&nbsp;<br>
<a href="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<br>
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
Data Types&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
<hr>
<address>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
</address>
<!-- Created: Thu Dec 4 14:57:32 EST 1997 -->
<!-- hhmts start -->
Last modified: Thu Jun 18 13:59:12 EDT 1998
Last modified: Fri Jun 4 16:14:04 EDT 1999
<!-- hhmts end -->
</body>
</body>
</html>

921
doc/html/DatatypesEnum.html Normal file
View File

@@ -0,0 +1,921 @@
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<title>Enumeration Data Types in the Data Type Interface (H5T)</title>
</head>
<body bgcolor="#FFFFFF">
<hr>
<center>
<table border=0 width=98%>
<tr><td valign=top align=left>
<a href="H5.intro.html">Introduction to HDF5</a>&nbsp;<br>
<a href="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<br>
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
<hr>
<h1>The Data Type Interface (H5T) <font size=-1><i>(contitnued)</i></font></h1>
<p align=right><font size=-1><i>
(Return to <a href="Datatypes.html#Datatypes_Enum">Data Types Interface (H5T)</a>.)
</font></i>
<h2>7. Enumeration Data Types</h2>
<h3>7.1. Introduction</h2>
<p>An HDF enumeration data type is a 1:1 mapping between a set of
symbols and a set of integer values, and an order is imposed on
the symbols by their integer values. The symbols are passed
between the application and library as character strings and all
the values for a particular enumeration type are of the same
integer type, which is not necessarily a native type.
<h3>7.2. Creation</h2>
<p>Creation of an enumeration data type resembles creation of a
compound data type: first an empty enumeration type is created,
then members are added to the type, then the type is optionally
locked.
<dl>
<dt><code>hid_t H5Tcreate(H5T_class_t <em>type_class</em>,
size_t <em>size</em>)</code>
<dd>This function creates a new empty enumeration data type based
on a native signed integer type. The first argument is the
constant <code>H5T_ENUM</code> and the second argument is the
size in bytes of the native integer on which the enumeration
type is based. If the architecture does not support a native
signed integer of the specified size then an error is
returned.
<pre>
/* Based on a native signed short */
hid_t hdf_en_colors = H5Tcreate(H5T_ENUM, sizeof(short));</pre>
<dt><code>hid_t H5Tenum_create(hid_t <em>base</em>)</code>
<dd>This function creates a new empty enumeration data type based
on some integer data type <em>base</em> and is a
generalization of the <code>H5Tcreate()</code> function. This
function is useful when creating an enumeration type based on
some non-native integer data type, but it can be used for
native types as well.
<pre>
/* Based on a native unsigned short */
hid_t hdf_en_colors_1 = H5Tenum_create(H5T_NATIVE_USHORT);
/* Based on a MIPS 16-bit unsigned integer */
hid_t hdf_en_colors_2 = H5Tenum_create(H5T_MIPS_UINT16);
/* Based on a big-endian 16-bit unsigned integer */
hid_t hdf_en_colors_3 = H5Tenum_create(H5T_STD_U16BE);</pre>
<dt><code>herr_t H5Tenum_insert(hid_t <em>etype</em>, const char
*<em>symbol</em>, void *<em>value</em>)</code>
<dd>Members are inserted into the enumeration data type
<em>etype</em> with this function. Each member has a symbolic
name <em>symbol</em> and some integer representation
<em>value</em>. The <em>value</em> argument must point to a value
of the same data type as specified when the enumeration type
was created. The order of member insertion is not important
but all symbol names and values must be unique within a
particular enumeration type.
<pre>
short val;
H5Tenum_insert(hdf_en_colors, "RED", (val=0,&amp;val));
H5Tenum_insert(hdf_en_colors, "GREEN", (val=1,&amp;val));
H5Tenum_insert(hdf_en_colors, "BLUE", (val=2,&amp;val));
H5Tenum_insert(hdf_en_colors, "WHITE", (val=3,&amp;val));
H5Tenum_insert(hdf_en_colors, "BLACK", (val=4,&amp;val));</pre>
<dt><code>herr_t H5Tlock(hid_t <em>etype</em>)</code>
<dd>This function locks a data type so it cannot be modified or
freed unless the entire HDF5 library is closed. Its use is
completely optional but using it on an application data type
makes that data type act like a predefined data type.
<pre>
H5Tlock(hdf_en_colors);</pre>
</dl>
<h3>7.3. Integer Operations</h2>
<p>Because an enumeration data type is derived from an integer
data type, any operation which can be performed on integer data
types can also be performed on enumeration data types. This
includes:
<p>
<center>
<table>
<tr>
<td><code>H5Topen()</code></td>
<td><code>H5Tcreate()</code></td>
<td><code>H5Tcopy()</code></td>
<td><code>H5Tclose()</code></td>
</tr><tr>
<td><code>H5Tequal()</code></td>
<td><code>H5Tlock()</code></td>
<td><code>H5Tcommit()</code></td>
<td><code>H5Tcommitted()</code></td>
</tr><tr>
<td><code>H5Tget_class()</code></td>
<td><code>H5Tget_size()</code></td>
<td><code>H5Tget_order()</code></td>
<td><code>H5Tget_pad()</code></td>
</tr><tr>
<td><code>H5Tget_precision()</code></td>
<td><code>H5Tget_offset()</code></td>
<td><code>H5Tget_sign()</code></td>
<td><code>H5Tset_size()</code></td>
</tr><tr>
<td><code>H5Tset_order()</code></td>
<td><code>H5Tset_precision()</code></td>
<td><code>H5Tset_offset()</code></td>
<td><code>H5Tset_pad()</code></td>
</tr><tr>
<td><code>H5Tset_sign()</code></td>
</tr>
</table>
</center>
<p>In addition, the new function <code>H5Tget_super()</code> will
be defined for all data types that are derived from existing
types (currently just enumeration types).
<dl>
<dt><code>hid_t H5Tget_super(hid_t <em>type</em>)</code>
<dd>Return the data type from which <em>type</em> is
derived. When <em>type</em> is an enumeration data type then
the returned value will be an integer data type but not
necessarily a native type. One use of this function would be
to create a new enumeration type based on the same underlying
integer type and values but with possibly different symbols.
<pre>
hid_t itype = H5Tget_super(hdf_en_colors);
hid_t hdf_fr_colors = H5Tenum_create(itype);
H5Tclose(itype);
short val;
H5Tenum_insert(hdf_fr_colors, "ouge", (val=0,&amp;val));
H5Tenum_insert(hdf_fr_colors, "vert", (val=1,&amp;val));
H5Tenum_insert(hdf_fr_colors, "bleu", (val=2,&amp;val));
H5Tenum_insert(hdf_fr_colors, "blanc", (val=3,&amp;val));
H5Tenum_insert(hdf_fr_colors, "noir", (val=4,&amp;val));
H5Tlock(hdf_fr_colors);</pre>
</dl>
<h3>7.4. Type Functions</h2>
<p>A small set of functions is available for querying properties
of an enumeration type. These functions are likely to be used
by browsers to display data type information.
<dl>
<dt><code>int H5Tget_nmembers(hid_t <em>etype</em>)</code>
<dd>When given an enumeration data type <em>etype</em> this
function returns the number of members defined for that
type. This function is already implemented for compound data
types.
<br><br>
<dt><code>char *H5Tget_member_name(hid_t <em>etype</em>, int
<em>membno</em>)</code>
<dd>Given an enumeration data type <em>etype</em> this function
returns the symbol name for the member indexed by
<em>membno</em>. Members are numbered from zero to
<em>N</em>-1 where <em>N</em> is the return value from
<code>H5Tget_nmembers()</code>. The members are stored in no
particular order. This function is already implemented for
compound data types. If an error occurs then the null pointer
is returned. The return value should be freed by calling
<code>free()</code>.
<br><br>
<dt><code>herr_t H5Tget_member_value(hid_t <em>etype</em>, int
<em>membno</em>, void *<em>value</em>/*out*/)</code>
<dd>Given an enumeration data type <em>etype</em> this function
returns the value associated with the member indexed by
<em>membno</em> (as described for
<code>H5Tget_member_name()</code>). The value returned
is in the domain of the underlying integer
data type which is often a native integer type. The
application should ensure that the memory pointed to by
<em>value</em> is large enough to contain the result (the size
can be obtained by calling <code>H5Tget_size()</code> on
either the enumeration type or the underlying integer type
when the type is not known by the C compiler.
<pre>
int i, n = H5Tget_nmembers(hdf_en_colors);
for (i=0; i&lt;n; i++) {
char *symbol = H5Tget_member_name(hdf_en_colors, i);
short val;
H5Tget_member_value(hdf_en_colors, i, &amp;val);
printf("#%d %20s = %d\n", i, symbol, val);
free(symbol);
}</pre>
<p>
Output:
<pre>
#0 BLACK = 4
#1 BLUE = 2
#2 GREEN = 1
#3 RED = 0
#4 WHITE = 3</pre>
</dl>
<h3>7.5. Data Functions</h2>
<p>In addition to querying about the enumeration type properties,
an application may want to make queries about enumerated
data. These functions perform efficient mappings between symbol
names and values.
<dl>
<dt><code>herr_t H5Tenum_valueof(hid_t <em>etype</em>, const char
*<em>symbol</em>, void *<em>value</em>/*out*/)</code>
<dd>Given an enumeration data type <em>etype</em> this function
returns through <em>value</em> the bit pattern associated with
the symbol name <em>symbol</em>. The <em>value</em> argument
should point to memory which is large enough to hold the result,
which is returned as the underlying integer data type specified
when the enumeration type was created, often a native integer
type.
<br><br>
<dt><code>herr_t H5Tenum_nameof(hid_t <em>etype</em>, void
*<em>value</em>, char *<em>symbol</em>, size_t
<em>size</em>)</code>
<dd>This function translates a bit pattern pointed to by
<em>value</em> to a symbol name according to the mapping
defined in the enumeration data type <em>etype</em> and stores
at most <em>size</em> characters of that name (counting the
null terminator) to the <em>symbol</em> buffer. If the name is
longer than the result buffer then the result is not null
terminated and the function returns failure. If <em>value</em>
points to a bit pattern which is not in the domain of the
enumeration type then the first byte of the <em>symbol</em>
buffer is set to zero and the function fails.
<pre>
short data[1000] = {4, 2, 0, 0, 5, 1, ...};
int i;
char symbol[32];
for (i=0; i<1000; i++) {
if (H5Tenum_nameof(hdf_en_colors, data+i, symbol,
sizeof symbol))&lt;0) {
if (symbol[0]) {
strcpy(symbol+sizeof(symbol)-4, "...");
} else {
strcpy(symbol, "UNKNOWN");
}
}
printf("%d %s\n", data[i], symbol);
}
printf("}\n");</pre>
<p>
Output:
<pre>
4 BLACK
2 BLUE
0 RED
0 RED
5 UNKNOWN
1 GREEN
...</pre>
</dl>
<h3>7.6. Conversion</h2>
<p>Enumerated data can be converted from one type to another
provided the destination enumeration type contains all the
symbols of the source enumeration type. The conversion operates
by matching up the symbol names of the source and destination
enumeration types to build a mapping from source value to
destination value. For instance, if we are translating from an
enumeration type that defines a sequence of integers as the
values for the colors to a type that defines a different bit for
each color then the mapping might look like this:
<p><img src="EnumMap.gif" alt="Enumeration Mapping">
<p>That is, a source value of <code>2</code> which corresponds to
<code>BLUE</code> would be mapped to <code>0x0004</code>. The
following code snippet builds the second data type, then
converts a raw data array from one data type to another, and
then prints the result.
<pre>
/* Create a new enumeration type */
short val;
hid_t bits = H5Tcreate(H5T_ENUM, sizeof val);
H5Tenum_insert(bits, "RED", (val=0x0001,&amp;val));
H5Tenum_insert(bits, "GREEN", (val=0x0002,&amp;val));
H5Tenum_insert(bits, "BLUE", (val=0x0004,&amp;val));
H5Tenum_insert(bits, "WHITE", (val=0x0008,&amp;val));
H5Tenum_insert(bits, "BLACK", (val=0x0010,&amp;val));
/* The data */
short data[6] = {1, 4, 2, 0, 3, 5};
/* Convert the data from one type to another */
H5Tconvert(hdf_en_colors, bits, 5, data, NULL);
/* Print the data */
for (i=0; i&lt;6; i++) {
printf("0x%04x\n", (unsigned)(data[i]));
}</pre>
<p>
Output:
<pre>
0x0002
0x0010
0x0004
0x0001
0x0008
0xffff</pre>
<p>If the source data stream contains values which are not in the
domain of the conversion map then an overflow exception is
raised within the library, causing the application defined
overflow handler to be invoked (see
<code>H5Tset_overflow()</code>). If no overflow handler is
defined then all bits of the destination value will be set.
<p>The HDF library will not provide conversions between enumerated
data and integers although the application is free to do so
(this is a policy we apply to all classes of HDF data
types). However, since enumeration types are derived from
integer types it is permissible to treat enumerated data as
integers and perform integer conversions in that context.
<h3>7.7. Symbol Order</h2>
<p>Symbol order is determined by the integer values associated
with each symbol. When the integer data type is a native type,
testing the relative order of two symbols is an easy process:
simply compare the values of the symbols. If only the symbol
names are available then the values must first be determined by
calling <code>H5Tenum_valueof()</code>.
<pre>
short val1, val2;
H5Tenum_valueof(hdf_en_colors, "WHITE", &amp;val1);
H5Tenum_valueof(hdf_en_colors, "BLACK", &amp;val2);
if (val1 &lt; val2) ...</pre>
<p>When the underlying integer data type is not a native type then
the easiest way to compare symbols is to first create a similar
enumeration type that contains all the same symbols but has a
native integer type (HDF type conversion features can be used to
convert the non-native values to native values). Once we have a
native type we can compare symbol order as just described. If
<code>foreign</code> is some non-native enumeration type then a
native type can be created as follows:
<pre>
int n = H5Tget_nmembers(foreign);
hid_t itype = H5Tget_super(foreign);
void *val = malloc(n * MAX(H5Tget_size(itype), sizeof(int)));
char *name = malloc(n * sizeof(char*));
int i;
/* Get foreign type information */
for (i=0; i&lt;n; i++) {
name[i] = H5Tget_member_name(foreign, i);
H5Tget_member_value(foreign, i,
(char*)val+i*H5Tget_size(foreign));
}
/* Convert integer values to new type */
H5Tconvert(itype, H5T_NATIVE_INT, n, val, NULL);
/* Build a native type */
hid_t native = H5Tenum_create(H5T_NATIVE_INT);
for (i=0; i&lt;n; i++) {
H5Tenum_insert(native, name[i], ((int*)val)[i]);
free(name[i]);
}
free(name);
free(val);</pre>
<p>It is also possible to convert enumerated data to a new type
that has a different order defined for the symbols. For
instance, we can define a new type, <code>reverse</code> that
defines the same five colors but in the reverse order.
<pre>
short val;
int i;
char sym[8];
short data[5] = {0, 1, 2, 3, 4};
hid_t reverse = H5Tenum_create(H5T_NATIVE_SHORT);
H5Tenum_insert(reverse, "BLACK", (val=0,&amp;val));
H5Tenum_insert(reverse, "WHITE", (val=1,&amp;val));
H5Tenum_insert(reverse, "BLUE", (val=2,&amp;val));
H5Tenum_insert(reverse, "GREEN", (val=3,&amp;val));
H5Tenum_insert(reverse, "RED", (val=4,&amp;val));
/* Print data */
for (i=0; i<5; i++) {
H5Tenum_nameof(hdf_en_colors, data+i, sym, sizeof sym);
printf ("%d %s\n", data[i], sym);
}
puts("Converting...");
H5Tconvert(hdf_en_colors, reverse, 5, data, NULL);
/* Print data */
for (i=0; i<5; i++) {
H5Tenum_nameof(reverse, data+i, sym, sizeof sym);
printf ("%d %s\n", data[i], sym);
}</pre>
<p>
Output:
<pre>
0 RED
1 GREEN
2 BLUE
3 WHITE
4 BLACK
Converting...
4 RED
3 GREEN
2 BLUE
1 WHITE
0 BLACK</pre>
<h3>7.8. Equality</h2>
<p>The order that members are inserted into an enumeration type is
unimportant; the important part is the associations between the
symbol names and the values. Thus, two enumeration data types
will be considered equal if and only if both types have the same
symbol/value associations and both have equal underlying integer
data types. Type equality is tested with the
<code>H5Tequal()</code> function.
<h3>7.9. Interacting with C's <code>enum</code> Type</h2>
<p>Although HDF enumeration data types are similar to C
<code>enum</code> data types, there are some important
differences:
<p>
<center>
<table border width="80%">
<tr>
<th>Difference</th>
<th>Motivation/Implications</th>
</tr>
<tr>
<td valign=top>Symbols are unquoted in C but quoted in
HDF.</td>
<td valign=top>This allows the application to manipulate
symbol names in ways that are not possible with C.</td>
</tr>
<tr>
<td valign=top>The C compiler automatically replaces all
symbols with their integer values but HDF requires
explicit calls to do the same.</td>
<td valign=top>C resolves symbols at compile time while
HDF resolves symbols at run time.</td>
</tr>
<tr>
<td valign=top>The mapping from symbols to integers is
<em>N</em>:1 in C but 1:1 in HDF.</td>
<td valign=top>HDF can translate from value to name
uniquely and large <code>switch</code> statements are
not necessary to print values in human-readable
format.</td>
</tr>
<tr>
<td valign=top>A symbol must appear in only one C
<code>enum</code> type but may appear in multiple HDF
enumeration types.</td>
<td valign=top>The translation from symbol to value in HDF
requires the data type to be specified while in C the
data type is not necessary because it can be inferred
from the symbol.</td>
</tr>
<tr>
<td valign=top>The underlying integer value is always a
native integer in C but can be a foreign integer type in
HDF.</td>
<td valign=top>This allows HDF to describe data that might
reside on a foreign architecture, such as data stored in
a file.</td>
</tr>
<tr>
<td valign=top>The sign and size of the underlying integer
data type is chosen automatically by the C compiler but
must be fully specified with HDF.</td>
<td valign=top>Since HDF doesn't require finalization of a
data type, complete specification of the type must be
supplied before the type is used. Requiring that
information at the time of type creation was a design
decision to simplify the library.</td>
</tr>
</table>
</center>
<p>The examples below use the following C data types:
<p>
<table width="90%" bgcolor="white">
<tr>
<td>
<code><pre>
/* English color names */
typedef enum {
RED,
GREEN,
BLUE,
WHITE,
BLACK
} c_en_colors;
/* Spanish color names, reverse order */
typedef enum {
NEGRO
BLANCO,
AZUL,
VERDE,
ROJO,
} c_sp_colors;
/* No enum definition for French names */
</pre></code>
</td>
</tr>
</table>
<h4>Creating HDF Types from C Types</h3>
<p>An HDF enumeration data type can be created from a C
<code>enum</code> type simply by passing pointers to the C
<code>enum</code> values to <code>H5Tenum_insert()</code>. For
instance, to create HDF types for the <code>c_en_colors</code>
type shown above:
<p>
<table width="90%" bgcolor="white">
<tr>
<td>
<code><pre>
c_en_colors val;
hid_t hdf_en_colors = H5Tcreate(H5T_ENUM, sizeof(c_en_colors));
H5Tenum_insert(hdf_en_colors, "RED", (val=RED, &amp;val));
H5Tenum_insert(hdf_en_colors, "GREEN", (val=GREEN,&amp;val));
H5Tenum_insert(hdf_en_colors, "BLUE", (val=BLUE, &amp;val));
H5Tenum_insert(hdf_en_colors, "WHITE", (val=WHITE,&amp;val));
H5Tenum_insert(hdf_en_colors, "BLACK", (val=BLACK,&amp;val));</pre></code>
</td>
</tr>
</table>
<h4>Name Changes between Applications</h3>
<p>Occassionally two applicatons wish to exchange data but they
use different names for the constants they exchange. For
instance, an English and a Spanish program may want to
communicate color names although they use different symbols in
the C <code>enum</code> definitions. The communication is still
possible although the applications must agree on common terms
for the colors. The following example shows the Spanish code to
read the values assuming that the applications have agreed that
the color information will be exchanged using Enlish color
names:
<p>
<table width="90%" bgcolor="white">
<tr>
<td>
<code><pre>
c_sp_colors val, data[1000];
hid_t hdf_sp_colors = H5Tcreate(H5T_ENUM, sizeof(c_sp_colors));
H5Tenum_insert(hdf_sp_colors, "RED", (val=ROJO, &amp;val));
H5Tenum_insert(hdf_sp_colors, "GREEN", (val=VERDE, &amp;val));
H5Tenum_insert(hdf_sp_colors, "BLUE", (val=AZUL, &amp;val));
H5Tenum_insert(hdf_sp_colors, "WHITE", (val=BLANCO, &amp;val));
H5Tenum_insert(hdf_sp_colors, "BLACK", (val=NEGRO, &amp;val));
H5Dread(dataset, hdf_sp_colors, H5S_ALL, H5S_ALL, H5P_DEFAULT, data);</pre></code>
</td>
</tr>
</table>
<h4>Symbol Ordering across Applications</h3>
<p>Since symbol ordering is completely determined by the integer values
assigned to each symbol in the <code>enum</code> definition,
ordering of <code>enum</code> symbols cannot be preserved across
files like with HDF enumeration types. HDF can convert from one
application's integer values to the other's so a symbol in one
application's C <code>enum</code> gets mapped to the same symbol
in the other application's C <code>enum</code>, but the relative
order of the symbols is not preserved.
<p>For example, an application may be defined to use the
definition of <code>c_en_colors</code> defined above where
<code>WHITE</code> is less than <code>BLACK</code>, but some
other application might define the colors in some other
order. If each application defines an HDF enumeration type based
on that application's C <code>enum</code> type then HDF will
modify the integer values as data is communicated from one
application to the other so that a <code>RED</code> value
in the first application is also a <code>RED</code> value in the
other application.
<p>A case of this reordering of symbol names was also shown in the
previous code snippet (as well as a change of language), where
HDF changed the integer values so 0 (<code>RED</code>) in the
input file became 4 (<code>ROJO</code>) in the <code>data</code>
array. In the input file, <code>WHITE</code> was less than
<code>BLACK</code>; in the application the opposite is true.
<p>In fact, the ability to change the order of symbols is often
convenient when the enumeration type is used only to group
related symbols that don't have any well defined order
relationship.
<h4>Internationalization</h3>
<p>The HDF enumeration type conversion features can also be used
to provide internationalization of debugging output. A program
written with the <code>c_en_colors</code> data type could define
a separate HDF data type for languages such as English, Spanish,
and French and cast the enumerated value to one of these HDF
types to print the result.
<p>
<table width="90%" bgcolor="white">
<tr>
<td>
<code><pre>
c_en_colors val, *data=...;
hid_t hdf_sp_colors = H5Tcreate(H5T_ENUM, sizeof val);
H5Tenum_insert(hdf_sp_colors, "ROJO", (val=RED, &amp;val));
H5Tenum_insert(hdf_sp_colors, "VERDE", (val=GREEN, &amp;val));
H5Tenum_insert(hdf_sp_colors, "AZUL", (val=BLUE, &amp;val));
H5Tenum_insert(hdf_sp_colors, "BLANCO", (val=WHITE, &amp;val));
H5Tenum_insert(hdf_sp_colors, "NEGRO", (val=BLACK, &amp;val));
hid_t hdf_fr_colors = H5Tcreate(H5T_ENUM, sizeof val);
H5Tenum_insert(hdf_fr_colors, "OUGE", (val=RED, &amp;val));
H5Tenum_insert(hdf_fr_colors, "VERT", (val=GREEN, &amp;val));
H5Tenum_insert(hdf_fr_colors, "BLEU", (val=BLUE, &amp;val));
H5Tenum_insert(hdf_fr_colors, "BLANC", (val=WHITE, &amp;val));
H5Tenum_insert(hdf_fr_colors, "NOIR", (val=BLACK, &amp;val));
void
nameof(lang_t language, c_en_colors val, char *name, size_t size)
{
switch (language) {
case ENGLISH:
H5Tenum_nameof(hdf_en_colors, &amp;val, name, size);
break;
case SPANISH:
H5Tenum_nameof(hdf_sp_colors, &amp;val, name, size);
break;
case FRENCH:
H5Tenum_nameof(hdf_fr_colors, &amp;val, name, size);
break;
}
}</pre></code>
</td>
</tr>
</table>
<h3>7.10. Goals That Have Been Met</h2>
<p>The main goal of enumeration types is to provide communication
of enumerated data using symbolic equivalence. That is, a
symbol written to a dataset by one application should be read as
the same symbol by some other application.
<p>
<table width="90%">
<tr>
<td valign=top><b>Architecture Independence</b></td>
<td valign=top>Two applications shall be able to exchange
enumerated data even when the underlying integer values
have different storage formats. HDF accomplishes this for
enumeration types by building them upon integer types.</td>
</tr>
<tr>
<td valign=top><b>Preservation of Order Relationship</b></td>
<td valign=top>The relative order of symbols shall be
preserved between two applications that use equivalent
enumeration data types. Unlike numeric values that have
an implicit ordering, enumerated data has an explicit
order defined by the enumeration data type and HDF
records this order in the file.</td>
</tr>
<tr>
<td valign=top><b>Order Independence</b></td>
<td valign=top>An application shall be able to change the
relative ordering of the symbols in an enumeration data
type. This is accomplished by defining a new type with
different integer values and converting data from one type
to the other.</td>
</tr>
<tr>
<td valign=top><b>Subsets</b></td>
<td valign=top>An application shall be able to read
enumerated data from an archived dataset even after the
application has defined additional members for the
enumeration type. An application shall be able to write
to a dataset when the dataset contains a superset of the
members defined by the application. Similar rules apply
for in-core conversions between enumerated data
types.</td>
</tr>
<tr>
<td valign=top><b>Targetable</b></td>
<td valign=top>An application shall be able to target a
particular architecture or application when storing
enumerated data. This is accomplished by allowing
non-native underlying integer types and converting the
native data to non-native data.</td>
</tr>
<tr>
<td valign=top><b>Efficient Data Transfer</b></td>
<td valign=top>An application that defines a file dataset
that corresponds to some native C enumerated data array
shall be able to read and write to that dataset directly
using only Posix read and write functions. HDF already
optimizes this case for integers, so the same optimization
will apply to enumerated data.
</tr>
<tr>
<td valign=top><b>Efficient Storage</b></td>
<td valign=top>Enumerated data shall be stored in a manner
which is space efficient. HDF stores the enumerated data
as integers and allows the application to chose the size
and format of those integers.</td>
</tr>
</table>
<p align=right><font size=-1><i>
(Return to <a href="Datatypes.html#Datatypes_Enum">Data Types Interface (H5T)</a>.)
</font></i>
<hr>
<center>
<table border=0 width=98%>
<tr><td valign=top align=left>
<a href="H5.intro.html">Introduction to HDF5</a>&nbsp;<br>
<a href="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<br>
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
Data Types&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
<hr>
<address>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
</address>
<!-- Created: Thu Dec 4 14:57:32 EST 1997 -->
<!-- hhmts start -->
Last modified: 30 April 1999
<!-- hhmts end -->
</body>
</html>

544
doc/html/Debugging.html Normal file
View File

@@ -0,0 +1,544 @@
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<title>Debugging HDF5 Applications</title>
</head>
<body bgcolor="#FFFFFF">
<hr>
<center>
<table border=0 width=98%>
<tr><td valign=top align=left>
<a href="H5.intro.html">Introduction to HDF5</a>&nbsp;<br>
<a href="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<br>
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
Debugging&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
<hr>
<h1>Debugging HDF5 Applications</h1>
<h2>Introduction</h2>
<p>The HDF5 library contains a number of debugging features to
make programmers' lives easier including the ability to print
detailed error messages, check invariant conditions, display
timings and other statistics, and trace API function calls and
return values.
<dl>
<dt><b>Error Messages</b>
<dd>Error messages are normally displayed automatically on the
standard error stream and include a stack trace of the library
including file names, line numbers, and function names. The
application has complete control over how error messages are
displayed and can disable the display on a permanent or
temporary basis. Refer to the documentation for the H5E error
handling package.
<br><br>
<dt><b>Invariant Conditions</b>
<dd>Unless <code>NDEBUG</code> is defined during compiling, the
library will include code to verify that invariant conditions
have the expected values. When a problem is detected the
library will display the file and line number within the
library and the invariant condition that failed. A core dump
may be generated for post mortem debugging. The code to
perform these checks can be included on a per-package bases.
<br><br>
<dt><b>Timings and Statistics</b>
<dd>The library can be configured to accumulate certain
statistics about things like cache performance, data type
conversion, data space conversion, and data filters. The code
is included on a per-package basis and enabled at runtime by
an environment variable.
<br><br>
<dt><b>API Tracing</b>
<dd>All API calls made by an application can be displayed and
include formal argument names and actual values and the
function return value. This code is also conditionally
included at compile time and enabled at runtime.
</dl>
<p>The statistics and tracing can be displayed on any output
stream (including streams opened by the shell) with output from
different packages even going to different streams.
<h2>Error Messages</h2>
<p>By default any API function that fails will print an error
stack to the standard error stream.
<p>
<center>
<table border align=center width="100%">
<tr>
<td>
<p><code><pre>
HDF5-DIAG: Error detected in thread 0. Back trace follows.
#000: H5F.c line 1245 in H5Fopen(): unable to open file
major(04): File interface
minor(10): Unable to open file
#001: H5F.c line 846 in H5F_open(): file does not exist
major(04): File interface
minor(10): Unable to open file
</code></pre>
</td>
</tr>
</table>
</center>
<p>The error handling package (H5E) is described
<a href="Errors.html">elsewhere</a>.
<h2>Invariant Conditions</h2>
<p>To include checks for invariant conditions the library should
be configured with <code>--disable-production</code>, the
default for versions before 1.2. The library designers have made
every attempt to handle error conditions gracefully but an
invariant condition assertion may fail in certain cases. The
output from a failure usually looks something like this:
<p>
<center>
<table border align=center width="100%">
<tr>
<td>
<p><code><pre>
Assertion failed: H5.c:123: i&lt;NELMTS(H5_debug_g)
IOT Trap, core dumped.
</code></pre>
</td>
</tr>
</table>
</center>
<h2>Timings and Statistics</h2>
<p>Code to accumulate statistics is included at compile time by
using the <code>--enable-debug</code> configure switch. The
switch can be followed by an equal sign and a comma-separated
list of package names or else a default list is used.
<p>
<center>
<table border align=center width="80%">
<tr>
<th>Name</th>
<th>Default</th>
<th>Description</th>
</tr>
<tr>
<td align=center>a</td>
<td align=center>No</td>
<td>Attributes</td>
</tr>
<tr>
<td align=center>ac</td>
<td align=center>Yes</td>
<td>Meta data cache</td>
</tr>
<tr>
<td align=center>b</td>
<td align=center>Yes</td>
<td>B-Trees</td>
</tr>
<tr>
<td align=center>d</td>
<td align=center>Yes</td>
<td>Datasets</td>
</tr>
<tr>
<td align=center>e</td>
<td align=center>Yes</td>
<td>Error handling</td>
</tr>
<tr>
<td align=center>f</td>
<td align=center>Yes</td>
<td>Files</td>
</tr>
<tr>
<td align=center>g</td>
<td align=center>Yes</td>
<td>Groups</td>
</tr>
<tr>
<td align=center>hg</td>
<td align=center>Yes</td>
<td>Global heap</td>
</tr>
<tr>
<td align=center>hl</td>
<td align=center>No</td>
<td>Local heaps</td>
</tr>
<tr>
<td align=center>i</td>
<td align=center>Yes</td>
<td>Interface abstraction</td>
</tr>
<tr>
<td align=center>mf</td>
<td align=center>No</td>
<td>File memory management</td>
</tr>
<tr>
<td align=center>mm</td>
<td align=center>Yes</td>
<td>Library memory managment</td>
</tr>
<tr>
<td align=center>o</td>
<td align=center>No</td>
<td>Object headers and messages</td>
</tr>
<tr>
<td align=center>p</td>
<td align=center>Yes</td>
<td>Property lists</td>
</tr>
<tr>
<td align=center>s</td>
<td align=center>Yes</td>
<td>Data spaces</td>
</tr>
<tr>
<td align=center>t</td>
<td align=center>Yes</td>
<td>Data types</td>
</tr>
<tr>
<td align=center>v</td>
<td align=center>Yes</td>
<td>Vectors</td>
</tr>
<tr>
<td align=center>z</td>
<td align=center>Yes</td>
<td>Raw data filters</td>
</tr>
</table>
</center>
<p>In addition to including the code at compile time the
application must enable each package at runtime. This is done
by listing the package names in the <code>HDF5_DEBUG</code>
environment variable. That variable may also contain file
descriptor numbers (the default is `2') which control the output
for all following packages up to the next file number. The
word <code>all</code> refers to all packages. Any word my be
preceded by a minus sign to turn debugging off for the package.
<p>
<center>
<table border align=center width="100%">
<caption align=top><b>Sample debug specifications</b></caption>
<tr valign=top>
<td><code>all</code></td>
<td>This causes debugging output from all packages to be
sent to the standard error stream.</td>
</tr>
<tr valign=top>
<td><code>all -t -s</code></td>
<td>Debugging output for all packages except data types
and data spaces will appear on the standard error
stream.</td>
</tr>
<tr valign=top>
<td><code>-all ac 255 t,s</code></td>
<td>This disables all debugging even if the default was to
debug something, then output from the meta data cache is
send to the standard error stream and output from data
types and spaces is sent to file descriptor 255 which
should be redirected by the shell.</td>
</tr>
</table>
</center>
<p>The components of the <code>HDF5_DEBUG</code> value may be
separated by any non-lowercase letter.
<h2>API Tracing</h2>
<p>The HDF5 library can trace API calls by printing the
function name, the argument names and their values, and the
return value. Some people like to see lots of output during
program execution instead of using a good symbolic debugger, and
this feature is intended for their consumption. For example,
the output from <code>h5ls foo</code> after turning on tracing,
includes:
<p>
<center>
<table border align=center width="100%">
<tr>
<td>
<code><pre>
H5Tcopy(type=184549388) = 184549419 (type);
H5Tcopy(type=184549392) = 184549424 (type);
H5Tlock(type=184549424) = SUCCEED;
H5Tcopy(type=184549393) = 184549425 (type);
H5Tlock(type=184549425) = SUCCEED;
H5Fopen(filename="foo", flags=0, access=H5P_DEFAULT) = FAIL;
HDF5-DIAG: Error detected in thread 0. Back trace follows.
#000: H5F.c line 1245 in H5Fopen(): unable to open file
major(04): File interface
minor(10): Unable to open file
#001: H5F.c line 846 in H5F_open(): file does not exist
major(04): File interface
minor(10): Unable to open file
</pre></code>
</td>
</tr>
</table>
</center>
<p>The code that performs the tracing must be included in the
library by specifying the <code>--enable-trace</code>
configuration switch (the default for versions before 1.2). Then
the word <code>trace</code> must appear in the value of the
<code>HDF5_DEBUG</code> variable. The output will appear on the
last file descriptor before the word <code>trace</code> or two
(standard error) by default.
<p>
<center>
<table border align=center width="100%">
<tr>
<td>To display the trace on the standard error stream:
<code><pre>
$ env HDF5_DEBUG=trace a.out
</pre></code>
</td>
</tr>
<tr>
<td>To send the trace to a file:
<code><pre>
$ env HDF5_DEBUG="55 trace" a.out 55>trace-output
</pre></code>
</td>
</tr>
</table>
</center>
<h3>Performance</h3>
<p>If the library was not configured for tracing then there is no
unnecessary overhead since all tracing code is excluded.
However, if tracing is enabled but not used there is a small
penalty. First, code size is larger because of extra
statically-declared character strings used to store argument
types and names and extra auto variable pointer in each
function. Also, execution is slower because each function sets
and tests a local variable and each API function calls the
<code>H5_trace()</code> function.
<p>If tracing is enabled and turned on then the penalties from the
previous paragraph apply plus the time required to format each
line of tracing information. There is also an extra call to
H5_trace() for each API function to print the return value.
<h3>Safety</h3>
<p>The tracing mechanism is invoked for each API function before
arguments are checked for validity. If bad arguments are passed
to an API function it could result in a segmentation fault.
However, the tracing output is line-buffered so all previous
output will appear.
<h3>Completeness</h3>
<p>There are two API functions that don't participate in
tracing. They are <code>H5Eprint()</code> and
<code>H5Eprint_cb()</code> because their participation would
mess up output during automatic error reporting.
<p>On the other hand, a number of API functions are called during
library initialization and they print tracing information.
<h3>Implementation</h3>
<p>For those interested in the implementation here is a
description. Each API function should have a call to one of the
<code>H5TRACE()</code> macros immediately after the
<code>FUNC_ENTER()</code> macro. The first argument is the
return type encoded as a string. The second argument is the
types of all the function arguments encoded as a string. The
remaining arguments are the function arguments. This macro was
designed to be as terse and unobtrousive as possible.
<p>In order to keep the <code>H5TRACE()</code> calls synchronized
with the source code we've written a perl script which gets
called automatically just before Makefile dependencies are
calculated for the file. However, this only works when one is
using GNU make. To reinstrument the tracing explicitly, invoke
the <code>trace</code> program from the hdf5 bin directory with
the names of the source files that need to be updated. If any
file needs to be modified then a backup is created by appending
a tilde to the file name.
<p>
<center>
<table border align=center width="100%">
<caption align=top><b>Explicit Instrumentation</b></caption>
<tr>
<td>
<code><pre>
$ ../bin/trace *.c
H5E.c: in function `H5Ewalk_cb':
H5E.c:336: warning: trace info was not inserted
</pre></code>
</td>
</tr>
</table>
</center>
<p>Note: The warning message is the result of a comment of the
form <code>/*NO TRACE*/</code> somewhere in the function
body. Tracing information will not be updated or inserted if
such a comment exists.
<p>Error messages have the same format as a compiler so that they
can be parsed from program development environments like
Emacs. Any function which generates an error will not be
modified.
<hr>
<center>
<table border=0 width=98%>
<tr><td valign=top align=left>
<a href="H5.intro.html">Introduction to HDF5</a>&nbsp;<br>
<a href="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<br>
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
Debugging&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
<!--
<hr>
<address><a href="mailto:matzke@llnl.gov">Robb Matzke</a></address>
-->
<!-- Created: Wed Jun 17 12:29:12 EDT 1998 -->
<!-- hhmts start -->
<!--
Last modified: Thu Aug 20 10:43:42 PDT 1998
-->
<!-- hhmts end -->
<hr>
<address>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
</address>
Last modified: 30 October 1998
</body>
</html>

BIN
doc/html/EnumMap.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

284
doc/html/Environment.html Normal file
View File

@@ -0,0 +1,284 @@
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<<<<<<< Environment.html
<head>
<title>HDF5 Library Environment Variables and Configuration Parameters</title>
</head>
<body bgcolor="#FFFFFF">
<hr>
<center>
<table border=0 width=98%>
<tr><td valign=top align=left>
<a href="H5.intro.html">Introduction to HDF5</a>&nbsp;<br>
<a href="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<br>
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
Environment&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
<hr>
<h1>HDF5 Library Environment Variables and Configuration Parameters</h1>
<h2>1. Environment Variables</h2>
The HDF5 library uses UNIX environment variables to control
or adjust certain library features at runtime. The variables and
their defined effects are as follows:
<dir>
<dl>
<dt><tt>HDF5_DEBUG</tt>
<dd>Defines a list of debugging switches documented in the
<a href="Debugging.html">Debugging</a> section of the
<cite>HDF5 User's Guide</cite>.
<dt><tt>HDF5_NOCLEANUP</tt>
<dd>When set to a non-empty value, the programs in the test
directory do not remove temporary HDF5 data files.
The default is for each test to remove the files before exit.
<dt><tt>HDF5_MPI_OPT_TYPES</tt>
&nbsp;&nbsp;(for parallel beta version only)
<dd>When set to <code>1</code>, PHDF5 will use the MPI optimized
code to perform parallel read/write accesses to datasets.
Currently, this optimization fails when accessing extendable
datasets. The default is not to use the optimized code.
<dt><tt>HDF5_MPI_1_METAWRITE</tt>
&nbsp;&nbsp;(for parallel beta version only)
<dd>When set to <code>1</code>, PHDF5 will write the metadata
via process 0 of each opened parallel HDF5 file. This should
improve I/O throughput. The default is not to use this
optimization.
</dl>
</dir>
<h2>2. Configuration Parameters</h2>
The HDF5 configuration script accepts a list of parameters to control
configuration features when creating the Makefiles for the library.
The command
<br>
<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;configure --help </code>
<br>
will display the current list of parameters and their effects.
<hr>
<center>
<table border=0 width=98%>
<tr><td valign=top align=left>
<a href="H5.intro.html">Introduction to HDF5</a>&nbsp;<br>
<a href="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<br>
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
Environment&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
<hr>
<address>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
</address>
=======
<head>
<title>HDF5 Library Environment Variables
and Configuration Parameters</title>
</head>
<body>
<h1>HDF5 Library Environment Variables and Configuration Parameters</h1>
<h2>1. Environment Variables</h2>
The HDF5 library uses UNIX environment variables to control
or adjust certain library features at runtime. The variables and
their defined effects are as follows:
<center>
<table width="90%">
<tr>
<th>Variable</th>
<th>Description</th>
</tr>
<tr valign=top>
<td><code>HDF5_DEBUG</code></td>
<td>Defines a list of debugging switches documented in the
<a href="Debugging.html">Debugging</a> section of the
<cite>HDF5 User's Guide</cite>.</td>
</tr>
<tr valign=top>
<td><code>HDF5_NOCLEANUP</code></td>
<td>If set then programs in the test directories do not
remove temporary files. The default is for each test to
remove the files before exit if the test succeeds but to
leave the files if the test fails.</td>
</tr>
<tr valign=top>
<td><code>HDF5_PREFIX</code></td>
<td>The value of this variable is prepended to all temporary
file names created by the test programs and separated from
the base name of the file by a slash. The default is no
prefix.</td>
</tr>
<tr valign=top>
<td><ode>HDF5_DRIVER</code></td>
<td>This variable should hold the name of a low-level HDF5
file driver such as <code>sec2</code>, <code>stdio</code>,
<code>core</code>, <code>split</code>, or
<code>family</code>. The family driver also takes an
optional real-valued family member size in MB which
defaults to 1. If this variable is not set or empty then
the library-defined default file driver is used (which can
be set at configuration time with the H5F_LOW_DFLT cpp
constant, usually <code>sec2</code>).</td>
</tr>
<tr valign=top>
<td><code>HDF5_MPI_OPT_TYPES</code></td>
<td>When set to <code>1</code>, parallel HDF5 will use the
MPI-optimized code to perform parallel read/write accesses
to datasets. Currently, this optimization fails when
accessing extendable datasets. The default is not to use
the optimized code.</td>
</tr>
<tr valign=top>
<td><code>HDF5_MPI_1_METAWRITE</code></td>
<td>When set to <code>1</code>, parallel HDF5 will write the
metadata via process 0 of each opened parallel HDF5 file.
This should improve I/O throughput. The default is not to
use this optimization.</td>
</tr>
</table>
</center>
<h2>2. Configuration Parameters</h2>
The HDF5 configuration script accepts a list of parameters to control
configuration features when creating the Makefiles for the library.
The command
<br>
<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;configure --help </code>
<br>
will display the current list of parameters and their effects.
<hr>
<address>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
</address>
Last modified: 25 November 1998
</body>
</html>

View File

@@ -4,7 +4,69 @@
<title>The Error Handling Interface (H5E)</title>
</head>
<body>
<body bgcolor="#FFFFFF">
<hr>
<center>
<table border=0 width=98%>
<tr><td valign=top align=left>
<a href="H5.intro.html">Introduction to HDF5</a>&nbsp;<br>
<a href="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<br>
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
Error Handling&nbsp;&nbsp;
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
<hr>
<h1>The Error Handling Interface (H5E)</h1>
<h2>1. Introduction</h2>
@@ -269,13 +331,83 @@ H5Ewalk_cb(int n, H5E_error_t *err_desc, void *client_data)
</table>
</center>
<hr>
<center>
<table border=0 width=98%>
<tr><td valign=top align=left>
<a href="H5.intro.html">Introduction to HDF5</a>&nbsp;<br>
<a href="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<br>
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
Error Handling&nbsp;&nbsp;
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
<!--
<hr>
<address><a href="mailto:hdf5dev@ncsa.uiuc.edu">Robb Matzke</a></address>
-->
<!-- Created: Fri Feb 27 23:42:52 EST 1998 -->
<!-- hhmts start -->
<!--
Last modified: Wed Mar 4 10:06:17 EST 1998
-->
<!-- hhmts end -->
<hr>
<address>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
</address>
Last modified: 30 October 1998
</body>
</html>

View File

@@ -110,16 +110,16 @@
Currently, the default low-level file driver is used for all
family members (H5F_LOW_DFLT, usually set to be Section 2 I/O or
Section 3 stdio), but we'll probably eventually want to pass
that as a parameter of the file access template, which hasn't
been implemented yet. When creating a family, a default family
member size is used (defined at the top H5Ffamily.c, currently
64MB) but that also should be settable in the file access
template. When opening an existing family, the size of the first
member is used to determine the member size (flushing/closing a
family ensures that the first member is the correct size) but
the other family members don't have to be that large (the local
address space, however, is logically the same size for all
members).
that as a parameter of the file access property list, which
hasn't been implemented yet. When creating a family, a default
family member size is used (defined at the top H5Ffamily.c,
currently 64MB) but that also should be settable in the file
access property list. When opening an existing family, the size
of the first member is used to determine the member size
(flushing/closing a family ensures that the first member is the
correct size) but the other family members don't have to be that
large (the local address space, however, is logically the same
size for all members).
<p>I haven't implemented a split meta/raw family yet but am rather
curious to see how it would perform. I was planning to use the
@@ -130,7 +130,7 @@
then we'll chose the split family and use the default low level
driver for each of the two family members. Eventually we'll
want to pass these kinds of things through the file access
template instead of relying on naming convention.
property list instead of relying on naming convention.
<h3>External Raw Data</h3>
@@ -198,12 +198,13 @@ struct H5F_mount_t {
</pre></code>
<p>The <code>H5Fmount</code> function takes the ID of an open
file, the name of a to-be-mounted file, the name of the mount
point, and a file access template (like <code>H5Fopen</code>).
file or group, the name of a to-be-mounted file, the name of the mount
point, and a file access property list (like <code>H5Fopen</code>).
It opens the new file and adds a record to the parent's mount
table. The <code>H5Funmount</code> function takes the parent
file ID and the name of the mount point and closes the file
that's mounted at that point. The <code>H5Fclose</code>
file or group ID and the name of the mount point and disassociates
the mounted file from the mount point. It does not close the
mounted file. The <code>H5Fclose</code>
function closes/unmounts files recursively.
<p>The <code>H5G_iname</code> function which translates a name to
@@ -272,7 +273,7 @@ struct H5F_mount_t {
<address><a href="mailto:matzke@llnl.gov">Robb Matzke</a></address>
<!-- Created: Sat Nov 8 18:08:52 EST 1997 -->
<!-- hhmts start -->
Last modified: Wed Nov 12 15:01:14 EST 1997
Last modified: Tue Sep 8 14:43:32 EDT 1998
<!-- hhmts end -->
</body>
</html>

View File

@@ -4,8 +4,68 @@
<title>HDF5 Files</title>
</head>
<body>
<h1>Files</h1>
<body bgcolor="#FFFFFF">
<hr>
<center>
<table border=0 width=98%>
<tr><td valign=top align=left>
<a href="H5.intro.html">Introduction to HDF5</a>&nbsp;<br>
<a href="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
Files&nbsp;&nbsp;
<br>
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
<hr>
<h1>The File Interface (H5F)</h1>
<h2>1. Introduction</h2>
@@ -61,7 +121,7 @@
set. The <em>access_properties</em> is a file access property
list ID or <code>H5P_DEFAULT</code> for the default I/O access
parameters. Creating and changing the parameters for access
templates is documented further below. Files which are opened
property lists is documented further below. Files which are opened
more than once return a unique identifier for each
<code>H5Fopen()</code> call and can be accessed through all
file IDs. The return value is an ID for the open file and it
@@ -74,6 +134,15 @@
opened by <code>H5Fcreate()</code> or <code>H5Fopen()</code>. After
closing a file the <em>file_id</em> should not be used again. This
function returns zero for success or a negative value for failure.
<br><br>
<dt><code>herr_t H5Fflush (hid_t <em>object_id</em>,
H5F_scope_t <em>scope</em>)</code>
<dd>This function will cause all buffers associated with a file
to be immediately flushed to the file. The <em>object_id</em>
can be any object which is associated with a file, including
the file itself. <em>scope</em> specifies whether the flushing
action is to be global or local.
</dl>
<h2>4. File Property Lists</h2>
@@ -193,40 +262,40 @@
an address which is a multiple of some number.
</dl> </ul>
<h2>5. Examples of using file templates</h2>
<h2>5. Examples of using file property lists</h2>
<h3>5.1. Example of using file creation templates</h3>
<h3>5.1. Example of using file creation property lists</h3>
<p>This following example shows how to create a file with 64-bit object
offsets and lengths:<br>
<pre>
hid_t create_template;
hid_t create_plist;
hid_t file_id;
create_template = H5Pcreate(H5P_FILE_CREATE);
H5Pset_sizes(create_template, 8, 8);
create_plist = H5Pcreate(H5P_FILE_CREATE);
H5Pset_sizes(create_plist, 8, 8);
file_id = H5Fcreate("test.h5", H5F_ACC_TRUNC,
create_template, H5P_DEFAULT);
create_plist, H5P_DEFAULT);
.
.
.
H5Fclose(file_id);
</pre>
<h3>5.2. Example of using file creation templates</h3>
<h3>5.2. Example of using file creation plist</h3>
<p>This following example shows how to open an existing file for
independent datasets access by MPI parallel I/O:<br>
<pre>
hid_t access_template;
hid_t access_plist;
hid_t file_id;
access_template = H5Pcreate(H5P_FILE_ACCESS);
H5Pset_mpi(access_template, MPI_COMM_WORLD, MPI_INFO_NULL);
access_plist = H5Pcreate(H5P_FILE_ACCESS);
H5Pset_mpi(access_plist, MPI_COMM_WORLD, MPI_INFO_NULL);
/* H5Fopen must be called collectively */
file_id = H5Fopen("test.h5", H5F_ACC_RDWR, access_template);
file_id = H5Fopen("test.h5", H5F_ACC_RDWR, access_plist);
.
.
.
@@ -245,7 +314,7 @@
referred to as an "HDF5 file" regardless of how the space is organized
at the storage level.
<h3>6.1 Unbuffered Permanent Files</h3>
<h3>6.1. Unbuffered Permanent Files</h3>
<p>The <em>sec2</em> driver uses functions from section 2 of the
Posix manual to access files stored on a local file system. These are
@@ -278,7 +347,7 @@
function to match those added to <code>H5Pset_sec2()</code>.
</dl>
<h3>6.2 Buffered Permanent Files</h3>
<h3>6.2. Buffered Permanent Files</h3>
<p>The <em>stdio</em> driver uses the functions declared in the
<code>stdio.h</code> header file to access permanent files in a local
@@ -310,7 +379,7 @@
function to match those added to <code>H5Pset_stdio()</code>.
</dl>
<h3>6.3 Buffered Temporary Files</h3>
<h3>6.3. Buffered Temporary Files</h3>
<p>The <em>core</em> driver uses <code>malloc()</code> and
<code>free()</code> to allocated space for a file in the heap. Reading
@@ -346,7 +415,7 @@
function to match those added to <code>H5Pset_core()</code>.
</dl>
<h3>6.4 Parallel Files</h3>
<h3>6.4. Parallel Files</h3>
<p>This driver uses MPI I/O to provide parallel access to a file.
@@ -376,7 +445,9 @@
added to <code>H5Pset_mpi()</code>.
</dl>
<h3>6.4 File Families</h3>
<a name="Files_Families">
<h3>6.5. File Families</h3>
</a>
<p>A single HDF5 address space may be split into multiple files which,
together, form a file family. Each member of the family must be the
@@ -458,7 +529,7 @@
match those added to <code>H5Pset_family()</code>.
</dl>
<h3>6.5 Split Meta/Raw Files</h3>
<h3>6.6. Split Meta/Raw Files</h3>
<p>On occasion, it might be useful to separate meta data from raw
data. The <em>split</em> driver does this by creating two files: one for
@@ -518,12 +589,83 @@
</dl>
<hr>
<center>
<table border=0 width=98%>
<tr><td valign=top align=left>
<a href="H5.intro.html">Introduction to HDF5</a>&nbsp;<br>
<a href="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
Files&nbsp;&nbsp;
<br>
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
<!--
<hr>
<address><a href="mailto:koziol@ncsa.uiuc.edu">Quincey Koziol</a></address>
<address><a href="mailto:matzke@llnl.gov">Robb Matzke</a></address>
-->
<!-- Created: Tue Jan 27 09:11:27 EST 1998 -->
<!-- hhmts start -->
Last modified: Tue Jun 9 15:03:44 EDT 1998
<!--
Last modified: Tue Sep 8 14:43:31 EDT 1998
-->
<!-- hhmts end -->
<hr>
<address>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
</address>
Last modified: 30 October 1998
</body>
</html>

601
doc/html/Filters.html Normal file
View File

@@ -0,0 +1,601 @@
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<title>Filters</title>
</head>
<body bgcolor="#FFFFFF">
<hr>
<center>
<table border=0 width=98%>
<tr><td valign=top align=left>
<a href="H5.intro.html">Introduction to HDF5</a>&nbsp;<br>
<a href="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<br>
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
Filters&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
<hr>
<h1>Filters in HDF5</h1>
<b>Note: Transient pipelines described in this document have not
been implemented.</b>
<h2>1. Introduction</h2>
<p>HDF5 allows chunked data to pass through user-defined filters
on the way to or from disk. The filters operate on chunks of an
<code>H5D_CHUNKED</code> dataset can be arranged in a pipeline
so output of one filter becomes the input of the next filter.
<p>Each filter has a two-byte identification number (type
<code>H5Z_filter_t</code>) allocated by NCSA and can also be
passed application-defined integer resources to control its
behavior. Each filter also has an optional ASCII comment
string.
<p>
<center>
<table align=center width="80%">
<caption alignment=top>
<b>Values for <code>H5Z_filter_t</code></b>
</caption>
<tr>
<th width="30%">Value</th>
<th width="70%">Description</th>
</tr>
<tr valign=top>
<td><code>0-255</code></td>
<td>These values are reserved for filters predefined and
registered by the HDF5 library and of use to the general
public. They are described in a separate section
below.</td>
</tr>
<tr valign=top>
<td><code>256-511</code></td>
<td>Filter numbers in this range are used for testing only
and can be used temporarily by any organization. No
attempt is made to resolve numbering conflicts since all
definitions are by nature temporary.</td>
</tr>
<tr valign=top>
<td><code>512-65535</code></td>
<td>Reserved for future assignment. Please contact the
<a href="mailto:hdf5dev@ncsa.uiuc.edu">HDF5 development
team</a> to reserve a value or range of values for
use by your filters.</td>
</table>
</center>
<h2>2. Defining and Querying the Filter Pipeline</h2>
<p>Two types of filters can be applied to raw data I/O: permanent
filters and transient filters. The permanent filter pipeline is
defned when the dataset is created while the transient pipeline
is defined for each I/O operation. During an
<code>H5Dwrite()</code> the transient filters are applied first
in the order defined and then the permanent filters are applied
in the order defined. For an <code>H5Dread()</code> the
opposite order is used: permanent filters in reverse order, then
transient filters in reverse order. An <code>H5Dread()</code>
must result in the same amount of data for a chunk as the
original <code>H5Dwrite()</code>.
<p>The permanent filter pipeline is defined by calling
<code>H5Pset_filter()</code> for a dataset creation property
list while the transient filter pipeline is defined by calling
that function for a dataset transfer property list.
<dl>
<dt><code>herr_t H5Pset_filter (hid_t <em>plist</em>,
H5Z_filter_t <em>filter</em>, unsigned int <em>flags</em>,
size_t <em>cd_nelmts</em>, const unsigned int
<em>cd_values</em>[])</code>
<dd>This function adds the specified <em>filter</em> and
corresponding properties to the end of the transient or
permanent output filter pipeline (depending on whether
<em>plist</em> is a dataset creation or dataset transfer
property list). The <em>flags</em> argument specifies certain
general properties of the filter and is documented below. The
<em>cd_values</em> is an array of <em>cd_nelmts</em> integers
which are auxiliary data for the filter. The integer values
will be stored in the dataset object header as part of the
filter information.
<br><br>
<dt><code>int H5Pget_nfilters (hid_t <em>plist</em>)</code>
<dd>This function returns the number of filters defined in the
permanent or transient filter pipeline depending on whether
<em>plist</em> is a dataset creation or dataset transfer
property list. In each pipeline the filters are numbered from
0 through <em>N</em>-1 where <em>N</em> is the value returned
by this function. During output to the file the filters of a
pipeline are applied in increasing order (the inverse is true
for input). Zero is returned if there are no filters in the
pipeline and a negative value is returned for errors.
<br><br>
<dt><code>H5Z_filter_t H5Pget_filter (hid_t <em>plist</em>,
int <em>filter_number</em>, unsigned int *<em>flags</em>,
size_t *<em>cd_nelmts</em>, unsigned int
*<em>cd_values</em>, size_t namelen, char name[])</code>
<dd>This is the query counterpart of
<code>H5Pset_filter()</code> and returns information about a
particular filter number in a permanent or transient pipeline
depending on whether <em>plist</em> is a dataset creation or
dataset transfer property list. On input, <em>cd_nelmts</em>
indicates the number of entries in the <em>cd_values</em>
array allocated by the caller while on exit it contains the
number of values defined by the filter. The
<em>filter_number</em> should be a value between zero and
<em>N</em>-1 as described for <code>H5Pget_nfilters()</code>
and the function will return failure (a negative value) if the
filter number is out of range. If <em>name</em> is a pointer
to an array of at least <em>namelen</em> bytes then the filter
name will be copied into that array. The name will be null
terminated if the <em>namelen</em> is large enough. The
filter name returned will be the name appearing in the file or
else the name registered for the filter or else an empty string.
</dl>
<p>The flags argument to the functions above is a bit vector of
the following fields:
<p>
<center>
<table align=center width="80%">
<caption align=top>
<b>Values for the <em>flags</em> argument</b>
</caption>
<tr>
<th width="30%">Value</th>
<th width="70%">Description</th>
</tr>
<tr valign=top>
<td><code>H5Z_FLAG_OPTIONAL</code></td>
<td>If this bit is set then the filter is optional. If
the filter fails (see below) during an
<code>H5Dwrite()</code> operation then the filter is
just excluded from the pipeline for the chunk for which
it failed; the filter will not participate in the
pipeline during an <code>H5Dread()</code> of the chunk.
This is commonly used for compression filters: if the
compression result would be larger than the input then
the compression filter returns failure and the
uncompressed data is stored in the file. If this bit is
clear and a filter fails then the
<code>H5Dwrite()</code> or <code>H5Dread()</code> also
fails.</td>
</tr>
</table>
</center>
<h2>3. Defining Filters</h2>
<p>Each filter is bidirectional, handling both input and output to
the file, and a flag is passed to the filter to indicate the
direction. In either case the filter reads a chunk of data from
a buffer, usually performs some sort of transformation on the
data, places the result in the same or new buffer, and returns
the buffer pointer and size to the caller. If something goes
wrong the filter should return zero to indicate a failure.
<p>During output, a filter that fails or isn't defined and is
marked as optional is silently excluded from the pipeline and
will not be used when reading that chunk of data. A required
filter that fails or isn't defined causes the entire output
operation to fail. During input, any filter that has not been
excluded from the pipeline during output and fails or is not
defined will cause the entire input operation to fail.
<p>Filters are defined in two phases. The first phase is to
define a function to act as the filter and link the function
into the application. The second phase is to register the
function, associating the function with an
<code>H5Z_filter_t</code> identification number and a comment.
<dl>
<dt><code>typedef size_t (*H5Z_func_t)(unsigned int
<em>flags</em>, size_t <em>cd_nelmts</em>, const unsigned int
<em>cd_values</em>[], size_t <em>nbytes</em>, size_t
*<em>buf_size</em>, void **<em>buf</em>)</code>
<dd>The <em>flags</em>, <em>cd_nelmts</em>, and
<em>cd_values</em> are the same as for the
<code>H5Pset_filter()</code> function with the additional flag
<code>H5Z_FLAG_REVERSE</code> which is set when the filter is
called as part of the input pipeline. The input buffer is
pointed to by <em>*buf</em> and has a total size of
<em>*buf_size</em> bytes but only <em>nbytes</em> are valid
data. The filter should perform the transformation in place if
possible and return the number of valid bytes or zero for
failure. If the transformation cannot be done in place then
the filter should allocate a new buffer with
<code>malloc()</code> and assign it to <em>*buf</em>,
assigning the allocated size of that buffer to
<em>*buf_size</em>. The old buffer should be freed
by calling <code>free()</code>.
<br><br>
<dt><code>herr_t H5Zregister (H5Z_filter_t <em>filter_id</em>,
const char *<em>comment</em>, H5Z_func_t
<em>filter</em>)</code>
<dd>The <em>filter</em> function is associated with a filter
number and a short ASCII comment which will be stored in the
hdf5 file if the filter is used as part of a permanent
pipeline during dataset creation.
</dl>
<h2>4. Predefined Filters</h2>
<p>If <code>zlib</code> version 1.1.2 or later was found
during configuration then the library will define a filter whose
<code>H5Z_filter_t</code> number is
<code>H5Z_FILTER_DEFLATE</code>. Since this compression method
has the potential for generating compressed data which is larger
than the original, the <code>H5Z_FLAG_OPTIONAL</code> flag
should be turned on so such cases can be handled gracefully by
storing the original data instead of the compressed data. The
<em>cd_nvalues</em> should be one with <em>cd_value[0]</em>
being a compression agression level between zero and nine,
inclusive (zero is the fastest compression while nine results in
the best compression ratio).
<p>A convenience function for adding the
<code>H5Z_FILTER_DEFLATE</code> filter to a pipeline is:
<dl>
<dt><code>herr_t H5Pset_deflate (hid_t <em>plist</em>, unsigned
<em>aggression</em>)</code>
<dd>The deflate compression method is added to the end of the
permanent or transient filter pipeline depending on whether
<em>plist</em> is a dataset creation or dataset transfer
property list. The <em>aggression</em> is a number between
zero and nine (inclusive) to indicate the tradeoff between
speed and compression ratio (zero is fastest, nine is best
ratio).
</dl>
<p>Even if the <code>zlib</code> isn't detected during
configuration the application can define
<code>H5Z_FILTER_DEFLATE</code> as a permanent filter. If the
filter is marked as optional (as with
<code>H5Pset_deflate()</code>) then it will always fail and be
automatically removed from the pipeline. Applications that read
data will fail only if the data is actually compressed; they
won't fail if <code>H5Z_FILTER_DEFLATE</code> was part of the
permanent output pipeline but was automatically excluded because
it didn't exist when the data was written.
<h2>5. Example</h2>
<p>This example shows how to define and register a simple filter
that adds a checksum capability to the data stream.
<p>The function that acts as the filter always returns zero
(failure) if the <code>md5()</code> function was not detected at
configuration time (left as an excercise for the reader).
Otherwise the function is broken down to an input and output
half. The output half calculates a checksum, increases the size
of the output buffer if necessary, and appends the checksum to
the end of the buffer. The input half calculates the checksum
on the first part of the buffer and compares it to the checksum
already stored at the end of the buffer. If the two differ then
zero (failure) is returned, otherwise the buffer size is reduced
to exclude the checksum.
<p>
<center>
<table border align=center width="100%">
<tr>
<td>
<p><code><pre>
size_t
md5_filter(unsigned int flags, size_t cd_nelmts,
const unsigned int cd_values[], size_t nbytes,
size_t *buf_size, void **buf)
{
#ifdef HAVE_MD5
unsigned char cksum[16];
if (flags & H5Z_REVERSE) {
/* Input */
assert(nbytes>=16);
md5(nbytes-16, *buf, cksum);
/* Compare */
if (memcmp(cksum, (char*)(*buf)+nbytes-16, 16)) {
return 0; /*fail*/
}
/* Strip off checksum */
return nbytes-16;
} else {
/* Output */
md5(nbytes, *buf, cksum);
/* Increase buffer size if necessary */
if (nbytes+16>*buf_size) {
*buf_size = nbytes + 16;
*buf = realloc(*buf, *buf_size);
}
/* Append checksum */
memcpy((char*)(*buf)+nbytes, cksum, 16);
return nbytes+16;
}
#else
return 0; /*fail*/
#endif
}
</pre></code>
</td>
</tr>
</table>
</center>
<p>Once the filter function is defined it must be registered so
the HDF5 library knows about it. Since we're testing this
filter we choose one of the <code>H5Z_filter_t</code> numbers
from the reserved range. We'll randomly choose 305.
<p>
<center>
<table border align=center width="100%">
<tr>
<td>
<p><code><pre>
#define FILTER_MD5 305
herr_t status = H5Zregister(FILTER_MD5, "md5 checksum", md5_filter);
</pre></code>
</td>
</tr>
</table>
</center>
<p>Now we can use the filter in a pipeline. We could have added
the filter to the pipeline before defining or registering the
filter as long as the filter was defined and registered by time
we tried to use it (if the filter is marked as optional then we
could have used it without defining it and the library would
have automatically removed it from the pipeline for each chunk
written before the filter was defined and registered).
<p>
<center>
<table border align=center width="100%">
<tr>
<td>
<p><code><pre>
hid_t dcpl = H5Pcreate(H5P_DATASET_CREATE);
hsize_t chunk_size[3] = {10,10,10};
H5Pset_chunk(dcpl, 3, chunk_size);
H5Pset_filter(dcpl, FILTER_MD5, 0, 0, NULL);
hid_t dset = H5Dcreate(file, "dset", H5T_NATIVE_DOUBLE, space, dcpl);
</pre></code>
</td>
</tr>
</table>
</center>
<h2>6. Filter Diagnostics</h2>
<p>If the library is compiled with debugging turned on for the H5Z
layer (usually as a result of <code>configure
--enable-debug=z</code>) then filter statistics are printed when
the application exits normally or the library is closed. The
statistics are written to the standard error stream and include
two lines for each filter that was used: one for input and one
for output. The following fields are displayed:
<p>
<center>
<table align=center width="80%">
<tr>
<th width="30%">Field Name</th>
<th width="70%">Description</th>
</tr>
<tr valign=top>
<td>Method</td>
<td>This is the name of the method as defined with
<code>H5Zregister()</code> with the charaters
&quot;&lt; or &quot;&gt;&quot; prepended to indicate
input or output.</td>
</tr>
<tr valign=top>
<td>Total</td>
<td>The total number of bytes processed by the filter
including errors. This is the maximum of the
<em>nbytes</em> argument or the return value.
</tr>
<tr valign=top>
<td>Errors</td>
<td>This field shows the number of bytes of the Total
column which can be attributed to errors.</td>
</tr>
<tr valign=top>
<td>User, System, Elapsed</td>
<td>These are the amount of user time, system time, and
elapsed time in seconds spent in the filter function.
Elapsed time is sensitive to system load. These times
may be zero on operating systems that don't support the
required operations.</td>
</tr>
<tr valign=top>
<td>Bandwidth</td>
<td>This is the filter bandwidth which is the total
number of bytes processed divided by elapsed time.
Since elapsed time is subject to system load the
bandwidth numbers cannot always be trusted.
Furthermore, the bandwidth includes bytes attributed to
errors which may significanly taint the value if the
function is able to detect errors without much
expense.</td>
</tr>
</table>
</center>
<p>
<center>
<table border align=center width="100%">
<caption align=bottom>
<b>Example: Filter Statistics</b>
</caption>
<tr>
<td>
<p><code><pre>
H5Z: filter statistics accumulated over life of library:
Method Total Errors User System Elapsed Bandwidth
------ ----- ------ ---- ------ ------- ---------
>deflate 160000 40000 0.62 0.74 1.33 117.5 kBs
&lt;deflate 120000 0 0.11 0.00 0.12 1.000 MBs
</pre></code>
</td>
</tr>
</table>
</center>
<hr>
<center>
<table border=0 width=98%>
<tr><td valign=top align=left>
<a href="H5.intro.html">Introduction to HDF5</a>&nbsp;<br>
<a href="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<br>
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
Filters&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
<!--
<hr>
<address><a href="mailto:matzke@llnl.gov">Robb Matzke</a></address>
-->
<!-- Created: Fri Apr 17 13:39:35 EDT 1998 -->
<!-- hhmts start -->
Last modified: Mon Jan 18 13:32:14 EST 1999
<!-- hhmts end -->
<hr>
<address>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
</address>
Last modified: 30 October 1998
</body>
</html>

View File

@@ -1,5 +1,5 @@
<html><head><title>
HDF5 Draft Glossary
HDF5 Glossary
</title></head>
<body>
@@ -25,23 +25,29 @@ Glossary
<h1>HDF5 Glossary</h1>
</center>
<i>(<b>Under construction!</b>
This is the bare beginning of a Glossary to accompany the HDF5 documentation;
it is by no means complete.)</i>
<i>(<b>Under construction!</b>
This is the bare beginning of a Glossary to accompany the HDF5
documentation; it is by no means complete.)</i>
<ol type=A>
<li><a href="#Glossary-Basic">Basic Types</a>
<li><a href="#Glossary-Complex">Complex Types</a>
<li><a href="#Glossary-DiskIO">Disk I/O Types</a>
</ol>
<ul>
<li><a href="#Glossary-Basic">basic data types</a>
<li><a href="#Glossary-Complex">complex data types</a>
<li>data types
<ul>
<li><a href="#Glossary-Basic">basic data types</a>
<li><a href="#Glossary-Complex">complex data types</a>
<li><a href="#Glossary-DiskIO">disk I/O data types</a>
</ul>
<li><a href="#Glossary-DiskIO">disk I/O data types</a>
</ul>
<P>Since many of the typedefs in the HDF5 API are not well-defined yet,
the types below may change radically en route to a final API...
<hr>
<a name="Glossary-Basic">Basic Types:</a>
<a name="Glossary-Basic">basic data types:</a>
<ul>
<li><em>(Some data types may change substantially en route to
Release 1.0.)</em>
<li>char - 8-bit character (only for ASCII information)
<li>int8 - 8-bit signed integer
<li>uint8 - 8-bit unsigned integer
@@ -57,8 +63,10 @@ the types below may change radically en route to a final API...
<li>float64 - 64-bit IEEE float
</ul>
<a name="Glossary-Complex">Complex Types:</a>
<a name="Glossary-Complex">Complex data types:</a>
<ul>
<li><em>(Some data types may change substantially en route to
Release 1.0.)</em>
<li>hid_t - 32-bit unsigned integer used as ID for memory objects
<li>hoid_t - 32-bit unsigned integer (currently) used as ID for disk-based
objects
@@ -66,8 +74,10 @@ the types below may change radically en route to a final API...
<li>herr_t - 32-bit integer to indicate succeed/fail codes from functions
</ul>
<a name="Glossary-DiskIO">Disk I/O Types:</a>
<a name="Glossary-DiskIO">disk I/O data types:</a>
<ul>
<li><em>(Some data types may change substantially en route to
Release 1.0.)</em>
<li>hoff_t - (64-bit?) offset on disk in bytes
<li>hlen_t - (64-bit?) length on disk in bytes
</ul>

View File

@@ -4,8 +4,70 @@
<title>Groups</title>
</head>
<body>
<h1>Groups</h1>
<body bgcolor="#FFFFFF">
<hr>
<center>
<table border=0 width=98%>
<tr><td valign=top align=left>
<a href="H5.intro.html">Introduction to HDF5</a>&nbsp;<br>
<a href="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<br>
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
Groups&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
<hr>
<h1>The Group Interface (H5G)</h1>
<h2>1. Introduction</h2>
@@ -51,7 +113,7 @@
name which begins with a slash is an <em>absolute</em> name
which is looked up beginning at the root group of the file while
all other <em>relative</em> names are looked up beginning at the
current working group (described below) or a specified group.
specified group.
Multiple consecutive slashes in a full name are treated as
single slashes and trailing slashes are not significant. A
special case is the name "/" (or equivalent) which refers to the
@@ -75,7 +137,7 @@
<td>File ID</td>
<td><code>/foo/bar</code></td>
<td>The object <code>bar</code> in group <code>foo</code>
in the root group of the specified file.</td>
in the root group.</td>
</tr>
<tr>
@@ -104,9 +166,7 @@
<td>File ID</td>
<td><code>foo/bar</code></td>
<td>The object <code>bar</code> in group <code>foo</code>
in the current working group of the specified file. The
initial current working group is the root group of the
file as described below.</td>
in the specified group.</td>
</tr>
<tr>
@@ -119,7 +179,7 @@
<tr>
<td>File ID</td>
<td><code>.</code></td>
<td>The current working group of the specified file.</td>
<td>The root group of the file.</td>
</tr>
<tr>
@@ -181,51 +241,7 @@
returns zero for success or a negative value for failure.
</dl>
<h2>4. Current Working Group</h2>
<p>Each file handle (<code>hid_t <em>file_id</em></code>) has a
current working group, initially the root group of the file.
Names which do not begin with a slash are relative to the
specified group or to the current working group as described
above. For instance, the name "/Foo/Bar/Baz" is resolved by
first looking up "Foo" in the root group. But the name
"Foo/Bar/Baz" is resolved by first looking up "Foo" in the
current working group.
<dl>
<dt><code>herr_t H5Gset (hid_t <em>location_id</em>, const char
*<em>name</em>)</code>
<dd>The group with the specified name is made the current
working group for the file which contains it. The
<em>location_id</em> can be a file handle or a group handle
and the name is resolved as described above. Each file handle
has it's own current working group and if the
<em>location_id</em> is a group handle then the file handle is
derived from the group handle. This function returns zero for
success or negative for failure.
<br><br>
<dt><code>herr_t H5Gpush (hid_t <em>location_id</em>, const char
*<em>name</em>)</code>
<dd>Each file handle has a stack of groups and the top group on
that stack is the current working group. The stack initially
contains only the root group. This function pushes a new
group onto the stack and returns zero for success or negative
for failure.
<br><br>
<dt><code>herr_t H5Gpop (hid_t <em>location_id</em>)</code>
<dd>This function pops one group off the group stack for the
specified file (if the <em>location_id</em> is a group then
the file is derived from that group), changing the current
working group to the new top-of-stack group. The function
returns zero for success or negative for failure (failure
includes attempting to pop from an empty stack). If the last
item is popped from the stack then the current working group
is set to the root group.
</dl>
<h2>5. Objects with Multiple Names</h2>
<h2>4. Objects with Multiple Names</h2>
<p>An object (including a group) can have more than one
name. Creating the object gives it the first name, and then
@@ -263,8 +279,7 @@
<code>H5T_LINK_SOFT</code> a soft link is created which is an
alias for the <em>current_name</em>. When creating a soft
link the object need not exist. This function returns zero
for success or negative for failure. <b>This function is not
part of the prototype API.</b>
for success or negative for failure.
<br><br>
<dt><code>herr_t H5Gunlink (hid_t <em>file_id</em>, const char
@@ -274,15 +289,112 @@
to the object and when the hard link count reaches zero the
object can be removed from the file (but objects which are
open are not removed until all handles to the object are
closed). <b>This function is not part of the prototype
API.</b>
closed).
</dl>
<h2>5. Comments</h2>
<p>Objects can have a comment associated with them. The comment
is set and queried with these two functions:
<dl>
<dt><code>herr_t H5Gset_comment (hid_t <em>loc_id</em>, const
char *<em>name</em>, const char *<em>comment</em>)</code>
<dd>The previous comment (if any) for the specified object is
replace with a new comment. If the <em>comment</em> argument
is the empty string or a null pointer then the comment message
is removed from the object. Comments should be relatively
short, null-terminated, ASCII strings.
<br><br>
<dt><code>herr_t H5Gget_comment (hid_t <em>loc_id</em>, const
char *<em>name</em>, size_t <em>bufsize</em>, char
*<em>comment</em>)</code>
<dd>The comment string for an object is returned through the
<em>comment</em> buffer. At most <em>bufsize</em> characters
including a null terminator are copied, and the result is
not null terminated if the comment is longer than the supplied
buffer. If an object doesn't have a comment then the empty
string is returned.
</dl>
<hr>
<center>
<table border=0 width=98%>
<tr><td valign=top align=left>
<a href="H5.intro.html">Introduction to HDF5</a>&nbsp;<br>
<a href="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<br>
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
Groups&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
<!--
<hr>
<address><a href="mailto:matzke@llnl.gov">Robb Matzke</a></address>
-->
<!-- Created: Tue Jan 27 09:11:27 EST 1998 -->
<!-- hhmts start -->
Last modified: Tue Mar 24 15:52:14 EST 1998
<!--
Last modified: Wed Jul 22 14:24:34 EDT 1998
-->
<!-- hhmts end -->
<hr>
<address>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
</address>
Last modified: 30 October 1998
</body>
</html>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -29,7 +29,7 @@ overwrite the previous file's information.
<code> <pre>
hid_t file_id;
file_id=<A HREF="H5.apiv2.html#File-Create">H5Fcreate</a>("example1.h5",H5F_ACC_EXCL,H5P_DEFAULT_TEMPLATE,H5P_DEFAULT_TEMPLATE);
file_id=<A HREF="H5.apiv2.html#File-Create">H5Fcreate</a>("example1.h5",H5F_ACC_EXCL,H5P_DEFAULT,H5P_DEFAULT);
<A HREF="H5.apiv2.html#File-Close">H5Fclose</a>(file_id);

View File

@@ -0,0 +1,135 @@
<html>
<head>
<title>
HDF5 User's Guide -- Single Print
</title>
</head>
<body bgcolor="#FFFFFF">
<hr>
<center><h1>A User's Guide for HDF5</h1></center>
This page provides a means of printing the <cite>HDF5 User's Guide</cite>
with a single print command as follows:
<ol><li>Open this page in Internet Explorer, version 4.0 or or later.
(Sorry, but as of this writing, Netscape does not offer the required
print feature.)
<li>On the <strong>File</strong> menu, select <strong>Print</strong>.
<li>In the <strong>Print</strong> dialogue box, select
<strong>Print all linked documents</strong>.
<li>Select <strong>OK</strong>. Depending on the print settings of your
browser, this will produce a 100- to 200-page set of documents,
one chapter or section at a time.
<li>Once the print job is complete, discard the first page printed (this page).
The rest of the printout should form a complete copy of the
<cite>HDF5 User's Guide</cite>.
</ol>
<br><br>
<center>
<table border=0 width=85%>
<tr><td valign=top><a href="H5.user.PrintTpg.html" target="PrintWin">Title Page</a>
</td><td>&nbsp;&nbsp;&nbsp;&nbsp;</td>
<td valign=top>Title page.
</td></tr>
<tr><td valign=top><a href="Copyright.html" target="PrintWin">Copyright</a>
</td><td>&nbsp;&nbsp;&nbsp;&nbsp;</td>
<td valign=top>The HDF5 copyright notice, contact information,
and other <i>back-of-the-title-page</i> material.
</td></tr>
<tr><td valign=top><a href="H5.user.html" target="PrintWin">TOC</a>
</td><td>&nbsp;&nbsp;&nbsp;&nbsp;</td>
<td valign=top>Table of contents.
</td></tr>
<tr><td valign=top><a href="Files.html" target="PrintWin">HDF5 Files</a>
</td><td>&nbsp;&nbsp;&nbsp;&nbsp;</td>
<td valign=top>A guide to the <strong>H5F</strong> interface.
</td></tr>
<tr><td valign=top><a href="Datasets.html" target="PrintWin">Datasets</a>
</td><td></td><td valign=top>A guide to the <strong>H5D</strong>
interface.
</td></tr>
<tr><td valign=top><a href="Datatypes.html" target="PrintWin">Data Types</a> and
<br>&nbsp;&nbsp;&nbsp;&nbsp;
<a href="DatatypesEnum.html" target="PrintWin">Enumeration Data Types</a>
</td><td></td><td valign=top>A guide to the <strong>H5T</strong>
interface.
</td></tr>
<tr><td valign=top><a href="Dataspaces.html" target="PrintWin">Dataspaces</a>
</td><td></td><td valign=top>A guide to the <strong>H5S</strong>
interface.
</td></tr>
<tr><td valign=top><a href="Groups.html" target="PrintWin">Groups</a>
</td><td></td><td valign=top>A guide to the <strong>H5G</strong>
interface.
</td></tr>
<tr><td valign=top><a href="References.html" target="PrintWin">References and
Identifiers</a>
</td><td></td><td valign=top>A guide to the <strong>H5R</strong>
and <strong>H5I</strong> interfaces.
</td></tr>
<tr><td valign=top><a href="Attributes.html" target="PrintWin">Attributes</a>
</td><td></td><td valign=top>A guide to the <strong>H5A</strong>
interface.
</td></tr>
<tr><td valign=top><a href="Properties.html" target="PrintWin">Property Lists</a>
</td><td></td><td valign=top>A guide to the <strong>H5P</strong>
interface.
</td></tr>
<tr><td valign=top><a href="Errors.html" target="PrintWin">Error Handling</a>
</td><td></td><td valign=top>A guide to the <strong>H5E</strong>
interface.
</td></tr>
<tr><td valign=top><a href="Filters.html" target="PrintWin">Filters</a>
</td><td></td><td valign=top>A guide to the <strong>H5Z</strong>
interface.
</td></tr>
<tr><td valign=top><a href="Caching.html" target="PrintWin">Caching</a>
</td><td></td><td valign=top>A guide for meta and raw data caching.
</td></tr>
<tr><td valign=top><a href="Chunking.html" target="PrintWin">Dataset Chunking</a>
</td><td></td><td valign=top>A guide to the issues and pitfalls
of dataset chunking.
</td></tr>
<tr><td valign=top><a href="Debugging.html" target="PrintWin">Debugging</a>
</td><td></td><td valign=top>A guide to debugging HDF5 API calls.
</td></tr>
<tr><td valign=top><a href="Environment.html" target="PrintWin">Environment Variables
and Configuration Parameters</a>
</td><td></td><td valign=top>A list of HDF5 environment variables
and <br>&nbsp;&nbsp;&nbsp;configuration parameters.
</td></tr>
<tr><td valign=top><a href="ddl.html" target="PrintWin">DDL for HDF5</a>
</td><td></td><td valign=top>A DDL in BNF for HDF5.
</td></tr>
<tr><td valign=top><hr noshade size=1><a href="Ragged.html" target="PrintWin">Ragged Arrays</a>
</td><td></td><td valign=top><hr noshade size=1>A guide to the
<strong>H5RA</strong> interface.
&nbsp;&nbsp;<em><font color=red>(Experimental)</font></em>
</td></tr>
</table>
</center>
<br><br>
<hr>
<address>
<table width=100% border=0>
<tr><td align=left valign=top>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
<br>
Last modified: 1 June 1999
</table>
</body>
</html>

View File

@@ -0,0 +1,75 @@
<html>
<head>
<title>
HDF5 User's Guide
</title>
</head>
<body bgcolor="#FFFFFF">
<hr>
<br>
<br><br>
<center>
<font size=7>
A User's Guide for HDF5
</font>
<br><br><br>
<hr>
<hr>
<br><br><br>
<font size=6>
Release 1.0
<br>
January 1999
</font>
<br><br><br><br>
<font size=3>
Hierarchical Data Format (HDF) Group
<br>
National Center for Supercomputing Applications (NCSA)
<br>
University of Illinois at Urbana-Champaign (UIUC)
</font>
</center>
<br><br><br>
<hr>
<hr>
<br><br><br>
<br><br><br>
<blockquote>
<strong>A Note to the Reader:</strong>
The primary HDF5 user documents are the online HTML documents
distributed with the HDF5 code and binaries and found on the HDF5 website.
Several users have expressed a desire for documents in an alternative format:
<ul>
<li>Some have requested a version that can be reasonably printed in a
single print operation.
<li>Others have requested an easily searchable version.
</ul>
This PDF file has been created expressly to meet these needs.
<p>
The reader will note that each section of this document looks very much
as the corresponding HTML page would look in a web browser. That is not
accidental as the HTML version remains the HDF5 development team's primary
documentation vehicle.
</blockquote>
<br><br>
<hr>
</body>
</html>

View File

@@ -1,39 +1,156 @@
<html>
<head>
<title>
HDF5 Uer's Guide
HDF5 User's Guide
</title>
</head>
<body>
<center><h1>A User Guide for HDF5</h1></center>
<body bgcolor="#FFFFFF">
<hr>
<center>
<table border=0 width=98%>
<tr><td valign=top align=left>
<a href="H5.intro.html">Introduction to HDF5</a>&nbsp;<br>
<a href="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
<!--
And in this document, the
HDF5 User's Guide:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<br>
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
-->
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
<hr>
<center><h1>A User's Guide for HDF5</h1></center>
<p>The following documents form a loosely organized user's guide
to the HDF5 library.
<ul>
<li><a href="Files.html">HDF5 Files</a> -
A guide to the H5F interface.
<li><a href="Datasets.html">Datasets</a> -
A guide to the H5D interface.
<li><a href="Datatypes.html">Data types</a> -
A guide to the H5T interface.
<li><a href="Dataspaces.html">Data spaces</a> -
A guide to the H5S interface.
<li><a href="Groups.html">Groups</a> -
A guide to the H5G interface.
<li><a href="Attributes.html">Attributes</a> -
A guide to the H5A interface.
<li><a href="Properties.html">Property lists</a> -
A guide to the H5P interface.
<li><a href="Errors.html">Error handling</a> -
A guide to the H5E interface.
<li><a href="Caching.html">Caching</a> -
A guide for meta and raw data caching.
<li><a href="tracing.html">API Tracing</a> -
A guide to debugging HDF5 API calls.
</ul>
<center>
<table border=0>
<tr><td valign=top><a href="Files.html">HDF5 Files</a>
</td><td>&nbsp;&nbsp;&nbsp;&nbsp;</td>
<td valign=top>A guide to the <strong>H5F</strong> interface.
</td></tr>
<tr><td valign=top><a href="Datasets.html">Datasets</a>
</td><td></td><td valign=top>A guide to the <strong>H5D</strong>
interface.
</td></tr>
<tr><td valign=top><a href="Datatypes.html">Data Types</a>
</td><td></td><td valign=top>A guide to the <strong>H5T</strong>
interface.
</td></tr>
<tr><td valign=top><a href="Dataspaces.html">Dataspaces</a>
</td><td></td><td valign=top>A guide to the <strong>H5S</strong>
interface.
</td></tr>
<tr><td valign=top><a href="Groups.html">Groups</a>
</td><td></td><td valign=top>A guide to the <strong>H5G</strong>
interface.
</td></tr>
<tr><td valign=top><a href="References.html">References and
Identifiers</a>
</td><td></td><td valign=top>A guide to the <strong>H5R</strong>
and <strong>H5I</strong> interfaces.
</td></tr>
<tr><td valign=top><a href="Attributes.html">Attributes</a>
</td><td></td><td valign=top>A guide to the <strong>H5A</strong>
interface.
</td></tr>
<tr><td valign=top><a href="Properties.html">Property Lists</a>
</td><td></td><td valign=top>A guide to the <strong>H5P</strong>
interface.
</td></tr>
<tr><td valign=top><a href="Errors.html">Error Handling</a>
</td><td></td><td valign=top>A guide to the <strong>H5E</strong>
interface.
</td></tr>
<tr><td valign=top><a href="Filters.html">Filters</a>
</td><td></td><td valign=top>A guide to the <strong>H5Z</strong>
interface.
</td></tr>
<tr><td valign=top><a href="Caching.html">Caching</a>
</td><td></td><td valign=top>A guide for meta and raw data caching.
</td></tr>
<tr><td valign=top><a href="Chunking.html">Dataset Chunking</a>
</td><td></td><td valign=top>A guide to the issues and pitfalls
of dataset chunking.
</td></tr>
<tr><td valign=top><a href="Debugging.html">Debugging</a>
</td><td></td><td valign=top>A guide to debugging HDF5 API calls.
</td></tr>
<tr><td valign=top><a href="Environment.html">Environment Variables
and</a>
<br>&nbsp;&nbsp;&nbsp;<a href="Environment.html">Configuration
Parameters</a>
</td><td></td><td valign=top>A list of HDF5 environment variables
and <br>&nbsp;&nbsp;&nbsp;configuration parameters.
</td></tr>
<tr><td valign=top><a href="ddl.html">DDL for HDF5</a>
</td><td></td><td valign=top>A DDL in BNF for HDF5.
</td></tr>
<tr><td valign=top><hr noshade size=1><a href="Ragged.html">Ragged Arrays</a>
</td><td></td><td valign=top><hr noshade size=1>A guide to the
<strong>H5RA</strong> interface.
&nbsp;&nbsp;<em><font color=red>(Experimental)</font></em>
</td></tr>
</table>
</center>
<br>
<!--
<p>The following documents form a loosely organized developer's guide to
aspects of the HDF5 library. (Some of the following documents
may be rather out of date as they were working papers for design
@@ -44,30 +161,109 @@
A description of HDF5 version numbers.
<li><a href="IOPipe.html">I/O Pipeline</a> -
A description of the raw data I/O pipeline.
<li><a href="Compression.html">Compression</a> -
A guide to the use of compression for datasets.
<li><a href="ExternalFiles.html">Working with external files</a> -
<li><a href="ExternalFiles.html">Working with External Files</a> -
A guide to the use of multiple files with HDF5.
<li><a href="Big.html">Large Datasets</a> -
A guide to accessing large datasets on small computers.
<li><a href="MemoryManagement.html">Memory management</a> -
<li><a href="MemoryManagement.html">Memory Management</a> -
A white paper about memory management issues in HDF5.
<li><a href="Coding.html">Coding style</a> -
<li><a href="Coding.html">Coding Style</a> -
A white paper about coding style in the HDF5 library code.
<li><a href="compat.html">HDF4/HDF5 compatibility</a> -
<li><a href="compat.html">HDF4/HDF5 Compatibility</a> -
A white paper about compatibility issues between HDF4 and HDF5.
<li><a href="study.html">Chunking performance study</a> -
<li><a href="study.html">Chunking Performance Study</a> -
A white paper describing the HDF5 chunking performance.
</ul>
-->
<hr>
<center>
<table border=0 width=98%>
<tr><td valign=top align=left>
<a href="H5.intro.html">Introduction to HDF5</a>&nbsp;<br>
<a href="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
<!--
And in this document, the
HDF5 User's Guide:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<br>
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
-->
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
<!--
<hr>
<address><a href="mailto:koziol@ncsa.uiuc.edu">Quincey Koziol</a></address>
<address><a href="mailto:matzke@llnl.gov">Robb Matzke</a></address>
-->
<!-- hhmts start -->
Last modified: Wed Jul 8 14:10:50 EDT 1998
<!--
Last modified: Wed Aug 19 15:29:11 PDT 1998
-->
<!-- hhmts end -->
<hr>
<address>
<table width=100% border=0>
<tr><td align=left valign=top>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
<br>
Last modified: 30 October 1998
</td><td align=right valign=top>
<a href="Copyright.html">Copyright</a>&nbsp;&nbsp;
</td></tr>
</table>
</body>
</html>

BIN
doc/html/IH_map1.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
doc/html/IH_map2.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
doc/html/IH_map3.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

BIN
doc/html/IH_map4.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

BIN
doc/html/IH_mapFoot.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

BIN
doc/html/IH_mapHead.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Some files were not shown because too many files have changed in this diff Show More