Commit Graph

145 Commits

Author SHA1 Message Date
Quincey Koziol
68c01f91d9 [svn-r14154] Description:
Finish deprecating last H5G symbol (H5G_obj_t) - yay!

	Lots of misc. library fixes to remove confusion between links and
objects.  The tools could still use another pass, to remove h5trav_type_t type
and make the correct distinction between links & objects.

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 2.6 (smirom) 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
        AIX/32 5.3 (copper) w/FORTRAN, w/parallel, in production mode
        Mac OS X/32 10.4.10 (amazon) in debug mode
2007-09-25 17:18:33 -05:00
Quincey Koziol
4be636f4f0 [svn-r13984] Description:
Various code cleanups and refactor recent changes for h5stat to fit
into the existing library data structures better.

Tested on:
	Mac OS X/32 10.4.10 (amazon)
	FreeBSD/32 6.2 (duty)
	Linux/32 2.6 (chicago)
	Linux/64 2.6 (chicago2)
2007-07-17 14:35:09 -05:00
Vailin Choi
d44b27ddcc [svn-r13978] purpose:
New feature.

Description:
Added routines to report on the amount of storage for:
1) 1.6 btree and heap storage info for groups
2) 1.8 btree, fractal heap storage info for groups, attributes and SOHM table
3) btree storage for chunked datasets
4) 1.8 superblock extension size.

Platform tested:
h5committested.
2007-07-13 16:12:25 -05:00
Peter Cao
461b896779 [svn-r13821]
Fixed a bug at copying shared reg_ref attribute. The ref values of an attribute
was not writen in file. The post_copy_file() at H5Oattr.c only updates the value
in memory. 

To fix the problem, we added H5O_shared_post_copy_file(), which delete the attribute
in file (with the incorrect value) and create an new attribute with the correct values.


I added the following functions:
H5Oshared.c:H5O_shared_post_copy_file(H5F_t *f, hid_t dxpl_id, H5O_t *oh, void *mesg); 
H5Oshared.h: H5O_SHARED_POST_COPY_FILE

and modified the following files to include shared_post_copy_file()
H5Oattr.c
H5Odtype.c
H5Ofill.c
H5Opline.c
H5Osdspace.c
2007-05-30 16:35:57 -05:00
Quincey Koziol
c04a55d65e [svn-r13796] Description:
Clean up ISOHM code further and get rid of several non-optimal ways
of working with object headers.

Tested on:
	FreeBSD/32 6.2 (duty)
	Mac OS X/32 10.4.9 (amazon)
2007-05-22 21:16:41 -05:00
Quincey Koziol
31ff357f31 [svn-r13753] Description:
Check in "unique, but sharable" optimization to ISOHM code, which
allows object header messages that are only used in one object to remain in
the sole user's header, but migrates messages that are used in more than one
header into the ISOHM heap.

Tested on:
	Mac OS X/32 10.4.9 (amazon)
	FreeBSD/32 6.2 (duty)
	Linux/32 2.6 (chicago)
	Linux/64 2.6 (chicago2)
2007-05-14 15:24:08 -05:00
Quincey Koziol
2757f75317 [svn-r13721] Description:
Add "fail if unknown" and "mark if unknown" flags to object header messages.
This gives the library a clean way to tell older libraries that a message should
not be just ignored if it's unknown, but that other actions should occur.

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-05-01 16:00:52 -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
c227f4ffa5 [svn-r13499] Description:
Avoid storing the # of attributes in the "attribute info" message
and regenerate it when the object is opened.

Tested on:
	FreeBSD/32 6.2 (duty)
2007-03-11 22:00:31 -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
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
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
25bcff7681 [svn-r13472] Description:
Add new object header message to track attribute information (unused
currently).

Tested on:
	Mac OS X/32 10.4.8 (amazon)
2007-03-06 15:38:01 -05:00
Quincey Koziol
492df7a33c [svn-r13470] Description:
Avoid storing the phase change values for attribute storage, unless
they are non-default values.

Tested on:
	Mac OS X/32 10.4.8 (amazon)
