[PATCH 4 of 4] mpatch: implement cffi version of mpatch

Augie Fackler raf at durin42.com
Wed Jun 15 08:25:38 EDT 2016


(+some people that understand our recent importing changes, hopefully one of them can help you)

> On Jun 15, 2016, at 5:32 AM, Maciej Fijalkowski <fijall at gmail.com> wrote:
> 
> Hi Augie.
> 
> The problem seems to be _demandimport being either buggy or me not
> using it correctly. What's the way these days to import something from
> mercurial in pure submodule?
> 
> On Fri, Jun 10, 2016 at 5:28 AM, Augie Fackler <raf at durin42.com> wrote:
>> On Wed, Jun 08, 2016 at 09:59:39AM +0200, Maciej Fijalkowski wrote:
>>> # HG changeset patch
>>> # User Maciej Fijalkowski <fijall at gmail.com>
>>> # Date 1465372757 -7200
>>> #      Wed Jun 08 09:59:17 2016 +0200
>>> # Node ID 037fce72309155ba3806753d4f1dc3a7db71ee39
>>> # Parent  26a4063b4f1f36607dd673849449292ebc34a91d
>>> mpatch: implement cffi version of mpatch
>> 
>> I'm happy with these, but I tripped over a nasty rebase and then tests
>> started failing, so I must have screwed up. Can you take a look at the
>> failures present in 61bec5d from http://hg.durin42.com/hg-wip/?
>> 
>> http://hg.durin42.com/hg-wip/rev/66c2d32dcba4 in particular took a
>> rough rebase that I suspect I messed up.
>> 
>> Patch 4 also flunks check-code, see below.
>> 
>>> 
>>> This is a first go at working, but not 100% efficient version of mpatch
>>> for PyPy that uses cffi. Additional improvements might follow, but it
>>> already makes mercurial far more usable under pypy.
>>> 
>>> diff -r 26a4063b4f1f -r 037fce723091 mercurial/build_mpatch_cffi.py
>>> --- /dev/null Thu Jan 01 00:00:00 1970 +0000
>>> +++ b/mercurial/build_mpatch_cffi.py  Wed Jun 08 09:59:17 2016 +0200
>> 
>> [elided]
>> 
>>> diff -r 26a4063b4f1f -r 037fce723091 mercurial/pure/mpatch.py
>>> --- a/mercurial/pure/mpatch.py        Tue Jun 07 15:35:58 2016 +0200
>>> +++ b/mercurial/pure/mpatch.py        Wed Jun 08 09:59:17 2016 +0200
>>> @@ -9,6 +9,8 @@
>>> 
>>> import struct
>>> 
>>> +from .. import modulepolicy, policynocffi
>>> +
>>> from . import pycompat
>>> stringio = pycompat.stringio
>>> 
>>> @@ -125,3 +127,43 @@
>>> 
>>>     outlen += orig - last
>>>     return outlen
>>> +
>>> +if modulepolicy not in policynocffi:
>>> +    try:
>>> +        from _mpatch_cffi import ffi, lib
>>> +    except ImportError:
>>> +        if modulepolicy == 'cffi': # strict cffi import
>>> +            raise
>>> +    else:
>>> +        @ffi.def_extern()
>>> +        def cffi_get_next_item(arg, pos):
>> 
>> could we call this something like cffigetnext() to make check-code happy?
>> 
>> (I like this name as-is, but the linter disagrees with us.)

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://www.mercurial-scm.org/pipermail/mercurial-devel/attachments/20160615/92b6df2f/attachment.sig>


More information about the Mercurial-devel mailing list