Commit Graph

50 Commits

Author SHA1 Message Date
Quincey Koziol
37ec6dc75e [svn-r17582] Description:
Bring changes from file free space branch back to the trunk.  *yay!*

Tested on:
        FreeBSD/32 6.3 (duty) in debug mode
        FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
        Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
                w/C++ & FORTRAN, w/threadsafe, in debug mode
        Linux/64-amd64 2.6 (smirom) w/Intel compilers, w/default API=1.6.x,
                w/C++ & FORTRAN, in production mode
        Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
                w/szip filter, in production mode
        Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
                in production mode
        Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in debug mode
        Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
        Mac OS X/32 10.5.8 (amazon) in debug mode
        Mac OS X/32 10.5.8 (amazon) w/C++ & FORTRAN, w/threadsafe,
                in production mode
2009-10-01 21:08:59 -05:00
Quincey Koziol
a365f0e6aa [svn-r16306] Description:
Bring r16305 back from revise_chunks branch:

	Add detection of C99 "designated initializers" to configure script and
use new H5_HAVE_C99_DESIGNATED_INITIALIZER macro to conditionally compile
default layout variables in src/H5Pdcpl.c

	Also, minor code cleanups, etc.

Tested on:
	FreeBSD/32 6.3 (duty) in debug mode
	(Other platforms tested on branch)
2009-01-14 08:09:42 -05:00
Quincey Koziol
7fc10c0ea7 [svn-r14413] Description:
Change H5P[gs]et_format_bounds() => H5P[gs]et_libver_bounds() and also
enumerated values H5F_FORMAT_{EARLIEST, LATEST} => H5F_LIBVER_{EARLIEST, LATEST}

Tested on:
        FreeBSD/32 6.2 (duty) in debug mode
        FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
        Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
                                in debug mode
        Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
                                in production mode
        Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
                                in production mode
        Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
                                w/szip filter, in production mode
        Mac OS X/32 10.4.10 (amazon) in debug mode
        Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in production mode
2008-01-14 18:49:12 -05:00
Quincey Koziol
c0b966ba1b [svn-r14374] Description:
Updates from running bin/reconfigure on recent changes, in preparation for
making private snapshot.  Also updated tracing information for recent types
added to public API routines.

Tested on:
    Linux/32 2.6.x (kagiso)
2008-01-04 12:43:56 -05:00
Quincey Koziol
cf56cd041d [svn-r14211] Description:
Remove --enable-hdfv1_6 configure flag, now that all dependencies on it
have been removed and new --with-default-api-version=[v16|v18] and
--disable-deprecated-symbols flags have taken its place.

	Update types in bin/trace so that bin/reconfigure runs cleanly.

	Run bin/reconfigure to regenerate configure script, along with
other associated files, etc.

Tested on:
        FreeBSD/32 6.2 (duty) in debug mode
        FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
        Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
                                in debug mode
        Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
                                in production mode
        Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
                                in production mode
        Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
                                w/szip filter, in production mode
        Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-18 13:57:08 -05:00
Quincey Koziol
4a5b97b930 [svn-r14022] Description:
Remove stray reference to "group revision" configure flag

    Remove Windows-specific EOL characters from src/H5FDwindows.c

    Add some missing types to bin/trace

    Re-run bin/reconfigure script to regenerate information after changes above.

Tested on:
    FreeBSD/32 6.2 (duty)
    FreeBSD/64 6.2 (liberty)
    Linux/32 2.6 (linux)
    Solaris/32 2.10 (linew)
2007-07-26 16:33:10 -05:00
Leon Arber
2618906fee [svn-r13438] Purpose: Bug Fix
Description:

Fixed some mistakes introduced yesterday due to a misunderstanding of what sort of datatypes the trace scripts prints out.  This commit mostly reverts those changes, adds some new datatypes, and fixes some errors with regards to how the trace script handles pointer datatypes.  Since the trace script scans the argument list for the "*" character and handles it appropriately, one should never need to explicitly specify a pointer type in the TypeString hash.
2007-02-28 20:00:16 -05:00
Leon Arber
1b2c200b10 [svn-r13429] Purpose: Bug Fix
Description:

