Closed mrkraimer closed 6 years ago
@mrkraimer Will you be pushing caProvider changes to this branch as well? I'd find this change more compelling if I could see a net reduction in code size.
@mdavidsaver Will you be pushing caProvider changes to this branch as well?
What branch are You taking about.? I would like to just merge this pull request.
What branch are You taking about.?
Your right, this is was a nonsensical statement.
Will you be creating a pull request against pvAccessCPP which depends on these changes?
mdavidsaver asked. Will you be creating a pull request against pvAccessCPP which depends on these changes?
The answer is yes. Note that pvAccessCPP has an outstanding pull request that I plan to merge tomorrow. After that merge I can push my latest changes in https://github.com/mrkraimer/pvAccessCPP,
Then I can create a new pull request in https://github.com/epics-baser/pvAccessCPP. BUT this will only build if the pull request is merged.
Unless I hear objections I will merge this request later today. I am ready to create a new pull request for changes to the ca provider in pvAccessCPP that need this change to pvCopy.
Please consider previous comments to be an objection. Do not merge.
On Feb 16, 2018 3:15 AM, "Marty Kraimer" notifications@github.com wrote:
Unless I hear objections I will merge this request later today. I am ready to create a new pull request for changes to the ca provider in pvAccessCPP that need this change to pvCopy.
— You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/epics-base/pvDataCPP/pull/53#issuecomment-366208873, or mute the thread https://github.com/notifications/unsubscribe-auth/AEOVn0sFXXDyoejNjKrUn6P7lp2pq8akks5tVWNagaJpZM4SCvEt .
This pull request does not make any changes except to pvCopy. Since Michael wants to deprecate pvCopy, it sounds like he does not want anything to do with it. Thus I do not understand why he is not willing to have this pull request merged.
pvCopy is used to implement the local provider in pvDatabase.
With the new public method, it is now also used in https://github.com/mrkraimer/pvAccessCPP for the CAProvider. Provider ca now shows the client with fields have changed value for both get and monitor.
Until this pull request is merged I can not issue a pull request in https://github.com/epics-base/pvAccessCPP.
So again I request that this pull request be merged.
Until this pull request is merged I can not issue a pull request in
Why not? This is exactly what I want you to do before I will consider merging this PR.
To be clear. My insistence on a second PR is largely separate from whether or not pvCopy will be deprecated (my mind isn't made up). Rather, it is my dislike of "reviewing" changes piecemeal.
I issued the pull request in pvAccessCPP
So how long until this pull request can be merged? Note that just as expected pull request #91 in pvAccessCPP has failed with
../caChannel.cpp: In member function ‘void epics::pvAccess::ca::CAChannelMonitor::subscriptionEvent(event_handler_args&)’: ../caChannel.cpp:1949:21: error: ‘class epics::pvData::PVCopy’ has no member named ‘updateMasterSetBitSet’ pvCopy->updateMasterSetBitSet(pvStructure,activeElement->changedBitSet);
@mrkraimer Please have a look at my question on epics-base/pvAccessCPP#91 (https://github.com/epics-base/pvAccessCPP/pull/91#discussion_r169437656).
Is there more work to be done here? Why is the provided pvRequest variable not passed to PVCopy::create()? I would naively assume that it should be.
Before I consider merging this PR I'd like to understand why updateMasterSetBitSet() is needed, why the use case isn't handled by the existing API. I'm also curious why this second usage of pvCopy (in caProvider) needs a new method, but apparently won't use any of the existing methods? For this reason I'm waiting for your answer on whether epics-base/pvAccessCPP#91 is complete.
If/when this is all settled, then I'll of course be insisting on some unittest coverage.
Since Michael wants to deprecate pvCopy, it sounds like he does not want anything to do with it. Thus I do not understand why he is not willing to have this pull request merged.
pvCopy is used to implement the local provider in pvDatabase.
If this PR were for an implementation detail, or an otherwise internal API, then I wouldn't care. However, pvCopy is at present a public API. This is why I would like to move it out of this repo. If it could be make into such a detail of pvDatabaseCPP and/or pvAccessCPP, then we wouldn't have to fight about it!
https://github.com/epics-base/pvAccessCPP/pull/91 Is not merged because, until this pull request is megged, the travis build fails. I have already pointed this out more than once. Not also that the new method is required in order to use pvCopy on the client side.
Before I consider merging this PR ... I'm waiting for your answer on whether epics-base/pvAccessCPP#91 is complete.
@mrkraimer Is this statement unclear to you? Please answer the questions I've posed on the thread for epics-base/pvAccessCPP#91.
From https://github.com/epics-base/pvAccessCPP/pull/91#discussion_r169437656
Is there more work to be done here? Why is the provided pvRequest variable not passed to PVCopy::create()? I would naively assume that it should be.
I would have thought both of you are too old for this Kindergarden style discussion, but I'm getting doubts.
sigh... you're right to have doubts. This is clearly not a productive discussion. I guess we'll try to break the impasse on Tuesday.
At today's hangout I agreed to generate a brief description of pvCopy and its public methods. But this is already done via doxygen comments that appear in pvCopy.h
I also agreed to add a test for the new method updateMasterSetBitSet. I have done this but have not pushed it to mrkraimer/pvDataCPP. I will do this tomorrow.
It has been two weeks since I sent my last message and added a test for new method. I do not understand why Michael is still not willing to have this pull request merged.
I do not understand why Michael is still not willing to have this pull request merged.
I'm sorry Marty, but we're going to have to talk about the design.
For the audience. As I've look into it I've developed a suspicion that these methods are being added as a workaround in lieu of a more thorough reworking of caProvider. Specifically, refineStructure() in caChannel.cpp looks like it does some of the same work as PVCopy::create() in iterating the 'fields' sub-structure of the pvRequest. I would like to see this apparent redundancy eliminated.
I have spent time looking at how the ca provider in pvAccessCPP converts between DBD and pvData. I now see a better way to do the conversion that will not use pvCopy. Thus I am canceling this pull request.
With this new method PVCopy can be used by the ca provider in pvAccess to better support change and overrun bit sets..