D451: [RFC] revset: remove order information from tree

2017-08-19 Thread quark (Jun Wu)
quark updated this revision to Diff 1097.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D451?vs=1096=1097

REVISION DETAIL
  https://phab.mercurial-scm.org/D451

AFFECTED FILES
  mercurial/revset.py
  mercurial/revsetlang.py
  tests/test-revset.t

CHANGE DETAILS

diff --git a/tests/test-revset.t b/tests/test-revset.t
--- a/tests/test-revset.t
+++ b/tests/test-revset.t
@@ -166,8 +166,7 @@
 None)
   * optimized:
   (rangeall
-None
-define)
+None)
   * set:
   
   0
@@ -495,8 +494,7 @@
 ('symbol', 'foo')
 (func
   ('symbol', '_notpublic')
-  None
-  any))
+  None))
   hg: parse error: can't use a key-value pair in this context
   [255]
 
@@ -538,52 +536,43 @@
 (not
   (func
 ('symbol', 'public')
-None
-any)
-  define)
+None))
 ('symbol', 'generations')
-('symbol', '0')
-define)
+('symbol', '0'))
   * optimized:
   (relsubscript
 (func
   ('symbol', '_notpublic')
-  None
-  any)
+  None)
 ('symbol', 'generations')
-('symbol', '0')
-define)
+('symbol', '0'))
 
 resolution of subscript and relation-subscript ternary operators:
 
   $ hg debugrevspec -p analyzed 'tip[0]'
   * analyzed:
   (subscript
 ('symbol', 'tip')
-('symbol', '0')
-define)
+('symbol', '0'))
   hg: parse error: can't use a subscript in this context
   [255]
 
   $ hg debugrevspec -p analyzed 'tip#rel[0]'
   * analyzed:
   (relsubscript
 ('symbol', 'tip')
 ('symbol', 'rel')
-('symbol', '0')
-define)
+('symbol', '0'))
   hg: parse error: unknown identifier: rel
   [255]
 
   $ hg debugrevspec -p analyzed '(tip#rel)[0]'
   * analyzed:
   (subscript
 (relation
   ('symbol', 'tip')
-  ('symbol', 'rel')
-  define)
-('symbol', '0')
-define)
+  ('symbol', 'rel'))
+('symbol', '0'))
   hg: parse error: can't use a subscript in this context
   [255]
 
@@ -593,23 +582,19 @@
 (relsubscript
   ('symbol', 'tip')
   ('symbol', 'rel')
-  ('symbol', '0')
-  define)
-('symbol', '1')
-define)
+  ('symbol', '0'))
+('symbol', '1'))
   hg: parse error: can't use a subscript in this context
   [255]
 
   $ hg debugrevspec -p analyzed 'tip#rel0#rel1[1]'
   * analyzed:
   (relsubscript
 (relation
   ('symbol', 'tip')
-  ('symbol', 'rel0')
-  define)
+  ('symbol', 'rel0'))
 ('symbol', 'rel1')
-('symbol', '1')
-define)
+('symbol', '1'))
   hg: parse error: unknown identifier: rel1
   [255]
 
@@ -619,11 +604,9 @@
 (relsubscript
   ('symbol', 'tip')
   ('symbol', 'rel0')
-  ('symbol', '0')
-  define)
+  ('symbol', '0'))
 ('symbol', 'rel1')
-('symbol', '1')
-define)
+('symbol', '1'))
   hg: parse error: unknown identifier: rel1
   [255]
 
@@ -700,20 +683,15 @@
 (or
   (list
 ('symbol', '0')
-('symbol', '1'))
-  define)
+('symbol', '1')))
 (not
-  ('symbol', '1')
-  follow)
-define)
+  ('symbol', '1')))
   * optimized:
   (difference
 (func
   ('symbol', '_list')
-  ('string', '0\x001')
-  define)
-('symbol', '1')
-define)
+  ('string', '0\x001'))
+('symbol', '1'))
   0
 
   $ hg debugrevspec -p unknown '0'
@@ -733,18 +711,16 @@
   (and
 (func
   ('symbol', 'r3232')
-  None
-  define)
-('symbol', '2')
-define)
+  None)
+('symbol', '2'))
   * optimized:
-  (and
-('symbol', '2')
-(func
-  ('symbol', 'r3232')
-  None
-  define)
-define)
+  (func
+('symbol', '_flipand')
+(list
+  ('symbol', '2')
+  (func
+('symbol', 'r3232')
+None)))
   * analyzed set:
   
   * optimized set:
@@ -776,8 +752,7 @@
 None)
   * analyzed:
   (rangeall
-None
-define)
+None)
   * set:
   
   0
@@ -793,8 +768,7 @@
   $ try -p analyzed ':1'
   * analyzed:
   (rangepre
-('symbol', '1')
-define)
+('symbol', '1'))
   * set:
   
   0
@@ -805,9 +779,7 @@
 (or
   (list
 ('symbol', '1')
-('symbol', '2'))
-  define)
-define)
+('symbol', '2'
   * set:
   
   0
@@ -818,9 +790,7 @@
   (rangepre
 (and
   ('symbol', '1')
-  ('symbol', '2')
-  define)
-define)
+  ('symbol', '2')))
   * set:
   
 
@@ -1643,11 +1613,8 @@
 (difference
   (range
 ('symbol', '8')
-('symbol', '9')
-define)
-  ('symbol', '8')
-  define)
-define)
+('symbol', '9'))
+  ('symbol', '8')))
   * set:
   
   8
@@ -1663,8 +1630,7 @@
 ('symbol', 'only')
 (list
   ('symbol', '9')
-  ('symbol', '5'))
-define)
+  ('symbol', '5')))
   * set:
   
   2