Fix up the bin/trace script.  The script has been updated to include all of the new datatypes that have been added to the library.  It's output has also been made a bit clearer with regards to the NO TRACE comment scattered throughout the code which prevents tracing information from being added.

The script cannot handle functions that take a variable number of arguments nor can it deal with functions whose prototype differs based on certain preprocessor directives.  However, there are only 3 instances of this in the library.  All other warnings that the script used to generated have been fixed.

The script has not actually been run on the source files yet.

Tested:

smirom
2007-02-27 20:57:03 -05:00
Albert Cheng
5e1bee4f60 [svn-r13311] Updated copyright notice.
Test:
Just visual inspection as these are all comments changes.
2007-02-14 17:25:02 -05:00
Quincey Koziol
2f665b89ce [svn-r13047] Description:
Add "attribute exists" internal routine to make verifying that an attribute
with the same name doesn't already exist easier.

    Tweak "trace" script to produce more whitespace in H5TRACE macros, in order
to make them easier to read.

    Minor other whitespace cleanups

Tested on:
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
2006-12-11 20:49:59 -05:00
Quincey Koziol
a867b8f5fd [svn-r13045] Description:
Switch from using H5L_index_t/H5L_INDEX_<foo> to H5_index_t/H5_INDEX_<foo>
in order to accommodate indices on aspects of attributes as well as links.

    Add basic support for deleting attributes in dense storage (needs more
support/tests for shared attributes in dense storage still).

    Misc. cleanups, etc.

Tested on:
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
2006-12-11 19:42:19 -05:00
Quincey Koziol
7205052027 [svn-r12940] Description:
Add some more types to tracing script and regenerate TRACE macros, etc.

Tested on:
    Linux/32 2.4 (heping)
2006-11-17 16:02:48 -05:00
Quincey Koziol
a6f6462541 [svn-r12700] Alert:
File format is not stable, don't keep files produced!

Description:
    First stage of checkins modifying the format of groups to support creation
order.  Implement "dense" storage for links in groups.

    Try to clarify some of the symbols for the H5L API.

    Add the H5Pset_latest_format() flag for FAPLs, to choose to use the newest
file format options (including "dense" link storage in groups)

    Add the H5Pset_track_creation_order() flag for GCPLs, to enable creation
order tracking in groups (although no index on creation order yet).

    Remove --enable-group-revision configure flag, as file format issues are
now handled in a backwardly/forwardly compatible way.

    Clean up lots of compiler warnings and other minor formatting issues.

Tested on:
    FreeBSD/32 4.11 (sleipnir) w/threadsafe
    Linux/32 2.4 (heping) w/FORTRAN & C++
    Linux/64 2.4 (mir) w/enable-v1.6 compa
    Mac OSX/32 10.4.8 (amazon)
    AIX 5.3 (copper) w/parallel & FORTRAN
2006-10-02 05:24:03 -05:00
James Laird
3e755623cb [svn-r12528] Added User-Defined links to the library.
Users can create external links using H5L_create_external().  These links
point to an object in another HDF5 file.  Users can alter the behavior of
external links or create new kinds of links by registering callbacks
using the H5L interface.

Added tests, tools support, etc.

Also a number of other, minor changes have been made (some restructuring of
the H5L interface, for instance).

Additional documentation and examples are forthcoming.
2006-08-02 18:41:53 -05:00
James Laird
801ca2f9cb [svn-r12452] Purpose:
Feature

Description:
Revised Link APIs.

Solution:
New link APIs use H5L*
H5*create_expand do not create links to the objects created; this must
be done manually with H5Llink.
Added APIs to link an object given its ID (H5Llink), to copy links (H5Lcopy),
and changed creation APIs (H5Lcreate_hard and H5Lcreate_soft) and query
API (H5Lget_linkinfo instead of H5Gget_objinfo).
All old APIs are still supported in H5Gdeprec.c .

