drill-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From paul-rogers <...@git.apache.org>
Subject [GitHub] drill pull request #716: DRILL-5116: Enable generated code debugging in each...
Date Tue, 10 Jan 2017 23:10:19 GMT
Github user paul-rogers commented on a diff in the pull request:

    --- Diff: exec/java-exec/src/main/java/org/apache/drill/exec/compile/CodeCompiler.java
    @@ -41,12 +39,87 @@
     public class CodeCompiler {
    +  private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(CodeCompiler.class);
    +  /**
    +   * Abstracts out the details of compiling code using the two available
    +   * mechanisms. Allows this mechanism to be unit tested separately from
    +   * the code cache.
    +   */
    +  public static class CodeGenCompiler {
    +    private final ClassTransformer transformer;
    +    private final ClassBuilder classBuilder;
    +    public CodeGenCompiler(final DrillConfig config, final OptionManager optionManager)
    +      transformer = new ClassTransformer(config, optionManager);
    +      classBuilder = new ClassBuilder(config, optionManager);
    +    }
    +    /**
    +     * Compile the code already generated by the code generator.
    +     *
    +     * @param cg the code generator for the class
    +     * @return the compiled class
    +     * @throws Exception if anything goes wrong
    +     */
    +    public Class<?> compile(final CodeGenerator<?> cg) throws Exception {
    +       if (cg.isPlainOldJava()) {
    --- End diff --
    Done. Trace logging will identify if the class was found in the code cache, or compile
via plain-Java or byte code manipulation. Also logged the compiler selection and debug code
options (which are set statically). This should provide most information needed to understand
a run.
    Also added the requested information about a plain-Java compilation: the byte code size
and elapsed time. Revised both log messages to include class name to provide some context
for the compilation messages.
    The missing information is whether a particular class was compiled with Janino or JDK.

If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.

View raw message