[zeromq-dev] Converting Perl examples to ffi bindings?

Pieter Hintjens ph at imatix.com
Sun Dec 6 11:01:57 CET 2015


Dylan, I'm sorry for merging #600 without checking it in detail. I've
never had to do that before.

Will you send a PR with the correct perl examples?

On Sun, Dec 6, 2015 at 12:32 AM, Dylan Cali <calid1984 at gmail.com> wrote:
> Yep, I was missing something... you're right, the PR 600 merge introduced
> the problems, not 599.
>
> Proven easily by just looking at the state of the world as of 7e2c6de (sane)
> and at the state of the world as of d8b4d46 (insane).
>
> Sigh, if only I had done that before clicking send... c'est la vie
>
>
> On Sat, Dec 5, 2015 at 6:18 PM, Dylan Cali <calid1984 at gmail.com> wrote:
>>
>> Brian, unless I'm missing something I really do think the problem started
>> with PR 599.  If you do an explicit diff against the previous commit before
>> the merge (c076f1e) you'll see the errant changes:
>>
>> $ git diff c076f1e ca52dc7 --name-only
>>
>>
>> ca52dc7~ refer's to the first ancestor  of ca52dc7, which in this case is
>> not the first commit before the merge, it's a very old commit 10564b...
>> that's why git diff doesn't show any changes in that case, because there
>> aren't any.
>>
>> $ git show ca52dc7~
>> commit 10564bdaa0e3578a9cdcb1ca70f0db2ed3b4bdd7
>> Merge: 6e2a0cb 6b502a1
>> Author: metadings <metadings at live.de>
>> Date:   Sun Aug 2 00:17:05 2015 +0200
>>
>>     Merge branch 'master' of git+ssh://github.com/imatix/zguide
>>
>>
>> This is also why git bisect returns ca52dc7, because in terms of linear
>> history it is the first commit where problems show up (because it's the last
>> commit brought in by the 599 merge):
>>
>> $ git log --oneline --pretty="format:%h" | grep -A1 ca52dc7
>> ca52dc7
>> c076f1e
>>
>>
>> So the PR 599 merge had two parents c076f1e (master) and dc52dde (HEAD of
>> chubbson's branch):
>>
>> $ git log -n1 --pretty=short 7e2c6de
>> commit 7e2c6de8bc029910e1db8feff4d8e6a2671df20a
>> Merge: c076f1e dc52dde
>> Author: Pieter Hintjens <ph at imatix.com>
>>
>>     Merge pull request #599 from chubbson/master
>>
>>
>> Unfortunately, because the history on dc52dde is so out of date the merge
>> base was also really old:
>>
>> $ git merge-base c076f1e dc52dde
>> 10564bdaa0e3578a9cdcb1ca70f0db2ed3b4bdd7
>>
>> $ git log -n1 10564bd
>> commit 10564bdaa0e3578a9cdcb1ca70f0db2ed3b4bdd7
>> Merge: 6e2a0cb 6b502a1
>> Author: metadings <metadings at live.de>
>> Date:   Sun Aug 2 00:17:05 2015 +0200
>>
>>     Merge branch 'master' of git+ssh://github.com/imatix/zguide
>>
>>
>> So during the merge of 599 it looks like the conflict resolution went
>> south and clobbered a lot of history (not just Perl) by favoring the state
>> of the chubbson's branch parent dc52dde over the parent from master c076f1e.
>>
>> You can explicitly diff the two parents for the 599 merge and see this is
>> in fact where the conflict happened:
>>
>> $ git diff --name-only 7e2c6de^1 7e2c6de^2
>>
>>
>> And just to prove those parents are the commits we think they are:
>>
>> $ git show --quiet --format="%h" 7e2c6de^1 7e2c6de^2
>> c076f1e
>> dc52dde
>>
>>
>> That said, simply reverting 7e2c6de doesn't resolve things... so maybe I
>> am still missing something :)
>>
>>
>> On Sat, Dec 5, 2015 at 5:16 PM, Brian Silverman <brian at peloton-tech.com>
>> wrote:
>>>
>>> ca52dc7 is the wrong commit (`git diff ca52dc7~..ca52dc7 examples/Perl`
>>> shows nothing). I'm pretty sure it was actually d8b4d46015c30 which
>>> introduced the bad changes into the master branch, which is a merge
>>> (confirmed with `git diff d8b4d46015c30~..d8b4d46015c30`). I think the issue
>>> is that 1c5b0051c9a was an incorrect merge into somebody else's repository,
>>> which meant various changes got overwritten when it was subsequently merged
>>> back. That bad commit is a merge which doesn't bring in any changes, which
>>> means git thinks a bunch of remote changes were brought in but they actually
>>> weren't so they effectively got reverted.
>>>
>>> `git revert -m1 d8b4d46015c30` takes care of all the accidental changes
>>> introduced with that merge, but has conflicts in examples/C# which I think
>>> are because of the changes intentionally introduced with that merge. `git
>>> reset HEAD examples/C# && git checkout -- examples/C#` resolves the
>>> conflicts, but it also undoes all the changes which were intended to be
>>> brought in by that merge. Not really sure what the right thing to do is (in
>>> particular because I think some changes to examples/C# were reverted the
>>> same way the ones to examples/Perl and various other subdirectories were).
>>>
>>> I found that commit using `git log --full-history examples/Perl`.
>>> Apparently git's history simplification is not helpful in this situation.
>>>
>>> On Sat, Dec 5, 2015 at 4:48 PM Pieter Hintjens <ph at imatix.com> wrote:
>>>>
>>>> This is strange. I've never seen this happen before. Git has gotten
>>>> confused somehow.
>>>>
>>>> On Sat, Dec 5, 2015 at 10:22 PM, Dylan Cali <calid1984 at gmail.com> wrote:
>>>> > Ok, using git bisect ca52dc7 appears to be the offending commit.  This
>>>> > got
>>>> > pulled in as part of PR 599 "mdp samples in C#."
>>>> >
>>>> > git log doesn't show any changes to the Perl directory.  Only by doing
>>>> > an
>>>> > explicit git diff against the previous commit can I get the changes to
>>>> > show
>>>> > up:
>>>> >
>>>> > $ git diff c076f1e ca52dc7
>>>> >
>>>> > Weird, I wonder what happened?
>>>> >
>>>> >
>>>> > On Sat, Dec 5, 2015 at 3:36 PM, Dylan Cali <calid1984 at gmail.com>
>>>> > wrote:
>>>> >>
>>>> >> Hey Pieter,
>>>> >>
>>>> >> All the converted Perl examples seem to have gotten reverted back...
>>>> >> any
>>>> >> idea what happened?
>>>> >>
>>>> >> Thanks
>>>> >>
>>>> >> On Wed, Oct 21, 2015 at 5:38 AM, Pieter Hintjens <ph at imatix.com>
>>>> >> wrote:
>>>> >>>
>>>> >>> Sounds like a good plan.
>>>> >>>
>>>> >>> On Wed, Oct 21, 2015 at 3:46 AM, Dylan Cali <calid1984 at gmail.com>
>>>> >>> wrote:
>>>> >>> > Hello,
>>>> >>> >
>>>> >>> > Would there be any objection to converting the Perl examples in
>>>> >>> > the
>>>> >>> > guide to the ffi bindings?  Full disclosure, I'm the
>>>> >>> > author/maintainer
>>>> >>> > of the ffi bindings.
>>>> >>> >
>>>> >>> > Compared to the XS bindings the ffi bindings are more actively
>>>> >>> > maintained and work with all versions of zeromq (and obviously
>>>> >>> > don't
>>>> >>> > require compilation).
>>>> >>> >
>>>> >>> > Thanks,
>>>> >>> > Dylan
>>>> >>> >
>>>> >>> > https://github.com/calid/zmq-ffi
>>>> >>> > _______________________________________________
>>>> >>> > zeromq-dev mailing list
>>>> >>> > zeromq-dev at lists.zeromq.org
>>>> >>> > http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>>>> >>> _______________________________________________
>>>> >>> zeromq-dev mailing list
>>>> >>> zeromq-dev at lists.zeromq.org
>>>> >>> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>>>> >>
>>>> >>
>>>> >
>>>> >
>>>> > _______________________________________________
>>>> > zeromq-dev mailing list
>>>> > zeromq-dev at lists.zeromq.org
>>>> > http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>>>> >
>>>> _______________________________________________
>>>> zeromq-dev mailing list
>>>> zeromq-dev at lists.zeromq.org
>>>> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>>>
>>>
>>> _______________________________________________
>>> zeromq-dev mailing list
>>> zeromq-dev at lists.zeromq.org
>>> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>>>
>>
>
>
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev at lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>



More information about the zeromq-dev mailing list