Commit Graph

1556 Commits

Author SHA1 Message Date
Dana Robinson
2b1709f6ff Squashed commit of the token_refactoring branch: 2020-01-18 20:02:16 -08:00
Jerome Soumagne
847c156917 Add test for reference shutdown issue 2020-01-17 16:36:13 -06:00
Allen Byrne
6b6afd7a94 Merging in latest from upstream (HDFFV/hdf5:refs/heads/hdf5_1_12)
* commit '7116d82f6b685261b5b4e64fada1a0a031cd7341':
  Remove mismerged code
  Cherry pick of 0225e6d596
  Cleanups from PR reviews
  Remove unnecessary H5CX call
  Refactor H5Dvlen_get_buf_size to use optional dataset operation, with generic fallback for VOL connectors that don't implement operation
  Refactor all the 'H5VL_*_optional' callbacks to move the type of operation out of the va_list, so it's at least possible for another connector to know what the operation is and decide whether to implement it or not.
  Update h5debug to retrieve file pointer through VOL framework
2020-01-07 16:33:43 -06:00
Quincey Koziol
7d87aea63f Refactor all the 'H5VL_*_optional' callbacks to move the type of operation out
of the va_list, so it's at least possible for another connector to know what
the operation is and decide whether to implement it or not.

Added a new VOL sub-class called "introspect" where callbacks that report
information about the connector or container can be placed.  Added an
'opt_query' callback to this sub-class, for a connector to report back
to the library whether a particular optional callback operation is supported.
Also added a 'get_conn_cls' introspection callback, to retrieve the H5VL_class_t
of a connector (either the "current" connector, H5VL_GET_CONN_LVL_CURR, or
the terminal connector, H5VL_GET_CONN_LVL_TERM).

Moved the "post open" operation from a file 'specific' operation to a file
'optional' operation, now that it's possible to detect (with the 'opt_query'
introspection callback) whether a VOL connector implements an optional
operation, without just returning an error.

Added new internal VOL helper routines: H5VL_object_is_native, to determine
if an object is in (or is a) native file, and H5VL_file_is_same, to determine
if two objects are in (or are) the same terminal VOL connector's container.
(And moved the special handling for FILE_IS_EQUAL operation out of internal VOL
callback routine into H5VL_file_is_same)

Made new dataset 'get' operation for H5Dvlen_get_buf_size, aligning it better
with other 'get' operations in API.

Fixed several issues with pass-through connectors, which are now passing the
'make check-passthrough-vol' tests again.

A bunch of warning and style cleanups as well.
2020-01-04 10:02:08 -06:00
Allen Byrne
5973278caa Add new h5diff files 2019-12-21 07:52:19 -06:00
Allen Byrne
37529db25c HDFFV-10976,-10980 h5dump, h5ls, h5diff use new ref APIs 2019-12-20 13:40:08 -06:00
David Young
f2be0c5b54 Apparently, + has no special meaning, and neither does \+, in so-called
"obsolete" / POSIX "basic" regular expressions.  Also, not every version of
`sed` out there supports the `-E` option.  So delete the -E flag and use
the regex `[^/][^/]*` instead of `[^/]+`.

Add config/netbsd to the MANIFEST.
2019-12-19 15:03:41 -06:00
Richard Warren
663d6e0118 Merge t_2Gio test into hdf5_1_12. This will eventually be refactored out after merging the test functionality into the testphdf5 test. 2019-12-16 17:00:08 -05:00
Allen Byrne
1dc37eae78 TRILABS-135 add clang sanitizer support 2019-12-13 12:52:21 -06:00
Allen Byrne
1f1b911d3e Correct testfile name 2019-12-09 15:51:12 -06:00
Allen Byrne
310b42e35a HDFFV-10876 Merge from develop 2019-12-09 15:44:38 -06:00
Jerome Soumagne
49fe497201 Revert "Merge branch 'hdf5_1_12' of https://bitbucket.hdfgroup.org/scm/hdffv/hdf5 into hdf5_1_12"
This reverts commit 9f9336a5bd, reversing
changes made to 437a1919e7.
2019-12-09 12:16:52 -06:00
Richard Warren
0c06cfc6ef Merged HDFFV-10929_2GB_testing to hdf5_1_12 2019-12-06 16:42:36 -05:00
Larry Knox
736ce8b585 Update MANIFEST. 2019-10-21 17:12:19 -05:00
Jerome Soumagne
dabdcf9559 Add new H5R API that abstracts object, region and attribute reference types
Also support references to external files

