This is an automated email from the ASF dual-hosted git repository.
sunlan pushed a commit to branch nextflow-perf-issue
in repository https://gitbox.apache.org/repos/asf/groovy.git
The following commit(s) were added to refs/heads/nextflow-perf-issue by this
push:
new cf01a58 Fix choosing wrong plugin factory when `-Dgroovy.antlr4` was
not set
cf01a58 is described below
commit cf01a5832563a1897d302d37b070cd3b1373788a
Author: Daniel Sun <[email protected]>
AuthorDate: Sun Jan 19 19:01:43 2020 +0800
Fix choosing wrong plugin factory when `-Dgroovy.antlr4` was not set
antlr2-parse: 0.579s elapsed
antlr4-parse1: 4.653s elapsed <-- cache is empty
antlr4-parse2: 1.511s elapsed <-- cache is filled
antlr2-gen: 0.474s elapsed
antlr4-gen: 1.644s elapsed <-- cache is filled
---
src/test/groovy/bugs/StubGenTest.groovy | 8 +++++++-
.../main/java/org/apache/groovy/parser/Antlr2Parser.java | 14 +++++++++++++-
.../main/java/org/apache/groovy/parser/Antlr4Parser.java | 5 ++---
3 files changed, 22 insertions(+), 5 deletions(-)
diff --git a/src/test/groovy/bugs/StubGenTest.groovy
b/src/test/groovy/bugs/StubGenTest.groovy
index 7a76511..5540aee 100644
--- a/src/test/groovy/bugs/StubGenTest.groovy
+++ b/src/test/groovy/bugs/StubGenTest.groovy
@@ -72,7 +72,13 @@ final class StubGenTest {
parser.parse(file)
def e = System.currentTimeMillis()
- println "antlr4-parse: ${(e - b) / 1000}s elapsed"
+ println "antlr4-parse1: ${(e - b) / 1000}s elapsed"
+
+ def b2 = System.currentTimeMillis()
+ parser.parse(file)
+ def e2 = System.currentTimeMillis()
+
+ println "antlr4-parse2: ${(e2 - b2) / 1000}s elapsed"
}
@Test
diff --git
a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/Antlr2Parser.java
b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/Antlr2Parser.java
index d1a1436..2808509 100644
---
a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/Antlr2Parser.java
+++
b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/Antlr2Parser.java
@@ -18,14 +18,26 @@
*/
package org.apache.groovy.parser;
+import org.codehaus.groovy.antlr.AntlrParserPluginFactory;
import org.codehaus.groovy.control.CompilerConfiguration;
/**
* The Antlr2 parser for creating a module node.
*/
public class Antlr2Parser extends AbstractParser {
+ private final CompilerConfiguration compilerConfiguration;
+
+ public Antlr2Parser() {
+ this(new CompilerConfiguration(CompilerConfiguration.DEFAULT));
+ }
+
+ public Antlr2Parser(CompilerConfiguration compilerConfiguration) {
+ this.compilerConfiguration = compilerConfiguration;
+ compilerConfiguration.setPluginFactory(new AntlrParserPluginFactory());
+ }
+
@Override
protected CompilerConfiguration getCompilerConfiguration() {
- return CompilerConfiguration.DEFAULT;
+ return compilerConfiguration;
}
}
diff --git
a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/Antlr4Parser.java
b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/Antlr4Parser.java
index 96df593..7cb14fb 100644
---
a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/Antlr4Parser.java
+++
b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/Antlr4Parser.java
@@ -28,17 +28,16 @@ public class Antlr4Parser extends AbstractParser {
private final CompilerConfiguration compilerConfiguration;
public Antlr4Parser() {
- this.compilerConfiguration = new
CompilerConfiguration(CompilerConfiguration.DEFAULT);
+ this(new CompilerConfiguration(CompilerConfiguration.DEFAULT));
}
public Antlr4Parser(CompilerConfiguration compilerConfiguration) {
this.compilerConfiguration = compilerConfiguration;
+ compilerConfiguration.setPluginFactory(new
Antlr4PluginFactory(compilerConfiguration));
}
@Override
protected CompilerConfiguration getCompilerConfiguration() {
- compilerConfiguration.setPluginFactory(new
Antlr4PluginFactory(compilerConfiguration));
-
return compilerConfiguration;
}
}