@@ -1999,18 +1965,13 @@
 (and
   (range
 ('symbol', '3')
-('symbol', '0')
-

D451: [RFC] revset: remove order information from tree

2017-08-19 Thread quark (Jun Wu)
quark updated this revision to Diff 1096.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D451?vs=1095=1096

REVISION DETAIL
  https://phab.mercurial-scm.org/D451

AFFECTED FILES
  mercurial/revset.py
  mercurial/revsetlang.py
  tests/test-revset.t

CHANGE DETAILS

diff --git a/tests/test-revset.t b/tests/test-revset.t
--- a/tests/test-revset.t
+++ b/tests/test-revset.t
@@ -166,8 +166,7 @@
 None)
   * optimized:
   (rangeall
-None
-define)
+None)
   * set:
   
   0
@@ -495,8 +494,7 @@
 ('symbol', 'foo')
 (func
   ('symbol', '_notpublic')
-  None
-  any))
+  None))
   hg: parse error: can't use a key-value pair in this context
   [255]
 
@@ -538,52 +536,43 @@
 (not
   (func
 ('symbol', 'public')
-None
-any)
-  define)
+None))
 ('symbol', 'generations')
-('symbol', '0')
-define)
+('symbol', '0'))
   * optimized:
   (relsubscript
 (func
   ('symbol', '_notpublic')
-  None
-  any)
+  None)
 ('symbol', 'generations')
-('symbol', '0')
-define)
+('symbol', '0'))
 
 resolution of subscript and relation-subscript ternary operators:
 
   $ hg debugrevspec -p analyzed 'tip[0]'
   * analyzed:
   (subscript
 ('symbol', 'tip')
-('symbol', '0')
-define)
+('symbol', '0'))
   hg: parse error: can't use a subscript in this context
   [255]
 
   $ hg debugrevspec -p analyzed 'tip#rel[0]'
   * analyzed:
   (relsubscript
 ('symbol', 'tip')
 ('symbol', 'rel')
-('symbol', '0')
-define)
+('symbol', '0'))
   hg: parse error: unknown identifier: rel
   [255]
 
   $ hg debugrevspec -p analyzed '(tip#rel)[0]'
   * analyzed:
   (subscript
 (relation
   ('symbol', 'tip')
-  ('symbol', 'rel')
-  define)
-('symbol', '0')
-define)
+  ('symbol', 'rel'))
+('symbol', '0'))
   hg: parse error: can't use a subscript in this context
   [255]
 
@@ -593,23 +582,19 @@
 (relsubscript
   ('symbol', 'tip')
   ('symbol', 'rel')
-  ('symbol', '0')
-  define)
-('symbol', '1')
-define)
+  ('symbol', '0'))
+('symbol', '1'))
   hg: parse error: can't use a subscript in this context
   [255]
 
   $ hg debugrevspec -p analyzed 'tip#rel0#rel1[1]'
   * analyzed:
   (relsubscript
 (relation
   ('symbol', 'tip')
-  ('symbol', 'rel0')
-  define)
+  ('symbol', 'rel0'))
 ('symbol', 'rel1')
-('symbol', '1')
-define)
+('symbol', '1'))
   hg: parse error: unknown identifier: rel1
   [255]
 
@@ -619,11 +604,9 @@
 (relsubscript
   ('symbol', 'tip')
   ('symbol', 'rel0')
-  ('symbol', '0')
-  define)
+  ('symbol', '0'))
 ('symbol', 'rel1')
-('symbol', '1')
-define)
+('symbol', '1'))
   hg: parse error: unknown identifier: rel1
   [255]
 
@@ -700,20 +683,15 @@
 (or
   (list
 ('symbol', '0')
-('symbol', '1'))
-  define)
+('symbol', '1')))
 (not
-  ('symbol', '1')
-  follow)
-define)
+  ('symbol', '1')))
   * optimized:
   (difference
 (func
   ('symbol', '_list')
-  ('string', '0\x001')
-  define)
-('symbol', '1')
-define)
+  ('string', '0\x001'))
+('symbol', '1'))
   0
 
   $ hg debugrevspec -p unknown '0'
@@ -733,18 +711,16 @@
   (and
 (func
   ('symbol', 'r3232')
-  None
-  define)
-('symbol', '2')
-define)
+  None)
+('symbol', '2'))
   * optimized:
-  (and
-('symbol', '2')
-(func
-  ('symbol', 'r3232')
-  None
-  define)
-define)
+  (func
+('symbol', '_flipand')
+(list
+  ('symbol', '2')
+  (func
+('symbol', 'r3232')
+None)))
   * analyzed set:
   
   * optimized set:
@@ -776,8 +752,7 @@
 None)
   * analyzed:
   (rangeall
-None
-define)
+None)
   * set:
   
   0
@@ -793,8 +768,7 @@
   $ try -p analyzed ':1'
   * analyzed:
   (rangepre
-('symbol', '1')
-define)
+('symbol', '1'))
   * set:
   
   0
@@ -805,9 +779,7 @@
 (or
   (list
 ('symbol', '1')
-('symbol', '2'))
-  define)
-define)
+('symbol', '2'
   * set:
   
   0
@@ -818,9 +790,7 @@
   (rangepre
 (and
   ('symbol', '1')
-  ('symbol', '2')
-  define)
-define)
+  ('symbol', '2')))
   * set:
   
 
@@ -1643,11 +1613,8 @@
 (difference
   (range
 ('symbol', '8')
-('symbol', '9')
-define)
-  ('symbol', '8')
-  define)
-define)
+('symbol', '9'))
+  ('symbol', '8')))
   * set:
   
   8
@@ -1663,8 +1630,7 @@
 ('symbol', 'only')
 (list
   ('symbol', '9')
-  ('symbol', '5'))
-define)
+  ('symbol', '5')))
   * set:
   
   2