2007-03-06 13:54:24 -05:00
Quincey Koziol
2f98515019 [svn-r13466] Description:
Add some extra sanity checking to object header status flags read from
file.

Tested on:
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
2007-03-06 10:50:51 -05:00
Quincey Koziol
44f312b183 [svn-r13449] Description:
Add object creation property (H5P[s|g]et_obj_track_times) to disable
storing timestamps on objects, which makes the object's header size smaller.

	Also, added object header status flags to H5O_info_t struct (for
H5Oget_info/H5Oget_info_by_idx) and cleaned up other field names in the
struct as well.

Tested on:
	FreeBSD/32 6.2 (duty)
	Mac OS X/32 10.4.8 (amazon)
2007-03-03 23:28:09 -05:00
Quincey Koziol
2e8b6c0223 [svn-r13440] Description:
Revise latest form of superblock format pretty drastically, to
eliminate unused fields and move rarely used fields into superblock extension.

	Finished removing last vestiges of references to (never used) i"shared"
object header message ID.

	Added object header messages for non-default v1 B-tree 'K' values
and for driver info.

	Updated testfiles to reflect size changes, etc.

	Various minor cleanups, etc.

Tested on:
	FreeBSD/32 6.2 (duty)
	Mac OS X/32 10.4.8 (amazon)
2007-03-01 16:26:31 -05:00
Quincey Koziol
e0ae782d27 [svn-r13390] Description:
Make H5O_protect/H5O_unprotect use pinned cache entries instead of
protected entries (allowing the object header routines to be semi-reentrant).

Tested on:
	FreeBSD 6.2 (duty)
2007-02-26 13:18:08 -05:00
Quincey Koziol
d08fabd66d [svn-r13353] Description:
Checkpoint progress on H5Aiterate2().

    Mark H5Aiterate() as deprecated.

    Various code cleanups.

Tested on:
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
2007-02-20 14:58:09 -05:00
Quincey Koziol
d1a1f2421d [svn-r13341] Description:
Checkpoint "delete by index" code, which is partially finished.

Tested on:
	FreeBSD/32 6.2 (duty)
2007-02-19 21:28:41 -05:00
Quincey Koziol
56e63bdeea [svn-r13287] Description:
Add H5Aget_info_by_idx & H5Aget_name_by_idx routines, along with
refactoring underlying indices code to handle those sort of queries.

	Simplify the link callback routines a bit.

	Minor other cleanups.

Tested on:
	Mac OS X/32 10.4.8 (amazon)
	FreeBSD/32 6.2 (duty)
2007-02-13 09:50:48 -05:00
Quincey Koziol
494f46639d [svn-r13272] Description:
Checkpoint attribute creation order coding on "by index" routines.

Tested on:
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
2007-02-08 13:50:21 -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
7320ccac2d [svn-r13248] Description:
More progress on creation order for attribbutes - they are now basically
working for "compact" attribute storage.

Tested on:
	FreeBSD/32 6.2 (duty)
	Mac OS X/32 10.4.8 (amazon)
2007-02-06 15:03:06 -05:00
James Laird
9e390cc1d9 [svn-r13245] Added "superblock extension" object header to hold shared object header
information, rather than storing it directly in the superblock.
This should make future updates to the superblock much less painful.

Tested on Windows, kagiso, and smirom.
2007-02-06 13:21:39 -05:00
Quincey Koziol
c560e68258 [svn-r13240] Description:
More cleanups on the object header message handling code, to make it
easier to work with and move forward on the creation order coding.

	Various other minor cleanups & warning fixes.

Tested on:
	FreeBSD/32 6.2 (duty)
2007-02-05 17:26:44 -05:00
Quincey Koziol
0a8bba9153 [svn-r13232] Description:
Remove the "scaffolding" for shared message method invocation and
simplify the way shared messages are dealt with in general.

Tested on:
	FreeBSD/32 6.2 (duty)
	Mac OS X/32 10.4.8 (amazon)
2007-02-04 02:37:15 -05:00
Quincey Koziol
f555ac654b [svn-r13226] Description:
Add attributes to the message classes that use the shared message
method calling interface, completing the transition.  The other mechanism will
be removed shortly.