Platforms tested:
sol, mir, copper

Misc. update:
Forgot to update MANIFEST and release docs.  Will do after checkin.
2006-07-05 14:01:50 -05:00
James Laird
25576025eb [svn-r11754] Purpose:
Feature

Description:
bin/reconfigure now allows users to define the paths to the autotools on their
system.  bin/reconfigure also runs the trace script when it is invoked.

Solution:
The autotools are specified using environment variables: AUTOCONF, AUTOMAKE,
ACLOCAL, AUTOHEADER, and LIBTOOL_DIR.  See bin/reconfigure for the defaults.
The version of each of the autotools is checked before they are run, so
users can't invoke the wrong version of any autotool.
The trace script is run on all the .c files in the src directory when
reconfigure is invoked.  Ideally, bin/reconfigure should be run when any new
function is added to the library, but if the tracing information is out of
date the library will still work.
The trace script has also been modified to ignore the multi and stdio file
drivers (per Quincey's suggestion).

Platforms tested:
mir, shanti
2005-12-02 13:46:20 -05:00
James Laird
4f8ca8e026 [svn-r11738] Purpose:
Configure feature

Description:
Added 'make trace' target.

Solution:
Added tracing to 1.7.  This was done automatically in 1.6, but left out
of 1.7 until now (oops!).
Tracing in 1.7 only happens manually, when the user types 'make trace.'
Tracing automatically requires more framework than it's worth.
I also fixed a couple of tracing bugs and ran trace.

Platforms tested:
mir, sleipnir, modi4

Misc. update:
2005-11-18 10:55:22 -05:00
John Mainzer
a9ba92287d [svn-r10688] Purpose:
Add API calls allowing user control of the metadata cache.


Description:

Prior to this update, the metadata cache was not configurable
from outside the library.


Solution:

Add API calls allowing the user to configure the metadata cache
either at file open time, or for any open file.  Also added calls
permitting the user to monitor cache size and hit rate.  These
latter facilities are needed for "manual" cache size control


Platforms tested:

h5committested


Misc. update:
2005-04-28 11:40:07 -05:00
Quincey Koziol
427ff7da28 [svn-r9727] Purpose:
Bug Fix/Code Cleanup/Doc Cleanup/Optimization/Branch Sync :-)

Description:
    Generally speaking, this is the "signed->unsigned" change to selections.
However, in the process of merging code back, things got stickier and stickier
until I ended up doing a big "sync the two branches up" operation.  So... I
brought back all the "infrastructure" fixes from the development branch to the
release branch (which I think were actually making some improvement in
performance) as well as fixed several bugs which had been fixed in one branch,
but not the other.

    I've also tagged the repository before making this checkin with the label
"before_signed_unsigned_changes".

Platforms tested:
    FreeBSD 4.10 (sleipnir) w/parallel & fphdf5
    FreeBSD 4.10 (sleipnir) w/threadsafe
    FreeBSD 4.10 (sleipnir) w/backward compatibility
    Solaris 2.7 (arabica) w/"purify options"
    Solaris 2.8 (sol) w/FORTRAN & C++
    AIX 5.x (copper) w/parallel & FORTRAN
    IRIX64 6.5 (modi4) w/FORTRAN
    Linux 2.4 (heping) w/FORTRAN & C++


Misc. update:
2004-12-29 09:26:20 -05:00
Quincey Koziol
b51c4f6d24 [svn-r8760] Purpose:
Code cleanup & small bug fix

Description:
    Regenerate dependency files

    Add htri_t as separate type from hbool_t for code tracing purposes.

Platforms tested:
    FreeBSD 4.10 (sleipnir) w/parallel
    too minor to require h5committest
2004-06-29 16:03:33 -05:00
Quincey Koziol
e2518919c9 [svn-r7626] Purpose:
Update dependencies and tracing information

Platforms tested:
    Linux 2.4 (verbena) w/FORTRAN
    too minor for h5committest
