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

Prototype CGLIB replacement (Issue 1133) #1298

Closed

Commits on Mar 13, 2020

  1. Use a weak cache to track circular proxy types.

    This avoids the need for a marker interface, which in turn reduces the need for bridge classloaders.
    Since we store bridge classloaders in a weak cache, we're effectively just trading one for another.
    mcculls committed Mar 13, 2020
    Configuration menu
    Copy the full SHA
    6612a19 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    6fb250b View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    b916ace View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    c894d61 View commit details
    Browse the repository at this point in the history
  5. Immutable space-efficient trie that provides a fast index for

    a sorted list of strings. It assumes only those strings will
    be queried and therefore may produce false-positive results
    for strings not in the list.
    
    This trie will be used in the replacement FastClass/Enhancer.
    mcculls committed Mar 13, 2020
    Configuration menu
    Copy the full SHA
    91a7ad4 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    d7f8a91 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    e9d9f59 View commit details
    Browse the repository at this point in the history
  8. Basic class definers

    mcculls committed Mar 13, 2020
    Configuration menu
    Copy the full SHA
    c5b5ebe View commit details
    Browse the repository at this point in the history
  9. Skeleton bytecode generators

    mcculls committed Mar 13, 2020
    Configuration menu
    Copy the full SHA
    9dbe269 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    d1e9767 View commit details
    Browse the repository at this point in the history
  11. Determine enhanceable methods

    mcculls committed Mar 13, 2020
    Configuration menu
    Copy the full SHA
    aee104e View commit details
    Browse the repository at this point in the history
  12. Minor cleanup

    mcculls committed Mar 13, 2020
    Configuration menu
    Copy the full SHA
    d202312 View commit details
    Browse the repository at this point in the history
  13. More cleanup

    mcculls committed Mar 13, 2020
    Configuration menu
    Copy the full SHA
    f126ecd View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    a6b0ad5 View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    c0521c9 View commit details
    Browse the repository at this point in the history
  16. Update test

    mcculls committed Mar 13, 2020
    Configuration menu
    Copy the full SHA
    5b51cc2 View commit details
    Browse the repository at this point in the history
  17. Update javadoc

    mcculls committed Mar 13, 2020
    Configuration menu
    Copy the full SHA
    6cfd827 View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    d47de13 View commit details
    Browse the repository at this point in the history
  19. Configuration menu
    Copy the full SHA
    a957f05 View commit details
    Browse the repository at this point in the history
  20. Cleanup class definers

    mcculls committed Mar 13, 2020
    Configuration menu
    Copy the full SHA
    18ea2d6 View commit details
    Browse the repository at this point in the history
  21. Cleanup method resolution

    mcculls committed Mar 13, 2020
    Configuration menu
    Copy the full SHA
    8f276c8 View commit details
    Browse the repository at this point in the history
  22. Cleanup method resolution

    mcculls committed Mar 13, 2020
    Configuration menu
    Copy the full SHA
    877c033 View commit details
    Browse the repository at this point in the history
  23. Commentary

    mcculls committed Mar 13, 2020
    Configuration menu
    Copy the full SHA
    0a430a6 View commit details
    Browse the repository at this point in the history
  24. Track original bridge methods

    mcculls committed Mar 13, 2020
    Configuration menu
    Copy the full SHA
    03ffd81 View commit details
    Browse the repository at this point in the history
  25. Bind preferred ClassDefiner

    mcculls committed Mar 13, 2020
    Configuration menu
    Copy the full SHA
    d0c9c6c View commit details
    Browse the repository at this point in the history
  26. Configuration menu
    Copy the full SHA
    e39c316 View commit details
    Browse the repository at this point in the history
  27. Add ClassDefining entry-point

    mcculls committed Mar 13, 2020
    Configuration menu
    Copy the full SHA
    150911e View commit details
    Browse the repository at this point in the history
  28. Configuration menu
    Copy the full SHA
    a177a40 View commit details
    Browse the repository at this point in the history
  29. Naming consistency

    mcculls committed Mar 13, 2020
    Configuration menu
    Copy the full SHA
    c6210dd View commit details
    Browse the repository at this point in the history
  30. Configuration menu
    Copy the full SHA
    f7d1e38 View commit details
    Browse the repository at this point in the history
  31. Configuration menu
    Copy the full SHA
    1503a32 View commit details
    Browse the repository at this point in the history
  32. Configuration menu
    Copy the full SHA
    f98d318 View commit details
    Browse the repository at this point in the history
  33. Configuration menu
    Copy the full SHA
    404d3cb View commit details
    Browse the repository at this point in the history
  34. Configuration menu
    Copy the full SHA
    e79c5cf View commit details
    Browse the repository at this point in the history
  35. Revert "Update ImmutableStringTrie to mimic generated class layout" -…

    … taking a different direction
    
    This reverts commit 0805465.
    mcculls committed Mar 13, 2020
    Configuration menu
    Copy the full SHA
    89c5b56 View commit details
    Browse the repository at this point in the history
  36. Flatten trie hierarchy

    mcculls committed Mar 13, 2020
    Configuration menu
    Copy the full SHA
    c6089c5 View commit details
    Browse the repository at this point in the history
  37. Refactor trie

    mcculls committed Mar 13, 2020
    Configuration menu
    Copy the full SHA
    6981661 View commit details
    Browse the repository at this point in the history
  38. Build trie from string array

    mcculls committed Mar 13, 2020
    Configuration menu
    Copy the full SHA
    0c95e02 View commit details
    Browse the repository at this point in the history
  39. Configuration menu
    Copy the full SHA
    ef7d60a View commit details
    Browse the repository at this point in the history
  40. Configuration menu
    Copy the full SHA
    8bdda4f View commit details
    Browse the repository at this point in the history
  41. 'ByGuice' marker strings

    mcculls committed Mar 13, 2020
    Configuration menu
    Copy the full SHA
    4f82906 View commit details
    Browse the repository at this point in the history
  42. Method naming

    mcculls committed Mar 13, 2020
    Configuration menu
    Copy the full SHA
    125fb3c View commit details
    Browse the repository at this point in the history
  43. Common glue

    mcculls committed Mar 13, 2020
    Configuration menu
    Copy the full SHA
    dec19ee View commit details
    Browse the repository at this point in the history
  44. More common glue

    mcculls committed Mar 13, 2020
    Configuration menu
    Copy the full SHA
    f2e67e4 View commit details
    Browse the repository at this point in the history
  45. Boxing/unboxing

    mcculls committed Mar 13, 2020
    Configuration menu
    Copy the full SHA
    67d6055 View commit details
    Browse the repository at this point in the history
  46. Performance tweaks

    mcculls committed Mar 13, 2020
    Configuration menu
    Copy the full SHA
    39f4139 View commit details
    Browse the repository at this point in the history
  47. Configuration menu
    Copy the full SHA
    3a6b35e View commit details
    Browse the repository at this point in the history
  48. Configuration menu
    Copy the full SHA
    2b9b9ee View commit details
    Browse the repository at this point in the history
  49. Use semicolon as separator in class-building signatures (guaranteed n…

    …ot to appear in names)
    mcculls committed Mar 13, 2020
    Configuration menu
    Copy the full SHA
    0a7de4a View commit details
    Browse the repository at this point in the history
  50. Glue exception

    mcculls committed Mar 13, 2020
    Configuration menu
    Copy the full SHA
    c5db50f View commit details
    Browse the repository at this point in the history
  51. Refactor glue lambda approach

    mcculls committed Mar 13, 2020
    Configuration menu
    Copy the full SHA
    22a1940 View commit details
    Browse the repository at this point in the history
  52. Configuration menu
    Copy the full SHA
    338fa26 View commit details
    Browse the repository at this point in the history
  53. Configuration menu
    Copy the full SHA
    5446e2d View commit details
    Browse the repository at this point in the history
  54. Configuration menu
    Copy the full SHA
    9bf7307 View commit details
    Browse the repository at this point in the history
  55. Simplify glue framework

    mcculls committed Mar 13, 2020
    Configuration menu
    Copy the full SHA
    98ad246 View commit details
    Browse the repository at this point in the history
  56. Update constructor

    mcculls committed Mar 13, 2020
    Configuration menu
    Copy the full SHA
    c279289 View commit details
    Browse the repository at this point in the history
  57. Minor performance tweak

    mcculls committed Mar 13, 2020
    Configuration menu
    Copy the full SHA
    c63c326 View commit details
    Browse the repository at this point in the history
  58. Configuration menu
    Copy the full SHA
    e3fe387 View commit details
    Browse the repository at this point in the history
  59. Configuration menu
    Copy the full SHA
    6a889ae View commit details
    Browse the repository at this point in the history
  60. Configuration menu
    Copy the full SHA
    54be06c View commit details
    Browse the repository at this point in the history
  61. Configuration menu
    Copy the full SHA
    0d95755 View commit details
    Browse the repository at this point in the history
  62. FastClass progress

    mcculls committed Mar 13, 2020
    Configuration menu
    Copy the full SHA
    b0e5aa6 View commit details
    Browse the repository at this point in the history
  63. Configuration menu
    Copy the full SHA
    da7cd43 View commit details
    Browse the repository at this point in the history
  64. Configuration menu
    Copy the full SHA
    1189618 View commit details
    Browse the repository at this point in the history
  65. Format

    mcculls committed Mar 13, 2020
    Configuration menu
    Copy the full SHA
    6b6c29f View commit details
    Browse the repository at this point in the history
  66. Simplify stack pruning

    mcculls committed Mar 13, 2020
    Configuration menu
    Copy the full SHA
    5983e53 View commit details
    Browse the repository at this point in the history
  67. Configuration menu
    Copy the full SHA
    f335751 View commit details
    Browse the repository at this point in the history
  68. Enhancer progress

    mcculls committed Mar 13, 2020
    Configuration menu
    Copy the full SHA
    85cd874 View commit details
    Browse the repository at this point in the history
  69. Collect enhanceable method candidates in same order as we'll use in the

    invoker table. That way the enhanced method and callback indices match.
    mcculls committed Mar 13, 2020
    Configuration menu
    Copy the full SHA
    bfbe367 View commit details
    Browse the repository at this point in the history
  70. ASM 7.3.1

    mcculls committed Mar 13, 2020
    Configuration menu
    Copy the full SHA
    8c757ce View commit details
    Browse the repository at this point in the history
  71. Update expectation: proxy class remains as long as host class is around.

    (note that proxy classes are lightweight and have no dependency to Guice)
    mcculls committed Mar 13, 2020
    Configuration menu
    Copy the full SHA
    3e2d2d4 View commit details
    Browse the repository at this point in the history
  72. Configuration menu
    Copy the full SHA
    e372d14 View commit details
    Browse the repository at this point in the history
  73. Configuration menu
    Copy the full SHA
    424575c View commit details
    Browse the repository at this point in the history
  74. Configuration menu
    Copy the full SHA
    20f12a5 View commit details
    Browse the repository at this point in the history
  75. Configuration menu
    Copy the full SHA
    cb6fb96 View commit details
    Browse the repository at this point in the history
  76. Configuration menu
    Copy the full SHA
    046bec3 View commit details
    Browse the repository at this point in the history
  77. Configuration menu
    Copy the full SHA
    66cdf62 View commit details
    Browse the repository at this point in the history
  78. Configuration menu
    Copy the full SHA
    59136c2 View commit details
    Browse the repository at this point in the history
  79. Configuration menu
    Copy the full SHA
    904fc8b View commit details
    Browse the repository at this point in the history

