Commit Graph

31 Commits

Author SHA1 Message Date
Quincey Koziol
4a17aff408 Add API context interface and use it throughout the library. 2018-03-15 16:54:30 -05:00
Larry Knox
89fbe00dec Merge pull request #426 in HDFFV/hdf5 from ~LRKNOX/hdf5_lrk:hdf5_1_10 to hdf5_1_10
* commit '54957d37f5aa73912763dbb6e308555e863c43f4':
  Commit copyright header change for src/H5PLpkg.c which was added after running script to make changes.
  Add new files in release_docs to MANIFEST. Cimmit changes to Makefile.in(s) and H5PL.c that resulted from running autogen.sh.
  Merge pull request #407 in HDFFV/hdf5 from ~LRKNOX/hdf5_lrk:hdf5_1_10_1 to hdf5_1_10_1
  Change copyright headers to replace url referring to file to be removed and replace it with new url for COPYING file.
2017-04-25 16:05:36 -05:00
Quincey Koziol
1023374492 [svn-r27768] Description:
Complete revamp of package initialization/shutdown mechanism in the library.
Each package now has a single init/term routine.

    This new way should avoid packages being re-initialized during library
shutdown and is also be _much_ more proactive about giving feedback for
resource leaks internal to the library.

    Introduces a new "module" header file for packages in the library
(e.g src/H5Fmodule.h) which sets up some necessary package configuration macros
for the FUNC_ENTER/LEAVE macros.  (The VFL drivers have their own slightly
modified version of this header, src/H5FDdrvr_module.h)

    Also cleaned up a bunch of resources leaks all across the library and tests,
along with addressing many warnings, as I encountered them.

Tested on:
    MacOSX/64 10.10.5 (amazon) w/serial & parallel
    Linux/64 3.10.x (kituo) w/serial & parallel
    Linux/64 2.6.x (ostrich) w/serial
2015-09-13 22:58:59 -05:00
Mohamad Chaarawi
fc45d5fcb0 [svn-r27133] - Add a new attribute function characterstic for format:
* H5_ATTR_FORMAT(X,Y,Z)  __attribute__((format(X, Y, Z)))
- Rename UNUSED attribute characterstic to H5_ATTR_UNUSED.
- Rename NORETURN attribute characterstic to H5_ATTR_NORETURN

tested with h5committest.
2015-06-01 14:38:09 -05:00
Dana Robinson
67ba6cb57d [svn-r27045] Renamed H5_ASSIGN_OVERFLOW() to H5_CHECKED_ASSIGN() and re-ordered
the arguments to be in a more logical order.

Tested on: h5committest
2015-05-10 17:38:04 -05:00
Quincey Koziol
88a94bbe7f [svn-r22646] Description:
Changes resulting from Klocwork static analysis tool, from Mark Miller
@ LLNL (miller86@llnl.gov).

Tested on:
    Mac OS X/64 10.7.4 (amazon) w/debug, C++ & FORTRAN, using gcc 4.7.x
    (too minor to require h5committest)
2012-08-08 18:01:20 -05:00
Quincey Koziol
7143164de9 [svn-r22608] Description:
Switch propert list/class iteration from internal to external form of
iteration, cleaning up and simplifying the code a bit.

    Bring other general improvements from plist_encode_decode branch back to
trunk.

    Clean up many warnings.


Tested on:
    Mac OSX/64 10.7.4 (amazon) w/gcc 4.7, debug and C++ & FORTRAN
    (too minor to require h5committest)
2012-07-26 14:33:59 -05:00
Quincey Koziol
a07c8f9247 [svn-r22287] Description:
Clean up more FUNC_ENTER/FUNC_LEAVE macros and move H5D & H5T code toward
the final design (as exemplified by the H5EA & H5FA code).

Tested on:
    Mac OSX/64 10.7.3 (amazon) w/debug & parallel
2012-04-16 16:20:26 -05:00
Quincey Koziol
9c9ee2008c [svn-r21919] Description:
Refactor function name macros and simplify the FUNC_ENTER macros, to clear
away the cruft and prepare for further cleanups.

Tested on:
    Mac OSX/64 10.7.3 (amazon) w/debug, production & parallel
2012-02-08 22:13:27 -05:00
Quincey Koziol
c465e18a68 [svn-r15609] Description:
Omnibus compiler warning cleanup & some reformatting also.