Tested on:
	Mac OS X/32 10.4.8 (amazon)
	FreeBSD/32 6.2 (duty)
2007-01-30 20:48:28 -05:00
Quincey Koziol
7c733b0afb [svn-r13223] Description:
Move datatype messages into new shared message method interface

    Clean up various formatting & compiler warnings

    Minor optimizations

Tested on:
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
2007-01-30 13:43:28 -05:00
Quincey Koziol
814c226b9b [svn-r13219] Description:
Move dataspace messages into new shared header message method calling
scheme.

    Minor other cleanups, etc.

Tested on:
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
2007-01-29 17:06:36 -05:00
Quincey Koziol
108114495f [svn-r13217] Description:
Move fill value messages into new shared message method calling scheme.

    Only update an opened dataset's fill value property if it's different from
the default fill value settings.

Tested on:
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
2007-01-29 13:19:05 -05:00
Quincey Koziol
dc02b5bd22 [svn-r13182] Description:
Move filter pipeline message class to new "shared message interface"
regime, along with minor fixups to implementation of calling that interface.

Tested on:
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
2007-01-23 14:08:31 -05:00
Quincey Koziol
4bc8c3f924 [svn-r13178] Description:
Figured out a way to phase in individual message class support for
the new shared message "interface", so check that in before working on the
message classes themselves.

Tested on:
	Mac OS X/32 10.4.8 (amazon)
	FreeBSD/32 6.2 (duty)
2007-01-23 10:27:28 -05:00
Quincey Koziol
0c9bd3d4e2 [svn-r13176] Description:
Push code further toward shared message method calling refactor.

Tested on:
	FreeBSD/32 6.2 (duty)
	Too minor to require h5committest
2007-01-22 22:46:31 -05:00
Quincey Koziol
af394eaa76 [svn-r13173] Description:
Checkpoint more progress toward implementing shared message "interface"
methods for message classes that can have messages shared.

