[PATCH] plan9 updates for new cpython fork

Jeff Sickel jas at corpus-callosum.com
Mon Aug 12 15:26:47 CDT 2013

On Jul 16, 2013, at 10:47 AM, Kevin Bullock <kbullock+mercurial at ringworld.org> wrote:

> On 16 Jul 2013, at 10:16 AM, Augie Fackler wrote:
>> On Mon, Jul 15, 2013 at 12:04:10PM -0500, Jeff Sickel wrote:
>>> plan9: support new cpython fork for Plan 9
>>> A new CPython fork has been created at http://bitbucket.org/jas/cpython
>>> specifically to update the Plan 9 Python version to v2.7.5 and add new
>>> architectures beyond 386.  The new Python v2.7.5 port supports a more
>>> typical `python setup.py` configuration which allows us to modify the
>>> mercurial build process for the platform.
>> I see at least 4 patches here:
>> 1) 9mail: new script to add support for upas/marshal
>> 2) 9diff: update path to 9diff for $REASON
>> 3) plan9: update setup.py and mkfile to support new cpython
>> 4) factotum: not sure offhand what this patch is

Yes, I've been using mq and have saved off the various patches in my
own patch queue and tried to submit them per one of the MQ docs on
the mercurial wiki.

>> Please split the commit into more workable chunks along lines like
>> this and resend the series. Thanks!
> Please also see <http://mercurial.selenic.com/wiki/ContributingChanges> (and note that Augie has kindly written the first line of each of your commit messages for you).

I'll review these and make the appropriate changes.

> Also, does this break the build for people using the old CPython on plan9? That's probably undesirable. We take backward compatibility very seriously.

There are three issues here:

 1) The patch to setup.py addresses the install issue for both the
    old python2.5 version and this new python2.7 port

 2) Plan 9 does not have dynamic libraries (shlibs/.so) so any rebuild
    of CPython would be based on the latest release as the older Python
    2.5 port is no longer viable on recent Plan 9 kernels.  This latest
    release also uses the built-in mercurial C modules instead of the
    pure python modules, providing a desirable performance increase from
    the prior port.

 2) The old Plan 9 CPython 2.5 port has not been updated or rebuilt for
    four years and only supports 386.  The latest 2.7 release supports
    the recent Plan 9 kernels with viable targets for 386, amd64, arm,
    mips, and powerpc.

We in the Plan 9 community take compatibility very seriously as well.
That said, we also know when to let something go when it no longer serves
the installed base.


More information about the Mercurial-devel mailing list