Add new H5T_REF type and type conversion routines

Support conversion from H5T_REF_OBJ/DSET_REG to H5T_REF

Add H5Treclaim() API to reclaim memory of vlen/reference types

Deprecate H5Dvlen_reclaim()

Fix H5T_vlen_reclaim() and H5T_reclaim() to use private callback

Add H5T_ref_reclaim()

Move previous H5R APIs to H5Rdeprec.c

Clean up H5Ocopy

Separate H5O_copy_expand_ref() to H5Ocopy_ref()

Add support for copying new reference types

Clean up deprecated routines to go through VOL and same code path

Fix return codes in existing trefer.c test

Rename trefer.c to trefer_deprec.c

trefer.c is for new references

Add performance test for trefer

Add additional obj_copy_ref test

Make use of tokens and blobs to store references

Skip blob encoding for object references

Start adding new reference examples
2019-10-08 15:19:21 -05:00
Quincey Koziol
ff490b4a69 Add 'blob' callbacks to VOL, along with a native implementation to store them
in the global heap, and changed the VL datatype conversion code to use blobs.

Move encode/decode of sequence lengths into VL datatype callbacks, from native
VOL blob routines.
2019-10-08 15:18:27 -05:00
Allen Byrne
f2bb38e23a Add new toolchain file 2019-10-01 10:10:45 -05:00
Jacob Smith
35a9e9c50f Merge branch 'develop' of https://bitbucket.hdfgroup.org/scm/~jake.smith/hdf5 into bugfix/repack_external_storage 2019-09-23 17:23:02 -05:00
Jacob Smith
aa797af31b Refactor h5repackgentest to have more modular internals, for easier
addition of new tests.
Update manifest and test script for new hdf5 external-storage .h5 files.
2019-09-23 16:21:37 -05:00
Binh-Minh Ribler
a8af828bbf Merge pull request #1908 in HDFFV/hdf5 from ~BMRIBLER/hdf5-bmr:develop to develop
- Added new chunk query functions: H5Dget_num_chunks(), H5Dget_chunk_info(), and H5Dget_chunk_info_by_coord()
- Fixed iterator issue in H5EA_iterate(), H5FA_iterate(), and H5D__none_idx_iterate()

* commit '96dab622e3bbe75d85b0cef3ca2bd5288cf4ac32':
  Fixed error code and error messages Tested on Jelly (very minor)
  Changed H5VL_NATIVE_DATASET_GET_CHUNK_INFO_BY_COOR to H5VL_NATIVE_DATASET_GET_CHUNK_INFO_BY_COORD per a review comment.
  Updated comments
  Updated based on reviews and refactored test code
  Code cleanup and refactor
  Re-ordered items w.r.t. date.
  Fixed typo
  Added notes about HDFFV-10677 and HDFFV-10661
  HDFFV-10677 and HDFFV-10661
2019-09-03 11:08:42 -05:00
Allen Byrne
fa540a3af8 Add 32-bit cross-compile toolchain 2019-08-29 10:36:12 -05:00
Binh-Minh Ribler
e06bf9d263 HDFFV-10677 and HDFFV-10661
Description:
    - Added functions to query chunk information:
        H5Dget_num_chunks(dset_id, fspace_id, *nchunks)
            Gets the number of written chunks that intersect with the given
            dataspace.  However, in this version, the intersection is not
            yet completed.  Thus, the number of all written chunks will be
            returned.
        H5Dget_chunk_info_by_coord(dset_id, *offset, *filter_mask, *addr, *size)
            Given a chunk's logical coordinates, returns the chunk's filter,
            address, and size.
        H5Dget_chunk_info(dset_id, fspace_id, index, *offset, *filter_mask, *addr, *size)
            Given a chunk's index, returns the chunk's logical coordinates, filter,
            address, and size.  The chunk belongs to a set of chunks that have
            nonempty intersection with the specified dataspace.  However, in
            this version, the intersection is not yet completed, and the index
            is of all the written chunks.
        These functions comply with VOL.

    - Fixed some oversights found in the library for the tests in chunk_info.c
      to work correctly.  The returned value from a callback function was not
      checked in H5EA_iterate(), H5FA_iterate(), and H5D__none_idx_iterate().
      This oversight caused a callback function to continue iterating even though
      it's supposed to stop.