@@ -1999,18 +1965,13 @@
 (and
   (range
 ('symbol', '3')
-('symbol', '0')
-

D451: [RFC] revset: remove order information from tree

2017-08-19 Thread quark (Jun Wu)
quark added inline comments.

INLINE COMMENTS

> test-revset.t:2893
>  ,
> ->
> +>
>0

This is caused by `fullreposet` having a default order. If we remove that, it 
would be optimized to `` here.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D451

To: quark, #hg-reviewers
Cc: yuja, mercurial-devel
___
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel


D451: [RFC] revset: remove order information from tree

2017-08-19 Thread quark (Jun Wu)
quark updated this revision to Diff 1095.
quark edited the summary of this revision.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D451?vs=1094=1095

REVISION DETAIL
  https://phab.mercurial-scm.org/D451

AFFECTED FILES
  mercurial/revset.py
  mercurial/revsetlang.py
  tests/test-revset.t

CHANGE DETAILS

diff --git a/tests/test-revset.t b/tests/test-revset.t
--- a/tests/test-revset.t
+++ b/tests/test-revset.t
@@ -166,8 +166,7 @@
 None)
   * optimized:
   (rangeall
-None
-define)
+None)
   * set:
   
   0
@@ -495,8 +494,7 @@
 ('symbol', 'foo')
 (func
   ('symbol', '_notpublic')
-  None
-  any))
+  None))
   hg: parse error: can't use a key-value pair in this context
   [255]
 
@@ -538,52 +536,43 @@
 (not
   (func
 ('symbol', 'public')
-None
-any)
-  define)
+None))
 ('symbol', 'generations')
-('symbol', '0')
-define)
+('symbol', '0'))
   * optimized:
   (relsubscript
 (func
   ('symbol', '_notpublic')
-  None
-  any)
+  None)
 ('symbol', 'generations')
-('symbol', '0')
-define)
+('symbol', '0'))
 
 resolution of subscript and relation-subscript ternary operators:
 
   $ hg debugrevspec -p analyzed 'tip[0]'
   * analyzed:
   (subscript
 ('symbol', 'tip')
-('symbol', '0')
-define)
+('symbol', '0'))
   hg: parse error: can't use a subscript in this context
   [255]
 
   $ hg debugrevspec -p analyzed 'tip#rel[0]'
   * analyzed:
   (relsubscript
 ('symbol', 'tip')
 ('symbol', 'rel')
-('symbol', '0')
-define)
+('symbol', '0'))
   hg: parse error: unknown identifier: rel
   [255]
 
   $ hg debugrevspec -p analyzed '(tip#rel)[0]'
   * analyzed:
   (subscript
 (relation
   ('symbol', 'tip')
-  ('symbol', 'rel')
-  define)
-('symbol', '0')
-define)
+  ('symbol', 'rel'))
+('symbol', '0'))
   hg: parse error: can't use a subscript in this context
   [255]
 
@@ -593,23 +582,19 @@
 (relsubscript
   ('symbol', 'tip')
   ('symbol', 'rel')
-  ('symbol', '0')
-  define)
-('symbol', '1')
-define)
+  ('symbol', '0'))
+('symbol', '1'))
   hg: parse error: can't use a subscript in this context
   [255]
 
   $ hg debugrevspec -p analyzed 'tip#rel0#rel1[1]'
   * analyzed:
   (relsubscript
 (relation
   ('symbol', 'tip')
-  ('symbol', 'rel0')
-  define)
+  ('symbol', 'rel0'))
 ('symbol', 'rel1')
-('symbol', '1')
-define)
+('symbol', '1'))
   hg: parse error: unknown identifier: rel1
   [255]
 
@@ -619,11 +604,9 @@
 (relsubscript
   ('symbol', 'tip')
   ('symbol', 'rel0')
-  ('symbol', '0')
-  define)
+  ('symbol', '0'))
 ('symbol', 'rel1')
-('symbol', '1')
-define)
+('symbol', '1'))
   hg: parse error: unknown identifier: rel1
   [255]
 
@@ -700,20 +683,15 @@
 (or
   (list
 ('symbol', '0')
-('symbol', '1'))
-  define)
+('symbol', '1')))
 (not
-  ('symbol', '1')
-  follow)
-define)
+  ('symbol', '1')))
   * optimized:
   (difference
 (func
   ('symbol', '_list')
-  ('string', '0\x001')
-  define)
-('symbol', '1')
-define)
+  ('string', '0\x001'))
+('symbol', '1'))
   0
 
   $ hg debugrevspec -p unknown '0'
@@ -733,18 +711,16 @@
   (and
 (func
   ('symbol', 'r3232')
-  None
-  define)
-('symbol', '2')
-define)
+  None)
+('symbol', '2'))
   * optimized:
-  (and
-('symbol', '2')
-(func
-  ('symbol', 'r3232')
-  None
-  define)
-define)
+  (func
+('symbol', '_flipand')
+(list
+  ('symbol', '2')
+  (func
+('symbol', 'r3232')
+None)))
   * analyzed set:
   
   * optimized set:
@@ -776,8 +752,7 @@
 None)
   * analyzed:
   (rangeall
-None
-define)
+None)
   * set:
   
   0
@@ -793,8 +768,7 @@
   $ try -p analyzed ':1'
   * analyzed:
   (rangepre
-('symbol', '1')
-define)
+('symbol', '1'))
   * set:
   
   0
@@ -805,9 +779,7 @@
 (or
   (list
 ('symbol', '1')
-('symbol', '2'))
-  define)
-define)
+('symbol', '2'
   * set:
   
   0
@@ -818,9 +790,7 @@
   (rangepre
 (and
   ('symbol', '1')
-  ('symbol', '2')
-  define)
-define)
+  ('symbol', '2')))
   * set:
   
 
@@ -1643,11 +1613,8 @@
 (difference
   (range
 ('symbol', '8')
-('symbol', '9')
-define)
-  ('symbol', '8')
-  define)
-define)
+('symbol', '9'))
+  ('symbol', '8')))
   * set:
   
   8
@@ -1663,8 +1630,7 @@
 ('symbol', 'only')
 (list
   ('symbol', '9')
-  ('symbol', '5'))
-define)
+  ('symbol', '5')))
   * set:
   
   2
