drill-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (DRILL-5116) Enable generated code debugging in each Drill operator
Date Sun, 01 Jan 2017 21:09:58 GMT

    [ https://issues.apache.org/jira/browse/DRILL-5116?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15791668#comment-15791668
] 

ASF GitHub Bot commented on DRILL-5116:
---------------------------------------

GitHub user paul-rogers opened a pull request:

    https://github.com/apache/drill/pull/716

    DRILL-5116: Enable generated code debugging in each Drill operator

    DRILL-5052 added the ability to debug generated code. The reviewer suggested permitting
the technique to be used for all Drill operators. This PR provides the required fixes. Most
were small changes, others dealt with the rather clever way that the existing byte-code merge
converted static nested classes to non-static inner classes, with the way that constructors
were inserted at the byte-code level and so on. See the JIRA for the details.
    
    This code passed the unit tests twice: once with the traditional byte-code manipulations,
a second time using "plain-old Java" code compilation. Plain-old Java is turned off by default,
but can be turned on for all operators with a single config change: see the JIRA for info.
Consider the plain-old Java option to be experimental: very handy for debugging, perhaps not
quite tested enough for production use.
    
    One or two operators were not converted as they appear to not be used at present, so no
tests exercise them. See the JIRA for details.
    
    This fix required visiting all operators. All generated methods declare exceptions. For
plain-old Java, the based class methods must also declare exceptions. That afforded the opportunity
to fix compiler warnings about resources (our over-use of {{AutoCloseable}}), missing type
parameters, unused variables, and so on.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/paul-rogers/drill DRILL-5116

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/drill/pull/716.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #716
    
----
commit 020e75cc5a538a0271dc78b361622b64ca6c2c65
Author: Paul Rogers <progers@maprtech.com>
Date:   2016-12-13T01:30:56Z

    DRILL-5116: Enable generated code debugging in each Drill operator
    
    DRILL-5052 added the ability to debug generated code. The reviewer suggested
    permitting the technique to be used for all Drill operators. This PR provides
    the required fixes. Most were small changes, others dealt with the rather
    clever way that the existing byte-code merge converted static nested classes
    to non-static inner classes, with the way that constructors were inserted
    at the byte-code level and so on. See the JIRA for the details.
    
    This code passed the unit tests twice: once with the traditional byte-code
    manipulations, a second time using "plain-old Java" code compilation.
    Plain-old Java is turned off by default, but can be turned on for all
    operators with a single config change: see the JIRA for info. Consider
    the plain-old Java option to be experimental: very handy for debugging,
    perhaps not quite tested enough for production use.

----


> Enable generated code debugging in each Drill operator
> ------------------------------------------------------
>
>                 Key: DRILL-5116
>                 URL: https://issues.apache.org/jira/browse/DRILL-5116
>             Project: Apache Drill
>          Issue Type: Improvement
>    Affects Versions: 1.9.0
>            Reporter: Paul Rogers
>            Assignee: Paul Rogers
>            Priority: Minor
>
> DRILL-5052 adds the ability to debug generated code. Some of the code generated by Drill's
operators has minor problems when compiled directly using the new technique. These issues
are ignore by the byte-code-merge technique uses in production. This ticket asks to try the
DRILL-5052 feature in each operator, clean up any minor problems, and ensure each operator
generates code suitable for debugging. Use the new {{CodeGenerator.plainOldJavaCapable()}}
method to mark each generated class as ready for "plain-old Java" code gen.
> The advantages of this feature are two:
> 1. Ability to step through the generated code to increase understanding of existing operators
and to ease development of improvements to existing operators and of any new operators we
choose to create.
> 2. Open the door to experimenting with how to improve performance of the generated code.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message