profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/derobins/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.
Dana Robinson derobins The HDF Group Bay Area, CA http://hdfgroup.org I'm a software developer for The HDF Group.

derobins/wmd 532

Stack Overflow branch of WMD (No longer maintained - Please use PageDown instead)

HDFGroup/hdf5 157

Official HDF5® Library Repository

derobins/hdf5 1

Official HDF5® Library Repository

marcpaterno/hdf5_art_explore 1

Code in support of Fermilab LDRD exploring the use of HDF5 for storing HEP event data.

derobins/c-blosc 0

A blocking, shuffling and loss-less compression library that can be faster than `memcpy()`.

derobins/CppND-Program-a-Concurrent-Traffic-Simulation 0

The final project for the Udacity C++ Nanodegree Concurrency course

derobins/CppND-System-Monitor 0

Student repository for the CppND OOP course project

derobins/datasharing 0

The Leek group guide to data sharing

PullRequestReviewEvent
PullRequestReviewEvent
PullRequestReviewEvent
PullRequestReviewEvent

push eventderobins/hdf5

Dana Robinson

commit sha d7c84449325c6e0e75dd35930e77178ef0cd389c

Formatted source

view details

push time in a day

push eventderobins/hdf5

Dana Robinson

commit sha 25090605edd3ba997628e82dc48eb6b8d641e684

H5MF changes from develop

view details

Dana Robinson

commit sha be89933a434ae50e16e3d3f2b93b647ec1de3137

Merge branch 'vfd_swmr/normalize' of https://github.com/derobins/hdf5 into vfd_swmr/normalize

view details

Dana Robinson

commit sha b47c259d9321f35782ae6d1afe0e39fb1156596f

Brings plugin changes from develop

view details

Dana Robinson

commit sha 1e6e19e3c468095e540d5bc252eabf7cb7b91bce

Minor H5VL cleanup

view details

Dana Robinson

commit sha 0bbfef92d199841e0a2d89ceb39478469d15a066

Brought over a bunch of H5VL definitions

view details

Dana Robinson

commit sha c4ff7ca3f2152b3022bb9d6f6807f787329cfd05

H5VL_setup_idx/name_args() changes

view details

Dana Robinson

commit sha b3a17b96ffea88b240655e2d3fb627c0690517fa

Moved H5A get callback to new scheme

view details

Dana Robinson

commit sha 119ab4a7180182e7f1d6b9cd66d9f0db9a2001be

Updated attribute specific callbacks

view details

Dana Robinson

commit sha e2f0aa21b34b5d8469997082ec3f4d2acbc12b94

Brings attribute optional VOL changes over

view details

Dana Robinson

commit sha 24dc5d4fd2293116cc4b8bb539b01ba30e0688c5

Bring over object get callback changes

view details

Dana Robinson

commit sha acfb99d7a875cbd0a1cd6644f4d59c2d2ffdb6da

Brings dataset get callback changes over from develop

view details

Dana Robinson

commit sha ff68048d0962bcae2e3496182eabb9393ad87050

Brings group VOL changes from develop

view details

Dana Robinson

commit sha b6d0f3bd858ee9bd86532cb571f86f79fab5d9cc

Brings map and link VOL changes from develop

view details

Dana Robinson

commit sha 25e713fd0a35da458980b811f389b20f4501efad

Brings event set and request VOL op changes from develop

view details

Dana Robinson

commit sha fe1068e2c30ea62e18e2586a6c6d39ce98c33151

Brings internal VOL changes from develop

view details

Dana Robinson

commit sha 28d2593fa7362e82951a25b1764fe1234331017d

Brings capability flags over from develop

view details

Dana Robinson

commit sha b8ae3df4ffd76f723cd9e3216e7a090cf57939ca

Brings over VOL props changes

view details

Dana Robinson

commit sha 62c608e333e387cda8d33c67d2c0965619104567

Brings dataset specific and optional changes from develop

view details

Dana Robinson

commit sha af4940feb08dbbe881bdc7e1bc15746eab534022

Removed file specific wait/mount/unmount paths

view details

Dana Robinson

commit sha fa17f084efab437ea371c18b7c266fcbf3300164

