Commit Graph

710 Commits

Author SHA1 Message Date
Dana Robinson
adc467992e
Moved the contributing.md document to the project root (#2244) 2022-11-09 09:58:32 -08:00
Dana Robinson
ce67e4eb05
Adds a first cut at a "getting started with HDF5 development" guide (#2137)
* Added empty "getting started" markdown file

* Added title and brief tour of source code

* Moved platform-independence text to markdown

* Added anatomy of a function documentation

* Adds information on public/private/package calls and macros

* Adds much getting started guide text

* Fixed typos

* Fixed codespell issues
2022-09-30 21:44:39 -07:00
Dana Robinson
fe9c07fd90
Adds file locking documentation (#2084)
* Added initial (partial) file locking document

* Almost done with file locking document

* Fix intro

* Cleaned up text

* Updated environment variable verion info

* Fix typo

* Fix typos
2022-09-14 05:53:35 -07:00
Dana Robinson
1804e0e0c4
Updates release schedule for 2023 (#2085)
* Updates release schedule for 2023

* Updates figure to put 1.13 and 1.14 on the same line
2022-09-04 04:42:25 -07:00
jhendersonHDF
95ceec786a
Add documentation for parallel compression feature (#1981) 2022-08-09 16:08:13 -07:00
Dana Robinson
32caa567a2
Updates the release schedule (#1923)
1.13.2 moved to August
Subfiling moved to 1.13.2 from 1.13.3
2022-07-22 05:12:27 -07:00
Dana Robinson
65a24325af
Updates branches-explained.md (#1900) 2022-07-15 16:26:50 -07:00
Dana Robinson
acb6e2da30
Updates the release schedule (#1796) 2022-06-06 09:31:41 -05:00
Dana Robinson
a2b2148e73
Adds release timeline to README.md (#1584) 2022-04-05 17:26:00 -05:00
David Young
a0445d806c
Simplify function enter macros for performance benefits (#1024)
* Take a stab at using constructors to initialize instead of
function-entry macros.  This is a work in progress.  It's good enough to
run `many_dsets`.

* Committing clang-format changes

* Add the `many_dsets` benchmark and some scripts I used on jelly for
setting up the build/test environment and for recording/flame-graphing
profiles.

* Committing clang-format changes

* Change my Makefile and environment script to work both on jelly
and on mayll (and probably on Summit).

* Disable clang-format "fix."

* Replace the `if (!H5_TERM_GLOBAL)` test in each FUNC_ENTER_ macro with
`if (true)`.

* Fix bad grammar in a comment.

* Instead of labeling the H5*__init_package routines constructors, fold
each into an initialization routine, H5*_init(), and call each of
the H5*_init() routines.  Call most of the H5*_init() routines from
H5_init_library() in an explicit order that I found out earlier by
instrumenting each __init_package routine and running the library
tests.  Roll H5FD*__init_package routines into H5FD*_init() routines.
This change ends just-in-time initialization of package dependencies by
package initializers.

Don't track in per-package variables (H5_PKG_INIT_VAR) whether each
package has been initialized.  Instead, track in a single library
variable whether the whole library is initialized or not.

Drive the initialization of packages by H5_init_library() with a table
of initializer routines.  Also drive the termination of packages by
H5_term_library() with a table.

Perform initialization as needed from FUNC_ENTER_API_INIT(err).  This
basically restores the old behavior of that macro.

Delete a bunch of #definitions in H5private.h that have fallen out of
use with these changes.

* Committing clang-format changes

* Undo the bad auto-formatting that appears to have occurred in spite
of my disabling it.  Bracket some code in /* clang-format off */ /*
clang-format on */ to prevent a recurrence.

* Remove a diagnostic abort().

* Fix a logic error: print a comma between every package terminator run,
and don't print an initial comma.

* Complete the changes I started in H5_term_library() that undo the bad
auto-formatting.

Stop tracking whether package "tops" were initialized in per-package
variables H5*_top_package_initialize_s.  H5_term_library() takes care of
that for them.

Remove H5R_top_term_package() and H5R_term_package(), they don't do
anything.

* Committing clang-format changes

* NFCI.  Simplify macro text: replace `if (true) {` with `{`.

* Fix formatting and suppress clang-format on a longer range.

* Quiet some unused label, unused variable complaints that cropped up
after I simplified the FUNC_ENTER_ macros for the sake of performance.

* Committing clang-format changes

* Delete some programs and scripts that don't belong in the pull request.

* Use the right function-entry macro.

* Use a sensible format and disable auto-formatting.

* Stop calling do-nothing initializer H5FS_init().  Delete it.

* Document what changes to make if the default VFD changes.

* While I am here, change an `await_prior` flag on the terminator table
to `true` to match the previous, non-table-driven code that was here.
Found the oversight making the following changes:

NFCI: insert an empty line and copy over slightly-edited comments from
the previous version, where those comments still correctly explained how
library termination operated.

* NFCI: lower a staircase.

* Replace every occurrence of FUNC_ENTER_NOAPI_INIT(...) with H5_PUSH_FUNC
since that is all that that macro does any more.

Quiet a bunch of new warnings by changing FUNC_ENTER_NOAPI(...) to
FUNC_ENTER_NOAPI_NOERR and removing disused `done:` labels.

* NFCI: add curly braces around a multiline statement.

* Quiet a signed/unsigned comparison warning.

* Add some documentation about library initialization and shutdown.

* Make sure that the library is initialized, or else that initialization
is already underway, before performing any VFD's initialization.

* Committing clang-format changes

* Committing clang-format changes

* Reduce differences from `develop` branch.

* Always initialize `tot_init`.

* Committing clang-format changes

* Fix typo: H5SL_init initializes skip lists, not VOL.

* Remove H5_TERM_GLOBAL test in H5T_init.  H5T_init was unusual in that
it tested H5_TERM_GLOBAL and exited early if it was set.  No other
module initializers did that, and I cannot find any reason that should
be necessary.  Tests still pass when I remove it, so away it goes.

* Use HD prefix.

* Add function header comments.

* Drop the intermediate variable, it's only used once.

* Extract subroutine `H5FDperform_init(hid_t (*init)(void))` that
initializes the library, if necessary, before calling its VFD-initializer
argument.  Use H5FDperform_init in the definition of the symbols
H5FD_<vfd> (e.g., H5FD_SEC2), which may be evaluated before the library
is initialized, like so:

```
```

I implement H5FDperform_init in its own source file, H5FDperform.c,
and exclude that file from trace processing because the `bin/trace`
cannot deal with the function-pointer type.

* Straggler from last: add new source file src/H5FDperform.c.

* Committing clang-format changes

* Add a missing file to the MANIFEST.

* Switch to FUNC_ENTER_API_NOINIT in H5FDperform_init() and hbool_t in
H5_term_library().

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-11-08 15:08:07 -06:00
Gerd Heber
cf25524474
A batch of life-cycle examples for different modules (#654)
* Create a tag file for permalinks.

* Added DOXYGEN_TAG_FILE.

* Added Doxygen life-cycle examples for different modules.

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-09-01 16:09:27 -05:00
Scot Breitenfeld
98acb0adcf
small edits (#481)
* fixed missed closing of a dataset

* fixed missed closing of a dataset

* fixed typo in error return

* Committing clang-format changes

* minor edits

* code format

* Committing clang-format changes

* code format

* minor edit

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-03-22 13:31:42 -05:00
epourmal
49a14f9e02
Added description of the current HDF5 branches; added a draft of contribution policy. (#445)
* Added description of the current HDF5 branches.

* Removed capitalization in from Develop, Release, Feature to reflect the real naming schema

* Added a draft of contributions guidance document.

* Fixed typos.

* Fixed section title.

* Fixed typo.

* Fixed typos and formatting.

* Fixed many typos and simplified the text (e.g., removed testing instructions and left pointers to where to find them, etc.)

* Fixed a typo.
 Please enter the commit message for your changes. Lines starting

* Added contributing.md file and rearranged doc entries in alphabetical order.

* ddressed Gerd's review comments; found and fixed more typos.

* Addressed comments from Larry and Scot.
2021-03-19 08:13:32 -05:00
David Young
50aac126d7 Start to document the function/parameter/variable attribute macros. 2020-02-18 17:07:40 -06:00
Frank Baker
794ba0a251 [svn-r11084]
Description:
    All HDF5 user documentation has been moved to a separate hdf5doc/
        repository, managed under Subversion.
    With this 'cvs commit', all files are stripped from hdf5/doc/.
    THIS CHANGE IS APPLIED ONLY TO THE HDF5 DEVELOPMENT BRANCH,
    post Release 1.6.x; it is not applied to the release branches.
2005-07-19 12:28:56 -05:00
HDF Admin
5de418b2b4 [svn-r11081] Snapshot version 1.7 release 48 2005-07-18 16:20:23 -05:00
James Laird
43f091f462 [svn-r11008] Purpose:
Feature: tests now use parallel make and only run once

Description:
When make is invoked in parallel (using the -j option), several tests will
now be run simultaneously.  This should speed up testing on a number of
systems.
When a test passes, it creates a foo.chkexe or foo.chksh file, which prevents
the test from running again unless the test or library changes.

Solution:
Most of the changes live in config/conclude.am.  Added *.chkexe and *.chksh
files to the list of files to be cleaned at "make mostlyclean" time.
Parallel tests still run one at a time, but use the same make instructions
as serial tests.

Platforms tested:
mir, eirene, sleipnir, pommier, copper, modi4 (some errors occurred, probably
due to the test being run before updating hdf5.  Will re-run tests after
checkin.)
2005-06-30 18:35:32 -05:00
Frank Baker
e38365206a [svn-r10976]
Purpose:
    Added new meta data cache functions.
    Added links to HDF5 High-Level API reference pages to nav bar.
    Other minor (though somewhat pervasive) reformatting.
Platforms tested:
    Firefox
2005-06-23 16:30:36 -05:00
Frank Baker
63357e8acb [svn-r10975]
Purpose:
    Added links to HDF5 High-Level API reference pages to nav bar.
Platforms tested:
    Firefox
2005-06-23 16:03:41 -05:00
Frank Baker
614bbec1c7 [svn-r10974]
Purpose:
    Added new section for High-level HDF5 APIS.
    Added links to HDF5 High-Level API reference pages to nav bar.
    Added quick-links bar for
        High-level APIs
        Main HDF5 Library, including Low-level APIs
        Fortran and C++ Interfaces
    Added "Main HDF5 Library, including Low-level APIs" heading.
        There had previously been no comparable heading.
Platforms tested:
    Firefox
2005-06-23 15:44:53 -05:00
Frank Baker
386a19639f [svn-r10973]
Purpose:
    Added links to HDF5 High-Level API reference pages.
Platforms tested:
    Firefox
2005-06-23 15:34:02 -05:00
Raymond Lu
071be8ef3b [svn-r10971] Purpose: Bug fix
Description: See details from Bug #213.  Family member file size wasn't saved
anywhere in file.  When family file is opened, the first member size determine
the member size.

Solution:  Hopefully, this is the last step of checkin for this stage.  This step
mainly enables h5repart tool to be able to convert file driver from family to
sec2.  Because the library saves family information in file, in trying to convert
to sec2 driver, the library simply change the address of driver information to
undefined so that the driver information block can be ignored.  This step also
updates the reference manual of H5Pset_fapl_family() and h5repart.

In the fifth step of checkin, backward compatibility with v1.6
is tested.  A family file created was created with the v1.6 library and opened
with this version of the library.

In the fourth step of checkin, a test suit is added for h5repart,
including a program to generate the test files, a script file to run h5repart,
and a program to verify repartitioned files can be opened by the library.

There's a change from the first step of checkin.  Family name template is no
longer saved in the superblock because different pathname can make the name
different.

In the third step of checkin, h5repart has been modified.  If h5repart is used
to change the size of family member file, the new size(actual member size) is saved
in the superblock.

In the second step of checkin, multi driver is checked against the driver
name saved in superblock.  Wrong driver will result in a failure with an error message
indicating
multi driver should be used.  This change includes split driver because it's a special
case for multi
driver.

In the first step of checkin.  Family member size and name template(unused at this stage) are saved
in file superblock.  When file is reopened,the size passed in thrin superblock.  A different size
will trigger a failure with an error message indicating the right size.  Wrong driver to open family
file will cause a failure, too.


Platforms tested: h5committest and fuss.

Misc. update: doc/html/RM_H5P.html and doc/html/Tools.html
2005-06-22 13:59:48 -05:00
Frank Baker
d0145118bd [svn-r10878]
Purpose:
     Remove statement that gray-scale image attribute must
         be in the range of 0-255.
     Remove datatype definition for the attribute IMAGE_ASPECTRATIO.
     Fixes Bugzilla entry 347.
 Platforms tested:
     Firefox
2005-06-08 10:39:09 -05:00
James Laird
2423bd6cab [svn-r10840] Purpose:
Added check-s and check-p targets.

Description:
Added check-s and check-p targets to 1.7 branch to match changes to 1.6
branch.  Now parallel and serial tests can be run separately.

Platforms tested:
mir, modi4, copper
2005-06-01 20:51:52 -05:00
James Laird
45a6e2c0c8 [svn-r10798] Purpose:
Added documentation

Description:
Added "Automake Use Cases" document to Tech Notes.
This is intended as a reference or an introductory document; more
in-depth documentation is in progress.

Platforms tested:
Change only to documentation.  Documentation is viewable on Windows.
2005-05-25 14:29:13 -05:00
Frank Baker
edecc60b50 [svn-r10784]
Purpose:
    Complete H5Error API changes -- Changed and deprecated functions.
Description:
    Added H5Eclear_stack, H5Eprint_stack, H5Epush_stack, H5Eget_auto_stack,
        H5Eset_auto_stack, H5Ewalk_stack.
    Added "deprecated function" notes to H5Eclear, H5Eprint, H5Epush,
        H5Eget_auto, H5Eset_auto, H5Ewalk, H5Eget_major, H5Eget_minor.
Platforms tested:
    Firefox
2005-05-23 11:21:28 -05:00
Raymond Lu
0675cc67f9 [svn-r10760] Purpose: Minor Modification
Description: changed return type of H5Eget_num from SIZE_T to SSIZE_T to include
negative return value for failure.


Platforms tested: Not needed
2005-05-19 11:12:39 -05:00
Frank Baker
2399650d64 [svn-r10752] Purpose:
Added new H5Error APIs.
Description:
    Added C entries for
	H5Eregister_class         H5Eunregister_class
	H5Eget_class_name         H5auto_is_stack
	H5Ecreate_msg             H5Eget_msg
	H5Eclose_msg
	H5Eget_num                H5Epop
	H5Eget_current_stack      H5Eclose_stack
    Still missing -- 6 APIs that match existing APIs except that they
    include a 'stack' parameter.  Those APIs will be added shortly.
Platforms tested:
    Firefox
2005-05-18 17:16:08 -05:00
Frank Baker
ec6e34dc30 [svn-r10751] Purpose:
Minor reformatting adn edits.
    Added links to C++ RM and Parallel HDF5 sites.
    Restructured document lists with the intent of easing discovery.
Description:
Platforms tested:
    Firefox
2005-05-17 17:26:27 -05:00
HDF Admin
a4345b9917 [svn-r10744] Snapshot version 1.7 release 47 2005-05-15 04:34:14 -05:00
Frank Baker
c7587a02c7 [svn-r10686]
Purpose:
    Added note to H5Tget_class description that library returns
        H5T_STRING for both fixed-length and variable-length strings.
        Fixes Bugzilla #329.
    In H5Tget_member_class, added reference to list of valid class
        identifiers in H5Tget_class.
Platforms tested:
    Firefox
2005-04-27 17:13:29 -05:00
Frank Baker
a33e31b5b3 [svn-r10683] Purpose:
Corrected return value of H5Tget_member_value.
    Fixed Bugzilla #309
Platforms tested:
    Firefox
2005-04-27 16:08:12 -05:00
HDF Admin
183741eff0 [svn-r10632] Snapshot version 1.7 release 46 2005-04-20 04:48:31 -05:00
Frank Baker
6fac25937f [svn-r10573]
Purpose:
    Add h5tget_member_index_f and h5tget_member_class_f.
    Reformat links index at top of page to balance Fortran lists
        and cleanup the C listing.
Platforms tested:
    Firefox
2005-04-07 17:42:19 -05:00
Elena Pourmal
5279827823 [svn-r10570] Purpose: Maintenance
Description: Removed support for SRB driver

Solution: Removed or modified appropriate files; ran reconfigure
          to regenerate Makefile.in and configure files.

Platforms tested: heping and shanti

Misc. update: ran bin/chkmanifest on heping
2005-04-07 14:41:25 -05:00
James Laird
b296a419c4 [svn-r10534] Purpose:
Configuration feature

Description:
Different Fortran compilers mangle function names in different ways
(upper case, lower case, adding underscores).  To link between
Fortran and C functions, we need to know what a given function's
name is under a given compiler.

Solution:
Use autoconf's FC_WRAPPERS check to determine the Fortran
naming scheme and define the FC_FUNC_ macro to name our
functions (in H5f90proto.h).  Removed references to
our old FNAME macro, as well as flags that indicated whether
function names were upper or lower case.

Platforms tested:
mir, pommier, modi4, copper, more
2005-04-04 16:17:51 -05:00
James Laird
59ec5b3d66 [svn-r10517] Purpose:
Bug fix

Description:
On some machines, $RUNSERIAL variable needs to be used to run
tests.  Set $RUNTESTS (which is used for non-parallel tests) to
be $RUNSERIAL in configure.am.

Also, since I was updating all Makefiles.in anyway, I updated
commence.am to point to autotools installs in AFS instead of
those on heping.

Platforms tested:
mir, sleipnir, modi4, copper
2005-03-31 13:26:17 -05:00
James Laird
14e06e81cb [svn-r10511]
Purpose:
"Bug fix"

Description:
Hardcoded Makefiles to use /bin/sh instead of letting configure
detect shell automatically.  This is what v1.6 does, and avoids
problems on janus.

Platforms tested:
sleipnir, copper, modi4, mir
2005-03-30 16:14:48 -05:00
James Laird
7acf3f1b12 [svn-r10475] Purpose:
Feature - conditional compilation

Description:
SRB file driver and tests are now compiled only when SRB is enabled
(using --with-srb during configure).

Solution:
Added an automake conditional in configure.in, altered Makefiles.am in
src and test directories to depend on that conditional.
This should make a nice example for posterity to add conditionally
compiled sources.

Platforms tested:
heping (only configure change)
2005-03-29 12:38:17 -05:00
James Laird
9452992c09 [svn-r10459]
Purpose:
Added C++ wrapper for Packet Table API.

Description:
Added macro for high-level C++ library (LIBH5CPP_HL), which changes every
Makefile.in.
Added directories for high-level C++ library (though currently only Packet
Table API is supported).
Added both C++ source and tests.

Platforms tested:
sleipnir, mir, modi4

Misc. update:
2005-03-28 11:32:20 -05:00
James Laird
25df1908bc [svn-r10158] Purpose:
Automake version upgrade

Description:
Upgraded automake version from 1.6.2 to 1.9.5.
Changed bin/reconfigure script to use automake 1.9.5.
Changed configure.in and Makefiles to use new FCFLAGS and FC variables
instead of FFLAGS and F9X.
Automake and configure should now do the lion's share of the work
supporting Fortran 9X; macros in acsite.m4 are now mostly unused (will
be cleaned later).
Altered how configure handles pmake; now root-level Makefile.in is
processed by bin/reconfigure to have a .MAKEFLAGS target, since
automake no longer allows us to define unused variables.
Configure now always checks for C++ compiler even if it is not
used, since automake thinks this is the Right Thing To Do and
will break otherwise.

Platforms tested:
Sol, copper, heping, mir, sleipnir, eirene, pommier, kelgia, modi4.
2005-03-07 12:57:27 -05:00
Albert Cheng
b992aace96 [svn-r10133] Purpose:
Updated with 1.7.x changes of retiring GASS Virtual File Driver.
2005-03-03 15:59:54 -05:00
Albert Cheng
0d514907a9 [svn-r10123] Purpose:
Removed GASS configuration and software packages associated with
it.  The following software are no longer configurable.

checking for main in -lcrypto... yes
checking for SSL_get_version in -lssl... yes
checking globus_common.h usability... yes
checking globus_common.h presence... yes
checking for globus_common.h... yes
checking for globus_module_activate in -lglobus_common... yes
checking for main in -lglobus_gass_cache... yes
checking for main in -lglobus_gaa... yes
checking for main in -lglobus_gss... yes
checking for main in -lglobus_gss_assist... yes
checking for main in -lglobus_io... yes
checking for main in -lglobus_gass_transfer_assist... yes
checking for main in -lglobus_gass_transfer... yes
checking for globus_gass_open in -lglobus_gass_file... yes

Platforms tested:
h5committested (but copper was down.) tested in modi4 too.
2005-03-02 15:02:55 -05:00
HDF Admin
6b4752cedd [svn-r10118] Snapshot version 1.7 release 45 2005-03-02 08:34:32 -05:00
James Laird
0b83fea125 [svn-r10066] Purpose:
Libtool upgrade

Description:
HDF5 was using libtool 1.4.2.  Upgraded to libtool 1.5.14.

Platforms tested:
verbena, heping, pommier, copper, modi4, arabica
2005-02-23 11:47:00 -05:00
Xiaowen Wu
065fe7bb71 [svn-r10023] Purpose:
New feature.

Description:
    Add the scaleoffset internal library filter.

Solution:

Platforms tested:
    heping, copper, arabica

Misc. update:
2005-02-16 21:52:21 -05:00
James Laird
8ed95c0011 [svn-r10016]
Purpose:
Bug fix

Description:
modi4 dies during build with strange errors.
The root cause of these is a two-year-old hack in HDF5's libtool
script that only takes effect on IRIX.

Solution:
Edited the libtool hack (by editing ltmain.sh) to correct a bug in
the hack.
Also made sure that compiler-specific DEFAULT_LIBS are used
when linking.

Platforms tested:
sleipnir, copper, modi4, sol
2005-02-16 14:27:27 -05:00
James Laird
3f0a35a4ea [svn-r9988] Purpose:
Bug fix

Description:
pmake (on modi4, for instance) complains about undefined variables
if it is run without the -V flag, which turns those errors to warnings.

Solution:
Added test to configure.in to see if $MAKE will allow Makefiles
with undefined variables.  If not, sets -V flag in AM_MAKEFLAGS.
Ensured that all custom make targets use AM_MAKEFLAGS.
Also defined all variables that caused errors in top-level Makefile.am.
This means that pmake can be used to build hdf5 *from the top level
only*.  To run make from a subdirectory, still need to use -V flag
(or use make or gmake).

Platforms tested:
modi4, heping, copper, sleipnir
2005-02-11 12:40:52 -05:00
James Laird
db2575baa9 [svn-r9930]
Purpose:
Bug fix

Description:
Parallel builds were breaking in tools/lib

Solution:
talign didn't realize it depended on libh5tools.la because its
dependencies listed the full path (../../tools/lib/libh5tools.la).
Changed this, and made similar changes in a couple of other
directories.
This checkin should also add the --foreign flag to every Makefile.in

Platforms tested:
sleipnir (minor change)
2005-02-03 16:59:40 -05:00
Quincey Koziol
0b332ace5e [svn-r9928] Purpose:
New feature

Description:
    Add basic code for new B-tree implementation.  They don't do much yet,
aren't hooked up to anything yet and the format may change, but I'd like to
start getting them into the daily tests.

Platforms tested:
    FreeBSD 4.11 (sleipnir) w/parallel
    Too minor to require h5committest
2005-02-03 14:59:05 -05:00