-
Notifications
You must be signed in to change notification settings - Fork 82
Replace ASM code-gen with ByteBuddy in afterburner #29
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
Conversation
|
For some odd reason it seems like TravisCI is not setting up the JDK 7 tests correctly resulting in the failure to run the tests using it (while JDK 8 is working correctly). |
|
Seems like oraclejdk7 is no longer supported. |
|
Excellent! Fixing travis builds now. |
|
Ok: I am ready to commit this to I am hoping to do performance tests after merge: should not show any difference, but just want to verify. I also have some ideas for more code generation that I'd like to explore, giving me a good excuse to see how BB API works. |
|
Hi,
Glad to hear it 😀.
Of course I'll update the PR to resolve the conflicts.
I'll probably do that over the weekend.
I'll get back to you once everything is in order
…On Oct 18, 2017 08:47, "Tatu Saloranta" ***@***.***> wrote:
Ok: I am ready to commit this to master, since it's for 3.0.0 now, but
looks like there's a conflicting change unfortunately. Would it be easy
enough for you to resolve this?
I am hoping to do performance tests after merge: should not show any
difference, but just want to verify. I also have some ideas for more code
generation that I'd like to explore, giving me a good excuse to see how BB
API works.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#29 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AELBv87AfB5-xhVU2swNG-jlon9kPSs_ks5stZD8gaJpZM4PLTls>
.
|
|
@geoand excellent, thank you in advance! |
|
No problem 😀!
…On Oct 18, 2017 23:25, "Tatu Saloranta" ***@***.***> wrote:
@geoand <https://github.com/geoand> excellent, thank you in advance!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#29 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AELBv-So3D-sxHrcUug6arLfet6t4p4lks5stl7IgaJpZM4PLTls>
.
|
|
@cowtowncoder While starting work on resolving the conflicts, I am failing to build various modules from source (for example jackson-core), because I can't find the source for jackson-base. Thanks in advance for your help! |
|
@geoand Apologies for confusion: I thought I had deployed 3.0.0-SNAPSHOT of Anyway, if you locally build |
|
No problem!
Thank you for the pointers! I'll check it out and let you know if anything
comes up.
…On Oct 24, 2017 01:10, "Tatu Saloranta" ***@***.***> wrote:
@geoand <https://github.com/geoand> Apologies for confusion: jackson-base
is bit hidden: it comes from jackson-bom, which just become
multi-maven-project repo. Intent is for jackson-base to become parent pom
for Jackson component themselves, and strip down jackson-bom to be
something other projects may import or use as parent, but without getting
too much of cruft that only Jackson projects require.
I thought I had deployed 3.0.0-SNAPSHOT of jackson-base to Sonatype
snapshot repository, but perhaps this has not happened. Or maybe there's
chicken and egg problem there.
Anyway, if you locally build jackson-bom, that should to the trick.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#29 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AELBv_QNd60KOtSQVxd_HRiXvUiWpWxNks5svQ7GgaJpZM4PLTls>
.
|
6a4c4c4 to
1922e3c
Compare
|
Hi! I just rebased the PR onto master. Update |
|
@geoand Thanks: chances are failure may be due to changes in |
|
Sounds good! Thanks!
|
This PR replaces all the parts that contain ASM code-gen logic, with ByteBuddy.
I should note that while replacing the ASM code-gen code with the relevant ByteBuddy code, I tried to encapsulate the common logic and "algorithms" of the various parts into self standing classes that can be composed and reused.
Furthermore, the new code also contains a few minor changes to the generated bytecode in order to remove the following unnecessary instructions:
switchmethod. In the case of a single method/field or when theifmethod is used, the exceptions are not generated since it was impossible for control to reach them anyway.StringBuilder. This is because at the time of the bytecode creation, the whole exception message is already known.It goes without saying that I am willing to make any changes you deem necessary since I acknowledge that the surface area of the changes is rather large and that I might have missed something and/or not designed/implemented something in the optimal way.