2003-10-14 10:46:38 -05:00
Bill Wendling
0eaf192df8 [svn-r7569] Purpose:
Bug Fix/Update

Description:
    Updated "trace" to include "void**" as a datatype (it sets it to
    "x"). Format changes as well.

    Added "close(DEPEND); close(NEW);" to the dependencies script. This
    was reported by a user that it wasn't doing this.

Platforms tested:
    Linux (small changes)

Misc. update:
2003-10-07 16:10:53 -05:00
Quincey Koziol
0d3e32316e [svn-r7291] Purpose:
Code cleanup

Description:
    Removed H5E_major_t and H5E_minor_t since they aren't used in the library
any longer.

Platforms tested:
    h5committested

Misc. update:
2003-08-08 13:28:42 -05:00
Quincey Koziol
b68be568be [svn-r7187] Purpose:
Update code

Description:
    Allow there to be no ';' after a FUNC_ENTER* macro

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    Linux 2.4 (verbena)
2003-07-09 12:13:39 -05:00
Quincey Koziol
0475dd9a70 [svn-r6412] Purpose:
Code cleanup

Description:
    Update dependencies and clean up a few warnings.

Platforms tested:
    Linux 2.2 (eirene) w/parallel
2003-02-17 12:11:03 -05:00
Quincey Koziol
98f01e2df2 [svn-r6255] Purpose:
Code cleanup

Description:
    Clean up a few more warnings and update dependencies.

Platforms tested:
    Linux 2.2.18smp (eirene) serial & parallel
2003-01-09 13:40:19 -05:00
Robb Matzke
5760cd2c9a [svn-r6191] ./hdf5-devel/bin/trace
Purpose:
    Missed a file
Description:
    Missed the `trace' changes.
Solution:
    Committing again
Platforms tested:
    None
2002-12-04 11:06:13 -05:00
Robb Matzke
946c559de1 [svn-r6175] ./hdf5-devel/bin/trace
Purpose:
    New Feature; Optimization; Clean-up
    (Merged from 1.4 branch)

Description:
    There is no symbolic constant to pass to functions that take an
    optional object ID for when the caller wants to indicate no object
    ID. In the past the caller always passed a negative integer.

    GPFS performs poorly.

    The h5ls tool decides whether to list the file name in the output
    based on a compile-time choice, which isn't always optimal at run
    time.

Solution:
    Added a symbolic constant H5I_INVALID_HID.

    Added code to tell the mmfsd of GPFS to forego byte range token
    prefetching.

    h5ls decides whether to print the file name at runtime based on
    the number of objects being listed.

Platforms tested:
    SuSE Linux (arborea), gcc and mpich-1.2.4
    SunOS (baldric), gcc


2002-08-09 11:58:59 Robb Matzke  <matzke@arborea.spizella.com>
	* rewrite_func: Add trace info after any kind of FUNC_ENTER* macro.
2002-12-04 10:43:54 -05:00
Quincey Koziol
3ce3ccc9eb [svn-r5984] Purpose:
Bug fix
Description:
    Teach the perl script about the new "_API" added to all API functions.
Platforms tested:
    FreeBSD 4.6 (sleipnir) w and w/o parallel
    Linux 2.2.x (eirene) w/FORTRAN & C++
    Solaris 2.7 (arabica) w/FORTRAN
    IRIX64 6.5 (modi4) w/FORTRAN & parallel
2002-10-14 13:34:01 -05:00
Quincey Koziol
893cf5899c [svn-r5466] Purpose:
Code cleanup.

Description:
    Updated perl scripts to be aware of new "FUNC_ENTER_NOINIT" macro.

Platforms tested:
    IRIX64 6.5 (modi4)
2002-05-28 13:02:38 -05:00
Quincey Koziol
214aa4a367 [svn-r5308] Purpose:
Update API tracing information
Platforms tested:
    Linux 2.2 (eirene)
2002-05-01 10:03:12 -05:00
Quincey Koziol
17da7e80da [svn-r4912] Purpose:
Feature add

Description:
    Added 'H5S_sel_type' to the list of types that the API tracing knows about.

Platforms tested:
    FreeBSD 4.5 (sleipnir)
2002-02-07 11:19:14 -05:00
Robb Matzke
ab3a1ae1df [svn-r2858] ./hdf5/bin/trace
* 2000-11-10 Robb Matzke  <matzke@llnl.gov>
	Changed `unknown type' error message to `untraceable
	type' so as to be more precise and less alarming.