Tested on:
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
2007-01-22 17:44:55 -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
James Laird
8fa9daa174 [svn-r13143] Refactoring.
Added can_share callback for OH messages.  This determines whether the
message is allowed to be shared in the heap (committed and immutable datatypes
can't be).
Fixed a bug in the dense attribute storage that tried to open the shared message
heap when it hadn't been created yet.
Made the test to extend shared dataspace messages a bit more robust.
Refactored the code the searches a shared message list index to be a little
more efficient.
A few other minor changes.

Tested on smirom, kagiso, Windows, and juniper.
2007-01-16 12:19:11 -05:00
Quincey Koziol
76ee1b2bda [svn-r13096] Description:
Fix updating values of shared attributes in dense storage & add test.

Tested on:
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
2007-01-02 15:21:44 -05:00
Quincey Koziol
43ec5b7ef4 [svn-r13074] Description:
Add support for opening attributes in dense and/or shared storage by
index.

    Move routines for building and operating on tables of attributes into
separate source module.

    Fix bug where reverting from "dense" to "compact" storage would 'unshare'
attributes.

    Minor code cleanups, etc.

Tested on:
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
2006-12-18 20:59:28 -05:00
James Laird
9236c9a148 [svn-r13065] Added support for copying shared messages (including turning unshared
messages to shared messages and vice versa).

Extended objcopy test to test all "permutations" of shared/unshared and
new/old group format.  If this proves to take a long time to test, I'll
go back and have it run fewer tests when HDF5_TEST_EXPRESS is enabled. 

Tested on smirom, kagiso, copper, and Windows.
2006-12-15 16:28:17 -05:00
Quincey Koziol
e9522de4e1 [svn-r13056] Description:
Add H5SM_type_shared() internal routine to determine if a particular
type of header message is sharable in a file.

    Correct off-by-one error in computing B-tree record size for densely
stored attributes' name index.

    Further progress toward supporting shared attributes in dense storage.

Tested on:
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
2006-12-12 15:28:48 -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
dc73eca159 [svn-r13041] Description:
Migrate "internalish" attribute operations into new source code file.

    Add test & basic support for opening attributes in dense storage (shared
attributes not tested or supported yet).

Tested on:
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
2006-12-11 14:02:38 -05:00
Quincey Koziol
14e9b46ca2 [svn-r13037] Description:
Move attribute creation code out of H5Omessage.c and into H5Oattr.c

Tested on:
    FreeBSD/32 4.11 (sleipnir)
2006-12-08 17:05:52 -05:00
Quincey Koziol
7b368f006e [svn-r13028] Description:
Add first pass of "dense" attribute storage to objects.  Lots of parts of
this are stubbed out, but all the tests are passing and I'll work on the corner
cases soon.

    Eliminated several unused parameters from object header message callback
routines.

    Other, miscellaneous code cleanups, etc. (and probably some things I've
forgotten about... :-)

Tested on:
    FreeBSD/32 4.11 (sleipnir)
    Linux/32 2.4 (heping)
    AIX/32 5.? (copper)
2006-12-06 17:19:52 -05:00
Quincey Koziol
a21800d2f2 [svn-r13020] Description:
Make number of attributes tracking in object header prefix "live"

Tested on:
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
2006-12-04 12:32:43 -05:00
Quincey Koziol
06ba931a95 [svn-r13016] Description:
Finish moving object header message routines into their own source code
module, along with renaming them to have "H5O_msg_" prefix...

Tested on:
    Mac OS X/32 10.4.8 (amazon)
    FreeBSD/32 4.11 (sleipnir)
    Linux/32 2.4 (heping)
    AIX/32 5.? (copper)
2006-12-04 09:34:10 -05:00
Quincey Koziol
304accfb96 [svn-r13015] Description:
Migrate more object header routines to use the H5O_msg_ prefix and put
them into the src/H5Omessage.c code module.

Tested on:
    Mac OS X/32 10.4.8 (amazon)
    FreeBSD/32 4.11 (sleipnir)
    Linux/32 2.4 (heping)
    AIX/32 5.? (copper)
2006-12-04 06:25:01 -05:00
Quincey Koziol
27c0fb2220 [svn-r13002] Description:
Fix problem with copying objects when the dataset to copy has an "older"
version of the layout message and needs to compute the size of the dataset's
storage after the dataspace information is available.

    Minor random cleanups also...

Tested on:
    FreeBSD/32 4.11 (sleipnir)
    Too minor/weird to test w/h5committest...
2006-11-30 16:38:30 -05:00
Quincey Koziol
ce05f32a3d [svn-r12995] Description:
Make the memory size of the max. compact & min. dense attribute storage
variables align with the property list size, instead of the size on disk, to
better handle big-endian machines.

Tested on:
    FreeBSD/32 4.11 (sleipnir)
    Linux/32 2.4 (heping)
    Linux/64 2.4 (mir)
    AIX/32 5.? (copper)
2006-11-28 23:44:28 -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
2516911cad [svn-r12988] Description:
General cleanups, in preparation for adding some attribute-tracking fields
to the object header prefix.

Tested on:
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
2006-11-27 18:10:02 -05:00
Quincey Koziol
5c1fedcb90 [svn-r12973] Description:
Finish removing library's internal code that uses H5G_get_objinfo() and
retarget it at either getting the link information or the object information,
as appropriate.  (Still need to add user-level tests for H5Oget_info(), but
since several internal components of the library depend on the internal version,
it appears to be working correctly).

Tested on:
    FreeBSD/32 4.11 (sleipnir)
    Linux/322.4 (heping)
    Linux/64 2.4 (mir)
    AIX/32 5.? (copper)
    Mac OS X/32 10.4.8 (amazon)
2006-11-24 23:10:32 -05:00
Quincey Koziol
e9262d7320 [svn-r12963] Description:
Refactor internal code that retrieves the object's type to use the new
H5O_type_t (which only definitions for object types, instead of links as well)
instead of the older H5G_obj_t (which included links, etc.)

Tested on:
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
2006-11-21 15:22:11 -05:00
Quincey Koziol
b2acbc56c6 [svn-r12938] Description:
Add src/H5Oalloc.c file forgotten in previous object header checkin

    Break out more object header routines into separate file (debugging routines
this time).

    Fix "//" style comment in recent ISOHM source changes.

    Fix 'size_t' vs. 'unsigned' problem (visible in 64-bit testing) in recent
ISOHM test changes.

Tested on:
    FreeBSD/32 4.11 (sleipnir)
    Linux/32 2.4 (heping)
    Linux/64 2.4 (mir)
2006-11-17 15:12:28 -05:00
Quincey Koziol
eec82a4219 [svn-r12933] Description:
Finish migrating "object copy" supporting routines into src/H5Ocopy.

    Clean up a few minor errors _en passant_

Tested on:
    FreeBSD/32 4.11 (sleipnir)
    Linux/32 2.4 (heping)
    Linux/64 2.4 (mir)
2006-11-17 13:48:00 -05:00
James Laird
b6c317f27c [svn-r12902] Checkin of Shared Object Header Message work.
This feature is still in progress; Shared Object Header Messages are not
complete as a feature and are not thoroughly tested.  There are still
"TODO" comments in the code (comments with the word "JAMES" in them,
so as not to be confused with other TODO comments).

Hopefully this checkin will reduce the liklihood of conflicts as I finish
implementing this feature.

All current tests pass on juniper, copper (parallel), heping, kagiso, and mir.
2006-11-13 15:41:36 -05:00
Quincey Koziol
2e8e42d6c9 [svn-r12869] Description:
Rename new H5Gcopy() routine to H5Ocopy() as discussed in last Friday's
design discussion.

Tested on:
    Linux/32 2.6 (chicago)
2006-11-06 16:35:44 -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
3a2bcc84ac [svn-r12771] Description:
More fixes to make the I/O & memory operations more efficient when loading
& flushing object header chunks.

    Add in concept of a chunk having a "gap" at the end - unused space that is
not large enough to hold a full null message that describes it.

    Clean up formatting a bit.

    Latest version of object header format not enabled yet, still working on a
few bugs...

Tested on:
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
2006-10-17 15:36:15 -05:00
Quincey Koziol
f7a8a14bfd [svn-r12770] Description:
Overhaul usage of object header chunks to reduce I/O operations and
memory allocations.  The object header prefix is now stored in the first
object header chunk's "image" in memory.

    Also, lots of formatting cleanups.

    Taught h5debug tool about new object header format (which isn't enabled
just yet).

Tested on:
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
2006-10-16 18:04:45 -05:00
Quincey Koziol
9848ea0387 [svn-r12761] Description:
Refactor object header macros, in preparation for updating the format.

Tested on:
    Mac OS/PPC 10.4.8 (amazon)
    FreeBSD/32 4.11 (sleipnir) w/thread-safe
    Linux/32 2.4 (heping) w/C++ & FORTRAN
    Linux/64 2.4 (mir) w/1.6 compat & build-all
2006-10-16 09:46:00 -05:00
Quincey Koziol
6716ae8429 [svn-r12756] Description:
Clean up some object header code in advance of more major changes in the
near future.

    Fix small initialization error in attribute message name buffer copy.

    Tweak down the default # of messages for new object headers.

Tested on:
    FreeBSD/32 4.11 (sleipnir) w/threadsafe
    Linux/32 2.4 (heping) w/FORTRAN & C++
    Mac OS/32 10.4.8 (amazon)
2006-10-12 13:42:02 -05:00
Quincey Koziol
176f59f0f4 [svn-r12738] Description:
Tweak down some of the static array definitions for new & re-loaded object
header data structures, to reduce memory use in common cases.

Tested on:
    Linux/32 2.6 (chicago)
2006-10-10 14:41:37 -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
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
8d72542a50 [svn-r12439] Purpose:
New feature

Description:
    Check in Peter's code to add support for "shallow copy", "create
intermediate groups", "no attributes" and "expand soft links" support.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Linux 2.4 (chicago) w/ & w/o group-revision enabled
    h5committest
2006-06-26 17:01:43 -05:00
Quincey Koziol
4659f50b83 [svn-r12189] Purpose:
New/expanded features

Description:
    Check in Peter's changed for the object copy code:
        - Allow/fix copying datasets using named variable-length datatypes
        - Start adding framework for property list to control how object
            copying occurs.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Too minor to require h5committest
2006-04-01 15:14:11 -05:00
Quincey Koziol
d579d6aa5e [svn-r11899] Purpose:
Bug fix & new feature

Description:
    Support variable-length datatypes in compact data storage and chunked
data storage, along with attributes.

    Bug fix on the H5T_vlen_set_loc to allow for changing the file on a
variable-length datatype on disk.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Linux 2.4
    Can't h5committest right now, due to missing cache files.
2006-01-28 13:31:22 -05:00
Quincey Koziol
8d344f96bc [svn-r11758] Purpose:
New feature

Description:
    Add in a combination of Peter's & my code to support copying
variable-length data from one file to another, although currently only
supported with contiguous data storage.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    h5committest
2005-12-03 21:27:37 -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
0891038562 [svn-r11686] Purpose:
New feature

Description:
    Add in baseline "object copy" code from Peter [in the form of a new API
routine: H5Gcopy()].  There's still some work to do (like handling variable-
length datatypes and possibly support for references) and it hasn't been tested
on mounted files yet, but the core functionality is there and working
correctly.

    I've also got a set of patches to update the 1.6 branch with tweaks to
