Commit Graph

56 Commits

Author SHA1 Message Date
Quincey Koziol
e87fc517b8 [svn-r4355] Purpose:
Code cleanup (sorta)

Description:
    When the first versions of the HDF5 library were designed, I remembered
    vividly the difficulties of porting code from a 32-bit platform to a 16-bit
    platform and asked that people use intn & uintn instead of int & unsigned
    int, respectively.  However, in hindsight, this was overkill and
    unnecessary since we weren't going to be porting the HDF5 library to
    16-bit architectures.

    Currently, the extra uintn & intn typedefs are causing problems for users
    who'd like to include both the HDF5 and HDF4 header files in one source
    module (like Kent's h4toh5 library).

Solution:
    Changed the uintn & intn's to unsigned and int's respectively.

Platforms tested:
    FreeBSD 4.4 (hawkwind)
2001-08-14 17:09:56 -05:00
Quincey Koziol
990fadfbe5 [svn-r4181] Purpose:
Bug Fix, Code Cleanup, Code Optimization, etc.
Description:
    Fold in the hyperslab speedups, clean up compile warnings and change a
    few things from using 'unsigned' or 'hsize_t' to use 'size_t' instead.
Platforms tested:
    FreeBSD 4.3 (hawkwind), Solaris 2.7 (arabica), Irix64 6.5 (modi4)
2001-07-10 16:19:18 -05:00
Bill Wendling
5e483d0184 [svn-r3781] Purpose:
Update
Description:
    Changed

        #include <hdf_file.h>

    construct to

        #include "hdf_file.h"

    so that the GNU compiler can more easily pick up the dependencies
    which it places in the .depend and Dependencies files. Also
    regenerated the Dependencies to go along with this.
Platforms tested:
    Linux
2001-04-05 12:29:14 -05:00
Quincey Koziol
35bc545296 [svn-r3252] Purpose:
Code cleanup.
Description:
    Fixed _lots_ (I mean _tons_) of warnings spit out by the gcc with the
    extra warnings.  Including a few show-stoppers for compression on IRIX
    machines.
Solution:
    Changed lots of variables' types to more sensible and consistent types,
    more range-checking, more variable typecasts, etc.
Platforms tested:
    FreeBSD 4.2 (hawkwind), IRIX64-64 (modi4)
2001-01-09 16:22:30 -05:00
Quincey Koziol
ba28c64ba7 [svn-r2652] Purpose:
Maintainance & performance enhancements
Description:
    Re-arranged header files to protect private symbols better.

    Changed optimized regular hyperslab I/O to compute the offsets more
    efficiently from previous method of using matrix operations.

    Added sequential I/O operations at a more abstract level (at the same level
    as H5F_arr_read/write), to support the optimized hyperslab I/O.

Platforms tested:
    Solaris 2.6 (baldric) & FreeBSD 4.1.1 (hawkwind)
2000-10-10 02:43:38 -05:00
Quincey Koziol
ae69e30f76 [svn-r2318] Rearranged metadata caching to put caching information in the objects being
cached instead of in separate structures.  This reduces the amount of memory
the hash table uses by about half.  This is the initial step along the path of
speeding up the metadata caching.
2000-06-01 18:45:11 -05:00
Quincey Koziol
02e4ee5edf [svn-r2073] Added free-list code to the library and took out the older "temporary buffer"
code, since the functionality was superceded.  See the followup document for
details on the free-list code.
2000-04-04 16:00:31 -05:00
Robb Matzke
e4834c43ce [svn-r1548] Changes since 19990727
----------------------

./src/H5.c		[1.3]
./src/H5AC.c		[1.3]
./src/H5ACprivate.h	[1.3]
./src/H5B.c		[1.3]
./src/H5Bprivate.h	[1.3]
./src/H5D.c		[1.3]
./src/H5F.c		[1.3]
./src/H5Farray.c	[1.3]
./src/H5Fcore.c		[1.3]
./src/H5Ffamily.c	[1.3]
./src/H5Fistore.c	[1.3]
./src/H5Flow.c		[1.3]
./src/H5Fmpio.c		[1.3]
./src/H5Fprivate.h	[1.3]
./src/H5Fsec2.c		[1.3]
./src/H5Fsplit.c	[1.3]
./src/H5Fstdio.c	[1.3]
./src/H5G.c		[1.3]
./src/H5Gent.c		[1.3]
./src/H5Gnode.c		[1.3]
./src/H5Gprivate.h	[1.3]
./src/H5Gstab.c		[1.3]
./src/H5HG.c		[1.3]
./src/H5HGprivate.h	[1.3]
./src/H5HL.c		[1.3]
./src/H5HLprivate.h	[1.3]
./src/H5MF.c		[1.3]
./src/H5MFprivate.h	[1.3]
./src/H5O.c		[1.3]
./src/H5Oattr.c		[1.3]
./src/H5Ocont.c		[1.3]
./src/H5Odtype.c	[1.3]
./src/H5Oefl.c		[1.3]
./src/H5Olayout.c	[1.3]
./src/H5Oprivate.h	[1.3]
./src/H5Oshared.c	[1.3]
./src/H5Ostab.c		[1.3]
./src/H5P.c		[1.3]
./src/H5R.c		[1.3]
./src/H5Smpio.c		[1.3]
./src/H5T.c		[1.3]
./src/H5Tvlen.c		[1.3]
./src/H5private.h	[1.3]
./test/dtypes.c		[1.3]
./test/gheap.c		[1.3]
./test/istore.c		[1.3]
./test/lheap.c		[1.3]
./test/ohdr.c		[1.3]
./tools/h5debug.c	[1.3]
	File addresses (the `haddr_t' type) are passed by value
	instead of by reference. The type is no longer a struct. This
	is one of the preliminary changes needed for the Virtual File
	Layer stuff.

./src/H5Fprivate.h	[1.3]
./src/H5Flow.c		[1.3]
	Some address functions were rewritten as macros.
1999-07-28 13:25:43 -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
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
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
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
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
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
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
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
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
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
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
b4c5e3e009 [svn-r407] ./src/H5A.c
./src/H5D.c
./src/H5Tconv.c
./src/H5detect.c
	Updated to work with new internal H5T functions.  Fixed some
	data type memory leaks during error recovery.

./src/H5Dprivate.h
	Added H5D_typeof() similar to H5D_entof() that returns a
	pointer directly to the dataset's type.  This is used by
	H5Tcopy() when invoked on a dataset (see below).

./src/H5Epublic.h
	Fixed typos in H5E_BEGIN_TRY and H5E_END_TRY macros.

./src/H5F.c
	Closing a file with objects still open reports the file name
	in the warning message.  Removed unnecessary invalidation of
	shared data types.

./src/H5Gent.c
./src/H5Gpkg.h
./src/H5Gprivate.h
	Added `const' to some arguments.

./src/H5O.c
./src/H5Oprivate.h
./src/H5Oshared.c
	An object header message can now be a pointer to a message in
	some other object header.  The pointer is to the first message
	of the appropriate type in the other object header and hard
	link counts are maintained automatically to prevent dangling
	pointers.  The old global heap method of message sharing is
	also supported although nothing actually uses it.

./src/H5Oattr.c
./src/H5Ocomp.c
./src/H5Ocont.c
./src/H5Odtype.c
./src/H5Oefl.c
./src/H5Olayout.c
./src/H5Oname.c
./src/H5Osdspace.c
./src/H5Oshare.c
./src/H5Ostab.c
	Changed the data type for the shared message info struct to
	H5O_shared_t and added an extra initializer to the class
	methods struct for the set_share method.

./src/H5Odtype.c
	Added the ability to share data type messages by pointing to
	other object headers.

./src/H5T.c
./src/H5Tpkg.h
./src/H5Tprivate.h
./src/H5Tpublic.h
	Added named data types and changed the functionality of some
	API functions as follows:

	* The term `read-only' means that a type handle cannot be
	  modified with functions like H5Tset_*() or H5Tinsert().

	* The term `immutable' means the same as `read-only' with the
	  added restriction that H5Tclose() cannot be called for the
	  type. A transient type is made immutable by calling
	  H5Tlock().

	* Handles to named types are always read-only.

	* Handles to predefined types are immutable.

	* A transient type can be converted to a named type by calling
	  H5Tcommit().  This function will fail if the type is already
	  named or is immutable.

	* The API function H5Tcommitted() returns an indication of
	  whether a data type has been commited (or is named).  If
	  H5Tcommitted() returns TRUE for a data type obtained by
	  calling H5Dget_type() on a dataset, then the dataset is
	  using a shared data type.

	* H5Topen() returns a handle to a named type.

	* H5Tcopy() always returns a handle to a modifiable transient
	  type even when invoked on a named type.  Also, when invoked
	  on a dataset it returns a modifiable transient type which is
	  a copy of the dataset's data type.

	* Using a named data type in the call to H5Dcreate() causes
	  the dataset object header to point to the named data type,
	  but using a transient type causes the type to be copied into
	  the dataset's object header.

	* The data type returned from H5Dget_type() is a named data
	  type or a read-only transient data type depending on whether
	  the dataset points to a named data type.   The old behavior,
	  to return a modifiable transient type, is accomplished by
	  overloading H5Tcopy() to operate on datasets (see above).

	* H5Tshare(), H5Tunshare(), and H5Tis_shared() have been
	  removed from the API.

	The following features were *not* implemented because they
	need more discussion:

	* A named data type can be opened by applying H5Topen() to a
	  dataset in which case the data type is the data type of the
	  dataset (or the data type to which the dataset points if the
	  dataset has a shared data type).

	* A named data type can have attributes like groups or
	  datasets.

	* The members of a compound data type can point to named data
	  types.

./src/h5ls.c
	Reports `Data type' for named data type objects in the file.
1998-06-04 17:27:11 -05:00
Robb Matzke
d392756a1b [svn-r400] Changes since 19980513
----------------------

./html/Datasets.html
	Fixed a couple of typos.

./src/H5.c
	Added the `Z' modifier to HDfprintf() for `size_t' sizes.  Use
	it like this:
	   HDfprintf(stderr,"size is %Zd\n", (size_t)x);

./src/H5AC.c
./src/H5F.c
./src/H5Fprivate.h
	The maximum number of meta data objects that can be cached can
	be set from the application (but the library might not honor
	it every time; it's a hint).

./src/H5D.c
	Changed a warning message so it's not so alarming.

./src/H5Fistore.c
	Chunks can be cached.

./src/H5O.c
./src/H5Oprivate.h
	Added H5O_copy() and H5O_free() to copy and free messages.

./src/H5P.c
./src/H5Ppublic.h
	Added H5Pset_cache() and H5Pget_cache() and changed lots of
	"template" to "property list".

./src/H5Z.c
./src/H5Zpublic.h
	Miscellaneous little things to clean up.  Mostly just removed
	H5Z_MAXVAL and added H5Z_USERDEF_MIN and H5Z_USERDEF_MAX.

./MANIFEST
./test/Makefile.in
./test/chunk.c		[NEW]
	Added a performance test for chunk caching.  It looks at the
	amount of I/O instead of timing because timing is partly
	dependent on the chunk size and I wanted a measurement that
	was a function of only the cache size.  Run `chunk' with no
	arguments and then say `gnuplot x-gnuplot' to see the plots
	(press return between plots). Postscript files are created for
	each plot.

./test/big.c
./test/cmpd_dset.c
./test/extend.c
./test/external.c
./test/gheap.c
	Added H5F_ACC_DEBUG so we can see cache performance
	statistics.
1998-05-22 10:05:53 -05:00
Quincey Koziol
ca0a7c164e [svn-r361] Added Attribute (H5A) code. 1998-04-23 17:24:38 -05:00
Robb Matzke
1c1679b2d4 [svn-r356] Changes since 19980421
----------------------

./bin/release
./src/H5.c
./src/H5private.h
./src/H5public.h
./src/H5Fpublic.h
        Changed the version number constants to names that begin with
        H5_VERS_ and added macros that check that the version numbers
        in the include files match the version number of the library.

./MANIFEST
./html/H5.user.html
./html/Version.html    [NEW]
./html/version.obj     [NEW]
./html/version.gif     [NEW]
        Documented version numbers and the macros, constants, and
        functions associated with them.

./bin/versinc
        A perl script that increments the minor version number and
        sets the patch level back to zero.  This is intended to be
        invoked from the top of the source tree by a cvs commit
        anywhere in the source tree. Quincey?

./src/H5O.c
./src/H5Oprivate.h
        Added H5O_count() to count the number of object header
        messages of a particular type.  Quincey needs this for the
        attribute package.

./test/dsets.c
        Fixed warnings. Enabled the small strip-mine buffer test.

./config/linux
        Added optimizations for the Pentium-Pro for production mode.
1998-04-22 12:26:01 -05:00
Robb Matzke
011457075e [svn-r353] Changes since 19980414
----------------------

./html/Compression.html          [NEW]
./html/Datasets.html
./html/H5.format.html
./html/H5.user.html
        Documented compression.  A couple of the H5P functions aren't
        quite implemented yet but they're coming soon...

./src/H5Dprivate.h
./src/H5E.c
./src/H5Epublic.h
./src/H5Farray.c
./src/H5Fistore.c
./src/H5Fprivate.h
./src/H5MF.c
./src/H5MFprivate.h
./src/H5O.c
./src/H5Ocomp.c         [NEW]
./src/H5Oprivate.h
./src/H5P.c
./src/H5Ppublic.h
./src/H5Sprivate.h
./src/H5Ssimp.c
./src/H5Z.c             [NEW]
./src/H5Zprivate.h      [NEW]
./src/H5Zpublic.h       [NEW]
./src/Makefile.in
./src/hdf5.h
./test/dsets.c
./test/istore.c
        Compression is now mostly working.  Don't try to open a
        compressed dataset though because the compression message
        won't be read.

./html/Datatypes.html
./html/H5.api.html
./src/H5.c
./src/H5private.h
./src/H5D.c
./src/H5T.c
./src/H5Tconv.c
./src/H5Tpkg.h
./src/H5Tprivate.h
./src/H5Tpublic.h
        Added timing support.  When compiled with H5T_DEBUG defined
        the library will print conversion bandwidths when the library
        closes.  The H5Tregister functions take a string as the first
        argument so the statistics output is meaningful.

./MANIFEST
        Added new files.

./configure.in
./src/H5config.h.in
        Check for getrusage().  Check for compress2() in libz.a and
        the zlib.h header file.  Added `z' to the debug list.

./src/H5B.c
./src/H5Bprivate.h
./src/H5Gnode.c
./src/debug.c
        Cleaned up some indentation and added support to print istore
        B-trees.  From the debugger, give the B-tree address and the
        dimensionality from the layout message of the object header.

./src/h5ls.c
        The oid is printed as  w:x:y:z where w and x are the file ID
        and y and z are the OID within the file.  You can give z or
        y*2^32+z as an argument to the debugger to print the object
        header for the object.

./src/H5AC.c
        Cleaned up statistics and made them match those reported by
        H5T and H5Z.

./src/H5MM.c
./src/H5MMprivate.h
./src/H5Fistore.c
        Finally got rid of a couple of long-standing const cast
        warnings.
1998-04-17 16:29:43 -05:00
Robb Matzke
c01750fa74 [svn-r338] Changes since 19980407
----------------------

./src/H5B.c
./src/H5D.c
./src/H5Dprivate.h
./src/H5Dpublic.h
./src/H5F.c
./src/H5Farray.c
./src/H5Fcore.c
./src/H5Ffamily.c
./src/H5Fistore.c
./src/H5Flow.c
./src/H5Fprivate.h
./src/H5Fpublic.h
./src/H5Fsec2.c
./src/H5Fsplit.c
./src/H5Fstdio.c
./src/H5G.c
./src/H5Gent.c
./src/H5Gnode.c
./src/H5HG.c
./src/H5HL.c
./src/H5MF.c
./src/H5MFprivate.h
./src/H5O.c
./src/H5Ocont.c
./src/H5Odtype.c
./src/H5Oefl.c
./src/H5Olayout.c
./src/H5Oname.c
./src/H5Oprivate.h
./src/H5Osdspace.c
./src/H5Oshared.c
./src/H5Ostab.c
./src/H5P.c
./src/H5Ppublic.h
./src/H5S.c
./src/H5Sprivate.h
./src/H5Spublic.h
./src/H5Ssimp.c
./src/H5Tconv.c
./src/H5Tpkg.h
./src/H5V.c
./src/H5Vprivate.h
./src/H5private.h
./src/H5public.h
./src/h5ls.c
./test/cmpd_dset.c
./test/dsets.c
./test/extend.c
./test/external.c
./test/hyperslab.c
./test/iopipe.c
./test/istore.c
./test/shtype.c
./test/tfile.c
./test/th5s.c
	Anything having to do with the size of a dataset now uses the
	types `hsize_t' and `hssize_t' which must be the same size and
	at least as large as `size_t'.  This isn't fully tested yet,
	so hsize_t and hssize_t are defined as size_t and ssize_t in
	H5public.h.  Setting them to larger values will trip up gcc
	versions less than 2.8.1 on x86 platforms.

	Documented unused function formals with `__unused__' before
	the formal name.  This also has the effect of supressing
	warning messages for gcc since it's defined to be
	`__attribute__((unused))' in the H5private.h file.

./src/debug.c
./src/h5ls.c
	If the file name contains a `%' then the file is opened as a
	file family with H5P_DEFAULT for the file member access
	property list.

./src/h5ls.c
	The group name is optional, defaulting to `/'.

./src/hdf5.h
	Added some missing public header files.
1998-04-08 16:43:02 -05:00
Robb Matzke
68fa66bf81 [svn-r337] Changes since 19980403
----------------------

./configure.in
	Moved setting of compiler warning switches earlier in the file.
	Turned on more warning switches to gcc.

./config/linux
	Prints a warning if the gcc version is less than 2.8.1 since
	that version has problems with register allocation for `long
	long'.

./html/Datatypes.html
	Documented sharing of data types between datasets.

./src/H5G.c
./src/H5Gpublic.h
	Implemented H5Gmove(), H5Glink() and H5Gunlink() for hard
	links.  Still have soft links to do.

./src/H5AC.c
./src/H5ACprivate.h
./src/H5D.c
./src/H5E.c
./src/H5Eprivate.h
./src/H5F.c
./src/H5Farray.c
./src/H5Fcore.c
./src/H5Ffamily.c
./src/H5Fistore.c
./src/H5Flow.c
./src/H5Fprivate.h
./src/H5Fpublic.h
./src/H5Fsec2.c
./src/H5Fstdio.c
./src/H5G.c
./src/H5Gent.c
./src/H5Gnode.c
./src/H5Gpkg.h
./src/H5Gprivate.h
./src/H5HG.c
./src/H5HL.c
./src/H5HLprivate.h
./src/H5I.c
./src/H5Iprivate.h
./src/H5MM.c
./src/H5MMprivate.h
./src/H5O.c
./src/H5Oefl.c
./src/H5Oprivate.h
./src/H5Osdspace.c
./src/H5Oshared.c
./src/H5Ostab.c
./src/H5P.c
./src/H5S.c
./src/H5Ssimp.c
./src/H5T.c
./src/H5Tconv.c
./src/H5Tprivate.h
./src/H5Tpublic.h
./src/H5V.c
./src/H5Vprivate.h
./src/H5detect.c
./src/h5ls.c
./test/cmpd_dset.c
./test/dsets.c
./test/external.c
./test/hyperslab.c
./test/iopipe.c
./test/istore.c
./test/shtype.c
./test/tstab.c
	Fixed comparisons between signed and unsigned values. Fixed
	warnings about unused function arguments.
1998-04-07 10:34:16 -05:00
Robb Matzke
a780cdd178 [svn-r335] Changes since 19980330
----------------------

./MANIFEST
./src/Makefile.in
./test/Makefile.in
        Added new files.

./config/linux
./src/H5HL.c
./src/H5HLprivate.h
./src/H5MF.c
./src/H5MFprivate.h
        Added `-DH5HL_DEBUG -DH5MF_DEBUG' to the debug list.

./html/H5.format.html
        Updated shared object message information.

./src/H5D.c
        Datasets can now share data types.

./src/H5F.c
        Updated a comment that referred to H5ACC_WRITE.

./src/H5HG.c
./src/H5HGprivate.h
        Moved a few things around.  Made debugging better so you can
        now give a collection address to ./src/debug and it shows some
        useful stuff.

./src/H5O.c
./src/H5Ocont.c
./src/H5Odtype.c
./src/H5Oefl.c
./src/H5Olayout.c
./src/H5Oname.c
./src/H5Onull.c
./src/H5Oprivate.h
./src/H5Osdspace.c
./src/H5Oshared.c       [NEW]
./src/H5Ostab.c
        Supports shared messages.

./src/H5T.c
./src/H5Tpkg.h
./src/H5Tprivate.h
./src/H5Tpublic.h
        The H5Tshare() function allows the user to give the library
        hints about how a data type will be used.

./test/shtype.c
        Tests the H5Tshare() function.

./test/gheap.c
        Tests the global heap.

./configure.in
./config/BlankForm      [NEW]
./config/alpha-dec
./config/freebsd2.2.1
./config/hpux10.20
./config/irix6.2
./config/irix64
./config/linux
./config/powerpc-ibm-aix4.2.1.0
./config/rs6000-ibm-aix4.1.4.0
./config/solaris2.5
        Cleaned up lots of configuration stuff and made the site
        configuration files lots easier and more uniform.  To make a
        new file grab the BlankForm and modify it.

        By default, debugging is turned on for most packages.  Within
        a package one can use `#ifdef H5AC_DEBUG' to wrap debugging
        code.  Other options are:

           --enable-debug
           --enable-debug=yes
               The default, most but not all packages.

           --disable-debug
           --enable-debug=no
           --enable-debug=none
               The symbol NDEBUG is defined and none of the package
               debug symbols.

           --enable-debug=all
               Debugging is turned on for all packages.  This might
               produce lots of output.

           --enable-debug=g,d
               Debugging is turned on for H5G and H5D.

        A compile mode is also now supported

           --enable-production
           --enable-production=yes
               The library is compiled with optimizations turned on.
               The compiler flags are augmented by adding PROD_CFLAGS
               and PROD_CPPFLAGS which are defined in the site config
               file.

           --disable-production
           --enable-production=no
               The default.  The library is compiled for development
               by including DEBUG_CFLAGS and DEBUG_CPPFLAGS defined in
               the site config file.  This is usually just `-g'.

           --enable-production=profile
           --enable-production=pg
               Builds a library for profiling by including the flags
               from PROFILE_CFLAGS and PROFILE_CPPFLAGS defined in the
               site config file.  This is usullay just `-pg' but it
               could include optimization flags as well depending on
               the type of profile one wants.

        In summary, configure by saying `./configure' and you'll get a
        development version of the library.  Configure by saying
        `./configure --enable-production --disable-debug' and you'll
        get a production version with no debugging code.
1998-04-02 22:29:38 -05:00
Robb Matzke
e987de2c42 [svn-r329] Changes since 19980324
----------------------

./src/H5D.c
	Zero element requests for H5Dread() and H5Dwrite() succeed.

./src/H5F.c
./src/H5Fprivate.h
	All files will have a root group. This greatly simplifies the
	library at the expense of ~1k extra bytes in files that have
	only one object.

./src/H5D.c
./src/H5Dprivate.h
./html/Groups.html
	Functions that used to take a file ID and an object name can
	now take a group ID instead of a file ID.  This doesn't change
	the API, only it's documentation.

./src/H5G.c
./src/H5Gprivate.h
./src/H5O.c
./src/H5Oprivate.h
	Removed extra file arguments from some internal functions
	since the file pointer can be found from the group pointer or
	a symbol table entry (ent->file or H5G_fileof(group)).
	Besides, when we eventually implement mounting one file on
	another, H5G_namei() might return a different file than what
	you gave it, and that file is part of the returned symbol
	table entry.

./src/H5G.c
	Fixed bug with `.' appearing in a name. It used to hang the
	library.

./src/Makefile.in
./src/h5ls.c		[NEW]
./MANIFEST
	Added `h5ls' a simple program that takes a file name and a
	directory and lists the contents of that directory using
	H5Giterate().

./test/istore.c
	Changed an argument to H5G_create().

./test/tstab.c
	Removed test_1 which was testing that files with a single
	object don't have a root group.  This no longer applies.
1998-03-24 18:18:34 -05:00
Robb Matzke
4badc161ae [svn-r305] Changes since 19980304
----------------------

./MANIFEST
	New files

./html/extern1.gif		[NEW]
./html/extern1.obj		[NEW]
./html/extern2.gif		[NEW]
./html/extern2.obj		[NEW]
./html/Datasets.html
	Documented external raw data storage.

./html/Datasets.html
./html/chunk1.gif		[NEW]
./html/chunk1.obj		[NEW]
	Added a picture and better description for chunking since it
	seems that people are thinking chunks are fixed-size at the
	file level instead of at the array level.

./src/H5D.c
./src/H5Dpublic.h
./test/external.c
	Changed H5Dget_create_parms() to H5Dget_create_plist().

./src/H5D.c
./src/H5Farray.c
./src/H5Fprivate.h
./src/H5Oefl.c
./src/H5Oprivate.h
./src/H5Sprivate.h
./src/H5Ssimp.c
./test/external.c
./test/istore.c
	External raw data file I/O for contiguous storage is now
	working.  The library supports segments of various sizes which
	can be scattered throughout multiple files in any order.

./test/Makefile.in
	Remove more temporary files.
1998-03-05 10:48:16 -05:00
Robb Matzke
7bdea74ca9 [svn-r303] Changes since 19980228
----------------------

./html/Dataspaces.html
./html/Errors.html
./html/Files.html
./html/H5.api.html
./html/review1.html
./src/H5private.h
./src/H5public.h
./test/dsets.c
./test/dtypes.c
	Removed all the types like `int32' and `intn' into private
	headers since they violate the naming scheme and pollute
	application name space.  Besides, our test files only use them
	in a handful of places and it's probably useless to export
	them to the app.  The app is always written in terms of
	standard numeric types or its own numeric types and probably
	never in terms of HDF5 numeric types.  If it were, then the
	user would have to copy from their type to hdf5 type for
	almost every hdf5 API function call!  Same goes for return
	values.  I also removed SUCCEED/FAIL from the API since apps
	should be checking against zero anyway.

	       if (FAIL==(space=H5Screate_simple(...))) /*wrong*/
	       if ((space=H5Fcreate_simple(...)<0))     /*right*/


./src/H5.c
	Changed arguments of H5version() from `uintn' to `unsigned'.

./src/H5Tpublic.h
./src/H5T.c
	Changed return type of H5Tget_nmembers() from `intn' to `int'


./src/H5A.c
./src/H5Aprivate.h
./src/H5Apublic.h
	Changed `H5Asearch_func_t' to `H5A_search_func_t' and moved
	its definition from the public to the private header file.


./html/H5.format.html
	Documented changes made to the external file list (H5O_EFL)
	message.

./src/H5D.c
./src/H5Dprivate.h
./src/H5E.c
./src/H5Epublic.h
./src/H5O.c
./src/H5Oefl.c
./src/H5Oprivate.h
./src/H5P.c
./src/H5Ppublic.h
	Added partial support for external raw data files.  HDF5 can
	now describe external raw data files by listing the file
	names, offsets, and size for a dataset. However, we will
	restrict a dataset to be stored "contiguously" when the
	external file list is viewed as a single address space. The
	current implementation is unable to read/write to external
	files--that will come later this week as will documentation.
	For now, take a look at ./test/external.c, particularly the
	calls to H5Pset_external().

./test/Makefile.in
./test/external.c		[NEW]
./MANIFEST
	Added tests for external storage.  Note: the read test is
	supposed to fail at this point since reading external datasets
	is not implemented yet.  There is no write test.

./src/H5S.c
./src/H5Sprivate.h
./src/H5Ssimp.c
	Added H5S_get_npoints_max() to return the maximum possible
	number of data points in a data space.

	Added an extra argument to H5S_get_dims() which returns the
	maximum dims.

./src/H5F.c
./src/H5Fprivate.h
./src/H5Fpublic.h
./src/H5M.c			[DEPRICATED]
./src/H5Mpublic.h		[DEPRICATED]
	Changed `template' to `property list' in lots of places.

./src/H5Osdspace.c
	Removed an extra `\n' from a print statement.

./src/H5S_public.h
	Changed H5S_UNLIMITED to the maximum size_t value.

./test/extend.c
	"Extendable" is spelled "extendible".

./src/H5Farray.c
./src/H5V.c
./src/H5Vprivate.h
./test/hyperslab.c
	Strides are now type ssize_t instead of int.  These have
	nothing to do with the sample granularity arguments for
	hyperslabs, which are also called "strides" in the code.

./test/tstab.c
	Changed assumptions about default address and length sizes.
1998-03-04 11:20:23 -05:00
Quincey Koziol
faa3f5739e [svn-r296] Switched prefix for dataspaces from H5P to H5S 1998-02-25 13:48:33 -05:00
Albert Cheng
7e8e3eec42 [svn-r230] Changes were actually made by Robb. I am commiting them for him
while he is visiting LLNL.  I changed the default creation template
offset and length to 4.  Will fix the problem later.

Changes since 19980205
----------------------

./src/H5H.c
./src/H5Hprivate.h
./src/H5O.c
./src/H5Ocont.c
./src/H5Odtype.c
./src/H5Oefl.c
./src/H5Olayout.c
./src/H5Oname.c
./src/H5Onull.c
./src/H5Oprivate.h
./src/H5Odspace.c
./src/H5Ostab.c
./src/debug.c
./html/H5.format.html
        Added an extra 4-byte field after the heap magic number for
        alignment on the DEC alpha. Changed object header message
        alignment to 8-bytes.

./src/H5F.c
./src/H5Farray.c
./src/H5Ffamily.c
./src/H5Fistore.c
./src/H5Flow.c
./src/H5Fprivate.h
./src/H5Fsec2.c
./src/H5Fstdio.c
./src/H5Gnode.c
./src/H5O.c
./src/H5Odtype.c
./src/H5P.c
./src/H5Pprivate.h
./src/H5T.c
./src/H5Tconv.c
./src/H5Tpkg.h
./src/H5Tpublic.h
./src/H5V.c
./src/H5detect.c
./test/cmpd_dset.c
./test/dsets.c
./test/dtypes.c
./test/extend.c
./test/hyperslab.c
./test/istore.c
./test/th5p.c
./test/theap.c
        Fixed a few irix64 warnings regarding size_t vs. int,
        variables set but not used, printf formats

./config/irix64
        Added `-woff 1196' to get rid of errors about __vfork() being
        implicitly defined in a system header file.

./src/H5B.c
        Fixed a stack alignment problem.
1998-02-09 14:37:40 -05:00
Robb Matzke
a0ee2c57e9 [svn-r164] Changes since 19980122
----------------------

./src/*.h
	Fixed indentation where indent(1) screwed up.  This isn't by
	any means the final say, but it's better than it was.

./src/H5A.c
./src/H5Aprivate.h
./src/H5Apublic.h
./src/H5C.c
./src/H5D.c
./src/H5E.c
./src/H5F.c
./src/H5G.c
./src/H5M.c
./src/H5P.c
./src/H5T.c
./src/H5Tconv.c
./src/debug.c
./test/dtypes.c
./test/istore.c
./test/theap.c
./test/tohdr.c
./test/tstab.c
	Removed some atom functions from the API and made them
	library-scope. Also changed some names by removing the
	redundant `atom' from the name and by adding a `_' after the
	`H5A'.
1998-01-22 11:41:32 -05:00
Quincey Koziol
c2c94c3187 [svn-r157] Reformatted code with indent... 1998-01-16 17:23:43 -05:00
Robb Matzke
74618e3670 [svn-r155] Changes since 19980114
----------------------

./html/Datasets.html
	Removed some archaic comments about data spaces. Fixed example
	code.

./MANIFEST
./html/H5.format.html
./src/H5O.c
./src/H5Oprivate.h
./src/H5Ocstore.c		[DELETED]
./src/H5Oistore.c		[DELETED]
./src/H5Olayout.c		[NEW]
./src/Makefile.in
./test/istore.c
	Replaced H5O_CSTORE and H5O_ISTORE messages with a more
	general H5O_LAYOUT message.

./src/H5D.c
./src/H5Dprivate.h
./src/H5Dpublic.h
	A little more work on the pipeline.  Access to the file data
	is through the new H5F_arr_read() and H5F_arr_write() which do
	I/O on hyperslabs of byte arrays and don't depend on data
	layout.  This should simplify the I/O pipeline quite a bit.

	I also added another argument to H5Dread() and H5Dwrite() to
	describe the hyerslab of the file array on which I/O is
	occuring. We discussed this at last week's meeting.

./src/H5Farray.c		[NEW]
	Added functions that sit on top of H5F_block_read() and
	H5F_istore_read() and implement a common set of functions
	between all layouts.  This means I/O of hyperslabs of
	byte-arrays in the file to arrays of bytes in memory.  When
	operating on arrays of elements (>1byte) then we just add
	another dimension.  That is, a 10x20 array of int32 becomes a
	10x20x4 array of bytes.

	[This is the area I'll be working on most of next week to
	implement partial I/O for contiguous data and to improve
	performance for chunked data.]

./src/H5Fistore.c
./src/H5Fprivate.h
	Replaced the H5F_istore_t data type with the layout message
	H5O_layout_t which looks almost the same.  Eventually I'd like
	to rename `istore' to `chunked' everywhere and use `istore'
	for 1-d storage where the chunks are all different sizes like
	in the small object heap where each object is a chunk.

./src/H5V.c
	Changed ISTORE to LAYOUT in one place.

./test/dsets.c
	Fixed for extra argument to H5Dread() and H5Dwrite().
1998-01-16 14:52:04 -05:00
Robb Matzke
1063eb8a1e [svn-r152] Changes since 19980107
----------------------

./html/Datatypes.html
	Updated to match code.

./src/H5Odtype.c
./src/H5Oprivate.h
./src/H5Tpkg.h
./src/H5detect.c
	Changed H5T_FIXED to H5T_INTEGER.

./src/H5T.c
./src/H5Tprivate.h
./src/H5Tpublic.h
./test/dtypes.c
	Implemented lots of type properties.

./src/H5detect.c
./src/H5Tpublic.h
	It is no longer necessary to call H5init() before using a
	predefined data type.
1998-01-09 12:49:23 -05:00
Robb Matzke
159fa7a232 [svn-r151] Changes since 19980105
----------------------

./config/freebsd2.2.1
./config/linux
        Added -UH5O_DEBUG to the debug flags.  Turn this on to get
        lots of lines on stderr to show what objects are opened and
        closed.

./src/H5C.o
./src/H5Cpublic.h
./test/dsets.c
./test/tfile.c
        Split H5Cget_prop() and H5Cset_prop() into functions for each
        property.

./src/H5D.c
./src/H5Dpublic.h
./src/H5Gstab.c
./src/H5O.c
./src/H5Ocont.c
./src/H5Ocstore.c
./src/H5Odtype.c
./src/H5Oefl.c
./src/H5Oistore.c
./src/H5Oname.c
./src/H5Onull.c
./src/H5Oprivate.h
./src/H5Osdspace.c
./src/H5Ostab.c
./src/H5P.c
./src/istore.c
./test/tohdr.c
        Object header functions now understand constant
        vs. non-constant messages.

./src/H5F.c
./src/H5Fprivate.h
        The file OID can be closed before other OID's.

./src/H5Flow.c
        H5F_addr_defined() is a macro in this file.

./src/H5G.c
./src/H5Gpublic.h
./test/tstab.c
        A current working group cannot be deleted.

./src/H5Gent.c
./src/H5Gpkg.h
        Removed unused functionality.

./src/H5public.h
        Includes <sys/types.h> for size_t.
1998-01-07 12:14:26 -05:00
Robb Matzke
1d17defdfc [svn-r150] Changes since 19971219
----------------------

./src/H5private.h
        Changed HDF5_MAJOR_VERSION to 5

./src/H5Aprivate.h
./src/H5Apublic.h
        Added group atoms.

./src/H5D.c
./src/H5P.c
./test/istore.c
./test/tohdr.c
./test/tstab.c
        Updated for symbol table interface changes.

./src/H5F.c
./src/H5Fprivate.h
        Simpler handling of special case files: empty files and files
        with a single object.

./src/H5G.c
./src/H5Gent.c
./src/H5Gnode.c
./src/H5Gpkg.h
./src/H5Gprivate.h
./src/H5Gpublic.h
./src/H5Gshad.c         (DELETED)
./src/H5Gstab.c
./src/Makefile.in
        Removed shadows, simplifying code.  Symbol table entries are
        allowed to cache only constant meta data.  Fixed naming.

./src/H5O.c
./src/H5Oprivate.h
        Access to object headers is always done through a symbol table
        entry instead of a file address.  Added stubs for opening and
        closing object headers to be used when deletion is implemented.
1998-01-05 22:07:15 -05:00
Robb Matzke
faca6fbaa8 [svn-r145] ./src/H5Osdtyp.c -> H5Odtype.c
./src/H5Osdim.c		-> H5Osdspace.c
./src/Makefile.in
	Changed the names of these files to better reflect what they
	actually do.

./src/H5.c
./src/H5AC.c
./src/H5B.c
./src/H5C.c
./src/H5D.c
./src/H5E.c
./src/H5Eprivate.h
./src/H5Epublic.h
./src/H5F.c
./src/H5Fcore.c
./src/H5Ffamily.c
./src/H5Fistore.c
./src/H5Flow.c
./src/H5Fsec2.c
./src/H5Fsplit.c
./src/H5Fstdio.c
./src/H5G.c
./src/H5Gent.c
./src/H5Gnode.c
./src/H5Gshad.c
./src/H5Gstab.c
./src/H5H.c
./src/H5M.c
./src/H5MF.c
./src/H5O.c
./src/H5Osdtyp.c (./src/H5Odtype.c)
./src/H5P.c
./src/H5T.c
./src/H5detect.c
./src/H5private.h
	Added an argument to the HRETURN_ERROR(), HGOTO_ERROR(), and
	HERROR() macros which is a string error message.  This allows
	us to give extra information which can't be represented by the
	major and minor error numbers.  This information was
	previously in comments just before or after the macro call.
	The string isn't currently used, but I'm planning to change
	the test files so they print an error trace when something
	fails.  This should make debugging a little faster since it's
	often obvious what's wrong if we could just see the error
	stack without even having to start a debugger.
1997-12-11 16:35:46 -05:00
Robb Matzke
082dd8cda9 [svn-r139] ./src/*.[ch]
Removed the interface initialization argument from
	FUNC_ENTER() and made it a locally-defined preprocessor
	symbol, INTERFACE_INIT.

	Changed `offset' to `address' and `length' to `size' in
	documentation so it's more consistent.  `Offset' still appears
	occassionally when it refers to a byte offset within some
	other data structure.

	Moved interface termination function prototypes from public
	header files to .c files and made them static.

./src/H5.c
./src/H5public.h
	Added H5init() because it's possible that the predefined data
	types are not initialized.  This happens only if the first
	call to the hdf5 library passes a predefined data type symbol
	as an argument.  There should be some way to fix this...

./src/H5A.c
./src/H5Aprivate.h
./src/H5Apublic.h
	The free_func returns SUCCEED or FAIL, although the return
	value is ignored by H5A.  This is so we can use the various
	H5*_close() functions to free things.

	H5Ainc_ref() and H5Adec_ref() are no longer public.  Many of
	the other atom functions should also be made private, but I'll
	save that for later...

	Added additional template groups called H5_TEMPLATE_0 through
	H5_TEMPLATE_7 that are used by the various template
	subclasses.

	Increased the number of bits used for atom groups to prevent
	negative atoms.

./src/H5AC.c
./src/H5ACprivate.h
	Changed H5AC_new() to H5AC_create() to make names more consistent.

./src/H5B.c
./src/H5Bprivate.h
	Changed H5B_new() to H5B_create() to make names more consistent.

./src/H5C.c
./src/H5Cprivate.h
./src/H5Cpublic.h
	Now supports multiple subclasses of templates, although it's
	done with big switch statements.  The default values for
	templates are defined in the source file to which that
	template belongs.  This got rid of lots of needless
	preprocessor constants.

	Added H5Ccreate() to create a new template.  Changed
	H5C_release() to H5Cclose() to make the naming more
	consistent.

./src/H5D.c
./src/H5Dprivate.h
./src/H5Dpublic.h
	Enhanced to use the new dataset interface, and uses the enhanced
	data type and data space interfaces, which haven't been
	completely implemented.  The dataset interface doesn't handle
	non-contiguous storage, compression, or data type and space
	conversions yet.

./src/H5F.c
./src/H5Fprivate.h
./src/H5Fpublic.h
	Removed H5Fflush() since just calls H5F_flush(), which doesn't
	do what the user would probably think it does, namely, flush
	everything.  It only flushes those things sitting in the H5AC
	cache and the boot block.

	Changed the `file_create_parms' field of H5F_low_t to just
	`create_parms' since the `file' part is obvious.

./src/H5Fistore.c
	Added some support for external files.  Mostly just in the
	file format and not supported much by the library yet. I need
	to finish some dataset functions first.

	Changed H5F_istore_new() to H5F_istore_create() to make names
	more uniform across packages.

./src/H5Flow.c
	Flushing a file causes the file to be physically extended to
	the logical eof.  This prevents H5F_open() from thinking a
	file has been truncated.  Most of the time the file will
	already be that large, and when it isn't Unix will often just
	allocate the final block anyway.

./src/H5G.c
./src/H5Gent.c
./src/H5Gnode.c
./src/H5Gpkg.h
./src/H5Gprivate.h
./src/H5Gstab.c
	Removed H5G_basename()

	Removed (temporarily) data type information from symbol table
	entries and renamed H5G_CACHED_SDATA to H5G_CACHED_SDSPACE to
	reflect that it's a simple data space and has nothing to do
	with raw data.

	Changed H5G_node_new() to H5G_node_create() and H5G_stab_new()
	to H5G_stab_create() to make names more uniform across
	packages.

	Fixed an undefined address bug that happens when H5G_node_debug()
	program doesn't pass enough info to H5G_node_load().

./src/H5H.c
./src/H5Hprivate.h
	Changed H5H_new() to H5H_create() to make the names more
	uniform across packages.

./src/H5M.c
./src/H5Mprivate.h
./src/H5Mpublic.h
	Nulled all the create functions.  Most of the other callbacks
	are to public functions.  Removed H5Mcreate().

	Changed hobjtype_t to group_t since it has to be the same
	thing anyway.

./src/H5O.c
./src/H5Oprivate.h
./src/H5Osdim.c
./src/H5Osdtyp.c
	Changed H5O_SIM_DIM to H5O_SDSPACE (simple data space) since
	`simple data space' is its official name, not `simple
	dimensions'.  Will eventually add H5O_CDSPACE for comples data
	spaces. Changed _sim_dim_ to _dspace_.

	Replaced H5O_SIM_DTYPE and the compound data type messages
	with a single H5O_DTYPE message. Changed _sim_dtype_ to _dtype_.

	Changed H5O_STD_STORE to H5O_CSTORE (contiguous storage) since
	contiguous storage is not necessarily standard.  Changed
	_std_store_ to _cstore_ in H5Ocstore.c

	Added the H5O_EFL (external file list) message.

	Changed H5O_new() to H5O_create() to make names more uniform
	across packages.

./src/H5Oefl.c		NEW
	External file list message for specifying which non-hdf5 files
	contain raw data for a dataset.

./src/H5P.c
./src/H5Pprivate.h
./src/H5Ppublic.h
	Renamed and moved data structures to make the names conform to
	our naming scheme.

./src/H5T.c
./src/H5Tprivate.h
./src/H5Tpublic.h
./src/H5Tpkg.h		NEW
	Data structures redesigned to be more flexible.  The interface
	was redesigned to make it more regular and to make some names
	more uniform across packages.

./src/H5detect.c
	Output was changed to produce a file that conforms to the hdf5
	coding standard.

./src/Makefile.in
	Generates H5Tinit.c by running H5detect.

./src/debug.c
	Moved command argument processing.
1997-12-10 17:41:07 -05:00
Robb Matzke
cdeeb5553a [svn-r136] ./MANIFEST
./src/Makefile.in
	Added H5Ffamily.c and H5Fsplit.c

./src/H5B.c
./src/H5Bprivate.h
./src/H5Gnode.c
	Added `const' to sublass arguments.

./src/H5F.c
./src/H5Flow.c
./src/H5Fsec2.c
	Make sure file buffers get flushed during a call to
	H5Fflush().  Check for overflow in address encoding and decoding.

./src/H5Ffam.c
./src/H5Fprivate.c
./test/istore.c
	Implementation of file families so 32-bit machines can access
	64-bit files.

./src/H5Oprivate.h
	Removed H5O_NO_ADDR constant.

./config/freebsd2.2.1
./config/linux
	Added -DH5G_DEBUG and -DH5F_DEBUG to the list of debugging flags.

./html/H5.format.html
	Changed some <offset>-sized things to <length>-sized things.

./src/H5AC.c
./src/H5ACprivate.h
./src/H5B.c
./src/H5Bprivate.h
./src/H5C.c
./src/H5D.c
./src/H5F.c
./src/H5Fcore.c
./src/H5Fistore.c
./src/H5Flow.c
./src/H5Fprivate.h
./src/H5Fsec2.c
./src/H5Fstdio.c
./src/H5G.c
./src/H5Gent.c
./src/H5Gnode.c
./src/H5Gpkg.h
./src/H5Gprivate.h
./src/H5Gshad.c
./src/H5Gstab.c
./src/H5H.c
./src/H5Hprivate.h
./src/H5MF.c
./src/H5MFprivate.h
./src/H5O.c
./src/H5Ocont.c
./src/H5Oistore.c
./src/H5Oprivate.h
./src/H5Ostab.c
./src/H5Ostdst.c
./src/H5pivate.h
./src/debug.c
./test/istore.c
./test/theap.c
./test/tohdr.c
./test/tstab.c
	Lots of changes caused by generalizing addresses.  The haddr_t
	is now a struct, so you can no longer perform arithmetic on
	it. But since it's small, simple, and often used, storage is
	allocated like with an integer.  But we always pass them
	around by reference.  That is, when using an address in
	another struct, allocate space:

		struct my_struct {
		   char *name;
		   haddr_t address;
                } x;

	But when passing it to a function, pass by reference:

		H5F_addr_print (stderr, &(x.address));

	Addresses should be initialized with

		H5F_addr_undef (&(x.address));

	Functions for operating on addresses are in H5Flow.c and begin
	with H5F_addr_...  Functions never return haddr_t or haddr_t*;
	they always pass them through arguments instead. A function
	that returns an address through an argument does so with its
	last argument and it is marked with `/*out*/'.  Calls to such
	functions also mark output-only arguments with `/*out*/'

./src/H5Fsplit.c       (new)
	A two-member family where all meta data goes in the first
	member and all raw data goes in the second member.

./src/H5B.c
./src/H5D.c
./src/H5F.c
./src/H5Ffamily.c
./src/H5Fistore.c
./src/H5Flow.c
./src/H5Fprivate.h
./src/H5Fsec2.c
./src/H5Fstdio.c
./src/H5Gnode.c
./src/H5H.c
./src/H5MF.c
./src/H5MFprivate.h
./src/H5O.c
	Differentiate between meta data storage and raw data
	storage. Provide a mechanism so that the file driver can
	extend the file to allocate more memory.

./src/H5E.c
./src/H5Epublic.c
	Added the error H5E_TRUNCATED to be reported when the file is
	shorter than the length recorded in the boot block.

./src/H5F.c
	Added H5F_locate_signature() so we only do it in one place
	now.

./INSTALL
./INSTALL_MAINT
	Just a couple clarifications.

./html/ExternalFiles.html
./html/storage.html
	Documents how external files work.

./test/hyperslab.c
./test/istore.c
	Fixed printf's on 64-bit machines.

./test/istore.c
	Added ifdef's to test the split file driver.
1997-11-14 09:42:14 -05:00
Robb Matzke
56ad55117a [svn-r129] Changes since 19970916
----------------------

./config/depend.in
	Fixed backslashes in sed script because the H5Gnode.c
	dependency info was disappearing.  You'll have to rerun
	config.status to rebuild the Makefiles unless you use gnu
	make.

./config/conclude.in
	Also removes emacs backup files, TAGS, and svf backup files.

./config/linux
	Grouped gcc flags and added provisions for debugging vs. production.

./html/H5.format.html
	Updated messages 0x0008, 0x0009, and 0x000A.

./html/storage.html
	Documentation describing storage schemes.

./src/Makefile.in
./test/Makefile.in
	New source files.

./src/H5A.c
./src/H5Apublic.h
./src/H5C.c
	Changed VOIDP to void* in a couple places.

./src/H5AC.c
./src/H5ACprivate.h
./src/H5B.c
./src/H5Bprivate.h
./src/H5G.c
./src/H5Gnode.c
./src/H5Gprivate.h
./src/H5H.c
./src/H5O.c
	Removed `const' from some variables because H5G_node_found() wanted
	to modify it's udata argument. Removing const there caused it
	to cascade to these other locations.

./src/H5AC.c
./src/H5ACprivate.h
./src/H5B.c
./src/H5Gnode.c
./src/H5Gstab.c
./src/H5H.c
./src/H5O.c
	Added an extra argument to H5AC_find_f() and H5AC_protect(). This
	arg gets passed to the load() method.  Also added an extra
	argument to the H5AC_find() macro.

./src/H5B.c
./src/H5Bprivate.h
./src/H5Gnode.c
	Extra argument passed to the sizeof_rkey() method.

./src/H5Fprivate.c
./src/H5Fistore.c (new)
	Added indexed I/O operations.

./src/H5G.c
./src/H5Gnode.c
./src/H5Gprivate.h
	Beginning to add H5G_open/close and related bug fixes.

./src/H5Oprivate.h
./src/H5Oistore.c (new)
	Added the H5O_ISTORE messsage (0x0008) for indexed storage of
	objects.

./src/H5private.h
	Added extra braces around both sides of the FUNC_ENTER() and
	FUNC_LEAVE() macros so FUNC_ENTER() can appear before
	declarations or after executable statements the second case is
	used by H5G_namei() to initialize output arguments to sane
	values before FUNC_ENTER() might return failure.

		int f ()
		{
		   int decl1;
		   printf ("This happens before FUNC_ENTER()\n");
		   FUNC_ENTER (...);
		   int another_declaration;

./src/H5B.c
./src/H5Bprivate.h
./src/H5Gnode.c
	Extra arguments for key encoding and decoding.

./src/H5E.c
./src/H5Epublic.h
./src/H5Fistore.c
./src/H5Oistore.c
./src/H5Oprivate.h
	Indexed, chunked, sparse storage (not ready for general consumption
	yet).

./src/H5V.c		(new)
./src/H5Vprivate.h	(new)
./test/hyperslab.c	(new)
	Vector, array, and hyperslab functions.

./src/H5B.c
./src/H5Bprivate.h
./src/H5Fistore.c
./src/H5Gnode.c
./src/H5V.c
./src/H5Vprivate.h
./test/hyperslab.c
	Added functionality for indexed storage.

./src/H5F.c
	Fixed problems with seek optimizing.  Recommend we disable it
	until we can implement it in the file/address class since all
	of HDF5 must be aware of it.

./src/H5O.c
	Fixed comeent speling erorr :-)

./MANIFEST
	Added new files.

./config/conclude.in
	Added the word `Testing' to the test cases.  So if a test
	program is called hyperslab then the make output will contain
	the line `Testing hyperslab'.

./config/linux
	The default file I/O library is Posix section 2 on my linux
	machine so I can do some I/O performance testing.

./src/H5C.c
./src/H5Cprivate.h
./src/H5Cpublic.h
	Added ability to set size of indexed-storage B-tree.

./src/H5D.c
./src/H5E.c
./src/H5Epublic.h
./src/H5F.c
./src/H5Fprivate.h
./src/H5G.c
./src/H5Gnode.c
./src/H5Gpkg.h
./src/H5Gprivate.h
./src/H5Gpublic.h
./src/H5Gshad.c
./src/H5Gstab.c
./test/stab.c
	Changed `directory' to `group' in numerous places.

./src/H5private.h
	The FILELIB constant can be set on the compile command-line.

./src/istore.c		     NEW
	Tests for indexed storage.
1997-10-20 18:14:35 -05:00
Robb Matzke
0f7fcaad25 [svn-r111] Changed hdf5_file_t to H5F_t, split data struct ito two halves, fixed
problems when opening the same file more than once.
1997-09-24 11:30:22 -05:00
Robb Matzke
8c8ae76bf5 [svn-r106] Fixed some symbol table bugs. Fixed a free memory read in H5Osdim.c. 1997-09-21 21:08:54 -05:00
Robb Matzke
25d866e9b4 [svn-r100] Interim checkin for purify. Also contains H5G shadow stuff, changes
to int64 encode/decode to fix purify on 32-bit systems, changes to
H5O_modify, changes to H5D.c to use H5F_open/close(), etc.
Documentation will be mailed shortly...
1997-09-19 11:36:59 -05:00
Quincey Koziol
08b00d7bfe [svn-r73] Lots of added code for dataset I/O. Its now writing out datasets to the disk
correctly, but only in "native" format.  I'm adding the data-type conversions
and checking the reading later today.
1997-09-12 10:32:33 -05:00
Robb Matzke
7ead4a900b [svn-r71] Lost my changelog, but basically some new caching functions. 1997-09-10 14:57:56 -05:00
Robb Matzke
cbf1f8dbb5 [svn-r55] ./src/H5F.c
Added H5Fflush() and H5F_flush() which flush (and optionally
	invalidate the cache) and flush the file boot block.

	H5Fcreate() calls H5F_flush() to output the boot block.

	H5Fclose() calls H5F_flush() to update the boot block.

	H5F_debug() prints the root symbol table entry.

./src/H5Fpublic.h
	Added H5Fflush() prototype.

./src/H5G.c
	The name message is removed when an object moves from the root
	object position into a directory.

	Added H5G_debug() to print a symbol table entry.  Most of the
	code was just moved from H5G_node_debug().

./src/H5Gnode.c
	Moved some debugging code into H5G_debug().

./src/H5Gprivate.c
	Added H5G_debug() prototype.

./src/H5O.c
	Implemented H5O_remove().

	Added identifiers for H5O_SIM_DIM and H5O_SIM_DTYPE so they
	can be read from files.

	H5O_load() combines adjacent null messages for better memory
	management.

./src/H5Oprivate.h
	Changed minimum header data block size from 16 to 32 bytes.

	Changed prototype for H5O_remove()
1997-08-29 17:23:04 -05:00
Quincey Koziol
39a94b2f53 [svn-r53] Added datatype and dimensionality messages to dataset header, cleaned up more
code, etc.
1997-08-29 14:26:32 -05:00