2000-11-10 15:45:33 -05:00
Thomas Radke
faeae783e4 [svn-r2556] Purpose:
Added the H5FD_stream_fapl_t type to the TypeString mapping table.

Description:
     This servers for proper substitution of the H5TRACE macros in the
     Stream VFD sources.

Platforms:
     All platforms.
2000-09-15 06:39:46 -05:00
Robb Matzke
eb8747499d [svn-r1802] Changes since 19991019
----------------------

./MANIFEST
./configure.in
./configure			[REGENERATED]
	Added more checking for `make' features.

./Makefile.in
./doc/Makefile.in
./doc/html/Makefile.in
./doc/html/Tutor/Makefile.in
./examples/Makefile.in
./pablo/Makefile.in
./src/Makefile.in
./test/Makefile.in
./testpar/Makefile.in
./tools/Makefile.in
./config/commence.in
./config/conclude.in
./config/depend.in		[REMOVED]
./config/depend1.in		[NEW]
./config/depend2.in		[NEW]
./config/depend3.in		[NEW]
./config/depend4.in		[NEW]
./config/dependN.in		[NEW]
	The directory search stuff was moved into commence.in, thereby
	shortening the Makefile.in prologues.

./doc/html/Dependencies		[NEW]
./doc/html/Tutor/Dependencies	[NEW]
./examples/Dependencies		[NEW]
./src/Dependencies		[NEW]
./test/Dependencies		[NEW]
./testpar/Dependencies		[NEW]
./tools/Dependencies		[NEW]
	The `.distdep' files were all renamed to `Dependencies' to make them
	more obvious. They are required (but may be empty) in every directory
	that has a Makefile.in that ends with @CONCLUDE@ (you'll get an
	obvious error from make if you forgot to create one).

./bin/trace
./src/H5.c
	Added H5E_major_t and H5E_minor_t although tracing only prints the
	integer value.

./src/H5E.c
./src/H5Epublic.h
	Added tracing information.

./src/H5FDcore.c
./src/H5FDfamily.c
./src/H5FDgass.c
./src/H5FDmpio.c
./src/H5FDsec2.c
./src/H5FDstdio.c
	Fixed places where FUNC_LEAVE() evaluated it's argument more than
	once.

	Added tracing information.

	Wrapped long lines.

./config/gnu-flags
	Fixed a syntax error when we don't have a gnu compiler.
1999-11-01 10:21:16 -05:00
Robb Matzke
cbf68fc824 [svn-r1568] Changes since 19990730
----------------------

This extensive change is the virtual file layer implementation. I've
ported and tested the sec2, family, and core drivers and only ported
the mpio driver (Albert will test it).  So if you need MPIO I would
recommend sticking with the previous version for a while.

You will get a few compile warnings about split and stdio drivers not
being implemented and possibly tracing information not inserted in
some of the drivers. You can safely ignore them but I plan to fix
them.

I'm still working on the split driver because I just realized that it
needs a part of the VFL that isn't written yet.

Documentation is being updated also because there were some minor
changes (mostly just name changes). It should be available on my web
site later this week.

