Commit Graph

52 Commits

Author SHA1 Message Date
Quincey Koziol
579284f422 [svn-r14144] Description:
Move H5Gget_objinfo() to deprecated symbols section and retarget
internal usage to H5Lget_info()/H5Oget_info().

	Misc. other code cleanups...

Tested on:
	FreeBSD/32 6.2 (duty)
	FreeBSD/64 6.2 (liberty)
	Linux/32 2.6 (kagiso)
	Linux/64 2.6 (smirom)
	AIX/32 5.3 (copper)
	Solaris/32 2.10 (linew)
	Mac OS X/32 10.4.10 (amazon)
2007-09-13 10:44:56 -05:00
Quincey Koziol
c50c23d387 [svn-r14129] Description:
Add H5O{set|get}_comment routines, which were overlooked before.

	Move H5G{set|get}_comment routines to deprecated code section,
replacing internal calls with H5O{set|get}_comment.

Tested on:
	FreeBSD/32 6.2 (duty)
	FreeBSD/64 6.2 (liberty)
	Linux/32 2.6 (kagiso)
	Linux/64 2.6 (smirom)
	Solaris/32 5.10 (linew)
	AIX/32 5.3 (copper)
	Mac OS X/32 10.4.10 (amazon)
2007-08-30 08:55:10 -05:00
Quincey Koziol
db3c155bf2 [svn-r14126] Description:
Move H5Gunlink to deprecated symbol section, replacing internal calls
with H5Ldelete.

Tested on:
	FreeBSD/32 6.2 (duty)
	FreeBSD/64 6.2 (liberty)
	Linux/32 2.6 (kagiso)
	Linux/64 2.6 (smirom)
	Solaris/32 5.10 (linew)
	Mac OS X/32 10.4.10 (amazon)
2007-08-29 15:44:19 -05:00
Quincey Koziol
ea343ef854 [svn-r14115] Description:
Remove all plain calls to H5Gopen() from source, replacing them with
either H5Gopen2().

	Add test for H5Gopen1().

	Reformatted several pieces of code, to clean them up.

Tested on:
	FreeBSD/32 6.2 (duty)
	FreeBSD/64 6.2 (liberty)
	Linux/32 2.6 (kagiso)
	Linux/64 2.6 (smirom)
	Solaris/32 5.10 (linew)
	Mac OS X/32 10.4.10 (amazon)
2007-08-28 10:02:54 -05:00
Quincey Koziol
f3926484ce [svn-r14112] Description:
Avoid file size queries/comparisons when using core VFD.

Tested on:
	FreeBSD/32 6.2 (duty) w/core VFD
2007-08-24 13:41:29 -05:00
Quincey Koziol
63eb5b9ebb [svn-r14104] Description:
Pursue calls to H5Gcreate() relentlessly and ruthlessly exterminate
them, leaving only a few tame specimens in text files and comments.  ;-)

Tested on:
	Mac OS X/32 10.4.10 (amazon)
	FreeBSD/32 6.2 (duty)
	FreeBSD/64 6.2 (liberty)
	Linux/32 2.6 (kagiso)
	Linux/64 2.6 (smirom)
	Solaris/32 5.10 (linew)
2007-08-23 15:25:25 -05:00
Quincey Koziol
d0a9cf9ffa [svn-r13871] Description:
Fix problems with 'check-vfd' target, that were [mostly] introduced with
the recent "unique, but sharable" ISOHM optimization.

    The problems were mostly with using the 'core' VFD, so the
H5Pset_fapl_core() API call was changed to re-open existing files (therefore
operating more list the sec2, stdio, etc. VFDs).  This allows many more of
the tests to run using the 'core' VFD, so those were enabled also.

Tested on:
    Linux/64 2.6 (chicago2) w/check-vfd
2007-06-15 14:11:59 -05:00
Quincey Koziol
9d2070890b [svn-r13636] Description:
Change H5[D|G|T]<foo>_expand() "temporary" API routines to
H5[D|G|T]<foo>2() "versioned" routines.  Also added
H5[D|G|T](create|commit)_anon() routines to continue to allow "anonymous"
objects to be created in a file.