@@ -1999,18 +1965,13 @@
 (and
   (range
 ('symbol', 

D451: [RFC] revset: remove order information from tree

2017-08-19 Thread quark (Jun Wu)
quark updated this revision to Diff 1094.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D451?vs=1093=1094

REVISION DETAIL
  https://phab.mercurial-scm.org/D451

AFFECTED FILES
  mercurial/revset.py
  mercurial/revsetlang.py
  tests/test-revset.t

CHANGE DETAILS

diff --git a/tests/test-revset.t b/tests/test-revset.t
--- a/tests/test-revset.t
+++ b/tests/test-revset.t
@@ -166,8 +166,7 @@
 None)
   * optimized:
   (rangeall
-None
-define)
+None)
   * set:
   
   0
@@ -495,8 +494,7 @@
 ('symbol', 'foo')
 (func
   ('symbol', '_notpublic')
-  None
-  any))
+  None))
   hg: parse error: can't use a key-value pair in this context
   [255]
 
@@ -538,52 +536,43 @@
 (not
   (func
 ('symbol', 'public')
-None
-any)
-  define)
+None))
 ('symbol', 'generations')
-('symbol', '0')
-define)
+('symbol', '0'))
   * optimized:
   (relsubscript
 (func
   ('symbol', '_notpublic')
-  None
-  any)
+  None)
 ('symbol', 'generations')
-('symbol', '0')
-define)
+('symbol', '0'))
 
 resolution of subscript and relation-subscript ternary operators:
 
   $ hg debugrevspec -p analyzed 'tip[0]'
   * analyzed:
   (subscript
 ('symbol', 'tip')
-('symbol', '0')
-define)
+('symbol', '0'))
   hg: parse error: can't use a subscript in this context
   [255]
 
   $ hg debugrevspec -p analyzed 'tip#rel[0]'
   * analyzed:
   (relsubscript
 ('symbol', 'tip')
 ('symbol', 'rel')
-('symbol', '0')
-define)
+('symbol', '0'))
   hg: parse error: unknown identifier: rel
   [255]
 
   $ hg debugrevspec -p analyzed '(tip#rel)[0]'
   * analyzed:
   (subscript
 (relation
   ('symbol', 'tip')
-  ('symbol', 'rel')
-  define)
-('symbol', '0')
-define)
+  ('symbol', 'rel'))
+('symbol', '0'))
   hg: parse error: can't use a subscript in this context
   [255]
 
@@ -593,23 +582,19 @@
 (relsubscript
   ('symbol', 'tip')
   ('symbol', 'rel')
-  ('symbol', '0')
-  define)
-('symbol', '1')
-define)
+  ('symbol', '0'))
+('symbol', '1'))
   hg: parse error: can't use a subscript in this context
   [255]
 
   $ hg debugrevspec -p analyzed 'tip#rel0#rel1[1]'
   * analyzed:
   (relsubscript
 (relation
   ('symbol', 'tip')
-  ('symbol', 'rel0')
-  define)
+  ('symbol', 'rel0'))
 ('symbol', 'rel1')
-('symbol', '1')
-define)
+('symbol', '1'))
   hg: parse error: unknown identifier: rel1
   [255]
 
@@ -619,11 +604,9 @@
 (relsubscript
   ('symbol', 'tip')
   ('symbol', 'rel0')
-  ('symbol', '0')
-  define)
+  ('symbol', '0'))
 ('symbol', 'rel1')
-('symbol', '1')
-define)
+('symbol', '1'))
   hg: parse error: unknown identifier: rel1
   [255]
 
@@ -700,20 +683,15 @@
 (or
   (list
 ('symbol', '0')
-('symbol', '1'))
-  define)
+('symbol', '1')))
 (not
-  ('symbol', '1')
-  follow)
-define)
+  ('symbol', '1')))
   * optimized:
   (difference
 (func
   ('symbol', '_list')
-  ('string', '0\x001')
-  define)
-('symbol', '1')
-define)
+  ('string', '0\x001'))
+('symbol', '1'))
   0
 
   $ hg debugrevspec -p unknown '0'
@@ -733,27 +711,18 @@
   (and
 (func
   ('symbol', 'r3232')
-  None
-  define)
-('symbol', '2')
-define)
+  None)
+('symbol', '2'))
   * optimized:
   (and
-('symbol', '2')
 (func
   ('symbol', 'r3232')
-  None
-  define)
-define)
+  None)
+('symbol', '2'))
   * analyzed set:
   
   * optimized set:
-  
-  --- analyzed
-  +++ optimized
-   2
-  +2
-  [1]
+  
 
   $ hg debugrevspec --no-optimized --verify-optimized '0'
   abort: cannot use --verify-optimized with --no-optimized
@@ -776,8 +745,7 @@
 None)
   * analyzed:
   (rangeall
-None
-define)
+None)
   * set:
   
   0
@@ -793,8 +761,7 @@
   $ try -p analyzed ':1'
   * analyzed:
   (rangepre
-('symbol', '1')
-define)
+('symbol', '1'))
   * set:
   
   0
@@ -805,9 +772,7 @@
 (or
   (list
 ('symbol', '1')
-('symbol', '2'))
-  define)
-define)
+('symbol', '2'
   * set:
   
   0
@@ -818,9 +783,7 @@
   (rangepre
 (and
   ('symbol', '1')
-  ('symbol', '2')
-  define)
-define)
+  ('symbol', '2')))
   * set:
   
 
@@ -1643,11 +1606,8 @@
 (difference
   (range
 ('symbol', '8')
-('symbol', '9')
-define)
-  ('symbol', '8')
-  define)
-define)
+('symbol', '9'))
+  ('symbol', '8')))
   * set:
   
   8
@@ -1663,8 +1623,7 @@
 ('symbol', 'only')
 (list
   ('symbol', '9')
-  ('symbol', '5'))
-define)
+  ('symbol', '5')))
   * set:
   
   2
@@ -1999,18 +1958,13 @@

D451: [RFC] revset: remove order information from tree