./MANIFEST
./src/Makefile.in
./src/hdf5.h
./src/H5Flow.c			[REMOVED]
./src/H5Fstdio.c		[REMOVED]
./src/H5Fsec2.c			[REMOVED]
./src/H5Fsplit.c		[REMOVED]
./src/H5Fmpio.c			[REMOVED]
./src/H5Ffamily.c		[REMOVED]
./src/H5Fcore.c			[REMOVED]
./src/H5MFpublic.h		[REMOVED]
./src/H5FD.c			[NEW]
./src/H5FDcore.c		[NEW]
./src/H5FDcore.h		[NEW]
./src/H5FDfamily.c		[NEW]
./src/H5FDfamily.h		[NEW]
./src/H5FDmpio.c		[NEW]
./src/H5FDmpio.h		[NEW]
./src/H5FDprivate.h		[NEW]
./src/H5FDpublic.h		[NEW]
./src/H5FDsec2.c		[NEW]
./src/H5FDsec2.h		[NEW]
	Removed/added files for virtual file layer.

./bin/trace
./src/H5.c
	Removed unused public datatypes and added new VFL public
	datatypes.

	Changed an error message.

./config/BlankForm
./config/dec-flags
./config/gnu-flags
./config/hpux10.20
./config/hpux9.03
./config/irix5.x
./config/irix6.x
./config/solaris2.x
./config/unicosmk
	Removed the H5F_OPT_SEEK and H5F_LOW_DFLT constants from the
	configuration since they're no longer applicable. The default
	file driver is always the sec2 driver and it always optimizes
	calls to lseek() or lseek64().

./config/depend.in
	C preprocessor errors generated during automatic dependency
	building are sent to /dev/null to prevent them from appearing
	twice in the make output.

./src/H5AC.c
./src/H5B.c
./src/H5D.c
./src/H5F.c
./src/H5G.c
./src/H5Gent.c
./src/H5Gnode.c
./src/H5HG.c
./src/H5HL.c
./src/H5O.c
./src/H5Oattr.c
./src/H5Odtype.c
./src/H5Oefl.c
./src/H5Oshared.c
./src/H5T.c
./src/H5detect.c
./test/ohdr.c
	Changed H5F_ADDR_UNDEF to HADDR_UNDEF to be more consistent
	with the `haddr_t' datatype which is now a public type.

./src/H5D.c
./src/H5P.c
./src/H5Ppublic.h
./src/H5Tconv.c
./test/cmpd_dset.c
./test/dsets.c
./test/overhead.c
./test/tselect.c
./test/tvltypes.c
	The H5P_DATASET_XFER constant was changed to H5P_DATA_XFER
	because the properties apply to all types of I/O operations,
	not just datasets.

./src/H5B.c
./src/H5Bprivate.h
./src/H5D.c
./src/H5Dpublic.h
./src/H5F.c
./src/H5Farray.c
./src/H5Fistore.c
./src/H5Fprivate.h
./src/H5Fpublic.h
./src/H5Gnode.c
./src/H5Gpkg.h
./src/H5HG.c
./src/H5HL.c
./src/H5O.c
./src/H5R.c
./src/H5Sall.c
./src/H5Shyper.c
./src/H5Smpio.c
./src/H5Spoint.c
./src/H5Sprivate.h
./test/big.c
./test/h5test.c
./test/istore.c
./testpar/t_dset.c
./testpar/t_file.c
./tools/h5debug.c
./tools/h5ls.c
	Modified to work with the virtual file layer by calling H5FD_*
	functions instead of H5F_low_* functions and by passing file
	access and data transfer properties by object ID instead of
	pointer.

	Changed H5D_transfer_t to H5FD_mpio_xfer_t since the
	COLLECTIVE vs. INDEPENDENT transfer mode is specific to the
	MPIO file driver.

	Moved MPIO-specific stuff into the MPIO driver.

./src/H5B.c
./src/H5D.c
./src/H5Fprivate.h
	The H5F_mpio_* private functions were renamed and placed in
	the H5FDmpio driver except those which appeared in H5Smpio.c.

./src/H5E.c
./src/H5Epublic.h
	Added major error number H5E_VFL for virtual file layer
	related errors.

./src/H5F.c
./src/H5Fprivate.h
	Changed the logic that controls whether the boot block is
	written. Instead of assuming that the first call to write the
	boot block is only to allocate space, I've added a function
	argument which makes this explicit.

	Changed the way files are compared so that a driver-defined
	comparison function can be called.  Files which belong to
	different drivers are always considered different.

	Removed H5F_driver_t since file drivers are now identified by
	object ID instead of a special non-user-extendible datatype.

	Removed all the hard-coded low-level file properties which
	have been replaced by the various file drivers.

./src/H5I.c
./src/H5Iprivate.h
	Added the H5I_inc_ref() which was removed a few months ago
	since we finally have a use for it.

./src/H5Ipublic.h
	Added the H5I_VFL object ID type to identify file drivers in
	the virtual file layer.

./src/H5MF.c
./src/H5MFprivate.h
	Moved all the allocation/deallocation code into the virtual
	file layer which allows file drivers to override much of it.

./src/H5P.c
./src/H5Ppublic.h
	Moved file driver-specific code into the various file driver
	files.

	The H5Pcopy() and H5Pclose() functions make calls into the
	virtual file driver to manage the memory for driver-specific
	file access and data transfer properties.

./src/H5private.h
./src/H5public.h
	The `haddr_t' type is now public.

