[code-reflection] Integrated: Regression: compiler SPI does not work with exploded build

Maurizio Cimadamore mcimadamore at openjdk.org
Fri Nov 22 14:22:34 UTC 2024


On Thu, 21 Nov 2024 21:55:58 GMT, Maurizio Cimadamore <mcimadamore at openjdk.org> wrote:

> The recent refactoring from compiler plugin to simple SPI introduced a regression.
> With compiler plugins, the code-reflection extension was effectively loaded in two steps:
> * if the code reflection module was not available in the boot layer, then an attempt was made to load it from a fresh layer created on the fly
> * otherwise, plugins were searched in the boot layer (like for any other regular plugin)
> 
> When running in exploded mode, incubating modules are part of the boot layer, so they are loaded normally (w/o the need of an extra layer).
> Unfortunately, the recent refactoring from plugin to SPI removed the second kind of lookup, meaning that now javac will no longer look for an extension in the boot layer.
> 
> The solution is simple: javac should look in the fresh layer if it has created one (meaning the incubating module is not part of the boot layer); otherwise, it should just look for the extension in the boot layer.

This pull request has now been integrated.

Changeset: f266110c
Author:    Maurizio Cimadamore <mcimadamore at openjdk.org>
URL:       https://git.openjdk.org/babylon/commit/f266110ce1394c2a98cfe5aa01bb37a2d21a0bef
Stats:     35 lines in 2 files changed: 20 ins; 8 del; 7 mod

Regression: compiler SPI does not work with exploded build

-------------

PR: https://git.openjdk.org/babylon/pull/278


More information about the babylon-dev mailing list