2017-08-19 Thread quark (Jun Wu)
quark updated this revision to Diff 1093.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D451?vs=1092=1093

REVISION DETAIL
  https://phab.mercurial-scm.org/D451

AFFECTED FILES
  mercurial/revset.py
  mercurial/revsetlang.py
  tests/test-revset.t

CHANGE DETAILS

diff --git a/tests/test-revset.t b/tests/test-revset.t
--- a/tests/test-revset.t
+++ b/tests/test-revset.t
@@ -166,8 +166,7 @@
 None)
   * optimized:
   (rangeall
-None
-define)
+None)
   * set:
   
   0
@@ -495,8 +494,7 @@
 ('symbol', 'foo')
 (func
   ('symbol', '_notpublic')
-  None
-  any))
+  None))
   hg: parse error: can't use a key-value pair in this context
   [255]
 
@@ -538,52 +536,43 @@
 (not
   (func
 ('symbol', 'public')
-None
-any)
-  define)
+None))
 ('symbol', 'generations')
-('symbol', '0')
-define)
+('symbol', '0'))
   * optimized:
   (relsubscript
 (func
   ('symbol', '_notpublic')
-  None
-  any)
+  None)
 ('symbol', 'generations')
-('symbol', '0')
-define)
+('symbol', '0'))
 
 resolution of subscript and relation-subscript ternary operators:
 
   $ hg debugrevspec -p analyzed 'tip[0]'
   * analyzed:
   (subscript
 ('symbol', 'tip')
-('symbol', '0')
-define)
+('symbol', '0'))
   hg: parse error: can't use a subscript in this context
   [255]
 
   $ hg debugrevspec -p analyzed 'tip#rel[0]'
   * analyzed:
   (relsubscript
 ('symbol', 'tip')
 ('symbol', 'rel')
-('symbol', '0')
-define)
+('symbol', '0'))
   hg: parse error: unknown identifier: rel
   [255]
 
   $ hg debugrevspec -p analyzed '(tip#rel)[0]'
   * analyzed:
   (subscript
 (relation
   ('symbol', 'tip')
-  ('symbol', 'rel')
-  define)
-('symbol', '0')
-define)
+  ('symbol', 'rel'))
+('symbol', '0'))
   hg: parse error: can't use a subscript in this context
   [255]
 
@@ -593,23 +582,19 @@
 (relsubscript
   ('symbol', 'tip')
   ('symbol', 'rel')
-  ('symbol', '0')
-  define)
-('symbol', '1')
-define)
+  ('symbol', '0'))
+('symbol', '1'))
   hg: parse error: can't use a subscript in this context
   [255]
 
   $ hg debugrevspec -p analyzed 'tip#rel0#rel1[1]'
   * analyzed:
   (relsubscript
 (relation
   ('symbol', 'tip')
-  ('symbol', 'rel0')
-  define)
+  ('symbol', 'rel0'))
 ('symbol', 'rel1')
-('symbol', '1')
-define)
+('symbol', '1'))
   hg: parse error: unknown identifier: rel1
   [255]
 
@@ -619,11 +604,9 @@
 (relsubscript
   ('symbol', 'tip')
   ('symbol', 'rel0')
-  ('symbol', '0')
-  define)
+  ('symbol', '0'))
 ('symbol', 'rel1')
-('symbol', '1')
-define)
+('symbol', '1'))
   hg: parse error: unknown identifier: rel1
   [255]
 
@@ -700,20 +683,15 @@
 (or
   (list
 ('symbol', '0')
-('symbol', '1'))
-  define)
+('symbol', '1')))
 (not
-  ('symbol', '1')
-  follow)
-define)
+  ('symbol', '1')))
   * optimized:
   (difference
 (func
   ('symbol', '_list')
-  ('string', '0\x001')
-  define)
-('symbol', '1')
-define)
+  ('string', '0\x001'))
+('symbol', '1'))
   0
 
   $ hg debugrevspec -p unknown '0'
@@ -733,27 +711,18 @@
   (and
 (func
   ('symbol', 'r3232')
-  None
-  define)
-('symbol', '2')
-define)
+  None)
+('symbol', '2'))
   * optimized:
   (and
-('symbol', '2')
 (func
   ('symbol', 'r3232')
-  None
-  define)
-define)
+  None)
+('symbol', '2'))
   * analyzed set:
   
   * optimized set:
-  
-  --- analyzed
-  +++ optimized
-   2
-  +2
-  [1]
+  
 
   $ hg debugrevspec --no-optimized --verify-optimized '0'
   abort: cannot use --verify-optimized with --no-optimized
@@ -776,8 +745,7 @@
 None)
   * analyzed:
   (rangeall
-None
-define)
+None)
   * set:
   
   0
@@ -793,8 +761,7 @@
   $ try -p analyzed ':1'
   * analyzed:
   (rangepre
-('symbol', '1')
-define)
+('symbol', '1'))
   * set:
   
   0
@@ -805,9 +772,7 @@
 (or
   (list
 ('symbol', '1')
-('symbol', '2'))
-  define)
-define)
+('symbol', '2'
   * set:
   
   0
@@ -818,9 +783,7 @@
   (rangepre
 (and
   ('symbol', '1')
-  ('symbol', '2')
-  define)
-define)
+  ('symbol', '2')))
   * set:
   
 
@@ -1643,11 +1606,8 @@
 (difference
   (range
 ('symbol', '8')
-('symbol', '9')
-define)
-  ('symbol', '8')
-  define)
-define)
+('symbol', '9'))
+  ('symbol', '8')))
   * set:
   
   8
@@ -1663,8 +1623,7 @@
 ('symbol', 'only')
 (list
   ('symbol', '9')
-  ('symbol', '5'))
-define)
+  ('symbol', '5')))
   * set:
   
   2
@@ -1999,18 +1958,13 @@

D451: [RFC] revset: remove order information from tree

2017-08-19 Thread quark (Jun Wu)
quark updated this revision to Diff 1092.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D451?vs=1091=1092