Tested on:
    Mac OS X/32 10.5.4 (amazon)
    Too minor to require h5committest
2008-09-10 14:10:41 -05:00
Neil Fortner
a59d91d192 [svn-r15485] Purpose: Allow library to shut down properly when objects have reference count
> 1.

Description: Added a new field 'app_count' to H5I_id_info_t struct, to track
    the reference count on an id due to the application.  the old 'count' field
    tracks the total.  Generally any id visible to the application gets placed
    in app_count.  Added app_ref boolean parameter to H5I_inc_ref, H5I_dec_ref,
    H5I_register, H5I_clear_type, and a few other functions, to specify whether
    the operation(s) being performed on the id(s) are due to the application
    (TRUE) or not (FALSE).  Test added for this case.

Tested: kagiso, smirom, linew (h5committest)
2008-08-19 11:35:16 -05:00
Quincey Koziol
a5984f59f7 [svn-r14212] Description:
Make H5Tarray_create() and H5Tget_array_dims() versioned, and drop the
"perm" parameter from the '2' versions.

	Shift internal library usage to '2' versions.

	Add simple regression tests for '1' versions.

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 17:02:19 -05:00
Quincey Koziol
492e5ca2b4 [svn-r14004] Description:
Fix problem with datatype messages where the version of the format
for a datatype message could depend on the "use the latest format" flag from
the file after it was initially created.

Tested on:
	FreeBSD/32 6.2 (duty)
	FreeBSD/64 6.2 (liberty)
	Linux/32 2.6 (kagiso)
	Mac OS X/32 10.4.10 (amazon)
2007-07-24 14:10:00 -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
e100695eb0 [svn-r13068] Ran bin/reconfigure. Some of the scripts have been changed or haven't
been run in a while, so many of the source files were updated with
tracing macros, etc.  No code changes by me.

Tested on kagiso and smirom.
2006-12-18 14:16:17 -05:00
James Laird
de383a7edf [svn-r12741] Added support for direct I/O to check-vfd. The direct VFD is only tested
if it is enabled.

Added Direct VFD status to the configure summary.

Removed a line left over from pablo support.  Oops!
2006-10-10 15:47:24 -05:00
Quincey Koziol
14dcb6db33 [svn-r12736] Description:
Add "use the latest format" support for dataspace object header encode/
decode routines and clean up format a bit for the latest format (new to 1.8.x
releases)

    Remove storing 'perm' parameter for array datatypes in memory and the file,
and add test to make certain that if any user applications are attempting to
store them, we get some reports back.  (Should be unlikely, since the RefMan
says that the parameter is not implemented and is unsupported).
    Carry those changes into the tests, etc.

    Clean up a bunch more compiler warnings.

Tested on:
    FreeBSD/32 4.11 (sleipnir) w/threadsafe
    Linux/32 2.4 (heping) w/FORTRAN & C++
    Linux/64 2.4 (mir) w/enable-1.6-compat
2006-10-08 23:18:18 -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
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
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
Elena Pourmal
c1df1b3ea4 [svn-r9857] Purpose: Maintenance
Description: Removed PABLO from the source

Solution:

Platforms tested: arabica with 64-bit, copper with parallel,
                  heping with GNU C and C++ and PGI fortran (but
                  I disabled hl, there is some weird problem only
                  on heping: F9XMODFLAG is not
                  propagated to the Makefile files

Misc. update:
2005-01-21 20:16:57 -05:00
Quincey Koziol
0db364390b [svn-r9469] Purpose:
Code cleanup

Description:
    Clear up some inconsistencies, inefficiencies and possible errors between
the release and development branch.

Platforms tested:
    FreeBSD 4.10 (sleipnir) w/parallel
    Solaris 2.7 (arabica)
    Linux 2.4 (heping) w/C++ & FORTRAN
2004-10-27 12:07:41 -05:00
James Laird
5c0011a713 [svn-r9329]
Purpose:
Feature

Description:
Datatypes and groups now use H5FO "file object" code that was previously
only used by datasets.  These objects will hold a file open if the file
is closed but they have not yet been closed.  If these objects are unlinked
then relinked, they will not be destroyed.  If they are opened twice (even
by two different names), both IDs will "see" changes made to the object
using the other ID.
When an object is opened using two different names (e.g., if a dataset was
opened under one name, then mounted and opened under its new name), calling
H5Iget_name() on a given hid_t will return the name used to open that hid_t,
not the current name of the object (this is a feature, and a change from the
previous behavior of datasets).

Solution:
Used H5FO code that was already in place for datasets.  Broke H5D_t's, H5T_t's,
and H5G_t's into a "shared" struct and a private struct.  The shared structs
(H5D_shared_t, etc.) hold the object's information and are used by all IDs
that point to a given object in the file.  The private structs are pointed
to by the hid_t and contain the object's group entry information (including its
name) and a pointer to the shared struct for that object.
This changed the naming of structs throughout the library (e.g., datatype->size
is now datatype->shared->size).  I added an updated H5Tinit.c to windows.zip.

