Show More
@@ -467,9 +467,6 def _optimize(x, small): | |||
|
467 | 467 | flushss() |
|
468 | 468 | if len(ts) == 1: |
|
469 | 469 | return ws[0], ts[0] # 'or' operation is fully optimized out |
|
470 | if order != defineorder: | |
|
471 | # reorder by weight only when f(a + b) == f(b + a) | |
|
472 | ts = [wt[1] for wt in sorted(zip(ws, ts), key=lambda wt: wt[0])] | |
|
473 | 470 | return max(ws), (op, ('list',) + tuple(ts), order) |
|
474 | 471 | elif op == 'not': |
|
475 | 472 | # Optimize not public() to _notpublic() because we have a fast version |
@@ -2076,19 +2076,19 ordering defined by it. | |||
|
2076 | 2076 | define) |
|
2077 | 2077 | (or |
|
2078 | 2078 | (list |
|
2079 | ('symbol', '2') | |
|
2080 | 2079 | (range |
|
2081 | 2080 | ('symbol', '0') |
|
2082 | 2081 | ('symbol', '1') |
|
2083 |
follow) |
|
|
2082 | follow) | |
|
2083 | ('symbol', '2')) | |
|
2084 | 2084 | follow) |
|
2085 | 2085 | define) |
|
2086 | 2086 | * set: |
|
2087 | 2087 | <filteredset |
|
2088 | 2088 | <spanset- 0:3>, |
|
2089 | 2089 | <addset |
|
2090 |
< |
|
|
2091 |
< |
|
|
2090 | <spanset+ 0:2>, | |
|
2091 | <baseset [2]>>> | |
|
2092 | 2092 | 2 |
|
2093 | 2093 | 1 |
|
2094 | 2094 | 0 |
@@ -2569,69 +2569,6 ordering defined by it. | |||
|
2569 | 2569 | 1 |
|
2570 | 2570 | 0 |
|
2571 | 2571 | |
|
2572 | 'A + B' can be rewritten to 'B + A' by weight only when the order doesn't | |
|
2573 | matter (e.g. 'X & (A + B)' can be 'X & (B + A)', but '(A + B) & X' can't): | |
|
2574 | ||
|
2575 | $ try -p optimized '0:2 & (reverse(contains("a")) + 2)' | |
|
2576 | * optimized: | |
|
2577 | (and | |
|
2578 | (range | |
|
2579 | ('symbol', '0') | |
|
2580 | ('symbol', '2') | |
|
2581 | define) | |
|
2582 | (or | |
|
2583 | (list | |
|
2584 | ('symbol', '2') | |
|
2585 | (func | |
|
2586 | ('symbol', 'reverse') | |
|
2587 | (func | |
|
2588 | ('symbol', 'contains') | |
|
2589 | ('string', 'a') | |
|
2590 | define) | |
|
2591 | follow)) | |
|
2592 | follow) | |
|
2593 | define) | |
|
2594 | * set: | |
|
2595 | <filteredset | |
|
2596 | <spanset+ 0:3>, | |
|
2597 | <addset | |
|
2598 | <baseset [2]>, | |
|
2599 | <filteredset | |
|
2600 | <fullreposet+ 0:10>, | |
|
2601 | <contains 'a'>>>> | |
|
2602 | 0 | |
|
2603 | 1 | |
|
2604 | 2 | |
|
2605 | ||
|
2606 | $ try -p optimized '(reverse(contains("a")) + 2) & 0:2' | |
|
2607 | * optimized: | |
|
2608 | (and | |
|
2609 | (range | |
|
2610 | ('symbol', '0') | |
|
2611 | ('symbol', '2') | |
|
2612 | follow) | |
|
2613 | (or | |
|
2614 | (list | |
|
2615 | (func | |
|
2616 | ('symbol', 'reverse') | |
|
2617 | (func | |
|
2618 | ('symbol', 'contains') | |
|
2619 | ('string', 'a') | |
|
2620 | define) | |
|
2621 | define) | |
|
2622 | ('symbol', '2')) | |
|
2623 | define) | |
|
2624 | define) | |
|
2625 | * set: | |
|
2626 | <addset | |
|
2627 | <filteredset | |
|
2628 | <spanset- 0:3>, | |
|
2629 | <contains 'a'>>, | |
|
2630 | <baseset [2]>> | |
|
2631 | 1 | |
|
2632 | 0 | |
|
2633 | 2 | |
|
2634 | ||
|
2635 | 2572 | test sort revset |
|
2636 | 2573 | -------------------------------------------- |
|
2637 | 2574 |
General Comments 0
You need to be logged in to leave comments.
Login now