REVISION DETAIL
  https://phab.mercurial-scm.org/D451

AFFECTED FILES
  mercurial/revset.py
  mercurial/revsetlang.py
  tests/test-revset.t

CHANGE DETAILS

diff --git a/tests/test-revset.t b/tests/test-revset.t
--- a/tests/test-revset.t
+++ b/tests/test-revset.t
@@ -166,8 +166,7 @@
 None)
   * optimized:
   (rangeall
-None
-define)
+None)
   * set:
   
   0
@@ -495,8 +494,7 @@
 ('symbol', 'foo')
 (func
   ('symbol', '_notpublic')
-  None
-  any))
+  None))
   hg: parse error: can't use a key-value pair in this context
   [255]
 
@@ -538,52 +536,43 @@
 (not
   (func
 ('symbol', 'public')
-None
-any)
-  define)
+None))
 ('symbol', 'generations')
-('symbol', '0')
-define)
+('symbol', '0'))
   * optimized:
   (relsubscript
 (func
   ('symbol', '_notpublic')
-  None
-  any)
+  None)
 ('symbol', 'generations')
-('symbol', '0')
-define)
+('symbol', '0'))
 
 resolution of subscript and relation-subscript ternary operators:
 
   $ hg debugrevspec -p analyzed 'tip[0]'
   * analyzed:
   (subscript
 ('symbol', 'tip')
-('symbol', '0')
-define)
+('symbol', '0'))
   hg: parse error: can't use a subscript in this context
   [255]
 
   $ hg debugrevspec -p analyzed 'tip#rel[0]'
   * analyzed:
   (relsubscript
 ('symbol', 'tip')
 ('symbol', 'rel')
-('symbol', '0')
-define)
+('symbol', '0'))
   hg: parse error: unknown identifier: rel
   [255]
 
   $ hg debugrevspec -p analyzed '(tip#rel)[0]'
   * analyzed:
   (subscript
 (relation
   ('symbol', 'tip')
-  ('symbol', 'rel')
-  define)
-('symbol', '0')
-define)
+  ('symbol', 'rel'))
+('symbol', '0'))
   hg: parse error: can't use a subscript in this context
   [255]
 
@@ -593,23 +582,19 @@
 (relsubscript
   ('symbol', 'tip')
   ('symbol', 'rel')
-  ('symbol', '0')
-  define)
-('symbol', '1')
-define)
+  ('symbol', '0'))
+('symbol', '1'))
   hg: parse error: can't use a subscript in this context
   [255]
 
   $ hg debugrevspec -p analyzed 'tip#rel0#rel1[1]'
   * analyzed:
   (relsubscript
 (relation
   ('symbol', 'tip')
-  ('symbol', 'rel0')
-  define)
+  ('symbol', 'rel0'))
 ('symbol', 'rel1')
-('symbol', '1')
-define)
+('symbol', '1'))
   hg: parse error: unknown identifier: rel1
   [255]
 
@@ -619,11 +604,9 @@
 (relsubscript
   ('symbol', 'tip')
   ('symbol', 'rel0')
-  ('symbol', '0')
-  define)
+  ('symbol', '0'))
 ('symbol', 'rel1')
-('symbol', '1')
-define)
+('symbol', '1'))
   hg: parse error: unknown identifier: rel1
   [255]
 
@@ -700,20 +683,15 @@
 (or
   (list
 ('symbol', '0')
-('symbol', '1'))
-  define)
+('symbol', '1')))
 (not
-  ('symbol', '1')
-  follow)
-define)
+  ('symbol', '1')))
   * optimized:
   (difference
 (func
   ('symbol', '_list')
-  ('string', '0\x001')
-  define)
-('symbol', '1')
-define)
+  ('string', '0\x001'))
+('symbol', '1'))
   0
 
   $ hg debugrevspec -p unknown '0'
@@ -733,27 +711,18 @@
   (and
 (func
   ('symbol', 'r3232')
-  None
-  define)
-('symbol', '2')
-define)
+  None)
+('symbol', '2'))
   * optimized:
   (and
-('symbol', '2')
 (func
   ('symbol', 'r3232')
-  None
-  define)
-define)
+  None)
+('symbol', '2'))
   * analyzed set:
   
   * optimized set:
-  
-  --- analyzed
-  +++ optimized
-   2
-  +2
-  [1]
+  
 
   $ hg debugrevspec --no-optimized --verify-optimized '0'
   abort: cannot use --verify-optimized with --no-optimized
@@ -776,8 +745,7 @@
 None)
   * analyzed:
   (rangeall
-None
-define)
+None)
   * set:
   
   0
@@ -793,8 +761,7 @@
   $ try -p analyzed ':1'
   * analyzed:
   (rangepre
-('symbol', '1')
-define)
+('symbol', '1'))
   * set:
   
   0
@@ -805,9 +772,7 @@
 (or
   (list
 ('symbol', '1')
-('symbol', '2'))
-  define)
-define)
+('symbol', '2'
   * set:
   
   0
@@ -818,9 +783,7 @@
   (rangepre
 (and
   ('symbol', '1')
-  ('symbol', '2')
-  define)
-define)
+  ('symbol', '2')))
   * set:
   
 
@@ -1643,11 +1606,8 @@
 (difference
   (range
 ('symbol', '8')
-('symbol', '9')
-define)
-  ('symbol', '8')
-  define)
-define)
+('symbol', '9'))
+  ('symbol', '8')))
   * set:
   
   8
@@ -1663,8 +1623,7 @@
 ('symbol', 'only')
 (list
   ('symbol', '9')
-  ('symbol', '5'))
-define)
+  ('symbol', '5')))
   * set:
   
   2
@@ -1999,18 +1958,13 @@

D451: [RFC] revset: remove order information from tree

2017-08-19 Thread quark (Jun Wu)
quark added a subscriber: yuja.
quark added a comment.


  @yuja Let me know if this can simplify `matchtree`, `buildtree` 
