jlink: pre-generate lambda classes
I've updated my jlink patch to pregenerate lambda classes [0] so it works with the current Leyden repo and the updated classfile api (which is awesome - check it out if you haven't yet!). Previously discussed in the "Bytecode transformation investigation" thread [1]. I'd like to push it to an experimental branch here on the leyden repo so that others can freely pick up and experiment with the code. Would that be possible? My local branch is called "pregenerate-lambdas" but any name would work for me. The patch pre-generates during jlink time classes for non-Serializable lambda expressions and uses NestMates to handle access to the private implementation method. It's a good example of the kinds of changes needed to shift runtime-generated classes to jlink time. Still lots to update but worth getting into Leyden repo so the code is shareable. Mark / Brian - is it possible to get an experimental branch on the leyden repo for this patch? --Dan [0] https://github.com/openjdk/leyden/compare/master...DanHeidinga:leyden:pregen... [1] https://mail.openjdk.org/pipermail/leyden-dev/2022-August/000055.html
Is there any mechanical impediment to pushing to an experimental branch (e.g., committer status, repo config), or are you just asking about how to coordinate work in progress? If the latter, creating experimental branches is fair game, and clear naming and communication is really the only requirement. On 6/26/2023 11:18 AM, Dan Heidinga wrote:
I've updated my jlink patch to pregenerate lambda classes [0] so it works with the current Leyden repo and the updated classfile api (which is awesome - check it out if you haven't yet!). Previously discussed in the "Bytecode transformation investigation" thread [1].
I'd like to push it to an experimental branch here on the leyden repo so that others can freely pick up and experiment with the code. Would that be possible?
My local branch is called "pregenerate-lambdas" but any name would work for me.
The patch pre-generates during jlink time classes for non-Serializable lambda expressions and uses NestMates to handle access to the private implementation method. It's a good example of the kinds of changes needed to shift runtime-generated classes to jlink time.
Still lots to update but worth getting into Leyden repo so the code is shareable.
Mark / Brian - is it possible to get an experimental branch on the leyden repo for this patch?
--Dan
[0] https://github.com/openjdk/leyden/compare/master...DanHeidinga:leyden:pregen...
[1] https://mail.openjdk.org/pipermail/leyden-dev/2022-August/000055.html
2023/6/26 12:00:29 -0400, brian.goetz@oracle.com:
Is there any mechanical impediment to pushing to an experimental branch (e.g., committer status, repo config),
The Leyden repo exists, but requires further configuration before it’s ready for use. I’ll look into it ...
or are you just asking about how to coordinate work in progress? If the latter, creating experimental branches is fair game, and clear naming and communication is really the only requirement.
Agreed. - Mark
On Mon, Jun 26, 2023 at 12:00 PM Brian Goetz <brian.goetz@oracle.com> wrote:
Is there any mechanical impediment to pushing to an experimental branch (e.g., committer status, repo config),
I don't have access / permission to create experimental branches on the leyden repo. So yes to mechanical impediment.
or are you just asking about how to coordinate work in progress? If the latter, creating experimental branches is fair game, and clear naming and communication is really the only requirement.
And even if I had access, I wanted to confirm experimental branches were OK. Not looking to step out of bounds here =) --Dan
On 6/26/2023 11:18 AM, Dan Heidinga wrote:
I've updated my jlink patch to pregenerate lambda classes [0] so it works with the current Leyden repo and the updated classfile api (which is awesome - check it out if you haven't yet!). Previously discussed in the "Bytecode transformation investigation" thread [1].
I'd like to push it to an experimental branch here on the leyden repo so that others can freely pick up and experiment with the code. Would that be possible?
My local branch is called "pregenerate-lambdas" but any name would work for me.
The patch pre-generates during jlink time classes for non-Serializable lambda expressions and uses NestMates to handle access to the private implementation method. It's a good example of the kinds of changes needed to shift runtime-generated classes to jlink time.
Still lots to update but worth getting into Leyden repo so the code is shareable.
Mark / Brian - is it possible to get an experimental branch on the leyden repo for this patch?
--Dan
[0] https://github.com/openjdk/leyden/compare/master...DanHeidinga:leyden:pregen...
[1] https://mail.openjdk.org/pipermail/leyden-dev/2022-August/000055.html
With Mark's announcement that the leyden repo is now open, I'd like to refresh this request to push the experimental jlink plugin to pregenerate lambda classes to the the repo.
If you’d like to create a new branch for collaborative prototyping work, please send a short note to this list describing its name and intended content.
Suggested branch name: pregenerate-lambdas Purpose: Share the jlink plugin and jdk changes required to pregenerate lambda classes during jlink. This branch would be an initial example of how to address some of the issues (like nestmates) when timeshifting code generation from runtime to jlink time. It's also a good starting point for further collaboration on how to best address Serializable lambdas and any other areas (Stacktrace differences,....) that may be exposed related to timeshifting code generation. --Dan On Mon, Jun 26, 2023 at 11:18 AM Dan Heidinga <heidinga@redhat.com> wrote:
I've updated my jlink patch to pregenerate lambda classes [0] so it works with the current Leyden repo and the updated classfile api (which is awesome - check it out if you haven't yet!). Previously discussed in the "Bytecode transformation investigation" thread [1].
I'd like to push it to an experimental branch here on the leyden repo so that others can freely pick up and experiment with the code. Would that be possible?
My local branch is called "pregenerate-lambdas" but any name would work for me.
The patch pre-generates during jlink time classes for non-Serializable lambda expressions and uses NestMates to handle access to the private implementation method. It's a good example of the kinds of changes needed to shift runtime-generated classes to jlink time.
Still lots to update but worth getting into Leyden repo so the code is shareable.
Mark / Brian - is it possible to get an experimental branch on the leyden repo for this patch?
--Dan
[0] https://github.com/openjdk/leyden/compare/master...DanHeidinga:leyden:pregen...
[1] https://mail.openjdk.org/pipermail/leyden-dev/2022-August/000055.html
2023/7/27 10:34:23 -0400, heidinga@redhat.com:
With Mark's announcement that the leyden repo is now open, I'd like to refresh this request to push the experimental jlink plugin to pregenerate lambda classes to the the repo.
If you’d like to create a new branch for collaborative prototyping work, please send a short note to this list describing its name and intended content.
Suggested branch name: pregenerate-lambdas Purpose: Share the jlink plugin and jdk changes required to pregenerate lambda classes during jlink. This branch would be an initial example of how to address some of the issues (like nestmates) when timeshifting code generation from runtime to jlink time. It's also a good starting point for further collaboration on how to best address Serializable lambdas and any other areas (Stacktrace differences,....) that may be exposed related to timeshifting code generation.
Dan -- thanks for your patience. No approval is needed to create a new branch, just a clear statement of name and intent. Please proceed. - Mark
participants (3)
-
Brian Goetz
-
Dan Heidinga
-
Mark Reinhold