On Sun, 23 Mar 2025 21:14:47 GMT, Doug Simon <dnsi...@openjdk.org> wrote:
> This PR adds `bin/sort_includes.py`, a python3 script to check that blocks of > include statements in C++ files are sorted alphabetically and that there's at > least one blank line between user and sys includes (as per the [style > guide](https://github.com/openjdk/jdk/blob/master/doc/hotspot-style.md#source-files)). > This script can also update files with unsorted includes. The second commit > in this PR shows the result of running: > > python3 ./bin/sort_includes.py ./src/hotspot > > To prevent an include being reordered, put at least one non-space character > after the closing `"` or `>`. See `src/hotspot/share/adlc/archDesc.cpp` for > an example. > > Assuming this PR is integrated, jcheck could be updated to use it to ensure > include statements remain sorted. bin/sort_includes.py line 117: > 115: for filename in filenames: > 116: file = Path(dirpath).joinpath(filename) > 117: if file.suffix in (".cpp", "hpp"): `"hpp"` -> `".hpp"` This bug explains why there are no modified `*.hpp` files in the PR. And I've discovered that blindly sorting includes in these files (especially `*.inline.hpp` files) causes building to break quickly. This is another reason for the more incremental approach I suggest at https://github.com/openjdk/jdk/pull/24180#issuecomment-2752572125 ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/24180#discussion_r2012961564