Selectively Shifting and Constraining Computation
Remi Forax
forax at univ-mlv.fr
Thu Oct 13 18:43:29 UTC 2022
----- Original Message -----
> From: "mark reinhold" <mark.reinhold at oracle.com>
> To: leyden-dev at openjdk.org
> Sent: Thursday, October 13, 2022 7:56:32 PM
> Subject: Selectively Shifting and Constraining Computation
> For a few months now I’ve been pondering, and brainstorming with a few
> of you, how best to frame the work of Project Leyden conceptually.
> Here’s my proposal:
>
> https://openjdk.org/projects/leyden/notes/02-shift-and-constrain
>
> Short summary:
>
> The goal of Project Leyden is to improve the startup time, time to
> peak performance, and footprint of Java programs. In this note we
> propose to work toward that goal by extending the Java programming
> model with features for _selectively shifting and constraining
> computation_ by means of _condensing code_. We also propose an
> initial research and development roadmap.
>
> Comments, questions, and suggestions welcome!
I will argue that moving from compile time to runtime is also a form of condensation, by example transforming an invokevirtual call to an invokedynamic allows to consider some arguments as effectively constants helping the JIT to generate better assembly code (often more compact) by delaying the linking until the actual values are seen. Here is an example of library implementing such kind of runtime macros [1].
>
> - Mark
Rémi
[1] https://github.com/forax/macro
More information about the leyden-dev
mailing list