Brings over file get callback changes from develop

view details

push time in a day

PullRequestReviewEvent
PullRequestReviewEvent
PullRequestReviewEvent
PullRequestReviewEvent
PullRequestReviewEvent
PullRequestReviewEvent
PullRequestReviewEvent
PullRequestReviewEvent

Pull request review commentHDFGroup/hdf5

VFD ctl feature

 H5FD__sec2_delete(const char *filename, hid_t H5_ATTR_UNUSED fapl_id) done:     FUNC_LEAVE_NOAPI(ret_value) } /* end H5FD__sec2_delete() */++/*-------------------------------------------------------------------------+ * Function:    H5FD__sec2_ctl+ *+ * Purpose:     Sec2 VFD version of the ctl callback.+ *+ *              The desired operation is specified by the op_code+ *              parameter.+ *+ *              The flags parameter controls management of op_codes that+ *              are unknown to the callback+ *+ *              The input and output parameters allow op_code specific+ *              input and output+ *+ *              At present, no op codes are supported by this VFD.+ *+ * Return:      Non-negative on success/Negative on failure+ *+ *-------------------------------------------------------------------------+ */+static herr_t+H5FD__sec2_ctl(H5FD_t *_file, uint64_t op_code, uint64_t flags, const void H5_ATTR_UNUSED *input,+               void H5_ATTR_UNUSED **output)

I feel like this should go in a testing VFD, not in the default VFD.

jhendersonHDF

comment created time in 7 days

Pull request review commentHDFGroup/hdf5

VFD ctl feature

  */ #define H5FD_FEAT_DEFAULT_VFD_COMPATIBLE 0x00008000 +/* ctl function definitions: */+#define H5FD_CTL_OPC_RESERVED 512 /* Opcodes below this value are reserved for library use */+#define H5FD_CTL_OPC_EXPER_MIN                                                                               \+    H5FD_CTL_OPC_RESERVED /* Minimum opcode value available for experimental use                             \+                           */+#define H5FD_CTL_OPC_EXPER_MAX                                                                               \+    (H5FD_CTL_OPC_RESERVED + 511) /* Maximum opcode value available for experimental use */++/* ctl function op codes: */+#define H5FD_CTL__INVALID_OPCODE              0+#define H5FD_CTL__TEST_OPCODE                 1+#define H5FD_CTL__GET_MPI_COMMUNICATOR_OPCODE 2+#define H5FD_CTL__GET_MPI_RANK_OPCODE         3+#define H5FD_CTL__GET_MPI_SIZE_OPCODE         4+#define H5FD_CTL__NUM_OPCODES                 5 /* must be last */

I don't think it's necessary unless we are going to iterate over all possible opcodes.

jhendersonHDF

comment created time in 7 days

PullRequestReviewEvent
PullRequestReviewEvent

Pull request review commentHDFGroup/hdf5

VFD ctl feature

 H5FD_mpi_get_size(const H5FD_t *file)  * Programmer:	Quincey Koziol  *              Friday, January 30, 2004  *+ * Changes:     Reworked function to use the ctl callback so we can get+ *              rid of H5FD_class_mpi_t.  Since there are no real limits+ *              on what the ctl callback can do, its file parameter can't+ *              be constant.  Thus, I had to remove the const qualifier+ *              on this functions file parameter as well.  Note also the+ *              circumlocution required to use the ctl callbacks output+ *              parameter to pass back the rank without introducing+ *              compiler warnings.+ *                                             JRM -- 8/13/21+ *  *-------------------------------------------------------------------------  */ MPI_Comm-H5FD_mpi_get_comm(const H5FD_t *file)+H5FD_mpi_get_comm(H5FD_t *file) {-    const H5FD_class_mpi_t *cls;-    MPI_Comm                ret_value;+    const H5FD_class_t *cls;+    uint64_t            flags    = H5FD_CTL__FAIL_IF_UNKNOWN_FLAG | H5FD_CTL__ROUTE_TO_TERMINAL_VFD_FLAG;+    MPI_Comm            comm     = MPI_COMM_NULL;+    void *              comm_ptr = (void *)(&comm);+    MPI_Comm            ret_value;      FUNC_ENTER_NOAPI(MPI_COMM_NULL)      HDassert(file);-    cls = (const H5FD_class_mpi_t *)(file->cls);+    cls = (const H5FD_class_t *)(file->cls);     HDassert(cls);-    HDassert(cls->get_comm); /* All MPI drivers must implement this */+    HDassert(cls->ctl); /* All MPI drivers must implement this */      /* Dispatch to driver */-    if ((ret_value = (cls->get_comm)(file)) == MPI_COMM_NULL)+    if ((cls->ctl)(file, H5FD_CTL__GET_MPI_COMMUNICATOR_OPCODE, flags, NULL, &comm_ptr) < 0)

