Commit Graph

78 Commits

Author SHA1 Message Date
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
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
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
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
James Laird
869ed6e043 [svn-r13113] Refactoring. Cleaned up code, added a few sanity checks.
Extracted duplicated code into functions.

Tested on Windows, juniper, and kagiso.  Will test on copper next.
2007-01-05 13:30:59 -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
e40557304f [svn-r12803] Description:
Finish new version of the I/O pipeline message, which is much smaller than
the previous version.  This version is used with the "use the latest version
of the format" flag.

    Closed several memory leaks/overruns (found with valgrind).

    Also, lots of compiler & formatting cleanups.

Tested on:
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
2006-10-23 15:40:14 -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
9edac8a668 [svn-r12623] Added H5Fget_intent() function to get the "intent" of a file (read/write or
read-only).
Added this to external links, so that external files are opened with the
same intent as the source file.
Added tests.
2006-08-23 19:52:21 -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
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
Elena Pourmal
be337d4e20 [svn-r12055] Purpose: VMS port
Description: By default on VMS system file cannot be opened twice; also
             VMS has file versioning. This brakes some of our tests.

Solution:
             Tests are commented out with H5_CANNOT_OPEN_TWICE and H5_HAVE_FILE_VERSIONS
             that are defined in the vms/h5pubconf.h file only. This change cannot affect
             any other platform.

Platforms tested: heping, VMS server

Misc. update:
2006-03-09 16:34:34 -05:00
Quincey Koziol
48514c008f [svn-r11774] Purpose:
Extra test

Description:
    Add test to make certain that trying to call H5Fopen() on a non-existant
file fails.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Too minor to require h5committest
2005-12-08 14:35:34 -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
e21f821fc3 [svn-r11490] Purpose:
Bug fix

Description:
    Fix "double root open" bug and apply same fix to datasets & named datatypes.

    Also fix bug in symbol table entry lookup code that would "transfer" an
object from one file handle to another file handle when the two file handles
were opened on the same actual file.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Too minor to require h5committest
2005-10-03 00:50:05 -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
502b4c206d [svn-r11215] Purpose:
Bug fix & code cleanup

Description:
    Fix another bug in the file mounting code and refactor the unmount
code that it is simpler.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Linux 2.4
    Too minor to require h5committest
2005-08-08 13:41:35 -05:00
Quincey Koziol
bb31e94a92 [svn-r11093] Purpose:
Bug fix

Description:
    Rewrite code for mounting files to clean up layers of kludges and implement
a much cleaner and more maintainable design.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Linux 2.4
2005-07-21 09:48:26 -05:00
Quincey Koziol
45bbf45250 [svn-r10837] Purpose:
Bug fix/new feature

Description:
    Setting "SEMI" or "STRONG" file close degrees causes problems when multiple
file IDs exist for the same file on disk.

Solution:
    Make the "SEMI" and "STRONG" settings only apply to the file ID that is
being closed.

    Also, add an "H5F_OBJ_LOCAL" flag for the H5Fget_obj_count() &
H5Fget_obj_ids() calls, so that applications can query about objects opened
with a particular file ID instead of all the objects opened in the file on
disk.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    h5committest
2005-06-01 16:20:10 -05:00
Quincey Koziol
9b68e8e927 [svn-r10620] Purpose:
Bug fix

Description:
    Opening a dataset (or named datatype) with "." for the name and using a
group ID for the location ID was not returning an error value.

Solution:
    Check the type of the object before attempting to open it (internally,
using a group ID and "." for the name maps to the group object).

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Solaris 2.9 (shanti)
    Too minor to require h5committest
2005-04-16 11:22:16 -05:00
Quincey Koziol
aea13bdb44 [svn-r9878] Purpose:
New tests

Description:
    Add some tests for H5Fis_hdf5() routine.

Platforms tested:
    FreeBSD 4.10 (sleipnir)
    Too minor to require h5committest
2005-01-28 12:32:44 -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
0a29514b9d [svn-r8383] Purpose:
Code cleanup

Description:
    Clean up lots of warnings based on those reported from the SGI compilers
as well as gcc.