Commits on Apr 11, 2020

  1. Configuration menu
    Copy the full SHA
    4dfc507 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    429a7fd View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    91dfea7 View commit details
    Browse the repository at this point in the history
  4. Re-use local value

    mcculls committed Apr 11, 2020
    Configuration menu
    Copy the full SHA
    90d430b View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    98f5e99 View commit details
    Browse the repository at this point in the history

Commits on Apr 13, 2020

  1. Configuration menu
    Copy the full SHA
    1d3abe4 View commit details
    Browse the repository at this point in the history
  2. Support extending/mocking of any types defined by UnsafeClassDefiner

    We do this by generating small helpers and loading them in the same
    package as the host class loader. If they load successfully then we
    can access the non-public defineClass method of any class loaders
    extending that type.
    mcculls committed Apr 13, 2020
    Configuration menu
    Copy the full SHA
    3484d75 View commit details
    Browse the repository at this point in the history

Commits on Apr 14, 2020

  1. Match behaviour: only report non-bridge super-methods as enhanceable …

    …if bridge delegation is not involved
    mcculls committed Apr 14, 2020
    Configuration menu
    Copy the full SHA
    e5d4601 View commit details
    Browse the repository at this point in the history

Commits on Apr 15, 2020

  1. Match behaviour: copy method modifiers when enhancing (except native/…

    …synchronized/abstract)
    mcculls committed Apr 15, 2020
    Configuration menu
    Copy the full SHA
    8beec58 View commit details
    Browse the repository at this point in the history
  2. Bump ASM to 8.0.1

    mcculls committed Apr 15, 2020
    Configuration menu
    Copy the full SHA
    055c4fc View commit details
    Browse the repository at this point in the history