Platforms tested:
Visual Studio 7, sleipnir, arabica, verbena

Misc. update:
2004-09-28 14:04:19 -05:00
Quincey Koziol
7c3df64cc4 [svn-r8731] Purpose:
Code cleanup & minor optimization

Description:
    Re-work the way interface initialization routines are specified in the
library to avoid the overhead of checking for them in routines where there is
no interface initialization routine.  This cleans up warnings with gcc 3.4,
reduces the library binary size a bit (about 2-3%) and should speedup the
library's execution slightly.

Platforms tested:
    FreeBSD 4.10 (sleipnir) w/gcc34
    h5committest
2004-06-23 10:36:35 -05:00
Quincey Koziol
31431be374 [svn-r7917] Purpose:
Code cleanup

Description:
    Clean up compiler warnings, especially the 'FUNC' variable not used which
comes out in production mode.

Solution:
    Had to add a new FUNC_ENTER_NOAPI_NOINIT_NOFUNC macro for those non-API
functions which don't need the 'FUNC' variable defined.  (This will be _so_
much easier when C99 is standard on all our supposed platforms, since it has a
__FUNC__ macro... )

Platforms tested:
    FreeBSD 4.9 (sleipnir)
    too minor for h5committest (although there were lots of files changed, the
        change was minor in each one)
2003-12-06 15:38:31 -05:00
HDF Admin
38d6179b31 [svn-r7436] Snapshot version 1.7 release 2 2003-08-31 03:33:11 -05:00
Quincey Koziol
f92d7f73df [svn-r7434] Purpose:
Bug Fix and code cleanup

Description:
    Correct error in H5T_detect_class that was causing nested compound datatypes
with to not detect the datatype class of fields correctly, which caused errors
with fill-values, variable-length datatypes and chunks later on.

    Return the rank of the array datatype from H5Tget_array_dims(), like
H5Sget_dims().

    Lots of cleanups to datatype code, to make the handling of arrays, compound
types, variable-length strings and sequences and enumerated types more
consistent and robust.

Platforms tested:
    FreeBSD 4.9 (sleipnir)
    h5committest
2003-08-30 20:48:01 -05:00
Quincey Koziol
00b7830ec5 [svn-r7431] Purpose:
Code cleanup

Description:
    De-linted more code.

Platforms tested:
    FreeBSD 4.9 (sleipnir)
    too small to need h5committest
2003-08-29 08:59:42 -05:00
Quincey Koziol
55869bd2ff [svn-r7116] Purpose:
Update code

Description:
    Move "PABLO_MASK" definition above header file inclusion to avoid problems
with inline functions in header files.

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    h5committest
2003-06-27 10:59:48 -05:00
Raymond Lu
546dea5dd9 [svn-r6828] Purpose: bug fix
Description: H5T_XXX_init_interface calls H5T_init_interface causing
     datatype not closed after file is closed.

Solution: changed H5T_init_interface to H5T_init

Platforms tested: h5committest
2003-05-07 17:30:56 -05:00
Quincey Koziol
7d63d5e3ff [svn-r6395] Purpose:
Code cleanup.

Description:
    Break up the ~9350 line H5T.c module into smaller pieces, which contain
    code for a particular feature or support for a datatype class.

    This should make the "main" H5T code (still in H5T.c) easier to support,
    as well as removing some of the "minor" routines from the user applications
    which don't use them (my rough estimates show about 4% reduction (~30K on
    a FreeBSD machine) in optimized, staticly-linked binaries for very simple
    programs)

Platforms tested:
    Tested h5committest {arabica (fortran), eirene (fortran, C++)
	modi4 (parallel, fortran)}

    FreeBSD 4.7 (sleipnir)

Misc. update:
    Update MANIFEST
2003-02-12 08:44:31 -05:00