Just put the comment about having to use a pointer variable instead of a cast here. No need for that in the changes section.

jhendersonHDF

comment created time in 7 days

Pull request review commentHDFGroup/hdf5

VFD ctl feature

 H5FD_mpi_get_rank(const H5FD_t *file)  * Programmer:	Quincey Koziol  *              Friday, January 30, 2004  *+ * Changes:     Reworked function to use the ctl callback so we can get+ *              rid of H5FD_class_mpi_t.  Since there are no real limits+ *              on what the ctl callback can do, its file parameter can't+ *              be constant.  Thus, I had to remove the const qualifier+ *              on this functions file parameter as well.  Note also the+ *              circumlocution required to use the ctl callbacks output+ *              parameter to pass back the rank without introducing+ *              compiler warnings.+ *                                             JRM -- 8/13/21+ *

See above with regard to the "changes" sections.

jhendersonHDF

comment created time in 7 days

PullRequestReviewEvent

Pull request review commentHDFGroup/hdf5

VFD ctl feature

  * Programmer:	Quincey Koziol  *              Friday, January 30, 2004  *+ * Changes:     Reworked function to use the ctl callback so we can get+ *              rid of H5FD_class_mpi_t.  Since there are no real limits+ *              on what the ctl callback can do, its file parameter can't+ *              be constant.  Thus, I had to remove the const qualifier+ *              on this functions file parameter as well.  Note also the+ *              circumlocution required to use the ctl callbacks output+ *              parameter to pass back the rank without introducing+ *              compiler warnings.+ *                                             JRM -- 8/13/21+ *  *-------------------------------------------------------------------------  */ int-H5FD_mpi_get_rank(const H5FD_t *file)+H5FD_mpi_get_rank(H5FD_t *file) {-    const H5FD_class_mpi_t *cls;--    int ret_value;+    const H5FD_class_t *cls;+    uint64_t            flags    = H5FD_CTL__FAIL_IF_UNKNOWN_FLAG | H5FD_CTL__ROUTE_TO_TERMINAL_VFD_FLAG;+    int                 rank     = -1;+    void *              rank_ptr = (void *)(&rank);+    int                 ret_value;      FUNC_ENTER_NOAPI(FAIL)      HDassert(file);-    cls = (const H5FD_class_mpi_t *)(file->cls);+    cls = (const H5FD_class_t *)(file->cls);     HDassert(cls);-    HDassert(cls->get_rank); /* All MPI drivers must implement this */+    HDassert(cls->ctl); /* All MPI drivers must implement this */      /* Dispatch to driver */-    if ((ret_value = (cls->get_rank)(file)) < 0)+    if ((cls->ctl)(file, H5FD_CTL__GET_MPI_RANK_OPCODE, flags, NULL, &rank_ptr) < 0)         HGOTO_ERROR(H5E_VFL, H5E_CANTGET, FAIL, "driver get_rank request failed") +    HDassert(rank >= 0);++    ret_value = rank;

I feel like this should be an actual error check and not an assert.

jhendersonHDF

comment created time in 7 days

PullRequestReviewEvent

Pull request review commentHDFGroup/hdf5