./test/tfile.c
	Added a few more comments.
1999-08-10 15:21:32 -05:00
Robb Matzke
f759816f96 [svn-r1474] ./bin/h5vers [1.3]
Added `use strict' and declared some variables.

./bin/trace		[1.2, 1.3]
	Added definitions for H5D_operator_t, H5MM_allocate_t, and
	H5MM_free_t and regenerated tracing calls for the affected API
	functions.
1999-07-13 12:58:35 -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
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
Quincey Koziol
a7b166727d [svn-r799] Included htri_t as a hbool_t for now. 1998-10-26 17:42:26 -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
Quincey Koziol
6fd7f81615 [svn-r756] Detect reference parameters properly. 1998-10-13 16:28:13 -05:00
Quincey Koziol
fe135c15da [svn-r742] Added H5I_type_t type to types auto-detected. 1998-10-07 16:04:09 -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
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
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
Robb Matzke
6a1bea937d [svn-r469] Changes since 19980707
----------------------

./bin/trace
./src/H5.c
	Added tracing support for H5S_seloper_t and H5S_class_t.

./src/H5Sselect.c
./src/H5S.c
	Added tracing statements that weren't inserted previously
	because of formatting problems.

./src/H5T.c
./src/H5Tconv.c
./src/H5Tpkg.h
./src/H5Tprivate.h
./src/H5Tpublic.h
./test/cmpd_dset.c
	Added H5Tinsert_array() for inserting an array member into a
	compound data type.  Added support to the struct conversion
	function for member arrays.  The index permutation is not
	supported yet in the conversion (source and destination must
	have the same permutations).
1998-07-08 11:46:16 -05:00
Robb Matzke
bcf649388c [svn-r460] Changes since 19980707
----------------------

./bin/trace
./src/H5.c
./src/H5private.h
./src/H5A.c
./src/H5D.c
./src/H5F.c
./src/H5G.c
./src/H5P.c
./src/H5Pprivate.h
./src/H5S.c
./src/H5T.c
	Output-only arguments have their addresses printed during
	tracing and added symbolic output for the H5F_driver_t
	arguments.  That's another reason that we should be careful to
	add `/*out*/' after arguments that are output-only and
	`/*in,out*/' after arguments that are used for both input and
	output values.

	No internal function calls H5Pget_class() anymore.

./src/H5T.c
./src/H5Tconv.c
./src/H5Tpkg.h
./src/H5Tpublic.h
	Added H5Tget_overflow() and H5Tset_overflow() so the
	application can query or set a function that will be called
	whenever an overflow occurs.  Implemented as documented in
	previous e-mail except the overflow handler gets two buffers:
	one that contains the source value and one to receive the
	optional destination value.

./test/dtypes.c
	Tests overflow handler.

./src/H5.c
	We have to declare fdopen() because I'm getting errors when
	compiling on Irix64 even though we include <stdio.h> as
	documented in the fdopen() man page.
1998-07-07 15:13:31 -05:00
Robb Matzke
cf419d05ab [svn-r454] Changes since 19980702
----------------------

./src/H5T.c
	Prints statistics for no-op conversions also.

	For now, hardware floating point conversions may or may not
	raise SIGFPE depending on the hardware, operating system,
	etc.  Software conversions never raise SIGFPE and use +Inf or
	-Inf for overflow.

./test/dtypes.c
	Catches SIGFPE and causes the test to be skipped.  Better test
	for NaN.

./config/irix5.3
	Removed the -U_POSIX_SOURCE because it was removed from the
	main makefiles.

./bin/trace
./src/H5S.c
	Fixed a typo that prevented tracing info from being added to
	new API functions.
1998-07-06 18:02:32 -05:00
Robb Matzke
22538a0c79 [svn-r429] Changes since 19980616
----------------------

./html/tracing.html	NEW
	This entire update is to make it possible for the library to
	print the name, arguments, and return value of every API call
	without requiring any extra work from developers or app
	programmers.  This file describes how this all works.

./configure.in
	Added the `--enable-tracing' switch.  If you use it then the
	library will include code to print API function names,
	argument names and values, and function return values.
	However, you must then turn on the tracing by setting the
	HDF5_TRACE environment variable to a file descriptor number.
	The default is `--disable-tracing' since enabling it causes a
	slight increase in library size and a slowdown resulting from
	an extra function call for each API function call (I couldn't
	even measure the slowdown :-)

./bin/trace		NEW
	A perl script that synchronizes the H5TRACE() macro calls in
	the *.c files with the function return type and formal
	argument names and types.  If you use GNU make and gcc then
	this will be done automatically, otherwise just invoke this
	script with the names of one or more .c files.  You could do
	it by hand to, but encoding argument types is a little tricky
	at first.

./config/commence.in
	Added the $(TRACE) macro, which defaults to the no-op.
	Added -D_POSIX_SOURCE to the compiler command line.

./src/Makefile.in
	Override the default for $(TRACE).

./config/depend.in
	Automatically calls $(TRACE) to synchronize the H5TRACE()
	macros in any source file that changed.  As with makefile
	dependencies, one way to force synchronization of all files is
	to remove the `.depend' file.