Platforms tested:
    Linux/64 (jelly)
    Linux/64 (platypus)
    Darwin (osx1011test)
2019-08-28 10:08:12 -05:00
Dana Robinson
bd8da502cf Some refactoring prior to implementing new H5P MPI functions.
* Macro cleanup and obvious warning fixes in parallel code.
* Moved H5FD comm and info dup/free wrapper code to a new H5mpi.c file
  and separated it to deal with each MPI type separately.
2019-08-14 16:22:06 -07:00
Dana Robinson
5b6bd7c922 Added the map (H5M) API 2019-08-13 01:36:42 -07:00
Allen Byrne
c60ceb8c08 Merge reconciliation and VFD test fixes 2019-08-04 15:19:51 -05:00
Dana Robinson
4227b8948d Reverts the removal of config/conclude_fc.am while keeping
the changes to config/gnu-fflags.
2019-07-31 22:51:53 -05:00
Dana Robinson
99a6a5a16e Fixed the MANIFEST 2019-07-30 07:29:37 -07:00
Dana Robinson
d169391529 Merge pull request #1808 in HDFFV/hdf5 from ~DEROBINS/hdf5_der:gnu-flags-work to develop
* commit '7d291d059da6287f769951c4854c566da0b93ce8':
  Parallel Fortran tests now use the MPI module instead of including mpif.h.
  First stab at gfortran versions. Tested on gfortran 7-9 so far.
  Moved the -std=f2008 option to gfortran 9 for now.
  Updated gfortran options. * Removed conclude_fc.am, which was causing verbose builds. Need to   investigate more, though. * Added gfortran 9 warnings and flags. This will need to be separated   into other version blocks based on when the options first appeared. * The standard is now explicitly set at 2008.
2019-07-29 16:13:24 -05:00
Larry Knox
8008294578 Squashed commit of the following:
Merge changes from update_merged_S3_HDFS branch into develop.

commit d5034315aea88629929ac0c9c59ebfafd5f21a31
Merge: 9c48823 d3fdcd8
Author: Larry Knox <lrknox@hdfgroup.org>
Date:   Thu Jul 25 08:24:53 2019 -0500

    Merge branch 'develop' into update_merged_S3_HDFS
2019-07-25 11:47:12 -05:00
Jacob Smith
c7f8cb011d Merge branch 'develop' of https://bitbucket.hdfgroup.org/scm/~jake.smith/hdf5 into bugfix/repack_external_storage 2019-07-22 17:09:54 -05:00
Allen Byrne
7bb020fcec HDFFV-10845 add support for mingw toolchain 2019-07-17 11:56:48 -05:00
Dana Robinson
8bd2c81cd5 Updated gfortran options.
* Removed conclude_fc.am, which was causing verbose builds. Need to
  investigate more, though.
* Added gfortran 9 warnings and flags. This will need to be separated
  into other version blocks based on when the options first appeared.