Tested on:
    Mac OS X/32 10.4.9 (amazon)
    FreeBSD/32 6.2 (duty)
    FreeBSD/64 6.2 (liberty)
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
2007-04-11 11:22:16 -05:00
Quincey Koziol
a64589450e [svn-r13498] Description:
Eliminate storing # of links in "link info" message, regenerate it
when the object is opened instead.

Tested on:
	FreeBSD/32 6.2 (duty)
	Mac OS X/32 10.4.8 (amazon)
2007-03-11 21:38:08 -05:00
Quincey Koziol
e6b818134e [svn-r13497] Description:
Move ref. count of # of links to an object out of the object header's
prefix and make it a header message instead (since it's a "rare" occurence),
eliminating some more space for each object in the file.

        Inserting this "ref. count" message exposed a flaw in the library's
mechanism for locating a message to promote to another chunk and replace
with a continuation message, which required some additional work to fix.
It's still not completely robust, but it's working for more cases now and
detects failures robustly.

        Reduced the minimum size of an object header chunk to just enough to
contain a header message prefix and continuation message.

Tested on:
	FreeBSD/32 6.2 (duty)
2007-03-11 18:15:03 -05:00
Quincey Koziol
0b3cccd0cb [svn-r13496] Description:
Reduce size of "default" link message storage.

Tested on:
	FreeBSD/32 6.2 (duty)
2007-03-10 22:06:05 -05:00
Quincey Koziol
9129a8452a [svn-r13493] Description:
Eliminate storing default values for "group info" fields.

Tested on:
	FreeBSD/32 6.2 (duty)
2007-03-10 20:09:00 -05:00
Quincey Koziol
1eb19fc895 [svn-r13491] Description:
Reduce the size of the value used to store the # of bytes in the
"payload" for chunk 0 of an object header.

Tested on:
	FreeBSD/32 6.2 (duty)
2007-03-10 15:02:55 -05:00
Quincey Koziol
753a42edf6 [svn-r13490] Description:
Move "creation order tracked" flag from "group info" to "link info"
object header message and make the "max. creation order value" optional in the 
"link info", if the creation order for links is not tracked.

	Also, get rid of unused "index names" flag - names are always indexed
currently.

Tested on:
	FreeBSD/32 6.2 (duty)
2007-03-10 14:08:42 -05:00
Quincey Koziol
a42a1b15ef [svn-r13488] Description:
Remove unused "min. creation order" field from link info object
header message.

Tested on:
	FreeBSD/32 6.2 (duty)
	Mac OS X/32 10.4.8 (amazon)
2007-03-10 11:37:53 -05:00
Quincey Koziol
6cfd5c1462 [svn-r13487] Description:
Eliminate message count from new version of object header prefix -
it can be computed when the header is loaded and the table of messages is
built.

Tested on:
	FreeBSD/32 6.2 (duty)
2007-03-10 10:47:59 -05:00
Quincey Koziol
a127510b7b [svn-r13486] Description:
Move attribute tracking information out of object header prefix and
make it into a message that is inserted only when attributes are present on
the object.

Tested on:
	FreeBSD/32 6.2 (duty)
2007-03-09 23:56:53 -05:00
Quincey Koziol
74a30fff3e [svn-r13477] Description:
The main purpose of this checkin was to eliminate the
space used for tracking creation time indices when there is no way they
can be used (i.e. attributes can't be shared in the file and the user hasn't
turned on attribute creation tracking), however there were some other minor
changes which crept in:
	- Fix a cache locking deadlock when a shared attribute and one of its
		components end up in the same fractal heap direct block.  
		(This is fixed the "slow" way for right now, until John has time
		to add support for readers/writer locking to the cache.
	- Optimize attribute copying when a copy will be kept during a v2 B-tree
		search.
	- When freeing a block on disk, attempt to merge it with the metadata
		and "small data" aggregators.

Tested on:
	Mac OS X/32 10.4.8 (amazon)
	FreeBSD/32 6.2 (duty)
2007-03-08 15:10:12 -05:00
Quincey Koziol
5c4bffc0d1 [svn-r13471] Description:
Fix a couple of expected size values that were missed earlier.

Tested on:
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
2007-03-06 14:04:36 -05:00
Albert Cheng
ed7d456e51 [svn-r13253] Updated all C and C++ style source code files with the THG copyright notice.
Tested platform:
Kagiso only since it is only a comment block change.  If it works in one
machine, it should work in all, I hope.  Still need to check the parallel
build on copper.
2007-02-07 09:56:24 -05:00
Quincey Koziol
d47a060445 [svn-r13250] Description:
Add support for inserting attributes into creation order index.

	Also, update support for dense link & attribute storage in h5debug.

Tested on:
	FreeBSD/32 6.2 (duty)
	Mac OS X/32 10.4.8 (amazon)
2007-02-06 21:18:17 -05:00
Quincey Koziol
46598f35ca [svn-r13155] Description:
Add "set_crt_index" and "get_crt_index" methods for the object header
message class.

    Unify fractal heap definitions for shared messages and attributes, under
"object header" fractal heap definitions.

    Initial code for adding creation order index to object header messages.

Tested on:
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
2007-01-19 09:54:46 -05:00
Quincey Koziol
1b03a4cc34 [svn-r12992] Description:
Add fields for tracking attributes on objects to object header prefix,
when using the latest version of the format.

    Reduce size used to store type of header message from 2 bytes to 1. (If we
have >256 message types, we probably have a different problem... :-)

    Also, add "birth" time for object (i.e. creation time) [named to align
with similar fields in file systems]

    Correct bug in H5Gget_objinfo() - retrieve the ctime field from object info,
instead of the mtime field.

Tested on:
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
2006-11-28 15:29:28 -05:00
Quincey Koziol
1687720a5f [svn-r12991] Description:
Reduce the size of some of the group information to more reasonable bounds.
(16-bit values instead of 32-bit values).

Tested on:
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
2006-11-28 13:51:23 -05:00
Quincey Koziol
0bd83631d5 [svn-r12990] Description:
When using the latest version of the file format, move the "modification
time" information into the object header prefix, which is more efficient.
Also add "access time" and "change time" (for metadata) fields, all of which
take about the same space as the previous modification time header message.

Tested on:
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
2006-11-28 12:43:54 -05:00
Quincey Koziol
e87cb91483 [svn-r12877] Description:
Clean up more compiler warnings.

Tested on:
    Linux/64 2.6 (chicago2)
2006-11-07 15:19:41 -05:00
Quincey Koziol
bcda3c2dbf [svn-r12833] Description:
Clean up more warnings...

Tested on:
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
2006-10-30 19:13:27 -05:00
Quincey Koziol
1202e83013 [svn-r12801] Description:
Fix several errors in the "latest version" of the object header format
changes and enable the new version when requested now.

    Clean up several confusing or duplicated sections of code.

Tested on:
    Linux/32 2.4 (heping)
    Linux/64 2.4 (mir)
    FreeBSD/32 4.11 (sleipnir)
2006-10-23 05:15:52 -05:00
Quincey Koziol
2374bb1012 [svn-r12759] Description:
Fix errors with check-vfd and recent modifications to tests.

Tested on:
    Linux/64 2.4 (mir) w/check-vfd
2006-10-13 12:16:07 -05:00
Albert Cheng
e065eee4a8 [svn-r12751] Purpose:
Bug fix (related to 544)

Description:
h5_get_file_size() was coded to return 0 if failed but
file size can be 0.  Changed the failure return value to -1
which is allowed by the returned type of off_t which is a signed
type.
Also changed the checking code of the stat call to just == 0
since that is how it is defined.

Test:
Could test it in heping only.  Both Sol and Copper failed to
compiled due to error in the Direct IO VFD code.
2006-10-11 22:55:06 -05:00
Quincey Koziol
84a4166e72 [svn-r12707] Description:
Further minor modifications to the file format for tracking links in groups.
This is tentatively the "final" file format for groups.

Tested on:
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
2006-10-02 16:46:39 -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
d296efb47e [svn-r12524] Changed number of arguments to H5Gcreate_expand. Should stop the DT from
dying again.
2006-08-02 10:59:05 -05:00
James Laird
beb04ae817 [svn-r12519] Fixed "make check-vfd"
"make check-vfd" will now run all tests in the test directory with different
file drivers (at least, all of those tests that use the testing framework's
FAPL).  Tests that fail will be skipped.

This is not a perfect fix, but is better than nothing.

Along with this change, check-vfd should be added to the Daily Tests.
2006-07-31 14:46:16 -05:00
starfire
8db4fe6d16 [svn-r12461] Cleaned up the names of some internal API functions, cleaned up comments,
fixed a few tests that used incorrect names for H5L APIs (formerly hidden behind
H5_GROUP_REVISION ifdefs

Mostly cosmetic changes, tested on mir.
2006-07-10 10:47:58 -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
Quincey Koziol
7be3afb278 [svn-r12440] Purpose:
Code cleanup

Description:
    Trim trailing whitespace in Makefile.am and C/C++ source files to make
diffing changes easier.

Platforms tested:
    None necessary, whitespace only change
2006-06-27 09:45:06 -05:00
Quincey Koziol
2521c4084c [svn-r12254] Purpose:
Anti-feature

Description:
    Revert changes to H5G_stat_t struct, to make it compatible with the 1.6.x
branch again.  The information that was added to the H5G_stat_t struct will
be reported through other API routines.

Platforms tested:
    FreeBSD 4.11 (sleipnir) w/C++
    Linux 2.4/64 (mir) w/C++ & Fortran
    Solaris 2.9 (shanti)
2006-04-14 17:21:54 -05:00
Quincey Koziol
5a2c6b0ae1 [svn-r12221] Purpose:
"Hide" file format changes (for now)

Description:
    Add ifdef's (controlled by the --enable-group-revision configure flag)
to disable group revision changes to the file format, in order to allow alpha
release to go ahead without releasing an unsupported version into the wild.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Linux 2.4 32-bit (heping)
    Linux 2.4 64-bit (mir)
    Solaris 2.9 (shanti)
2006-04-09 22:03:30 -05:00
Quincey Koziol
e70783203a [svn-r11732] Purpose:
More tests

Description:
    Add more tests for proper behavior of groups with different group
creation property settings.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Linux 2.4
    Solaris 2.8
2005-11-15 19:52:42 -05:00
Quincey Koziol
a1708eb023 [svn-r11712] Purpose:
New feature

Description:
    Check in baseline for compact group revisions, which radically revises the
source code for managing groups and object headers.

WARNING!!!!  WARNING!!!!  WARNING!!!!  WARNING!!!!  WARNING!!!!  WARNING!!!!
WARNING!!!!  WARNING!!!!  WARNING!!!!  WARNING!!!!  WARNING!!!!  WARNING!!!!

    This initiates the "unstable" phase of the 1.7.x branch, leading up
to the 1.8.0 release.  Please test this code, but do _NOT_ keep files created
with it - the format will change again before the release and you will not
be able to read your old files!!!

WARNING!!!!  WARNING!!!!  WARNING!!!!  WARNING!!!!  WARNING!!!!  WARNING!!!!
WARNING!!!!  WARNING!!!!  WARNING!!!!  WARNING!!!!  WARNING!!!!  WARNING!!!!


Solution:
    There's too many changes to really describe them all, but some of them
include:
    - Stop abusing the H5G_entry_t structure and split it into two separate
        structures for non-symbol table node use within the library: H5O_loc_t
        for object locations in a file and H5G_name_t to store the path to
        an opened object.  H5G_entry_t is now only used for storing symbol
        table entries on disk.

    - Retire H5G_namei() in favor of a more general mechanism for traversing
        group paths and issuing callbacks on objects located.  This gets us out
        of the business of hacking H5G_namei() for new features, generally.

    - Revised H5O* routines to take a H5O_loc_t instead of H5G_entry_t

    - Lots more...

Platforms tested:
    h5committested and maybe another dozen configurations.... :-)
2005-11-14 21:55:39 -05:00
Quincey Koziol
6b45f5172c [svn-r11245] Purpose:
Code cleanup

Description:
    Trim trailing whitespace, which is making 'diff'ing the two branches
difficult.

Solution:
    Ran this script in each directory:

foreach f (*.[ch] *.cpp)
    sed 's/[[:blank:]]*$//' $f > sed.out && mv sed.out $f
end


Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Too minor to require h5committest
2005-08-13 15:53:35 -05:00
James Laird
24d36e1613 [svn-r8897]
Purpose:
Bug Fix

Description:
Trying to create the root group or the working group ("/" or ".") fakes out
HDF5 so that it neither creates a group nor returns an error.

Solution:
H5G_namei now throws an error if it was supposed to insert but didn't.

Platforms tested:
sleipnir, Visual Studio 7 (very minor change)

Misc. update:
2004-07-19 19:47:37 -05:00
Bill Wendling
44022e598c [svn-r6538] Purpose:
Update

Description:
    Updated the Copyright statement

Platforms tested:
    Linux (This change is only in the comments, so I just check that the
    modules still compile)

Misc. update:
2003-03-31 12:59:04 -05:00
Quincey Koziol
03ab48c9c3 [svn-r5444] Purpose:
Code cleanup

Description:
    Clean up warnings on IRIX64 6.5 (modi4)

Platforms tested:
    IRIX64 6.5 (modi4)
2002-05-20 13:43:31 -05:00
Robb Matzke
97d0dc22ee [svn-r5111] ./hdf5-devel/test/stab.c
Merge of name component length limit bugfix from 1.4 branch.
A couple of very minor typos fixed.
2002-03-28 14:27:45 -05:00
Bill Wendling
bfd983e7f4 [svn-r3770] Purpose:
Update
Description:
    Changed includes of the form:

            #include <hdf5_file.h>

    to

            #include "hdf5_file.h"

    so that gcc can pick them up easier without including the system
    header files since we don't care about them.
Platforms tested:
    Linux
2001-04-03 13:09:16 -05:00
Quincey Koziol
a319837a4f [svn-r3326] Purpose:
Clean up warnings
Description:
    The "FAILED" macro is defined by Windows and is causing warnings and
    potential errors when compiled on that platform.
Solution:
    Change our macro from FAILED to H5_FAILED.
Platforms tested:
    FreeBSD 4.2 (hawkwind)
2001-01-25 12:03:29 -05:00
Albert Cheng
dd4203674a [svn-r2531] Description:
The "FILENAME" declared extern in h5test.h is not always used.
    It was used in h5_cleanup to remove temporary files created
    during tests.  Not all tests codes have used this routine.
    Indeed, quite a few of test programs do "#define FILENAME ".
    Also, h5_cleanup needs to work in tandem with h5_fixname.
    h5_fixname accepts an explicite base_name argument instead
    of using the global variable FILENAME.  That is cleaner.
Solution:
    Added char *base_name[] as a new argument to h5_cleanup, in
    the same style as h5_fixname.  Removed "extern char *FILENAME..."
    from use.  Also, undo some unnecessary declaration of "char *FILENAME"
    from some tests which don't use it at all (yet).
Platforms tested:
    modi4-64(irix64), arabica(solari2.7), eirene(linux)
    (arabica could not launch tests automatically.  I had to hack
     in LD_LIBRARY_PATH to make them run.)
2000-09-09 19:08:27 -05:00