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