On Wed, 1 Mar 2023 18:56:49 GMT, Jan Lahoda <jlah...@openjdk.org> wrote:
>> The OpenJDK build is using a Plugin called Depend to avoid building Java >> code unnecessarily. It has two parts, one is checking module APIs (and >> forces rebuild of dependent modules if a dependency changes), and second >> takes modified files in a module, and attempts to detect whether it is >> enough to recompile these files, or if the whole module must be rebuilt. >> >> There's a bug in the second part, it does not track changes in primitive >> types, so e.g. a change of a type of a public field form `int` to `long` >> does not cause recompile. >> >> This patch fixes that by visiting the primitive types, and including them in >> the hash computed for the given file. >> >> There's also another problem - if a module is being recompiled from scratch >> due to a change in a file hash, the new/updated file hashes are written >> immediately. And if the compilation consequently fails, the state is not >> compared to the original hash, but to the hash from the broken compilation, >> which may lead to missing compilation of some files. >> >> This patch moves the code to write the new hashes to the end of compilation, >> and only do that when there were no compile-time errors during the >> compilation. > > Jan Lahoda has updated the pull request incrementally with one additional > commit since the last revision: > > Adjusting DependTest, as suggested on the review looks good, thanks ------------- Marked as reviewed by vromero (Reviewer). PR: https://git.openjdk.org/jdk/pull/12801