Commits on Apr 16, 2020

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

Commits on Apr 19, 2020

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

Commits on Apr 23, 2020

  1. If resolved method is final then don't report it as enhanceable.

    This fixes an edge-case involving bridges for generic return-types
    where the original bridge is not final, but the resolved target is
    final. In such cases we shouldn't report either one as enhanceable.
    
    (If we see the non-bridge method first then we will filter it out
    early on. If we see the bridge method first then we will resolve it
    to the non-bridge method and filter it out at the end.)
    mcculls committed Apr 23, 2020
    Configuration menu
    Copy the full SHA
    6f8dd8f View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    fd2c82a View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    3362a6d View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    4ea73c2 View commit details
    Browse the repository at this point in the history
  5. Improve scanning of interface methods to handle when a later declared…

    … interface extends an earlier declared interface
    mcculls committed Apr 23, 2020
    Configuration menu
    Copy the full SHA
    5acc5b3 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    20d38e8 View commit details
    Browse the repository at this point in the history
  7. Enable lambda optimization when we know the proxy is not anonymous, p…

    …lus additional javadoc
    mcculls committed Apr 23, 2020
    Configuration menu
    Copy the full SHA
    71f0658 View commit details
    Browse the repository at this point in the history
  8. javadoc

    mcculls committed Apr 23, 2020
    Configuration menu
    Copy the full SHA
    8040fc6 View commit details
    Browse the repository at this point in the history