keep the branches mostly in sync, but Elena will kill me if I import them
before the 1.6.5 release is out... :-)

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    h5committested
2005-11-06 22:13:53 -05:00
Quincey Koziol
5ffde305cd [svn-r11384] Purpose:
Code cleanup

Description:
    Merge back changes from "compact group" work that improve the
infrastructure of the library and may impact others.  In this round of
merging, that includes:
    - Move datatype allocation into single internal routine, instead of
        duplicated code that was spread out in a dozen or so places.
    - Clean up guts of object header routines (H5O_*) to allow for some of
        the fancieroperations that need to be performed on groups, along with
        some general improvements.
    - Added a new error code
    - Some minor cleanups in other code....

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Linux 2.4
    Mac OS X
2005-09-12 01:02:55 -05:00
Quincey Koziol
e1747e456c [svn-r11307] Purpose:
Code cleanup

Description:
    Clean up internals of group creation & iteration code.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Mac OS X (nile)
    Too minor to require h5committest
2005-08-29 00:36:16 -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
Quincey Koziol
96a49c0d37 [svn-r11078] Purpose:
Bug fix

Description:
    Correct memory leak when a dataset is attempted to be opened, but turns
out to be a group or named datatype.

    Also, clean up code that was leading to the leak and zero out empty
group entries to help prevent similar errors in the future.