* The standard is now explicitly set at 2008.
2019-07-17 01:23:44 -07:00
Quincey Koziol
3b594992d6 Add support for GCC9, update warnhist script, and clean up warnings. 2019-07-02 23:43:45 -05:00
Allen Byrne
a03d35dc22 HDFFV-9407 Add test 2019-06-24 07:28:39 -05:00
Jacob Smith
9103fd5953 Undo some formatting modifications.
Update MANIFEST.
2019-06-21 12:05:54 -05:00
Jacob Smith
27d5742b39 Merge branch 'develop' into bugfix/repack_external_storage 2019-06-20 12:37:27 -05:00
Allen Byrne
e7f16c6f2c HDFFV-10805 Add option to only build shared targets
HDFFV-10805 Add ONLY_SHARED_LIBS option and prefer shared over static
HDFFV-10803 Update FindSZIP.cmake find module
Remove unneeded modules and update java modules
2019-06-18 07:46:25 -05:00
Dana Robinson
72dd01b76b Added a warning summary script for gcc to bin 2019-06-17 13:35:08 -07:00
Vailin Choi
f7c2a75404 Merge pull request #1729 in HDFFV/hdf5 from ~VCHOI/my_third_fork:bugfix/HDFFV-10800-h5ocopy-failure to develop
* commit 'dfdc27b04b2e8bcd1985ba90ce6553d8b3805fda':
  Fix release notes based on feedback from pull request.
  Fix for HDFFV-10800 H5Ocopy failure: The value for the H5F_LIBVER_V18 index in H5O_fill_ver_bounds[], the format version bounds array for fill value message, should be version 3 not 2.
2019-06-17 10:28:58 -05:00
Larry Knox
68fb1c9f37 Merge pull request #1738 in HDFFV/hdf5 from ~LRKNOX/hdf5_lrk:develop to develop
* commit '6c3f90ae222a8d4e8d8edf172a6745028209b75c':
  Update MANIFEST for move of h5cc.in and h5redeploy.in to bin directory.
2019-06-15 14:30:03 -05:00
Larry Knox
6c3f90ae22 Update MANIFEST for move of h5cc.in and h5redeploy.in to bin directory. 2019-06-15 12:34:07 -05:00
Dana Robinson
bb9370d777 Merge branch 'develop' into vol_dev_headers
Also moved the wrapper functions from the H5VLconnector.h to
H5VLconnector_passthru.h
2019-06-14 12:23:06 -07:00
Scot Breitenfeld
9a82fa66d4 Merge pull request #1708 in HDFFV/hdf5 from ~BRTNFLD/hdf5_msb:H10621 to develop
* commit '0742c15fca95965ed4eb87c6d54f41bb07bd4526':
  makefile clean-up
  move the vol_info to an optional parameter
  added H5Pset_vol
  added vol connector
  added test for vol_connector
  removed H5VL constants
  removed VOLL NULL connector and replaced it with native VOL
  added connector_name test
  added missing files
  add tests
  added more tests
  added missing files
  Implemented VOL APIs and C constants, no tests
  Implemented VOL APIs and C constants, no tests
  initial API impl.
2019-06-12 16:06:21 -05:00
Vailin Choi
8d72e5e3e0 Fix for HDFFV-10800 H5Ocopy failure:
The value for the H5F_LIBVER_V18 index in H5O_fill_ver_bounds[], the format
version bounds array for fill value message, should be version 3 not 2.
2019-06-12 12:55:12 -05:00
Larry Knox
5385f032dd Modified Makefile.ams for h5repack, h5watch and gif2h5 to allow
disabling tests.
Moved h5cc.in from tools/src/misc to src directory to always create h5cc
whether or not tools are enabled.
Added configuration status of tools and tests to libhdf5.settings.
2019-06-12 10:21:41 -05:00
Jacob Smith
a648183cc3 Add initial failing test for h5repack copying external data into new file. 2019-05-30 15:45:53 -05:00
Dana Robinson
d5a8b2a80c Split VOL connector routines into separate headers:
* H5VLconnector.h for terminal connector things
* H5VLconnector_passthru.h for passthrough connector things

Note that these headers are arranged such that they are included in
hdf5.h so VOL connectors only need to include that. The separation into
multiple headers is mainly for readability.
2019-05-24 02:22:08 -07:00
M. Scot Breitenfeld
32c4900e89 removed VOLL NULL connector and replaced it with native VOL 2019-05-16 15:05:12 -05:00
M. Scot Breitenfeld
19d2cea9ae added -M HPC to ctest command 2019-05-10 14:34:56 -05:00
M. Scot Breitenfeld
cf6f2f039d Adding cross-compilation for theta (ANL) and qsub (COBALT) batch controls. 2019-05-09 16:45:22 -05:00