implementation.

INLINE COMMENTS

> test-revset.t:2502
>  
>$ try -p optimized '(reverse(contains("a")) + 2) & 0:2'
>* optimized:

The new code is less efficient here. I guess we it might be solvable by having 
a `_reverseand` operator that `_optimize` may use.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D451

To: quark, #hg-reviewers
Cc: yuja, mercurial-devel
___
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel


D451: [RFC] revset: remove order information from tree

2017-08-19 Thread quark (Jun Wu)
quark updated this revision to Diff 1091.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D451?vs=1090=1091

REVISION DETAIL
  https://phab.mercurial-scm.org/D451

AFFECTED FILES
  mercurial/revset.py
  mercurial/revsetlang.py
  tests/test-revset.t

CHANGE DETAILS

diff --git a/tests/test-revset.t b/tests/test-revset.t
--- a/tests/test-revset.t
+++ b/tests/test-revset.t
@@ -166,8 +166,7 @@
 None)
   * optimized:
   (rangeall
-None
-define)
+None)
   * set:
   
   0
@@ -495,8 +494,7 @@
 ('symbol', 'foo')
 (func
   ('symbol', '_notpublic')
-  None
-  any))
+  None))
   hg: parse error: can't use a key-value pair in this context
   [255]
 
@@ -538,52 +536,43 @@
 (not
   (func
 ('symbol', 'public')
-None
-any)
-  define)
+None))
 ('symbol', 'generations')
-('symbol', '0')
-define)
+('symbol', '0'))
   * optimized:
   (relsubscript
 (func
   ('symbol', '_notpublic')
-  None
-  any)
+  None)
 ('symbol', 'generations')
-('symbol', '0')
-define)
+('symbol', '0'))
 
 resolution of subscript and relation-subscript ternary operators:
 
   $ hg debugrevspec -p analyzed 'tip[0]'
   * analyzed:
   (subscript
 ('symbol', 'tip')
-('symbol', '0')
-define)
+('symbol', '0'))
   hg: parse error: can't use a subscript in this context
   [255]
 
   $ hg debugrevspec -p analyzed 'tip#rel[0]'
   * analyzed:
   (relsubscript
 ('symbol', 'tip')
 ('symbol', 'rel')
-('symbol', '0')
-define)
+('symbol', '0'))
   hg: parse error: unknown identifier: rel
   [255]
 
   $ hg debugrevspec -p analyzed '(tip#rel)[0]'
   * analyzed:
   (subscript
 (relation
   ('symbol', 'tip')
-  ('symbol', 'rel')
-  define)
-('symbol', '0')
-define)
+  ('symbol', 'rel'))
+('symbol', '0'))
   hg: parse error: can't use a subscript in this context
   [255]
 
@@ -593,23 +582,19 @@
 (relsubscript
   ('symbol', 'tip')
   ('symbol', 'rel')
-  ('symbol', '0')
-  define)
-('symbol', '1')
-define)
+  ('symbol', '0'))
+('symbol', '1'))
   hg: parse error: can't use a subscript in this context
   [255]
 
   $ hg debugrevspec -p analyzed 'tip#rel0#rel1[1]'
   * analyzed:
   (relsubscript
 (relation
   ('symbol', 'tip')
-  ('symbol', 'rel0')
-  define)
+  ('symbol', 'rel0'))
 ('symbol', 'rel1')
-('symbol', '1')
-define)
+('symbol', '1'))
   hg: parse error: unknown identifier: rel1
   [255]
 
@@ -619,11 +604,9 @@
 (relsubscript
   ('symbol', 'tip')
   ('symbol', 'rel0')
-  ('symbol', '0')
-  define)
+  ('symbol', '0'))
 ('symbol', 'rel1')
-('symbol', '1')
-define)
+('symbol', '1'))
   hg: parse error: unknown identifier: rel1
   [255]
 
@@ -700,20 +683,15 @@
 (or
   (list
 ('symbol', '0')
-('symbol', '1'))
-  define)
+('symbol', '1')))
 (not
-  ('symbol', '1')
-  follow)
-define)
+  ('symbol', '1')))
   * optimized:
   (difference
 (func
   ('symbol', '_list')
-  ('string', '0\x001')
-  define)
-('symbol', '1')
-define)
+  ('string', '0\x001'))
+('symbol', '1'))
   0
 
   $ hg debugrevspec -p unknown '0'
@@ -733,27 +711,18 @@
   (and
 (func
   ('symbol', 'r3232')
-  None
-  define)
-('symbol', '2')
-define)
+  None)
+('symbol', '2'))
   * optimized:
   (and
-('symbol', '2')
 (func
   ('symbol', 'r3232')
-  None
-  define)
-define)
+  None)
+('symbol', '2'))
   * analyzed set:
   
   * optimized set:
-  
-  --- analyzed
-  +++ optimized
-   2
-  +2
-  [1]
+  
 
   $ hg debugrevspec --no-optimized --verify-optimized '0'
   abort: cannot use --verify-optimized with --no-optimized
@@ -776,8 +745,7 @@
 None)
   * analyzed:
   (rangeall
-None
-define)
+None)
   * set:
   
   0
@@ -793,8 +761,7 @@
   $ try -p analyzed ':1'
   * analyzed:
   (rangepre
-('symbol', '1')
-define)
+('symbol', '1'))
   * set:
   
   0
@@ -805,9 +772,7 @@
 (or
   (list
 ('symbol', '1')
-('symbol', '2'))
-  define)
-define)
+('symbol', '2'
   * set:
   
   0
@@ -818,9 +783,7 @@
   (rangepre
 (and
   ('symbol', '1')
-  ('symbol', '2')
-  define)
-define)
+  ('symbol', '2')))
   * set:
   
 
@@ -1643,11 +1606,8 @@
 (difference
   (range
 ('symbol', '8')
-('symbol', '9')
-define)
-  ('symbol', '8')
-  define)
-define)
+('symbol', '9'))
+  ('symbol', '8')))
   * set:
   
   8