./MANIFEST
	Added new files.

./src/H5Eprivate.h
	Modified HRETURN_ERROR() and HRETURN() for tracing.

./src/H5.c
./src/H5private.h
	This is where the real tracing work really happens, in
	H5_trace().

./src/H5A.c
./src/H5D.c
./src/H5G.c
./src/H5P.c
./src/H5S.c
./src/H5Z.c
	Added H5TRACE() calls to all API functions.  You don't really
	need these changes if you don't want to merge your stuff
	because they can be generated automatically by going to the
	hdf5/src directory and saying ../bin/trace *.c

./src/H5T.c
	Added H5TRACE() calls.  Other stuff below.

./src/H5E.c
./src/H5Epublic.h
	Added H5TRACE() calls.  Created a type H5E_auto_t for the
	`func' argument of H5Eset_auto() and H5Eget_auto() to make
	those arguments easier to parse for tracing. It should also
	make it clearer for users that don't know how to read
	complicated ANSI data types.

./src/H5F.c
	Added H5TRACE() calls.  Changed a couple `uintn' argument
	types in API functions to `unsigned int' since `uintn' part of
	the API.  Changed a few "can't" and "cant" error messages to
	"unable to".

./src/H5Ipublic.h
	Removed H5_DIRECTORY from the H5I_group_t enum.  It wasn't
	used anywhere.

./src/H5Tconv.c
	Removed an unused label.

./src/H5Fistore.c
./src/H5Oattr.c
./src/H5Odtype.c
./src/H5T.c
./test/dsets.c
./test/dtypes.c
	Fixed a warning about a variable possibly used before it's
	initialized.  Added __unused__ to turn off some unused
	argument warnings that pop up when debugging is turned off and
	optimizations are turned on.
1998-06-17 15:46:29 -05:00