Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Incremental Java compilation on public constant change #16495

Merged
merged 13 commits into from
Apr 27, 2021

Commits on Apr 18, 2021

  1. Incremental Java compilation on public constant change

    Signed-off-by: Anze Sodja <anze.36@gmail.com>
    asodja committed Apr 18, 2021
    Configuration menu
    Copy the full SHA
    965a035 View commit details
    Browse the repository at this point in the history
  2. Test fixes and optimizations

    TODO:
    * Cleanup
    
    What was done:
    * Fix groovy tests
    * Save compiler output to WorkResulit
    * Optimize constant dependent traversel by recognizing "public" and "private" constant references
    
    Signed-off-by: Anze Sodja <anze.36@gmail.com>
    asodja committed Apr 18, 2021
    Configuration menu
    Copy the full SHA
    6f48ca1 View commit details
    Browse the repository at this point in the history
  3. Cleanup code, fix additional tests, make checkstyle happy

    Signed-off-by: Anze Sodja <anze.36@gmail.com>
    asodja committed Apr 18, 2021
    Configuration menu
    Copy the full SHA
    a777edb View commit details
    Browse the repository at this point in the history
  4. Use more efficient IntSet in ConstantToDependentsMappingBuilder

    Signed-off-by: Anze Sodja <anze.36@gmail.com>
    asodja committed Apr 18, 2021
    Configuration menu
    Copy the full SHA
    2818e6a View commit details
    Browse the repository at this point in the history

Commits on Apr 19, 2021

  1. Use IntSet instead of Set<Integer>

    This commit makes sure to use `IntSet` during incremental Java compilation
    instead of `Set<Integer>`. IntSets are already used in parts of the code
    which are executed in the daemon, but it wasn't the case for  code executed
    in a compiler daemon. To make this possible the fastutil library is now
    exported to workers which require the Java compiler.
    melix committed Apr 19, 2021
    Configuration menu
    Copy the full SHA
    2e0ea3e View commit details
    Browse the repository at this point in the history
  2. Fix GroovySourceIncrementalCompilationIntegrationTest and remove cons…

    …tant dependents caches
    
    Due to Constants analysis changes GroovySourceIncrementalCompilationIntegrationTest failed.
    Additionally the cache for constant dependents in ClassSetAnalysis was removed, since
    currently there is no indication that it would be beneficial for performance.
    
    Signed-off-by: Anze Sodja <anze.36@gmail.com>
    asodja committed Apr 19, 2021
    Configuration menu
    Copy the full SHA
    d640779 View commit details
    Browse the repository at this point in the history

Commits on Apr 20, 2021

  1. Fix unintentional refactorings

    Some files were refactored unintentionally while cleaning Constant analysis implementation, this fixes it
    
    Signed-off-by: Anze Sodja <anze.36@gmail.com>
    asodja committed Apr 20, 2021
    Configuration menu
    Copy the full SHA
    e4e7f2a View commit details
    Browse the repository at this point in the history

Commits on Apr 23, 2021

  1. Temporarily ignore performance tests

    This commit temporarily disables performance tests which use the
    large monolithic java project template. This is because constant
    analysis introduces a regression in those tests which happens
    because we do more things during compilation but the project template
    isn't realistic enough to show the performance improvement in
    incremental compilation (in particular, performance templates do
    not generate any kind of constants in this case).
    
    This isn't quite accurate (more tests are likely to be flaky) but
    this should give us best chance to pass on `master` before we
    rebaseline performance tests.
    melix committed Apr 23, 2021
    Configuration menu
    Copy the full SHA
    9c27945 View commit details
    Browse the repository at this point in the history

Commits on Apr 25, 2021

  1. Remove duplicate Ignore

    melix committed Apr 25, 2021
    Configuration menu
    Copy the full SHA
    f0b8d2a View commit details
    Browse the repository at this point in the history

Commits on Apr 26, 2021

  1. Configuration menu
    Copy the full SHA
    42aa504 View commit details
    Browse the repository at this point in the history
  2. Revert "Update performance test JSON after ignoring"

    This reverts commit 42aa504.
    
    Revert "Remove duplicate Ignore"
    
    This reverts commit f0b8d2a.
    
    Revert "Temporarily ignore performance tests"
    
    This reverts commit 9c27945.
    melix committed Apr 26, 2021
    Configuration menu
    Copy the full SHA
    aaf476c View commit details
    Browse the repository at this point in the history
  3. Rebaseline performance tests

    melix committed Apr 26, 2021
    Configuration menu
    Copy the full SHA
    b843e28 View commit details
    Browse the repository at this point in the history

Commits on Apr 27, 2021

  1. Configuration menu
    Copy the full SHA
    c9c39b1 View commit details
    Browse the repository at this point in the history