Platforms tested:
    FreebSD 4.11 (sleipnir)
    Too minor to require h5committest
2005-07-16 21:46:42 -05:00
Quincey Koziol
bbe03d7361 [svn-r10736] Purpose:
Code cleanup

Description:
    Clean up some compiler warnings

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    h5committest
2005-05-07 14:37:48 -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
35ffb5bd13 [svn-r9556] Purpose:
Code cleanup & optimization

Description:
    Improve ADF/CGNS benchmark by reducing the number of internal attribute
copies made during creations, opens and writes.

    Added new H5O_iterate() routine for iterating through messages of a certain
type in the object header (attributes are the only message currently that can
have multiple instances in the object header).

    Cross-pollinated various minor code cleanups to reduce diffs between
branches.


Platforms tested:
    FreeBSD 4.10 (sleipnir) w/parallel
    Solaris 2.7 (arabica)
    Too minor to require h5committest
2004-11-22 12:14:11 -05:00
Quincey Koziol
880d8357bf [svn-r8376] Purpose:
Code cleanup

Description:
    Update null dataspace changes to try to write older version of dataspace
information whenever possible.

    Refactor common code to only one location.

    Allow I/O operations to succeed on null dataspaces.


Platforms tested:
    FreeBSD 4.9 (sleipnir)
    h5committest
