jenkins-bot has submitted this change and it was merged.

Change subject: Further row back on perf optimization
......................................................................


Further row back on perf optimization

Only test heuristic at start of table cell and -caption attribute production,
but not for each attribute. This basically means that anything is eaten in the
middle of attributes, but should still avoid most backtracking on content.

Parse times on el:Πορεία_των_κυπριακών_ομάδων_στα_κύπελλα_Ευρώπης are
actually improved by this, as the sanity check is executed less often.

Change-Id: I1e982da057d10370972491e5e9b3a1225e5cb79d
---
M js/lib/pegTokenizer.pegjs.txt
1 file changed, 13 insertions(+), 9 deletions(-)

Approvals:
  GWicke: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/js/lib/pegTokenizer.pegjs.txt b/js/lib/pegTokenizer.pegjs.txt
index c13c9ef..08c08d9 100644
--- a/js/lib/pegTokenizer.pegjs.txt
+++ b/js/lib/pegTokenizer.pegjs.txt
@@ -1690,6 +1690,17 @@
         return res;
     }
 
+could_be_attribute = 
+    // quick sanity check before expensive attribute_preprocessor_text_line
+    // production. Also try to parse on [|!+;] for now which seem to be common
+    // syntax errors in production that hidden by the PHP parser (by stripping
+    // the 'attributes').
+    space* ([a-zA-Z|!+;] / 
+            // Possibly a templated attribute
+            '{{' [^}]+ '}'  /
+            // comment or noincludes
+            '<' ('!--' / 'noinclude' / 'onlyinclude' / 'includeonly'))
+
 // A generic attribute that can span multiple lines.
 generic_newline_attribute
   = s:space_or_newline+
@@ -1750,15 +1761,6 @@
 
 generic_attribute_name
   = & { return stops.push( 'equal', true ); }
-    // quick sanity check before expensive attribute_preprocessor_text_line
-    // production. Also try to parse on [|!+;] for now which seem to be common
-    // syntax errors in production that hidden by the PHP parser (by stripping
-    // the 'attributes').
-    &([a-zA-Z|!+;] / 
-            // Possibly a templated attribute
-            '{{' [^}]+ '}'  /
-            // comment or noincludes
-            '<' ('!--' / 'noinclude' / 'onlyinclude' / 'includeonly')) 
     name:attribute_preprocessor_text_line
     {
         stops.pop( 'equal' );
@@ -2099,6 +2101,7 @@
  */
 single_cell_table_args
   = & { return stops.push('pipe', true); }
+    & could_be_attribute
     as:generic_attribute* s:space* p:pipe {
         stops.pop('pipe');
         //console.warn( 'tcargs' + JSON.stringify( as ) + " stops: " + 
pp(stops) );
@@ -2112,6 +2115,7 @@
  */
 row_syntax_table_args
   = & { return stops.inc('tableCellArg'); }
+    & could_be_attribute
     as:generic_attribute* s:space* p:pipe !pipe {
         stops.dec('tableCellArg');
         //console.warn( 'tcargs' + JSON.stringify( as ) + " stops: " + 
pp(stops) );

-- 
To view, visit https://gerrit.wikimedia.org/r/74588
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I1e982da057d10370972491e5e9b3a1225e5cb79d
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Parsoid
Gerrit-Branch: master
Gerrit-Owner: GWicke <[email protected]>
Gerrit-Reviewer: GWicke <[email protected]>
Gerrit-Reviewer: Subramanya Sastry <[email protected]>
Gerrit-Reviewer: jenkins-bot

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to