@@ -1663,8 +1623,7 @@
 ('symbol', 'only')
 (list
   ('symbol', '9')
-  ('symbol', '5'))
-define)
+  ('symbol', '5')))
   * set:
   
   2
@@ -1999,18 +1958,13 @@

D451: [RFC] revset: remove order information from tree

2017-08-19 Thread quark (Jun Wu)
quark created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  Keeping `order` in tree makes AST operation harder. And there could be
  certain invalid cases, like:
  
A(order=define) | B(order=define)
  ^^ couldn't be satisfied
  
  This patch changes the code to calculate order on the fly, during tree
  traversal.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D451

AFFECTED FILES
  mercurial/revset.py
  mercurial/revsetlang.py
  tests/test-revset.t

CHANGE DETAILS

diff --git a/tests/test-revset.t b/tests/test-revset.t
--- a/tests/test-revset.t
+++ b/tests/test-revset.t
@@ -166,8 +166,7 @@
 None)
   * optimized:
   (rangeall
-None
-define)
+None)
   * set:
   
   0
@@ -495,8 +494,7 @@
 ('symbol', 'foo')
 (func
   ('symbol', '_notpublic')
-  None
-  any))
+  None))
   hg: parse error: can't use a key-value pair in this context
   [255]
 
@@ -538,52 +536,43 @@
 (not
   (func
 ('symbol', 'public')
-None
-any)
-  define)
+None))
 ('symbol', 'generations')
-('symbol', '0')
-define)
+('symbol', '0'))
   * optimized:
   (relsubscript
 (func
   ('symbol', '_notpublic')
-  None
-  any)
+  None)
 ('symbol', 'generations')
-('symbol', '0')
-define)
+('symbol', '0'))
 
 resolution of subscript and relation-subscript ternary operators:
 
   $ hg debugrevspec -p analyzed 'tip[0]'
   * analyzed:
   (subscript
 ('symbol', 'tip')
-('symbol', '0')
-define)
+('symbol', '0'))
   hg: parse error: can't use a subscript in this context
   [255]
 
   $ hg debugrevspec -p analyzed 'tip#rel[0]'
   * analyzed:
   (relsubscript
 ('symbol', 'tip')
 ('symbol', 'rel')
-('symbol', '0')
-define)
+('symbol', '0'))
   hg: parse error: unknown identifier: rel
   [255]
 
   $ hg debugrevspec -p analyzed '(tip#rel)[0]'
   * analyzed:
   (subscript
 (relation
   ('symbol', 'tip')
-  ('symbol', 'rel')
-  define)
-('symbol', '0')
-define)
+  ('symbol', 'rel'))
+('symbol', '0'))
   hg: parse error: can't use a subscript in this context
   [255]
 
@@ -593,23 +582,19 @@
 (relsubscript
   ('symbol', 'tip')
   ('symbol', 'rel')
-  ('symbol', '0')
-  define)
-('symbol', '1')
-define)
+  ('symbol', '0'))
+('symbol', '1'))
   hg: parse error: can't use a subscript in this context
   [255]
 
   $ hg debugrevspec -p analyzed 'tip#rel0#rel1[1]'
   * analyzed:
   (relsubscript
 (relation
   ('symbol', 'tip')
-  ('symbol', 'rel0')
-  define)
+  ('symbol', 'rel0'))
 ('symbol', 'rel1')
-('symbol', '1')
-define)
+('symbol', '1'))
   hg: parse error: unknown identifier: rel1
   [255]
 
@@ -619,11 +604,9 @@
 (relsubscript
   ('symbol', 'tip')
   ('symbol', 'rel0')
-  ('symbol', '0')
-  define)
+  ('symbol', '0'))
 ('symbol', 'rel1')
-('symbol', '1')
-define)
+('symbol', '1'))
   hg: parse error: unknown identifier: rel1
   [255]
 
@@ -700,20 +683,15 @@
 (or
   (list
 ('symbol', '0')
-('symbol', '1'))
-  define)
+('symbol', '1')))
 (not
-  ('symbol', '1')
-  follow)
-define)
+  ('symbol', '1')))
   * optimized:
   (difference
 (func
   ('symbol', '_list')
-  ('string', '0\x001')
-  define)
-('symbol', '1')
-define)
+  ('string', '0\x001'))
+('symbol', '1'))
   0
 
   $ hg debugrevspec -p unknown '0'
@@ -733,27 +711,18 @@
   (and
 (func
   ('symbol', 'r3232')
-  None
-  define)
-('symbol', '2')
-define)
+  None)
+('symbol', '2'))
   * optimized:
   (and
-('symbol', '2')
 (func
   ('symbol', 'r3232')
-  None
-  define)
-define)
+  None)
+('symbol', '2'))
   * analyzed set:
   
   * optimized set:
-  
-  --- analyzed
-  +++ optimized
-   2
-  +2
-  [1]
+  
 
   $ hg debugrevspec --no-optimized --verify-optimized '0'
   abort: cannot use --verify-optimized with --no-optimized
@@ -776,8 +745,7 @@
 None)
   * analyzed:
   (rangeall
-None
-define)
+None)
   * set:
   
   0
@@ -793,8 +761,7 @@
   $ try -p analyzed ':1'
   * analyzed:
   (rangepre
-('symbol', '1')
-define)
+('symbol', '1'))
   * set:
   
   0
@@ -805,9 +772,7 @@
 (or
   (list
 ('symbol', '1')
-('symbol', '2'))
-  define)
-define)
+('symbol', '2'
   * set:
   
   0
@@ -818,9 +783,7 @@
   (rangepre
 (and
   ('symbol', '1')
-  ('symbol', '2')
-  define)
-define)
+  ('symbol', '2')))
   * set:
   
 
@@ -1643,11 +1606,8 @@
 (difference
   (range
 ('symbol', '8')
-('symbol', '9')
-define)
-  ('symbol', '8')
-  define)
-