VFD ctl feature

  * Programmer:	Quincey Koziol  *              Friday, January 30, 2004  *+ * Changes:     Reworked function to use the ctl callback so we can get+ *              rid of H5FD_class_mpi_t.  Since there are no real limits+ *              on what the ctl callback can do, its file parameter can't+ *              be constant.  Thus, I had to remove the const qualifier+ *              on this functions file parameter as well.  Note also the+ *              circumlocution required to use the ctl callbacks output+ *              parameter to pass back the rank without introducing+ *              compiler warnings.+ *                                             JRM -- 8/13/21+ *  *-------------------------------------------------------------------------  */ int-H5FD_mpi_get_rank(const H5FD_t *file)+H5FD_mpi_get_rank(H5FD_t *file) {-    const H5FD_class_mpi_t *cls;--    int ret_value;+    const H5FD_class_t *cls;+    uint64_t            flags    = H5FD_CTL__FAIL_IF_UNKNOWN_FLAG | H5FD_CTL__ROUTE_TO_TERMINAL_VFD_FLAG;+    int                 rank     = -1;+    void *              rank_ptr = (void *)(&rank);

Does this avoid a compiler warning? It's just as easy to do the cast when the callback is invoked.

jhendersonHDF

comment created time in 7 days

PullRequestReviewEvent

Pull request review commentHDFGroup/hdf5

VFD ctl feature

  * Programmer:	Quincey Koziol  *              Friday, January 30, 2004  *+ * Changes:     Reworked function to use the ctl callback so we can get+ *              rid of H5FD_class_mpi_t.  Since there are no real limits+ *              on what the ctl callback can do, its file parameter can't+ *              be constant.  Thus, I had to remove the const qualifier+ *              on this functions file parameter as well.  Note also the+ *              circumlocution required to use the ctl callbacks output+ *              parameter to pass back the rank without introducing+ *              compiler warnings.+ *                                             JRM -- 8/13/21

While I'm okay with leaving the "changes" sections in the cache code, I'd like to have that not spread to the rest of the library. We've been removing the ones that are noise and changing the useful bits to NOTE sections.

jhendersonHDF

comment created time in 7 days

PullRequestReviewEvent
PullRequestReviewEvent

Pull request review commentHDFGroup/hdf5

VFD ctl feature

 H5FD_unlock(H5FD_t *file)     FUNC_LEAVE_NOAPI(ret_value) } /* end H5FD_unlock() */ +/*-------------------------------------------------------------------------+ * Function:    H5FDctl+ *+ * Purpose:     Perform a CTL operation.+ *+ *              The desired operation is specified by the op_code+ *              parameter.+ *+ *              The flags parameter controls management of op_codes that+ *              are unknown to the callback+ *+ *              The input and output parameters allow op_code specific+ *              input and output+ *+ * Return:      Non-negative on success/Negative on failure+ *+ * Programmer:  JRM -- 8/3/21+ *+ *-------------------------------------------------------------------------+ */+herr_t+H5FDctl(H5FD_t *file, uint64_t op_code, uint64_t flags, const void *input, void **output)+{+    herr_t ret_value = SUCCEED; /* Return value */++    FUNC_ENTER_API(FAIL)+    H5TRACE5("e", "*#ULUL*x**x", file, op_code, flags, input, output);++    /* Check arguments */+    if (!file)+        HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "file pointer cannot be NULL")++    if (!file->cls)+        HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "file class pointer cannot be NULL")++    /* Don't attempt to validate the op code.  If appropriate, that will+     * be done by the underlying VFD callback, along with the input and+     * output parameters.+     */

"Don't forget to validate the op code" isn't particularly helpful since that's out of scope in this function. I'd change the comment to simply say that the op_code, flags, and input and output pointers will be validated by the VFD.

jhendersonHDF

comment created time in 7 days

Pull request review commentHDFGroup/hdf5

VFD ctl feature

 New Features      Library:     --------+    - Adds new "ctl" callback to VFD H5FD_class_t structure++      The newly-added "ctl" callback allows Virtual File+      Drivers to intercept and handle arbitary operations+      identified by an operation code. The callback accepts+      a pointer to the file to be operated on (H5FD_t *),+      an operation code to identify the operation to perform,+      a set of flags to govern the behavior of the operation+      and input/output pointers that the VFD may use to+      receive and return operation parameters/data.

I would probably replace the function description and replace it with the prototype.

jhendersonHDF

comment created time in 7 days