Commits on May 6, 2020

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

Commits on May 7, 2020

  1. javadoc fixes from @markmarch

    mcculls committed May 7, 2020
    Configuration menu
    Copy the full SHA
    92e81c7 View commit details
    Browse the repository at this point in the history
  2. missing colon

    mcculls committed May 7, 2020
    Configuration menu
    Copy the full SHA
    d7c51fd View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    98c8935 View commit details
    Browse the repository at this point in the history

Commits on May 8, 2020

  1. javadoc

    mcculls committed May 8, 2020
    Configuration menu
    Copy the full SHA
    6536035 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    30d770d View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    99bcb47 View commit details
    Browse the repository at this point in the history
  4. clarify unsafe modes

    mcculls committed May 8, 2020
    Configuration menu
    Copy the full SHA
    c064987 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    acacc73 View commit details
    Browse the repository at this point in the history

Commits on May 10, 2020

  1. javadoc

    mcculls committed May 10, 2020
    Configuration menu
    Copy the full SHA
    aca4480 View commit details
    Browse the repository at this point in the history
  2. method and target will have same name, but use target.getName() for c…

    …onsistency with other args
    mcculls committed May 10, 2020
    Configuration menu
    Copy the full SHA
    24c0ce4 View commit details
    Browse the repository at this point in the history

Commits on May 11, 2020

  1. Configuration menu
    Copy the full SHA
    e193fc2 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    d0f6176 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    ef33fad View commit details
    Browse the repository at this point in the history

Commits on May 12, 2020

  1. Configuration menu
    Copy the full SHA
    f1129c3 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    5e5a2c0 View commit details
    Browse the repository at this point in the history

Commits on May 13, 2020

  1. Configuration menu
    Copy the full SHA
    fcbaadd View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    f191a0e View commit details
    Browse the repository at this point in the history
  3. Small visibility changes to allow these tests to be run with CHILD cl…

    …ass-loading
    
    Note that package visibility wrt method intercepting is tested in BytecodeGenTest
    mcculls committed May 13, 2020
    Configuration menu
    Copy the full SHA
    ebfb5f0 View commit details
    Browse the repository at this point in the history
  4. Fix canFastInvoke when using CHILD class-loading to check the class a…

    …nd method parameters are also PUBLIC
    mcculls committed May 13, 2020
    Configuration menu
    Copy the full SHA
    215c153 View commit details
    Browse the repository at this point in the history

Commits on Jun 5, 2020

  1. javadoc

    mcculls committed Jun 5, 2020
    Configuration menu
    Copy the full SHA
    852942d View commit details
    Browse the repository at this point in the history

Commits on Jun 6, 2020

  1. javadoc

    mcculls committed Jun 6, 2020
    Configuration menu
    Copy the full SHA
    6f29cde View commit details
    Browse the repository at this point in the history
  2. Clarify we're wrapping exceptions with InvocationTargetException to m…

    …atch JDK reflection behaviour
    mcculls committed Jun 6, 2020
    Configuration menu
    Copy the full SHA
    1386c48 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    774b89b View commit details
    Browse the repository at this point in the history

Commits on Jun 8, 2020

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

Commits on Jun 28, 2020

  1. Merge remote-tracking branch 'upstream/master' into issue-1133-protot…

    …ype-cglib-replacement
    mcculls committed Jun 28, 2020
    Configuration menu
    Copy the full SHA
    d8ba81b View commit details
    Browse the repository at this point in the history