2004-04-17 15:31:50 -05:00
Raymond Lu
270d097bd1 [svn-r8330] Purpose: Last step of check-in for Null dataspace
Description:  Mainly are header message changes for dataspace.  In last round
of check-in, a new header message for dataspace to created, which is not a good
way.  Now, there will be no new message for dataspace, but just add the type of
dataspace in the message while increment its version number.  Backward compatibility
is addressed.  The attribute design is modified accordingly.


Platforms tested: h5committest
2004-04-08 16:22:21 -05:00
Raymond Lu
be7efff2b7 [svn-r8314] Purpose: Progressive check-in
Description:  NULL dataspace.  This step is mainly for dataspace header
message and a test.

Solution:  The test mainly checks NULL dataspace features.  Backward compatibility
is tested in the fill value test.

Platforms tested: h5committest
2004-04-06 15:08:20 -05:00
Quincey Koziol
b8201120fc [svn-r7538] Purpose:
Bug fixes and code cleanup

Description:
    Lots of changes here:
        - Fixed bug #691 - when shared datatypes are used in attributes they
            are incorrectly copied into the attribute instead of referring
            the the named datatype in the file.  This required bumping the
            version of the attribute message.  The new version of the attribute
            message is only written out when a shared datatype is used in
            the attribute.  [Also, this format change made the size of the
            attribute smaller.]
        - Added information to attribute debugging routine so that shared
            datatypes are displayed correctly with the h5debug tool.
        - Refactored the H5O* routines to extract code that was common to
            several routines into subroutines to call.
        - Added 'link' method for H5O message sub-classes, which increments
            the link count on shared objects when a message is created which
            shares them.
        - Corrected [unreported] bug where the link count was not being
            decremented on the shared object when a object header message
            with a reference to that object was deleted from the file.
        - Reduced size of shared message from 49 bytes (which was incorrect
            anyway and should have been 48 bytes) to 10 bytes, which required
            bumping the version of "shared" messages.
        - Refactored some of the shared datatype routines to allow for easier
            queries of "committedness" internally to the library and also
            added routine to easily increment/decrement the reference count of
            a shared datatype.

Platforms tested:
    FreeBSD 4.9 (sleipnir)
    h5committest
2003-10-05 16:12:26 -05:00
Quincey Koziol
4fc73028ed [svn-r7060] Purpose:
Code cleanup

Description:
    Change some variables that are keywords in C++ to non-keywords.

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    too minor to require full h5committest
2003-06-18 15:54:19 -05:00
Quincey Koziol
aa1cedb4f8 [svn-r6658] Purpose:
New feature

Description:
    Track changes in the internal metadata API with clearing the metadata
dirty flag without flushing object.

    Added ability to delete an object header in the file and restore all the
space referenced by various header messages.


Platforms tested:
    FreeBSD 4.8 (sleipnir) w/C++
    Linux 2.4 (burrwhite) w/FORTRAN
    Solaris 2.7 (arabica) w/FORTRAN
    IRIX64 6.5 (modi4) w/parallel & FORTRAN

    (h5committest not run due to my ongoing difficulties with C++ on burrwhite).
2003-04-14 00:03:26 -05:00
Bill Wendling
f6053e9819 [svn-r6498] Purpose:
Cleanup

Description:
    The H5O_FPHDF5 object was left in this header file by mistake when
    the H5Ofphdf5 module was removed

Solution:
    Removed it.

Platforms tested:
    Linux
2003-03-19 18:22:21 -05:00
Quincey Koziol
946c606452 [svn-r6411] Purpose:
Code cleanup

Description:
    Clean up miscellaneous warnings which have crept into the code.

    Fix "_POSIX_C_SOURCE not defined" warning on FreeBSD.

    Adjust gcc compiler flags to be more concise for production mode.

    Refactor the H5O code so that there is a stronger boundary between code
    in the H5O package and code in the library which just calls H5O routines.

Platforms tested:
    Tested h5committest {arabica (fortran), eirene (fortran, C++)
	modi4 (parallel, fortran)}
    FreeBSD 4.7 (sleipnir) serial & parallel and gcc 2.95.4 & gcc 3.2.2

Misc. update:
    Update MANIFEST if you add or remove any file.
2003-02-17 10:54:15 -05:00