On Tue, 8 Dec 2020 12:15:38 GMT, Alan Bateman <al...@openjdk.org> wrote:

>> Also, to clarify, for me there is a fundamental difference between 
>> `src/$MODULE` and `make/modules/$MODULE`. The former is the home of files 
>> that are part of the module, owned by the content team, and the `$MODULE` 
>> part is essential to delineate this content. The latter is owned by the 
>> build team, and is just a convenient way to organize the build system within 
>> the `make` directory. So it's clearly a no-no to put anything but `.gmk` 
>> files in `make/modules/$MODULE`.
>
> The mapping and nr tables, and the *-X.java.template files in 
> make/data/charsetmapping are used to generate source code for the java.base 
> and jdk.charsets modules. The stdcs-$OS files configure the package and 
> module that each charset go into. If the tables used to generate the source 
> files are moved to src/java.base then make/modules/jdk.charsets/Gensrc.gmk 
> will probably need a new home too.

@AlanBateman The process of modularization was not fully completed with Project 
Jigsaw, and a few ugly warts remained. I was under the impression that these 
should be addressed in follow-up fixes, but this was unfortunately never done. 
Charsets and cldrconverter were both split between a core portion in java.base 
and the rest in jdk.charsets and jdk.localedata, respectively, but the split 
was never handled properly, but just "duct taped" in place.

I chose to put the data files used for both java.base and the "additional" 
modules in java.base, based on the comment that Naoto made in 
https://mail.openjdk.java.net/pipermail/build-dev/2020-March/027044.html:

> As to charsetmapping and cldrconverter, I believe they can reside in 
java.base, as jdk.charsets and jdk.localedata modules depend on it.

Of course it would be preferable to make a proper split, but that requires work 
done by the component teams to break the modules apart.

Specifically for  make/modules/jdk.charsets/Gensrc.gmk; the code in that file 
is more or less duplicated in 
make/modules/java.base/gensrc/GensrcCharsetMapping.gmk, since the same data set 
is processed twice, once for java.base and once for jdk.charsets. I don't think 
that means that make/modules/jdk.charsets/Gensrc.gmk should move to any other 
place.

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

PR: https://git.openjdk.java.net/jdk/pull/1611

Reply via email to