Platforms tested:
    SGI O3900, IRIX64 6.5 (Cheryl's SGI machine)
    FreeBSD 4.9 (sleipnir) w/ & w/o parallel
    h5committest
2004-04-17 23:10:09 -05:00
Quincey Koziol
8f62cb43da [svn-r7967] Purpose:
Code cleanup for VS.NET

Description:
    Clean up several issues that VS.NET was having problems with.

Platforms tested:
    Eyeballed against Kent's bug reports.
2003-12-17 11:39:17 -05:00
Quincey Koziol
dd969f1ead [svn-r7827] Purpose:
Bug fix

Description:
    Make --disable-hsizet work properly again by fixing a couple of tests and
correcting the definition of SSIZET_MAX.

Platforms tested:
    FreeBSD 4.9 (sleipnir)
    h5committest not used, as it doesn't test this configuration.
2003-11-08 09:21:49 -05:00
Raymond Lu
6f6b6bb5e8 [svn-r7802] *** empty log message *** 2003-10-31 13:48:42 -05:00
Quincey Koziol
bbe23c026f [svn-r7786] Purpose:
Code cleanup & add a feature

Description:
    Added support for querying the file ID of named datatypes to new
H5Iget_file_id function.

Platforms tested:
    FreeBSD 4.9 (sleipnir)
    too minor to require h5committest
2003-10-29 13:27:37 -05:00
Raymond Lu
d1f7c81a46 [svn-r7784] *** empty log message *** 2003-10-29 12:04:58 -05:00
Quincey Koziol
b04c09522b [svn-r7582] Purpose:
Bug fix

Description:
    The tests recently added for checking a file's freespace and verifying the
new fields added to the H5G_stat_t structure use H5T_NATIVE_INT as the type for
the datasets and attributes they create.  Because the tests check explicit file
sizes, this causes problems on Crays, where a native int is 64-bit instead of
32-bit.

Solution:
    Change the tests to use H5T_STD_U32LE instead of H5T_NATIVE_INT.

Platforms tested:
    FreeBSD 4.9 (sleipnir)
    Cray SV1 (wind)
2003-10-09 11:55:03 -05:00
Quincey Koziol
f766b32d07 [svn-r7559] Purpose:
Add feature

Description:
    Add H5Fget_freespace() routine, to check the amount of free space in a
    file.  This information is only valid until the file is closed currently,
    however (until we start recording the free space information in the file
    itself).

Platforms tested:
    FreeBSD 4.9 (sleipnir)
    h5committest
2003-10-07 08:32:32 -05:00
Quincey Koziol
6a9188f0cb [svn-r7457] Purpose:
Bug fix.

Description:
    Correct bug where a file opened twice, once with read-write permission
and once with read-only permission would cause closing the file with the
read-only file ID to fail because it was trying to flush information out
of the file.

Solution:
    Check the permissions on file IDs that are being closed and only flush
when the particular file ID was opened with write permission.

Platforms tested:
    FreeBSD 4.9 (sleipnir)
    too small to need h5committest

Misc. update:
2003-09-10 13:32:28 -05:00
Quincey Koziol
932101bb80 [svn-r7201] Purpose:
Code cleanup

Description:
    Finish converting the B-tree 'K' values to use unsigned integers, rather
than signed ones, since negative amounts of entries in a B-tree node aren't
meaningful.

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    h5committest
2003-07-10 14:39:04 -05:00
Quincey Koziol
4e23c80758 [svn-r7181] Purpose:
Version update

Description:
    Removed 1.4 compatibility code in the library.

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    h5committest
2003-07-07 14:02:46 -05:00
Quincey Koziol
1aeaa7fbb1 [svn-r7059] Purpose:
Refactoring

Description:
    Track changes to H5Fget_obj_<foo> API functions.

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    h5committest
2003-06-18 15:52:54 -05:00
Pedro Vicente Nunes
ba8fd7feb2 [svn-r6808] Purpose:
code warrior fix

Description:
eliminate the CW failure on getname.c
restrict the H5_NO_FILE_SHARING just to the test file_close of testhdf5 test

Solution:
the CW failure on getname.c  can be eliminated if a unmount of the file is made before closing it
on tfile.c the failure is due to the file sharing flag of CW, and the test is maintained as before

Platforms tested:
Windows 2000 (octopus)
Linux 2.4 (rockaway)
SunOS 5.7 (arabica)
IRIX 6.5 (modi4)


Misc. update:
2003-05-06 14:38:35 -05:00
Quincey Koziol
3e982207dd [svn-r6805] Purpose:
Revert last change (at least temporarily)

Description:
    Revert last "NO_SHARED_WRITING" ifdefs after reviewing the tests that were
ifdef'ed out.  I don't think that these tests should cause a problem, so I
would like them reviewed again to see if there is a file handle leak in the
library (or test).

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    Triple check not needed.
2003-05-06 09:26:27 -05:00
Pedro Vicente Nunes
1d06baa334 [svn-r6798] Purpose:
code warrior port

Description:
added a flag H5_NO_SHARED_WRITING, it is defined only for CW in the H5pubconf.h
this avoids doing some tests for CW that fail on shared writing

Solution:

Platforms tested:
windows (cw and ms)
Linux 2.4 (rockaway)
SunOS 5.7 (arabica)
IRIX 6.5 (modi4)


Misc. update:
2003-05-05 17:04:14 -05:00
Raymond Lu
b11c892b4f [svn-r6756]
Purpose: Verify library behavior

Description: A file is first opened as read only.  Then it's closed with
	an object left open.  A second open of the same file for read and
	write should fail.


Platforms tested: arabica - simply test to verify correct library behavior.
2003-04-25 15:55:10 -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
Raymond Lu
09325c1da6 [svn-r5955]
Purpose:
    a bug fix
Description:
    modify the condition check for the file close degree.
Platforms tested:
    Linux 2.2(eirene), Solaris 2.7(arabica), IRIX64 6.5(modi4)
2002-10-01 09:35:01 -05:00
Raymond Lu
8410a85365 [svn-r5954]
Purpose:
     a bug fix
Description:
    When a file is opened for a second time, file close degree is supposed to
    be either the same as the first open, or default as the first open is also
    default.
Platforms tested:
    Linux 2.2(eirene), Solaris 2.7(arabica), IRIX64 6.5(modi4)
2002-09-30 16:51:05 -05:00
Quincey Koziol
5e7ed206ea [svn-r4851] Purpose:
Bug Fix
Description:
    When file space was returned to the file space free-list for reuse,
    occasionally raw data allocations which used space from the free-list
    would overlap with the metadata accumulator and get over-written with
    the cached information in the accumulator, corrupting the data.
Solution:
    Check if the space about to be recycled on the free-list is going to be
    used for raw data and also overlaps with the metadata accumulator cache,
    avoiding using space that fits those criteria.

    This fixes bug #701

Platforms tested:
    FreeBSD 4.5 (sleipnir)
2002-01-23 16:28:24 -05:00
Quincey Koziol
47d88766db [svn-r4706] Purpose:
Code cleanup
Description:
    Tweaked internal error handling macros to reduce the size of the library's
    object code by about 10-20%.

    Also cleaned up some compiler warnings...

Platforms tested:
    FreeBSD 4.4 (sleipnir)
2001-12-12 13:40:09 -05:00
Raymond Lu
d28fd08f4a [svn-r4696]
Purpose:
    Modify H5Fclose behavior
Description:
    The HDF5 actual file close behaves in several ways in terms of if there
    are still objects(dataset, group, datatype) opened in file.
Solution:
    Added a new file access property, file close degree.  It has four values,
	H5F_CLOSE_DEFAULT
	H5F_CLOSE_WEAK
	H5F_CLOSE_SEMI
	H5F_CLOSE_STRONG
    The way a file is closed is decided by these values.
Platforms tested:
    IRIX64 6.5, SunOS 5.6, FreeBSD 4.4
2001-12-11 14:53:44 -05:00
Quincey Koziol
4886a6c447 [svn-r4670] Purpose:
Backward Compatibility Fix
Description:
    One of H5P[gs]et_sym_k's parameters changed between v1.4 and the development
    branch.
Solution:
    Added v1.4 compat stuff around H5P[gs]et_sym_k implementation and testing
    to allow v1.4.x users to continue to use their source code without
    modification.

    These changes are for everything except the FORTRAN wrappers - I spoke with
    Elena and she will make the FORTRAN wrapper changes.
Platforms tested:
    FreeBSD 4.4 (hawkwind)
2001-12-05 11:42:40 -05:00
Quincey Koziol
69575231ef [svn-r4614] Purpose:
Code cleanup
Description:
    Corrected header files needed.
Platforms tested:
    FreeBSD 4.4 (hawkwind)
2001-11-20 13:47:15 -05:00
Quincey Koziol
0001a13617 [svn-r4589] Purpose:
Code cleanup
Description:
    Clean up various compiler warnings from generic property updates.
Platforms tested:
    FreeBSD 4.4 (hawkwind)
2001-11-03 17:27:54 -05:00
HDF Rational
4b3875ad58 [svn-r4526] Purpose:
Code cleanup
Description:
    Purify detected uninitialized memory being read.
Solution:
    Initialization array before writing to disk.
Platforms tested:
    Solaris 2.7 (arabica)
2001-10-05 17:27:58 -05:00
Quincey Koziol
19fef59d90 [svn-r3833] Purpose:
More tests
Description:
    Added test to verify non-zero userblocks working correctly with dataset I/O
    code.
Platforms tested:
    FreeBSD 4.3 (hawkwind)
2001-04-23 15:05:15 -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