Patchwork [V3] debuginstall: add a line about re2 availability

login
register
mail settings
Submitter Boris Feld
Date Dec. 18, 2017, 12:28 p.m.
Message ID <2cb08cc4da195acbbbd6.1513600101@FB>
Download mbox | patch
Permalink /patch/26335/
State Accepted
Headers show

Comments

Boris Feld - Dec. 18, 2017, 12:28 p.m.
# HG changeset patch
# User Boris Feld <boris.feld@octobus.net>
# Date 1511826516 18000
#      Mon Nov 27 18:48:36 2017 -0500
# Node ID 2cb08cc4da195acbbbd69139619710404576f683
# Parent  71427ff1dff8c8af665a4c4a1605d7ffffec9a77
# EXP-Topic debugpyre2
# Available At https://bitbucket.org/octobus/mercurial-devel/
#              hg pull https://bitbucket.org/octobus/mercurial-devel/ -r 2cb08cc4da19
debuginstall: add a line about re2 availability

Using re2 engine can massively speed up regexp. We make it simpler to check if
it is available in a given install.
Yuya Nishihara - Dec. 18, 2017, 12:54 p.m.
On Mon, 18 Dec 2017 13:28:21 +0100, Boris Feld wrote:
> # HG changeset patch
> # User Boris Feld <boris.feld@octobus.net>
> # Date 1511826516 18000
> #      Mon Nov 27 18:48:36 2017 -0500
> # Node ID 2cb08cc4da195acbbbd69139619710404576f683
> # Parent  71427ff1dff8c8af665a4c4a1605d7ffffec9a77
> # EXP-Topic debugpyre2
> # Available At https://bitbucket.org/octobus/mercurial-devel/
> #              hg pull https://bitbucket.org/octobus/mercurial-devel/ -r 2cb08cc4da19
> debuginstall: add a line about re2 availability

Queued, thanks.

Patch

diff --git a/mercurial/debugcommands.py b/mercurial/debugcommands.py
--- a/mercurial/debugcommands.py
+++ b/mercurial/debugcommands.py
@@ -1173,6 +1173,11 @@  def debuginstall(ui, **opts):
              fm.formatlist([e.name() for e in wirecompengines
                             if e.wireprotosupport()],
                            name='compengine', fmt='%s', sep=', '))
+    re2 = 'missing'
+    if util._re2:
+        re2 = 'available'
+    fm.plain(_('checking "re2" regexp engine (%s)\n') % re2)
+    fm.data(re2=bool(util._re2))
 
     # templates
     p = templater.templatepaths()
diff --git a/tests/test-install.t b/tests/test-install.t
--- a/tests/test-install.t
+++ b/tests/test-install.t
@@ -14,6 +14,7 @@  hg debuginstall
   checking registered compression engines (*zlib*) (glob)
   checking available compression engines (*zlib*) (glob)
   checking available compression engines for wire protocol (*zlib*) (glob)
+  checking "re2" regexp engine \((available|missing)\) (re)
   checking templates (*mercurial?templates)... (glob)
   checking default template (*mercurial?templates?map-cmdline.default) (glob)
   checking commit editor... (* -c "import sys; sys.exit(0)") (glob)
@@ -44,6 +45,7 @@  hg debuginstall JSON
     "pythonlib": "*", (glob)
     "pythonsecurity": [*], (glob)
     "pythonver": "*.*.*", (glob)
+    "re2": (true|false), (re)
     "templatedirs": "*mercurial?templates", (glob)
     "username": "test",
     "usernameerror": null,
@@ -67,6 +69,7 @@  hg debuginstall with no username
   checking registered compression engines (*zlib*) (glob)
   checking available compression engines (*zlib*) (glob)
   checking available compression engines for wire protocol (*zlib*) (glob)
+  checking "re2" regexp engine \((available|missing)\) (re)
   checking templates (*mercurial?templates)... (glob)
   checking default template (*mercurial?templates?map-cmdline.default) (glob)
   checking commit editor... (* -c "import sys; sys.exit(0)") (glob)
@@ -110,6 +113,7 @@  path variables are expanded (~ is the sa
   checking registered compression engines (*zlib*) (glob)
   checking available compression engines (*zlib*) (glob)
   checking available compression engines for wire protocol (*zlib*) (glob)
+  checking "re2" regexp engine \((available|missing)\) (re)
   checking templates (*mercurial?templates)... (glob)
   checking default template (*mercurial?templates?map-cmdline.default) (glob)
   checking commit editor... (* -c "import sys; sys.exit(0)") (glob)
@@ -217,6 +221,7 @@  since it's bin on most platforms but Scr
   checking registered compression engines (*) (glob)
   checking available compression engines (*) (glob)
   checking available compression engines for wire protocol (*) (glob)
+  checking "re2" regexp engine \((available|missing)\) (re)
   checking templates ($TESTTMP/installenv/*/site-packages/mercurial/templates)... (glob)
   checking default template ($TESTTMP/installenv/*/site-packages/mercurial/templates/map-cmdline.default) (glob)
   checking commit editor... (*) (glob)