contrib/plan9/mkfile
author Laurent Charignon <lc2817@columbia.edu>
Wed, 13 Jan 2016 21:52:26 -0800
changeset 27784 432242f41d9f
parent 16556 f9262456fb01
permissions -rw-r--r--
obsolete: make _computeobsoleteset much faster This patch makes _computeobsoleteset much faster by looping over the draft and secrets as opposed to looping over the successors. This works because "number of draft and secret" is typically way smaller(<100) than the number of successor in the repo (~90k in my checkout of core mercurial as of today). And also because it is very fast to compute "not public()". I timed the code with the following setup: """ from mercurial import hg, ui, obsolete ui = ui.ui() repo = hg.repository(ui, "~/hg") l = repo.obsstore.successors # This caches the result """ With about 90k successors. k=obsolete._computeobsoleteset(repo) before this patch: 10 loops, best of 3: 33.9 ms per loop k=obsolete._computeobsoleteset(repo) after this patch: 10000 loops, best of 3: 83.3 µs per loop

APE=/sys/src/ape
<$APE/config

PYTHON=python
PYTHONBIN=/rc/bin
SH=ape/psh

PURE=--pure
ROOT=../..

# This is slightly underhanded; Plan 9 does not support GNU gettext nor
# does it support dynamically loaded extension modules. We work around
# this by calling build_py and build_scripts directly; this avoids
# additional platform hacks in setup.py.
build:VQ:
	@{
		cd $ROOT
		$SH -c '$PYTHON setup.py $PURE build_py build_scripts'
	}

clean:VQ:
	@{
		cd $ROOT
		$SH -c '$PYTHON setup.py $PURE clean --all'
	}

install:VQ:	build
	@{
		cd $ROOT
		$SH -c '$PYTHON setup.py $PURE install \
			--install-scripts $PYTHONBIN \
			--skip-build \
			--force'
	}
	mkdir -p /lib/mercurial/hgrc.d
	dircp hgrc.d /lib/mercurial/hgrc.d/
	cp 9diff /rc/bin/