Skip to content

Modernize#353

Merged
kaorut merged 26 commits into
mainfrom
modernize
Apr 29, 2026
Merged

Modernize#353
kaorut merged 26 commits into
mainfrom
modernize

Conversation

@kaorut
Copy link
Copy Markdown
Member

@kaorut kaorut commented Apr 26, 2026

This pull request updates the CI workflows for Linux (Clang and GCC) and Windows (Visual C++) to use newer toolchain versions, operating systems, and GitHub Actions. The main goals are to ensure compatibility with the latest environments and dependencies, improve build performance, and keep the CI process up to date.

Key changes include:

Toolchain and Dependency Updates

  • Linux (Clang): Upgraded Clang from 14 to 18, Doxygen from 1.13.2 to 1.16.1, and Boost from 1.88.0 to 1.91.0 in .github/workflows/linux-clang.yml. The OS image was updated from Ubuntu 22.04 to 24.04. [1] [2]
  • Linux (GCC): Upgraded GCC from 12 to 14 and Boost from 1.88.0 to 1.91.0 in .github/workflows/linux-gcc.yml. The OS image was updated from Ubuntu 22.04 to 24.04. [1] [2]
  • Windows (Visual C++): Upgraded Boost from 1.88.0 to 1.91.0, Visual Studio toolset from 14.3 to 14.5, and the runner from windows-2022 to windows-2025-vs2026 in .github/workflows/windows-visualcpp.yml. Added a WIX_VER environment variable for WiX Toolset.

GitHub Actions Improvements

  • Updated various GitHub Actions to newer major versions, including actions/cache (v4 → v5), actions/checkout (v4 → v6), actions/upload-artifact (v4 → v7), and microsoft/setup-msbuild (v2 → v3). [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]

Build Script and OS Adjustments

These updates ensure that the CI workflows are using the latest supported environments and dependencies, which helps maintain compatibility and security, and leverages improvements in the newer toolchains and GitHub Actions.

kaorut added 11 commits April 26, 2026 23:17
Handle clang-specific pthread handling to prevent linking issues.

- Set AX_PTHREAD_LINK_CFLAGS to PTHREAD_CFLAGS initially
- Detect clang via CXX --version and clear AX_PTHREAD_LINK_CFLAGS if PTHREAD_CFLAGS is exactly "-pthread"
- Substitute AX_PTHREAD_LINK_CFLAGS into LIBS instead of PTHREAD_CFLAGS directly
…349

Updated function prototypes and definitions across json, lattice, property, text, trie libraries and samples to include explicit void parameters for functions taking no arguments.

Improved code consistency and adherence to C coding standards.
#349

Updated compiler and Boost version requirements in Windows and Linux sections for compatibility with latest toolchains.
Update MSVC PlatformToolset to v145 across all vcxproj files for all configurations (Debug/Release, Win32/x64).

Update solution files to .slnx format and add project GUIDs for better IDE integration.
Update Doxygen configuration from 1.13.2 to 1.16.1 with new options and defaults including MARKDOWN_STRICT, GENERATE_REQUIREMENTS, REQ_TRACEABILITY_INFO, PAGE_OUTLINE_PANEL, UML_MAX_EDGE_LABELS, and increased thread limits for better documentation generation and HTML layout.
Updated spacing in multiple test files for consistency:
- library/lattice/test/src/test_tetengo.lattice.vocabulary.cpp
- library/trie/test/src/test_tetengo.trie.memory_storage.cpp
- library/trie/test/src/test_tetengo.trie.mmap_storage.cpp
- library/trie/test/src/test_tetengo.trie.shared_storage.cpp
- library/trie/test/src/test_tetengo.trie.trie.cpp
- library/trie/test/src/test_tetengo.trie.value_serializer.cpp

Also updated kogyan submodule and fixed minor indentation/formatting
in Python installer scripts.

For consistency with project coding standards.


Modernize the kogyan submodule as part of dependency updates (#349)
Remove unnecessary #include directives throughout the codebase.
Add IWYU pragma: keep comments to explicitly retained includes.
Reorder includes for consistency.

JSON: remove <vector> from channel.cpp; add file_location.hpp to json_parser.cpp
Lattice: remove <algorithm> from C++ files and tests; reorder headers
Property: remove <filesystem> from memory_storage.hpp; add includes where needed
Text: remove <map>, <sstream>, <vector>, <memory> from tests; add IWYU pragmas
Trie: remove <any> from storage headers; add missing includes
Moved <filesystem> include after C headers in storage_proxy test and reordered Boost headers in trie files.

Update kogyan submodule and minor include adjustments in trie iterator.

Modernize dependencies per #349.
Updated Visual Studio to 2026, WiX to 7.0.0, Python to 3.12, and Doxygen to 1.16.1 for Windows. Updated Doxygen to 1.16.1 and Python to 3.12 for Linux. Simplified include-what-you-use and Clang Format entries to latest versions. Updated copyright year range to 2019-2026.
Upgrade to modern toolchains and libraries for improved compatibility and performance.

Linux-Clang:
- Ubuntu 22.04 → 24.04
- Clang 14 → 18
- Doxygen 1.13.2 → 1.16.1
- Boost 1.88.0 → 1.91.0

Linux-GCC:
- Ubuntu 22.04 → 24.04
- GCC 12 → 14
- Boost 1.88.0 → 1.91.0

Windows-VisualCpp:
- windows-2022 → windows-2025-vs2026
- Boost 1.88.0 → 1.91.0 (msvc-14.3 → msvc-14.5)
- WiX 6.0.0 → 7.0.0
@kaorut kaorut added this to the 1.9.0 milestone Apr 26, 2026
@kaorut kaorut self-assigned this Apr 26, 2026
Copilot AI review requested due to automatic review settings April 26, 2026 16:14
@kaorut kaorut added task-enhancement New feature or request v1.9.0 labels Apr 26, 2026
@kaorut kaorut linked an issue Apr 26, 2026 that may be closed by this pull request
7 tasks
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the project/tooling baseline (VS/Boost/Doxygen/compilers), modernizes some C APIs to use explicit (void) for no-arg functions, and applies include cleanups/adjustments (incl. IWYU-oriented changes). It also replaces legacy Visual Studio .sln solution files with new .slnx equivalents.

Changes:

  • Replace tetengo.sln / tetengo.setup.sln with .slnx solution files and bump MSVC toolset in multiple .vcxproj files.
  • Update CI/workflows and documentation requirements for newer Boost/Doxygen/compiler versions.
  • Apply source/header updates: add/remove includes, add IWYU pragmas, and modernize C function prototypes to (void).

Reviewed changes

Copilot reviewed 108 out of 116 changed files in this pull request and generated 11 comments.

Show a summary per file
File Description
tool/make_character_property_map_cpp.py Docstring formatting tweak.
tool/make_character_property_map.py Docstring formatting tweak.
tetengo.slnx New XML-based solution definition.
tetengo.sln Removed legacy VS solution file.
tetengo.setup.slnx New XML-based setup solution definition.
tetengo.setup.sln Removed legacy setup solution file.
setup/installer/installer.vcxproj Bump MSVC toolset version.
setup/installer/generate_content_wxs_source.py Docstring formatting tweak.
setup/installer/generate_content_wxs.py Docstring formatting tweak.
setup/installer/copy_libimage_files.py Docstring formatting tweak.
sample/transfer_trains/transfer_trains.vcxproj Bump MSVC toolset version.
sample/transfer_trains/src/timetable.cpp Include adjustments.
sample/transfer_trains/src/main.cpp Include adjustments.
sample/search_dict_c/src/main.c Use (void) in no-arg function.
sample/search_dict_c/search_dict_c.vcxproj Bump MSVC toolset version.
sample/search_dict/search_dict.vcxproj Bump MSVC toolset version.
sample/make_dict/make_dict.vcxproj Bump MSVC toolset version.
sample/json2timetable/src/printStationTimetable.c Use (void) in no-arg function.
sample/json2timetable/src/encode.c Use (void) in no-arg function.
sample/json2timetable/json2timetable.vcxproj Bump MSVC toolset version.
library/trie/test/test_tetengo.trie.vcxproj Bump MSVC toolset version.
library/trie/test/src/usage_tetengo.trie.search_cpp.cpp Include adjustments.
library/trie/test/src/usage_tetengo.trie.search_c.h Use (void) in no-arg function declaration.
library/trie/test/src/usage_tetengo.trie.search_c.c Use (void) in no-arg function definition.
library/trie/test/src/test_tetengo.trie.value_serializer.cpp Formatting/line wrapping changes.
library/trie/test/src/test_tetengo.trie.trie.cpp Formatting + minor identifier spacing fix.
library/trie/test/src/test_tetengo.trie.shared_storage.cpp Spacing fix in local static identifier.
library/trie/test/src/test_tetengo.trie.mmap_storage.cpp Include adjustments + spacing fixes.
library/trie/test/src/test_tetengo.trie.memory_storage.cpp Spacing fix in local static identifier.
library/trie/cpp/tetengo.trie.cpp.vcxproj Bump MSVC toolset version.
library/trie/cpp/src/tetengo.trie.mmap_storage.cpp Include adjustments.
library/trie/cpp/src/tetengo.trie.double_array_iterator.cpp Include cleanup.
library/trie/cpp/src/tetengo.trie.double_array_builder.hpp Add IWYU keep include.
library/trie/cpp/include/tetengo/trie/trie.hpp IWYU keep + serializer template signature change.
library/trie/cpp/include/tetengo/trie/shared_storage.hpp Include/forward-decl cleanup.
library/trie/cpp/include/tetengo/trie/mmap_storage.hpp Include cleanup.
library/trie/cpp/include/tetengo/trie/memory_storage.hpp Include/forward-decl cleanup.
library/trie/cpp/include/tetengo/trie/double_array.hpp Forward-declare iterator instead of including header.
library/trie/c/tetengo.trie.vcxproj Bump MSVC toolset version.
library/trie/c/src/tetengo_trie_trieIterator.cpp Include adjustments.
library/trie/c/src/tetengo_trie_trie.hpp Add IWYU keep include.
library/trie/c/src/tetengo_trie_trie.cpp Include adjustments.
library/trie/c/include/tetengo/trie/storage.h Use (void) in no-arg function declaration.
library/text/test/test_tetengo.text.vcxproj Bump MSVC toolset version.
library/text/test/src/usage_tetengo.text.grapheme_split_cpp.cpp Include cleanup.
library/text/test/src/usage_tetengo.text.graphemeSplit_c.h Use (void) in no-arg function declaration.
library/text/test/src/usage_tetengo.text.graphemeSplit_c.c Use (void) in no-arg functions.
library/text/test/src/usage_tetengo.text.encoding_c.h Use (void) in no-arg function declaration.
library/text/test/src/usage_tetengo.text.encoding_c.c Use (void) in no-arg function definition.
library/text/test/src/test_tetengo.text.grapheme_splitter.cpp Include cleanup.
library/text/test/src/test_tetengo.text.encoding.cp932.cpp Include cleanup.
library/text/test/src/test_tetengo.text.encoder.cpp Include cleanup.
library/text/cpp/tetengo.text.cpp.vcxproj Bump MSVC toolset version.
library/text/cpp/src/tetengo.text.grapheme_splitting.east_asian_character_X.cpp Include cleanup.
library/text/cpp/src/tetengo.text.grapheme_splitting.default_character_widX.cpp Include cleanup.
library/text/cpp/src/tetengo.text.encoding.utf16.cpp Add missing standard include.
library/text/cpp/src/tetengo.text.encoding.cp932.cpp Add missing standard include.
library/text/c/tetengo.text.vcxproj Bump MSVC toolset version.
library/text/c/src/tetengo_text_encoder.cpp Include cleanup.
library/text/c/include/tetengo/text/graphemeSplitter.h Use (void) in no-arg function declaration.
library/property/test/test_tetengo.property.vcxproj Bump MSVC toolset version.
library/property/test/src/usage_tetengo.property.saveLoad_c.h Use (void) in no-arg function declaration.
library/property/test/src/usage_tetengo.property.saveLoad_c.c Use (void) in no-arg functions.
library/property/test/src/test_tetengo.property.storage_proxy.cpp Add missing standard include.
library/property/cpp/tetengo.property.cpp.vcxproj Bump MSVC toolset version.
library/property/cpp/src/tetengo.property.json_parser.cpp Include cleanup.
library/property/cpp/src/tetengo.property.file_storage.cpp Add missing standard include.
library/property/cpp/include/tetengo/property/storage_proxy.hpp Include cleanup.
library/property/cpp/include/tetengo/property/memory_storage.hpp Include cleanup.
library/property/c/tetengo.property.vcxproj Bump MSVC toolset version.
library/property/c/src/tetengo_property_storage.cpp Add missing standard include.
library/property/c/src/tetengo_property_propertySet.cpp Add missing standard include.
library/property/c/include/tetengo/property/storage.h Use (void) in no-arg function declarations.
library/platform_dependent/test/test_tetengo.platform_dependent.vcxproj Bump MSVC toolset version.
library/platform_dependent/test/src/test_tetengo.platform_dependent.text_eX.cpp Include cleanup.
library/platform_dependent/cpp/tetengo.platform_dependent.cpp.vcxproj Bump MSVC toolset version.
library/lattice/test/test_tetengo.lattice.vcxproj Bump MSVC toolset version.
library/lattice/test/src/usage_tetengo.lattice.viterbi_cpp.cpp Add missing standard include.
library/lattice/test/src/usage_tetengo.lattice.viterbi_c.h Use (void) in no-arg function declaration.
library/lattice/test/src/usage_tetengo.lattice.viterbi_c.c Use (void) in no-arg functions + include cleanup.
library/lattice/test/src/test_tetengo.lattice.vocabulary.cpp Formatting/include cleanup.
library/lattice/test/src/test_tetengo.lattice.n_best_iterator.cpp Include cleanup.
library/lattice/test/src/test_tetengo.lattice.lattice.cpp Include cleanup.
library/lattice/test/src/test_tetengo.lattice.custom_vocabulary.cpp Include cleanup.
library/lattice/test/src/test_tetengo.lattice.custom_input.cpp Include cleanup.
library/lattice/cpp/tetengo.lattice.cpp.vcxproj Bump MSVC toolset version.
library/lattice/cpp/src/tetengo.lattice.vocabulary.cpp Add IWYU keep include.
library/lattice/cpp/src/tetengo.lattice.unordered_map_vocabulary.cpp Include cleanup.
library/lattice/cpp/src/tetengo.lattice.path.cpp Add IWYU keep include.
library/lattice/cpp/include/tetengo/lattice/wildcard_constraint_element.hpp Forward-decl cleanup.
library/lattice/cpp/include/tetengo/lattice/vocabulary.hpp Replace include with forward decls.
library/lattice/cpp/include/tetengo/lattice/unordered_map_vocabulary.hpp Replace include with forward decls.
library/lattice/cpp/include/tetengo/lattice/path.hpp Add IWYU keep include.
library/lattice/c/tetengo.lattice.vcxproj Bump MSVC toolset version.
library/lattice/c/src/tetengo_lattice_vocabulary.cpp Include cleanup.
library/lattice/c/src/tetengo_lattice_nBestIterator.cpp Include cleanup.
library/lattice/c/include/tetengo/lattice/path.h Use (void) in no-arg function declaration.
library/lattice/c/include/tetengo/lattice/entry.h Use (void) in no-arg function declaration.
library/lattice/c/include/tetengo/lattice/constraint.h Use (void) in no-arg function declaration.
library/json/test/test_tetengo.json.vcxproj Bump MSVC toolset version.
library/json/test/src/usage_tetengo.json.parsing_c.h Use (void) in no-arg function declaration.
library/json/test/src/usage_tetengo.json.parsing_c.c Use (void) in no-arg function definition.
library/json/cpp/tetengo.json.cpp.vcxproj Bump MSVC toolset version.
library/json/cpp/src/tetengo.json.json_parser.cpp Add missing project include.
library/json/cpp/src/tetengo.json.channel.cpp Include cleanup.
library/json/c/tetengo.json.vcxproj Bump MSVC toolset version.
library/json/c/include/tetengo/json/reader.h Use (void) in no-arg function declaration.
library/json/c/include/tetengo/json/element.h Use (void) in no-arg function declarations.
executable/setup/setup.vcxproj Bump MSVC toolset version.
configure.ac Adjust pthread flag/link handling.
README.md Update documented toolchain requirements.
Doxyfile Update Doxygen configuration to 1.16.1.
.github/workflows/windows-visualcpp.yml Update Windows CI toolchain versions/runner.
.github/workflows/linux-gcc.yml Update GCC/Boost versions and Ubuntu image.
.github/workflows/linux-clang.yml Update Clang/Doxygen/Boost versions and Ubuntu image.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/workflows/windows-visualcpp.yml
Comment thread README.md
Comment thread sample/transfer_trains/src/timetable.cpp
Comment thread sample/transfer_trains/src/main.cpp
Comment thread library/trie/cpp/src/tetengo.trie.mmap_storage.cpp
Comment thread library/lattice/cpp/include/tetengo/lattice/vocabulary.hpp
Comment thread configure.ac
Comment thread library/trie/cpp/include/tetengo/trie/double_array.hpp
Comment thread library/trie/c/src/tetengo_trie_trie.cpp Outdated
kaorut added 8 commits April 27, 2026 01:26
…kflow #349

Update msbuild commands in GitHub Actions workflow, Makefile.am EXTRA_DIST, README.md instructions, and nmake Makefile to reference tetengo.slnx and tetengo.setup.slnx instead of .sln files.

Add wix7 EULA acceptance flags to WiX commands for WiX 7.0.0 compatibility.
Updated all actions/cache@v4 to actions/cache@v5 across Linux Clang, Linux GCC, and Windows Visual C++ workflows.

Improved cache reliability and performance with latest cache action version.
Add IWYU pragma comments to retained Boost headers across trie library and sample code.

Maintains include-what-you-use compliance while preserving necessary Boost headers for modern dependency support.
Added IWYU pragma: keep comments to explicitly retained headers across multiple files including json, lattice, property, text, and trie libraries.

Updated include paths for consistency.
Added missing IWYU pragma keep includes for forward declarations in lattice and trie headers.
Modernize dependencies per #349.

Include <algorithm> with IWYU pragma: keep in lattice test files and trie header to support std::accumulate, std::next, std::make_move_iterator, and other algorithms. Add IWYU pragma to existing default_serializer forward declaration.
Update checkout from v4 to v6, upload-artifact from v4 to v7, and setup-msbuild from v2 to v3 across Linux Clang, Linux GCC, and Windows Visual C++ workflows.

Supports modernization of CI dependencies for improved reliability and security.
Use environment variable ${{ env.WIX_VER }} instead of hardcoded version in WiX installation steps for both Win32 and x64 archive jobs.

Add WIX_OSMF_EULA_AGREEMENT: 1 environment variable to automatically accept the EULA during WiX installation.

Improves consistency and maintainability by centralizing WiX version management.
Replaces deprecated WIX_OSMF_EULA_AGREEMENT environment variable with explicit wix eula accept wix7 command in archive jobs for Win32 and x64.

Supports WiX 7.0.0 modernization (#349).
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR modernizes the project’s build/tooling stack across Windows and Linux by updating toolchain requirements, CI workflows, Visual Studio solution format, and a broad set of include/cleanup changes intended to align with IWYU and newer compilers.

Changes:

  • Replace legacy Visual Studio .sln solution files with new .slnx equivalents and update docs/build scripts accordingly.
  • Update CI workflows and build assets for newer Boost / compiler / WiX / Doxygen versions, plus toolchain settings in many .vcxproj files.
  • Apply widespread “modernization” refactors: IWYU-related include adjustments, C “no-args” function signatures changed to (void), and minor formatting cleanups in tests/sources.

Reviewed changes

Copilot reviewed 120 out of 128 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
tool/make_character_property_map_cpp.py Docstring header formatting tweak
tool/make_character_property_map.py Docstring header formatting tweak
tetengo.slnx New VS solution definition (slnx)
tetengo.sln Remove legacy VS solution (sln)
tetengo.setup.slnx New setup solution (slnx)
tetengo.setup.sln Remove legacy setup solution (sln)
setup/installer/installer.vcxproj Update MSVC platform toolset
setup/installer/generate_content_wxs_source.py Docstring header formatting tweak
setup/installer/generate_content_wxs.py Docstring header formatting tweak
setup/installer/copy_libimage_files.py Docstring header formatting tweak
setup/installer/Makefile.nmake Update WiX CLI invocation flags
sample/transfer_trains/transfer_trains.vcxproj Update MSVC platform toolset
sample/transfer_trains/src/timetable.cpp Include/IWYU-related include changes
sample/transfer_trains/src/main.cpp Include/IWYU-related include changes
sample/search_dict_c/src/main.c C function signature (void) cleanup
sample/search_dict_c/search_dict_c.vcxproj Update MSVC platform toolset
sample/search_dict/search_dict.vcxproj Update MSVC platform toolset
sample/make_dict/make_dict.vcxproj Update MSVC platform toolset
sample/json2timetable/src/printStationTimetable.c C function signature (void) cleanup
sample/json2timetable/src/encode.c C function signature (void) cleanup
sample/json2timetable/json2timetable.vcxproj Update MSVC platform toolset
library/trie/test/test_tetengo.trie.vcxproj Update MSVC platform toolset
library/trie/test/src/usage_tetengo.trie.search_cpp.cpp Include/IWYU-related include changes
library/trie/test/src/usage_tetengo.trie.search_c.h C header prototype (void) cleanup
library/trie/test/src/usage_tetengo.trie.search_c.c C function signature (void) cleanup
library/trie/test/src/test_tetengo.trie.value_serializer.cpp Formatting/brace simplification in tests
library/trie/test/src/test_tetengo.trie.trie.cpp Minor formatting fixes / spacing
library/trie/test/src/test_tetengo.trie.shared_storage.cpp Minor formatting fixes / spacing
library/trie/test/src/test_tetengo.trie.mmap_storage.cpp Include cleanup + spacing tweaks
library/trie/test/src/test_tetengo.trie.memory_storage.cpp Minor formatting fixes / spacing
library/trie/cpp/tetengo.trie.cpp.vcxproj Update MSVC platform toolset
library/trie/cpp/src/tetengo.trie.mmap_storage.cpp Include/IWYU-related include changes
library/trie/cpp/src/tetengo.trie.double_array_iterator.cpp Remove unused include
library/trie/cpp/src/tetengo.trie.double_array_builder.hpp Add IWYU keep include
library/trie/cpp/include/tetengo/trie/trie.hpp Default serializer template param modernization
library/trie/cpp/include/tetengo/trie/shared_storage.hpp IWYU keep markers / fwd decl tweaks
library/trie/cpp/include/tetengo/trie/mmap_storage.hpp IWYU keep markers
library/trie/cpp/include/tetengo/trie/memory_storage.hpp IWYU keep markers / fwd decl tweaks
library/trie/cpp/include/tetengo/trie/double_array.hpp Replace include with forward declaration
library/trie/c/tetengo.trie.vcxproj Update MSVC platform toolset
library/trie/c/src/tetengo_trie_trieIterator.cpp Include/IWYU-related include changes
library/trie/c/src/tetengo_trie_trie.hpp Add IWYU keep include
library/trie/c/src/tetengo_trie_trie.cpp Include/IWYU-related include changes
library/trie/c/include/tetengo/trie/storage.h C API signature (void) cleanup
library/text/test/test_tetengo.text.vcxproj Update MSVC platform toolset
library/text/test/src/usage_tetengo.text.grapheme_split_cpp.cpp Remove unused include
library/text/test/src/usage_tetengo.text.graphemeSplit_c.h C header prototype (void) cleanup
library/text/test/src/usage_tetengo.text.graphemeSplit_c.c C function signature (void) cleanup
library/text/test/src/usage_tetengo.text.encoding_c.h C header prototype (void) cleanup
library/text/test/src/usage_tetengo.text.encoding_c.c C function signature (void) cleanup
library/text/test/src/test_tetengo.text.grapheme_splitter.cpp Remove unused include
library/text/test/src/test_tetengo.text.encoding.cp932.cpp Remove unused includes
library/text/test/src/test_tetengo.text.encoder.cpp Remove unused includes
library/text/cpp/tetengo.text.cpp.vcxproj Update MSVC platform toolset
library/text/cpp/src/tetengo.text.grapheme_splitting.east_asian_character_X.cpp Include cleanup
library/text/cpp/src/tetengo.text.grapheme_splitting.default_character_widX.cpp Include cleanup
library/text/cpp/src/tetengo.text.encoding.utf16.cpp Add missing standard include
library/text/cpp/src/tetengo.text.encoding.cp932.cpp Add IWYU keep include
library/text/c/tetengo.text.vcxproj Update MSVC platform toolset
library/text/c/src/tetengo_text_encoder.cpp IWYU keep include adjustment
library/text/c/include/tetengo/text/graphemeSplitter.h C API signature (void) cleanup
library/property/test/test_tetengo.property.vcxproj Update MSVC platform toolset
library/property/test/src/usage_tetengo.property.saveLoad_c.h C header prototype (void) cleanup
library/property/test/src/usage_tetengo.property.saveLoad_c.c C function signature (void) cleanup
library/property/test/src/test_tetengo.property.storage_proxy.cpp Add missing standard include
library/property/test/src/test_tetengo.property.storage.cpp IWYU keep include adjustment
library/property/test/src/test_tetengo.property.property_set.cpp IWYU keep include adjustment
library/property/test/src/test_tetengo.property.memory_storage.cpp IWYU keep include adjustment
library/property/cpp/tetengo.property.cpp.vcxproj Update MSVC platform toolset
library/property/cpp/src/tetengo.property.json_parser.cpp Include cleanup + IWYU keep include
library/property/cpp/src/tetengo.property.file_storage.cpp Add IWYU keep include
library/property/cpp/include/tetengo/property/storage_proxy.hpp IWYU keep include adjustment
library/property/cpp/include/tetengo/property/memory_storage.hpp IWYU keep include adjustment
library/property/c/tetengo.property.vcxproj Update MSVC platform toolset
library/property/c/src/tetengo_property_storage.cpp Add missing standard include
library/property/c/src/tetengo_property_propertySet.cpp Add missing standard include
library/property/c/include/tetengo/property/storage.h C API signatures (void) cleanup
library/platform_dependent/test/test_tetengo.platform_dependent.vcxproj Update MSVC platform toolset
library/platform_dependent/test/src/test_tetengo.platform_dependent.text_eX.cpp Remove unused includes
library/platform_dependent/cpp/tetengo.platform_dependent.cpp.vcxproj Update MSVC platform toolset
library/lattice/test/test_tetengo.lattice.vcxproj Update MSVC platform toolset
library/lattice/test/src/usage_tetengo.lattice.viterbi_cpp.cpp Add missing standard include
library/lattice/test/src/usage_tetengo.lattice.viterbi_c.h C header prototype (void) cleanup
library/lattice/test/src/usage_tetengo.lattice.viterbi_c.c C function signature (void) cleanup
library/lattice/test/src/test_tetengo.lattice.wildcard_constraint_element.cpp IWYU keep include adjustment
library/lattice/test/src/test_tetengo.lattice.vocabulary.cpp Formatting cleanup / remove unused include
library/lattice/test/src/test_tetengo.lattice.path.cpp IWYU keep include adjustment
library/lattice/test/src/test_tetengo.lattice.node_constraint_element.cpp IWYU keep include adjustment
library/lattice/test/src/test_tetengo.lattice.n_best_iterator.cpp IWYU keep include adjustment
library/lattice/test/src/test_tetengo.lattice.lattice.cpp IWYU keep include adjustments
library/lattice/test/src/test_tetengo.lattice.custom_vocabulary.cpp Remove unused include
library/lattice/test/src/test_tetengo.lattice.custom_input.cpp IWYU keep include adjustment
library/lattice/test/src/test_tetengo.lattice.constraint_element.cpp IWYU keep include adjustment
library/lattice/test/src/test_tetengo.lattice.constraint.cpp IWYU keep include adjustment
library/lattice/cpp/tetengo.lattice.cpp.vcxproj Update MSVC platform toolset
library/lattice/cpp/src/tetengo.lattice.vocabulary.cpp IWYU keep include adjustment
library/lattice/cpp/src/tetengo.lattice.unordered_map_vocabulary.cpp Include cleanup
library/lattice/cpp/src/tetengo.lattice.path.cpp IWYU keep include adjustment
library/lattice/cpp/include/tetengo/lattice/wildcard_constraint_element.hpp IWYU keep forward decl
library/lattice/cpp/include/tetengo/lattice/vocabulary.hpp Include removal + forward declares
library/lattice/cpp/include/tetengo/lattice/unordered_map_vocabulary.hpp Include removal + forward declares
library/lattice/cpp/include/tetengo/lattice/path.hpp IWYU keep include adjustment
library/lattice/c/tetengo.lattice.vcxproj Update MSVC platform toolset
library/lattice/c/src/tetengo_lattice_vocabulary.cpp Include cleanup + IWYU keep include
library/lattice/c/src/tetengo_lattice_nBestIterator.cpp IWYU keep include adjustment
library/lattice/c/src/tetengo_lattice_input.cpp IWYU keep include adjustment
library/lattice/c/include/tetengo/lattice/path.h C API signature (void) cleanup
library/lattice/c/include/tetengo/lattice/entry.h C API signature (void) cleanup
library/lattice/c/include/tetengo/lattice/constraint.h C API signature (void) cleanup
library/json/test/test_tetengo.json.vcxproj Update MSVC platform toolset
library/json/test/src/usage_tetengo.json.parsing_c.h C header prototype (void) cleanup
library/json/test/src/usage_tetengo.json.parsing_c.c C function signature (void) cleanup
library/json/cpp/tetengo.json.cpp.vcxproj Update MSVC platform toolset
library/json/cpp/src/tetengo.json.json_parser.cpp Add IWYU keep include
library/json/cpp/src/tetengo.json.channel.cpp Remove unused include
library/json/c/tetengo.json.vcxproj Update MSVC platform toolset
library/json/c/src/tetengo_json_reader.cpp IWYU keep include adjustment
library/json/c/include/tetengo/json/reader.h C API signature (void) cleanup
library/json/c/include/tetengo/json/element.h C API signatures (void) cleanup
executable/setup/setup.vcxproj Update MSVC platform toolset
configure.ac Adjust pthread flags substitution logic
README.md Update toolchain + slnx instructions
Makefile.am Distribute .slnx instead of .sln
Doxyfile Update Doxygen config (v1.16.1)
.github/workflows/windows-visualcpp.yml Update Windows CI toolchain + slnx
.github/workflows/linux-gcc.yml Update GCC/Ubuntu/Boost in CI
.github/workflows/linux-clang.yml Update Clang/Ubuntu/Boost/Doxygen CI

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread sample/transfer_trains/src/timetable.cpp
Comment thread sample/transfer_trains/src/main.cpp
Comment thread library/trie/cpp/src/tetengo.trie.mmap_storage.cpp
Comment thread library/trie/c/src/tetengo_trie_trieIterator.cpp
Comment thread library/lattice/cpp/include/tetengo/lattice/vocabulary.hpp
Move #include "tetengo/json/file_location.hpp" after other tetengo/json includes in json_parser.cpp for correct IWYU ordering.

Reorder #include <any> after <algorithm> in n_best_iterator test and other files.

Remove unused boost headers from trie and sample files.

Update kogyan submodule to new commit.
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

Updates the build/tooling stack and source formatting as part of a broad “modernization” effort, including migrating Visual Studio solution metadata, bumping build dependencies, and applying IWYU and C API signature cleanups.

Changes:

  • Replace legacy .sln solution files with new XML-based .slnx files and update build scripts/docs accordingly.
  • Update Windows/MSVC toolset settings and CI workflows (Boost, compilers, action versions, runners, WiX).
  • Apply IWYU-related include adjustments and standardize C function prototypes to (void).

Reviewed changes

Copilot reviewed 118 out of 126 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
tool/make_character_property_map_cpp.py Adjust docstring copyright line formatting.
tool/make_character_property_map.py Adjust docstring copyright line formatting.
tetengo.slnx Add new XML-based Visual Studio solution definition.
tetengo.sln Remove legacy Visual Studio solution file.
tetengo.setup.slnx Add new XML-based setup solution definition.
tetengo.setup.sln Remove legacy setup solution file.
setup/installer/installer.vcxproj Bump MSVC platform toolset version.
setup/installer/generate_content_wxs_source.py Adjust docstring copyright line formatting.
setup/installer/generate_content_wxs.py Adjust docstring copyright line formatting.
setup/installer/copy_libimage_files.py Adjust docstring copyright line formatting.
setup/installer/Makefile.nmake Update WiX CLI invocation flags/commands.
sample/transfer_trains/transfer_trains.vcxproj Bump MSVC platform toolset version.
sample/transfer_trains/src/timetable.cpp Add IWYU-kept include.
sample/search_dict_c/src/main.c Use (void) in no-arg function prototype/definition.
sample/search_dict_c/search_dict_c.vcxproj Bump MSVC platform toolset version.
sample/search_dict/search_dict.vcxproj Bump MSVC platform toolset version.
sample/make_dict/make_dict.vcxproj Bump MSVC platform toolset version.
sample/json2timetable/src/printStationTimetable.c Use (void) in no-arg function prototype/definition.
sample/json2timetable/src/encode.c Use (void) in no-arg function prototype/definition.
sample/json2timetable/json2timetable.vcxproj Bump MSVC platform toolset version.
library/trie/test/test_tetengo.trie.vcxproj Bump MSVC platform toolset version.
library/trie/test/src/usage_tetengo.trie.search_cpp.cpp Add IWYU-kept include.
library/trie/test/src/usage_tetengo.trie.search_c.h Use (void) in no-arg function declaration.
library/trie/test/src/usage_tetengo.trie.search_c.c Use (void) in no-arg function definition.
library/trie/test/src/test_tetengo.trie.value_serializer.cpp Compress trivial lambda formatting.
library/trie/test/src/test_tetengo.trie.trie.cpp Minor formatting cleanup and fix missing space in identifier.
library/trie/test/src/test_tetengo.trie.shared_storage.cpp Fix missing space in identifier.
library/trie/test/src/test_tetengo.trie.mmap_storage.cpp Adjust includes and fix missing space in identifier.
library/trie/test/src/test_tetengo.trie.memory_storage.cpp Fix missing space in identifier.
library/trie/cpp/tetengo.trie.cpp.vcxproj Bump MSVC platform toolset version.
library/trie/cpp/src/tetengo.trie.mmap_storage.cpp Remove unused include.
library/trie/cpp/src/tetengo.trie.double_array_iterator.cpp Remove unused include.
library/trie/cpp/src/tetengo.trie.double_array_builder.hpp Add IWYU-kept include.
library/trie/cpp/include/tetengo/trie/trie.hpp Adjust serializer template usage and add IWYU hints/forward decls.
library/trie/cpp/include/tetengo/trie/shared_storage.hpp Add IWYU keep markers and forward decl marker.
library/trie/cpp/include/tetengo/trie/mmap_storage.hpp Add IWYU keep marker.
library/trie/cpp/include/tetengo/trie/memory_storage.hpp Add IWYU keep markers and forward decl marker.
library/trie/cpp/include/tetengo/trie/double_array.hpp Replace include with forward declaration.
library/trie/c/tetengo.trie.vcxproj Bump MSVC platform toolset version.
library/trie/c/src/tetengo_trie_trieIterator.cpp Add missing standard include.
library/trie/c/src/tetengo_trie_trie.hpp Add IWYU-kept include.
library/trie/c/include/tetengo/trie/storage.h Use (void) in no-arg function declaration.
library/text/test/test_tetengo.text.vcxproj Bump MSVC platform toolset version.
library/text/test/src/usage_tetengo.text.grapheme_split_cpp.cpp Remove unused include.
library/text/test/src/usage_tetengo.text.graphemeSplit_c.h Use (void) in no-arg function declaration.
library/text/test/src/usage_tetengo.text.graphemeSplit_c.c Use (void) in no-arg function declarations/definitions.
library/text/test/src/usage_tetengo.text.encoding_c.h Use (void) in no-arg function declaration.
library/text/test/src/usage_tetengo.text.encoding_c.c Use (void) in no-arg function definition.
library/text/test/src/test_tetengo.text.grapheme_splitter.cpp Remove unused include.
library/text/test/src/test_tetengo.text.encoding.cp932.cpp Remove unused includes.
library/text/test/src/test_tetengo.text.encoder.cpp Remove unused includes.
library/text/cpp/tetengo.text.cpp.vcxproj Bump MSVC platform toolset version.
library/text/cpp/src/tetengo.text.grapheme_splitting.east_asian_character_X.cpp Remove unused include.
library/text/cpp/src/tetengo.text.grapheme_splitting.default_character_widX.cpp Remove unused include.
library/text/cpp/src/tetengo.text.encoding.utf16.cpp Add missing standard include.
library/text/cpp/src/tetengo.text.encoding.cp932.cpp Add IWYU-kept include.
library/text/c/tetengo.text.vcxproj Bump MSVC platform toolset version.
library/text/c/src/tetengo_text_encoder.cpp Adjust includes and add IWYU keep marker.
library/text/c/include/tetengo/text/graphemeSplitter.h Use (void) in no-arg function declaration.
library/property/test/test_tetengo.property.vcxproj Bump MSVC platform toolset version.
library/property/test/src/usage_tetengo.property.saveLoad_c.h Use (void) in no-arg function declaration.
library/property/test/src/usage_tetengo.property.saveLoad_c.c Use (void) in no-arg function declarations/definitions.
library/property/test/src/test_tetengo.property.storage_proxy.cpp Add missing standard include.
library/property/test/src/test_tetengo.property.storage.cpp Add IWYU keep marker.
library/property/test/src/test_tetengo.property.property_set.cpp Add IWYU keep marker.
library/property/test/src/test_tetengo.property.memory_storage.cpp Add IWYU keep marker.
library/property/cpp/tetengo.property.cpp.vcxproj Bump MSVC platform toolset version.
library/property/cpp/src/tetengo.property.json_parser.cpp Adjust includes and add IWYU keep marker.
library/property/cpp/src/tetengo.property.file_storage.cpp Add IWYU-kept include.
library/property/cpp/include/tetengo/property/storage_proxy.hpp Add IWYU keep marker.
library/property/cpp/include/tetengo/property/memory_storage.hpp Add IWYU keep marker.
library/property/c/tetengo.property.vcxproj Bump MSVC platform toolset version.
library/property/c/src/tetengo_property_storage.cpp Add missing standard include.
library/property/c/src/tetengo_property_propertySet.cpp Add missing standard include.
library/property/c/include/tetengo/property/storage.h Use (void) in no-arg function declarations.
library/platform_dependent/test/test_tetengo.platform_dependent.vcxproj Bump MSVC platform toolset version.
library/platform_dependent/test/src/test_tetengo.platform_dependent.text_eX.cpp Remove unused includes.
library/platform_dependent/cpp/tetengo.platform_dependent.cpp.vcxproj Bump MSVC platform toolset version.
library/lattice/test/test_tetengo.lattice.vcxproj Bump MSVC platform toolset version.
library/lattice/test/src/usage_tetengo.lattice.viterbi_cpp.cpp Add missing standard include.
library/lattice/test/src/usage_tetengo.lattice.viterbi_c.h Use (void) in no-arg function declaration.
library/lattice/test/src/usage_tetengo.lattice.viterbi_c.c Remove unused include and use (void) in no-arg decls/defs.
library/lattice/test/src/test_tetengo.lattice.wildcard_constraint_element.cpp Add IWYU keep marker.
library/lattice/test/src/test_tetengo.lattice.vocabulary.cpp Remove unused include and minor formatting.
library/lattice/test/src/test_tetengo.lattice.path.cpp Add IWYU keep marker.
library/lattice/test/src/test_tetengo.lattice.node_constraint_element.cpp Add IWYU keep marker.
library/lattice/test/src/test_tetengo.lattice.n_best_iterator.cpp Add IWYU keep marker.
library/lattice/test/src/test_tetengo.lattice.lattice.cpp Add IWYU keep markers.
library/lattice/test/src/test_tetengo.lattice.custom_vocabulary.cpp Remove unused include.
library/lattice/test/src/test_tetengo.lattice.custom_input.cpp Add IWYU keep marker.
library/lattice/test/src/test_tetengo.lattice.constraint_element.cpp Add IWYU keep marker.
library/lattice/test/src/test_tetengo.lattice.constraint.cpp Add IWYU keep marker.
library/lattice/cpp/tetengo.lattice.cpp.vcxproj Bump MSVC platform toolset version.
library/lattice/cpp/src/tetengo.lattice.vocabulary.cpp Add IWYU keep marker.
library/lattice/cpp/src/tetengo.lattice.unordered_map_vocabulary.cpp Remove unused include.
library/lattice/cpp/src/tetengo.lattice.path.cpp Add IWYU keep marker.
library/lattice/cpp/include/tetengo/lattice/wildcard_constraint_element.hpp Add IWYU keep marker for forward declaration.
library/lattice/cpp/include/tetengo/lattice/vocabulary.hpp Replace include with forward declaration(s).
library/lattice/cpp/include/tetengo/lattice/unordered_map_vocabulary.hpp Replace include with forward declarations and IWYU hints.
library/lattice/cpp/include/tetengo/lattice/path.hpp Add IWYU keep marker.
library/lattice/c/tetengo.lattice.vcxproj Bump MSVC platform toolset version.
library/lattice/c/src/tetengo_lattice_vocabulary.cpp Add IWYU keep marker and remove unused include.
library/lattice/c/src/tetengo_lattice_nBestIterator.cpp Add IWYU keep marker.
library/lattice/c/src/tetengo_lattice_input.cpp Add IWYU keep marker.
library/lattice/c/include/tetengo/lattice/path.h Use (void) in no-arg function declaration.
library/lattice/c/include/tetengo/lattice/entry.h Use (void) in no-arg function declaration.
library/lattice/c/include/tetengo/lattice/constraint.h Use (void) in no-arg function declaration.
library/json/test/test_tetengo.json.vcxproj Bump MSVC platform toolset version.
library/json/test/src/usage_tetengo.json.parsing_c.h Use (void) in no-arg function declaration.
library/json/test/src/usage_tetengo.json.parsing_c.c Use (void) in no-arg function definition.
library/json/cpp/tetengo.json.cpp.vcxproj Bump MSVC platform toolset version.
library/json/cpp/src/tetengo.json.json_parser.cpp Add IWYU-kept include.
library/json/cpp/src/tetengo.json.channel.cpp Remove unused include.
library/json/c/tetengo.json.vcxproj Bump MSVC platform toolset version.
library/json/c/src/tetengo_json_reader.cpp Add IWYU keep marker.
library/json/c/include/tetengo/json/reader.h Use (void) in no-arg function declaration.
library/json/c/include/tetengo/json/element.h Use (void) in no-arg function declarations.
kogyan Update submodule pointer.
executable/setup/setup.vcxproj Bump MSVC platform toolset version.
configure.ac Adjust pthread flag handling logic.
README.md Update documented tool versions and switch .sln references to .slnx.
Makefile.am Distribute .slnx files instead of .sln.
Doxyfile Update Doxygen version/config; enable Markdown strict and new tags.
.github/workflows/windows-visualcpp.yml Update Windows CI runner, tool versions, WiX install steps, and action versions.
.github/workflows/linux-gcc.yml Update GCC/Ubuntu/Boost versions and action versions.
.github/workflows/linux-clang.yml Update Clang/Ubuntu/Boost/Doxygen versions and action versions.
Comments suppressed due to low confidence (7)

setup/installer/installer.vcxproj:1

  • v145 is not a known MSVC PlatformToolset value (the commonly supported values are v143 for VS 2022, etc.). If v145 is intended to target a newer Visual Studio toolset, this will fail to load/build in environments that don’t have that toolset installed. Consider either (1) keeping v143, (2) moving toolset selection to a shared property sheet, or (3) using $(DefaultPlatformToolset) so the project builds with the installed Visual Studio version.
    setup/installer/installer.vcxproj:1
  • v145 is not a known MSVC PlatformToolset value (the commonly supported values are v143 for VS 2022, etc.). If v145 is intended to target a newer Visual Studio toolset, this will fail to load/build in environments that don’t have that toolset installed. Consider either (1) keeping v143, (2) moving toolset selection to a shared property sheet, or (3) using $(DefaultPlatformToolset) so the project builds with the installed Visual Studio version.
    setup/installer/installer.vcxproj:1
  • v145 is not a known MSVC PlatformToolset value (the commonly supported values are v143 for VS 2022, etc.). If v145 is intended to target a newer Visual Studio toolset, this will fail to load/build in environments that don’t have that toolset installed. Consider either (1) keeping v143, (2) moving toolset selection to a shared property sheet, or (3) using $(DefaultPlatformToolset) so the project builds with the installed Visual Studio version.
    setup/installer/installer.vcxproj:1
  • v145 is not a known MSVC PlatformToolset value (the commonly supported values are v143 for VS 2022, etc.). If v145 is intended to target a newer Visual Studio toolset, this will fail to load/build in environments that don’t have that toolset installed. Consider either (1) keeping v143, (2) moving toolset selection to a shared property sheet, or (3) using $(DefaultPlatformToolset) so the project builds with the installed Visual Studio version.
    setup/installer/Makefile.nmake:1
  • The updated WiX invocation appears to insert -acceptEula wix7 in the middle of the subcommand chain (e.g., msi -acceptEula wix7 transform ...). This looks like an invalid CLI shape for WiX (the wix7 token in particular is suspicious) and is likely to break the installer build. Suggestion: align the Makefile command form with the actual installed WiX CLI (e.g., keep subcommand structure wix build ... / wix msi transform ... and handle EULA acceptance either as a standalone prereq step or via the correct global flag placement).
    setup/installer/Makefile.nmake:1
  • The updated WiX invocation appears to insert -acceptEula wix7 in the middle of the subcommand chain (e.g., msi -acceptEula wix7 transform ...). This looks like an invalid CLI shape for WiX (the wix7 token in particular is suspicious) and is likely to break the installer build. Suggestion: align the Makefile command form with the actual installed WiX CLI (e.g., keep subcommand structure wix build ... / wix msi transform ... and handle EULA acceptance either as a standalone prereq step or via the correct global flag placement).
    setup/installer/Makefile.nmake:1
  • The updated WiX invocation appears to insert -acceptEula wix7 in the middle of the subcommand chain (e.g., msi -acceptEula wix7 transform ...). This looks like an invalid CLI shape for WiX (the wix7 token in particular is suspicious) and is likely to break the installer build. Suggestion: align the Makefile command form with the actual installed WiX CLI (e.g., keep subcommand structure wix build ... / wix msi transform ... and handle EULA acceptance either as a standalone prereq step or via the correct global flag placement).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread configure.ac
Include pthread compiler flags in CXXFLAGS and CFLAGS for consistent compilation with threading support.

Adjust linker configuration by setting LDFLAGS with pthread link flags first and LIBS with pthread libraries afterward, avoiding duplication and handling Clang-specific cases properly.
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR modernizes the project’s build/tooling setup across Windows and Linux, updates Visual Studio solution format, and applies a large batch of IWYU- and C-API-signature cleanups.

Changes:

  • Replace legacy Visual Studio .sln solution files with the XML-based .slnx equivalents and update docs/CI accordingly.
  • Update toolchain versions (MSVC toolset, Boost, Doxygen, GCC/Clang, WiX) and adjust the CI workflows and installer build scripts.
  • Apply include hygiene tweaks (IWYU pragmas, add/remove standard headers) and modernize C declarations by using (void) for no-arg functions.

Reviewed changes

Copilot reviewed 118 out of 126 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
tool/make_character_property_map_cpp.py Docstring copyright formatting tweak.
tool/make_character_property_map.py Docstring copyright formatting tweak.
tetengo.slnx New VS solution in .slnx format listing projects/folders.
tetengo.sln Removes legacy .sln solution file.
tetengo.setup.slnx New setup solution in .slnx format.
tetengo.setup.sln Removes legacy setup .sln solution file.
setup/installer/installer.vcxproj Bumps MSVC toolset to v145.
setup/installer/generate_content_wxs_source.py Docstring copyright formatting tweak.
setup/installer/generate_content_wxs.py Docstring copyright formatting tweak.
setup/installer/copy_libimage_files.py Docstring copyright formatting tweak.
setup/installer/Makefile.nmake Updates WiX CLI invocation for WiX 7 + EULA handling.
sample/transfer_trains/transfer_trains.vcxproj Bumps MSVC toolset to v145.
sample/transfer_trains/src/timetable.cpp Adds <functional> include (IWYU keep).
sample/search_dict_c/src/main.c Uses (void) in no-arg function signature.
sample/search_dict_c/search_dict_c.vcxproj Bumps MSVC toolset to v145.
sample/search_dict/search_dict.vcxproj Bumps MSVC toolset to v145.
sample/make_dict/make_dict.vcxproj Bumps MSVC toolset to v145.
sample/json2timetable/src/printStationTimetable.c Uses (void) in no-arg function signature.
sample/json2timetable/src/encode.c Uses (void) in no-arg function signature.
sample/json2timetable/json2timetable.vcxproj Bumps MSVC toolset to v145.
library/trie/test/test_tetengo.trie.vcxproj Bumps MSVC toolset to v145.
library/trie/test/src/usage_tetengo.trie.search_cpp.cpp Adds <utility> include (IWYU keep).
library/trie/test/src/usage_tetengo.trie.search_c.h Uses (void) in no-arg function declaration.
library/trie/test/src/usage_tetengo.trie.search_c.c Uses (void) in no-arg function definition.
library/trie/test/src/test_tetengo.trie.value_serializer.cpp Lambda formatting cleanup.
library/trie/test/src/test_tetengo.trie.trie.cpp Minor formatting/whitespace fixes in tests.
library/trie/test/src/test_tetengo.trie.shared_storage.cpp Spacing fix in local static deserializer name.
library/trie/test/src/test_tetengo.trie.mmap_storage.cpp Include adjustments (<sstream> added).
library/trie/test/src/test_tetengo.trie.memory_storage.cpp Spacing fixes in local static deserializer names.
library/trie/cpp/tetengo.trie.cpp.vcxproj Bumps MSVC toolset to v145.
library/trie/cpp/src/tetengo.trie.mmap_storage.cpp Removes unused include (<type_traits>).
library/trie/cpp/src/tetengo.trie.double_array_iterator.cpp Removes unused <memory> include.
library/trie/cpp/src/tetengo.trie.double_array_builder.hpp Adds <iterator> include (IWYU keep).
library/trie/cpp/include/tetengo/trie/trie.hpp Adjusts default_serializer usage + IWYU keep; template default now uses 2 params.
library/trie/cpp/include/tetengo/trie/shared_storage.hpp Adds IWYU keep for <any> and forward decl keep.
library/trie/cpp/include/tetengo/trie/mmap_storage.hpp Adds IWYU keep for <any>.
library/trie/cpp/include/tetengo/trie/memory_storage.hpp Adds IWYU keep for <any> and forward decl keep.
library/trie/cpp/include/tetengo/trie/double_array.hpp Replaces include with forward declaration for iterator.
library/trie/c/tetengo.trie.vcxproj Bumps MSVC toolset to v145.
library/trie/c/src/tetengo_trie_trieIterator.cpp Adds missing <vector> include.
library/trie/c/src/tetengo_trie_trie.hpp Adds default_serializer include (IWYU keep).
library/trie/c/include/tetengo/trie/storage.h Uses (void) in no-arg function declaration.
library/text/test/test_tetengo.text.vcxproj Bumps MSVC toolset to v145.
library/text/test/src/usage_tetengo.text.grapheme_split_cpp.cpp Removes unused <memory> include.
library/text/test/src/usage_tetengo.text.graphemeSplit_c.h Uses (void) in no-arg function declaration.
library/text/test/src/usage_tetengo.text.graphemeSplit_c.c Uses (void) in no-arg function declarations/definitions.
library/text/test/src/usage_tetengo.text.encoding_c.h Uses (void) in no-arg function declaration.
library/text/test/src/usage_tetengo.text.encoding_c.c Uses (void) in no-arg function definition.
library/text/test/src/test_tetengo.text.grapheme_splitter.cpp Removes unused <memory> include.
library/text/test/src/test_tetengo.text.encoding.cp932.cpp Removes unused includes.
library/text/test/src/test_tetengo.text.encoder.cpp Removes unused includes.
library/text/cpp/tetengo.text.cpp.vcxproj Bumps MSVC toolset to v145.
library/text/cpp/src/tetengo.text.grapheme_splitting.east_asian_character_X.cpp Removes now-unneeded include.
library/text/cpp/src/tetengo.text.grapheme_splitting.default_character_widX.cpp Removes now-unneeded include.
library/text/cpp/src/tetengo.text.encoding.utf16.cpp Adds missing <vector> include.
library/text/cpp/src/tetengo.text.encoding.cp932.cpp Adds <string> include (IWYU keep).
library/text/c/tetengo.text.vcxproj Bumps MSVC toolset to v145.
library/text/c/src/tetengo_text_encoder.cpp Include cleanup; keep <string> for IWYU.
library/text/c/include/tetengo/text/graphemeSplitter.h Uses (void) in no-arg function declaration.
library/property/test/test_tetengo.property.vcxproj Bumps MSVC toolset to v145.
library/property/test/src/usage_tetengo.property.saveLoad_c.h Uses (void) in no-arg function declaration.
library/property/test/src/usage_tetengo.property.saveLoad_c.c Uses (void) in no-arg function declarations/definitions.
library/property/test/src/test_tetengo.property.storage_proxy.cpp Adds <filesystem> include.
library/property/test/src/test_tetengo.property.storage.cpp Keep <string> include for IWYU.
library/property/test/src/test_tetengo.property.property_set.cpp Keep <string> include for IWYU.
library/property/test/src/test_tetengo.property.memory_storage.cpp Keep <string> include for IWYU.
library/property/cpp/tetengo.property.cpp.vcxproj Bumps MSVC toolset to v145.
library/property/cpp/src/tetengo.property.json_parser.cpp Include adjustments; adds <variant> IWYU keep.
library/property/cpp/src/tetengo.property.file_storage.cpp Adds <string> include (IWYU keep).
library/property/cpp/include/tetengo/property/storage_proxy.hpp Marks <optional> as IWYU keep.
library/property/cpp/include/tetengo/property/memory_storage.hpp Marks <filesystem> as IWYU keep.
library/property/c/tetengo.property.vcxproj Bumps MSVC toolset to v145.
library/property/c/src/tetengo_property_storage.cpp Adds <filesystem> include.
library/property/c/src/tetengo_property_propertySet.cpp Adds <filesystem> include.
library/property/c/include/tetengo/property/storage.h Uses (void) in no-arg factory function declarations.
library/platform_dependent/test/test_tetengo.platform_dependent.vcxproj Bumps MSVC toolset to v145.
library/platform_dependent/test/src/test_tetengo.platform_dependent.text_eX.cpp Removes unused includes.
library/platform_dependent/cpp/tetengo.platform_dependent.cpp.vcxproj Bumps MSVC toolset to v145.
library/lattice/test/test_tetengo.lattice.vcxproj Bumps MSVC toolset to v145.
library/lattice/test/src/usage_tetengo.lattice.viterbi_cpp.cpp Adds <cstddef> include.
library/lattice/test/src/usage_tetengo.lattice.viterbi_c.h Uses (void) in no-arg function declaration.
library/lattice/test/src/usage_tetengo.lattice.viterbi_c.c Uses (void) in no-arg function declarations/definitions; include cleanup.
library/lattice/test/src/test_tetengo.lattice.wildcard_constraint_element.cpp Keep <string> include for IWYU.
library/lattice/test/src/test_tetengo.lattice.vocabulary.cpp Formatting tweak; removes unused <memory> include.
library/lattice/test/src/test_tetengo.lattice.path.cpp Keep <string> include for IWYU.
library/lattice/test/src/test_tetengo.lattice.node_constraint_element.cpp Keep <string> include for IWYU.
library/lattice/test/src/test_tetengo.lattice.n_best_iterator.cpp Marks <algorithm> as IWYU keep.
library/lattice/test/src/test_tetengo.lattice.lattice.cpp Marks <algorithm>/<string> as IWYU keep.
library/lattice/test/src/test_tetengo.lattice.custom_vocabulary.cpp Removes unused <memory> include.
library/lattice/test/src/test_tetengo.lattice.custom_input.cpp Marks <algorithm> as IWYU keep.
library/lattice/test/src/test_tetengo.lattice.constraint_element.cpp Keep <string> include for IWYU.
library/lattice/test/src/test_tetengo.lattice.constraint.cpp Keep <string> include for IWYU.
library/lattice/cpp/tetengo.lattice.cpp.vcxproj Bumps MSVC toolset to v145.
library/lattice/cpp/src/tetengo.lattice.vocabulary.cpp Marks entry header as IWYU keep.
library/lattice/cpp/src/tetengo.lattice.unordered_map_vocabulary.cpp Removes unused <type_traits> include.
library/lattice/cpp/src/tetengo.lattice.path.cpp Marks node header as IWYU keep.
library/lattice/cpp/include/tetengo/lattice/wildcard_constraint_element.hpp Marks forward decl as IWYU keep.
library/lattice/cpp/include/tetengo/lattice/vocabulary.hpp Switches include to forward declaration for entry_view.
library/lattice/cpp/include/tetengo/lattice/unordered_map_vocabulary.hpp Forward declarations + IWYU keep annotations.
library/lattice/cpp/include/tetengo/lattice/path.hpp Marks node header as IWYU keep.
library/lattice/c/tetengo.lattice.vcxproj Bumps MSVC toolset to v145.
library/lattice/c/src/tetengo_lattice_vocabulary.cpp Marks <algorithm> as IWYU keep; include cleanup.
library/lattice/c/src/tetengo_lattice_nBestIterator.cpp Marks <algorithm> as IWYU keep.
library/lattice/c/src/tetengo_lattice_input.cpp Keep <string> include for IWYU.
library/lattice/c/include/tetengo/lattice/path.h Uses (void) in no-arg function declaration.
library/lattice/c/include/tetengo/lattice/entry.h Uses (void) in no-arg function declaration.
library/lattice/c/include/tetengo/lattice/constraint.h Uses (void) in no-arg function declaration.
library/json/test/test_tetengo.json.vcxproj Bumps MSVC toolset to v145.
library/json/test/src/usage_tetengo.json.parsing_c.h Uses (void) in no-arg function declaration.
library/json/test/src/usage_tetengo.json.parsing_c.c Uses (void) in no-arg function definition.
library/json/cpp/tetengo.json.cpp.vcxproj Bumps MSVC toolset to v145.
library/json/cpp/src/tetengo.json.json_parser.cpp Adds file_location include (IWYU keep).
library/json/cpp/src/tetengo.json.channel.cpp Removes unused <vector> include.
library/json/c/tetengo.json.vcxproj Bumps MSVC toolset to v145.
library/json/c/src/tetengo_json_reader.cpp Keep <string> include for IWYU.
library/json/c/include/tetengo/json/reader.h Uses (void) in no-arg function declaration.
library/json/c/include/tetengo/json/element.h Uses (void) in no-arg function declarations across the C API.
executable/setup/setup.vcxproj Bumps MSVC toolset to v145.
configure.ac Adjusts pthread flag handling (incl. clang-specific link workaround) and compilation flags.
README.md Updates toolchain requirements and references .slnx files.
Makefile.am Distributes .slnx files instead of .sln.
Doxyfile Updates configuration for newer Doxygen and new options.
.github/workflows/windows-visualcpp.yml Updates Windows CI to new runners/tools, Boost 1.91, WiX 7, .slnx solutions, and newer actions.
.github/workflows/linux-gcc.yml Updates Linux GCC CI (Ubuntu 24.04, GCC 14, Boost 1.91, newer actions).
.github/workflows/linux-clang.yml Updates Linux Clang CI (Ubuntu 24.04, Clang 18, Doxygen 1.16.1, Boost 1.91, newer actions).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread library/trie/cpp/include/tetengo/trie/double_array.hpp
Comment thread configure.ac
…tion when combined with CXXFLAGS/CFLAGS #349

Include pthread flags only once in CPPFLAGS to prevent duplication when combined with CXXFLAGS/CFLAGS.

Removed ${PTHREAD_CFLAGS} from CXXFLAGS and CFLAGS substitutions since now included in CPPFLAGS.
Updated pthread link flags handling for clang compatibility.
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Modernizes the project’s build/tooling stack (VS/Boost/WiX/Doxygen/toolchain), updates CI workflows accordingly, and applies include/prototype cleanups for stricter tooling (e.g., IWYU, C function prototypes).

Changes:

  • Replace legacy Visual Studio .sln files with .slnx and update docs/packaging/CI to use them.
  • Bump Windows/Linux CI toolchains (Boost, compilers, runner images, GitHub Action versions) and adjust WiX usage.
  • Apply broad “modernization” cleanup: MSVC toolset bump, IWYU-focused include adjustments, and C “no-args” prototypes to (void).

Reviewed changes

Copilot reviewed 118 out of 126 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
tool/make_character_property_map_cpp.py Docstring copyright formatting tweak.
tool/make_character_property_map.py Docstring copyright formatting tweak.
tetengo.slnx New Visual Studio solution in .slnx format.
tetengo.sln Removed legacy .sln.
tetengo.setup.slnx New setup solution in .slnx format.
tetengo.setup.sln Removed legacy setup .sln.
setup/installer/installer.vcxproj Bump MSVC toolset to v145.
setup/installer/generate_content_wxs_source.py Docstring copyright formatting tweak.
setup/installer/generate_content_wxs.py Docstring copyright formatting tweak.
setup/installer/copy_libimage_files.py Docstring copyright formatting tweak.
setup/installer/Makefile.nmake Update WiX CLI invocation for v7 (EULA/command flags).
sample/transfer_trains/transfer_trains.vcxproj Bump MSVC toolset to v145.
sample/transfer_trains/src/timetable.cpp Add <functional> include (IWYU).
sample/search_dict_c/src/main.c Use (void) for no-arg static function prototype.
sample/search_dict_c/search_dict_c.vcxproj Bump MSVC toolset to v145.
sample/search_dict/search_dict.vcxproj Bump MSVC toolset to v145.
sample/make_dict/make_dict.vcxproj Bump MSVC toolset to v145.
sample/json2timetable/src/printStationTimetable.c Use (void) for no-arg static function prototype.
sample/json2timetable/src/encode.c Use (void) for no-arg static function prototype.
sample/json2timetable/json2timetable.vcxproj Bump MSVC toolset to v145.
library/trie/test/test_tetengo.trie.vcxproj Bump MSVC toolset to v145.
library/trie/test/src/usage_tetengo.trie.search_cpp.cpp Add <utility> include (IWYU).
library/trie/test/src/usage_tetengo.trie.search_c.h Use (void) for no-arg C API function prototype.
library/trie/test/src/usage_tetengo.trie.search_c.c Use (void) for no-arg C API function definition.
library/trie/test/src/test_tetengo.trie.value_serializer.cpp Lambda formatting/compaction in tests.
library/trie/test/src/test_tetengo.trie.trie.cpp Minor formatting fixes (indent/spacing).
library/trie/test/src/test_tetengo.trie.shared_storage.cpp Fix missing space in local static deserializer variable.
library/trie/test/src/test_tetengo.trie.mmap_storage.cpp Include cleanup (<sstream> etc.) and spacing fixes in deserializer locals.
library/trie/test/src/test_tetengo.trie.memory_storage.cpp Fix missing space in local static deserializer variables.
library/trie/cpp/tetengo.trie.cpp.vcxproj Bump MSVC toolset to v145.
library/trie/cpp/src/tetengo.trie.mmap_storage.cpp Remove unused <type_traits> include.
library/trie/cpp/src/tetengo.trie.double_array_iterator.cpp Remove unused <memory> include.
library/trie/cpp/src/tetengo.trie.double_array_builder.hpp Add <iterator> include (IWYU).
library/trie/cpp/include/tetengo/trie/trie.hpp IWYU adjustments + default_serializer template parameterization (default_serializer<Key, void>).
library/trie/cpp/include/tetengo/trie/shared_storage.hpp IWYU keep markers + forward decl keep markers.
library/trie/cpp/include/tetengo/trie/mmap_storage.hpp IWYU keep marker for <any>.
library/trie/cpp/include/tetengo/trie/memory_storage.hpp IWYU keep markers + forward decl keep markers.
library/trie/cpp/include/tetengo/trie/double_array.hpp Switch from include to forward declaration for iterator type.
library/trie/c/tetengo.trie.vcxproj Bump MSVC toolset to v145.
library/trie/c/src/tetengo_trie_trieIterator.cpp Add <vector> include (IWYU).
library/trie/c/src/tetengo_trie_trie.hpp Add default_serializer include (IWYU).
library/trie/c/include/tetengo/trie/storage.h Use (void) for no-arg C API function prototype.
library/text/test/test_tetengo.text.vcxproj Bump MSVC toolset to v145.
library/text/test/src/usage_tetengo.text.grapheme_split_cpp.cpp Remove unused <memory> include.
library/text/test/src/usage_tetengo.text.graphemeSplit_c.h Use (void) for no-arg C API function prototype.
library/text/test/src/usage_tetengo.text.graphemeSplit_c.c Use (void) for no-arg C functions.
library/text/test/src/usage_tetengo.text.encoding_c.h Use (void) for no-arg C API function prototype.
library/text/test/src/usage_tetengo.text.encoding_c.c Use (void) for no-arg C API function definition.
library/text/test/src/test_tetengo.text.grapheme_splitter.cpp Remove unused <memory> include.
library/text/test/src/test_tetengo.text.encoding.cp932.cpp Remove unused includes.
library/text/test/src/test_tetengo.text.encoder.cpp Remove unused includes.
library/text/cpp/tetengo.text.cpp.vcxproj Bump MSVC toolset to v145.
library/text/cpp/src/tetengo.text.grapheme_splitting.east_asian_character_X.cpp Remove unused include.
library/text/cpp/src/tetengo.text.grapheme_splitting.default_character_widX.cpp Remove unused include.
library/text/cpp/src/tetengo.text.encoding.utf16.cpp Add <vector> include.
library/text/cpp/src/tetengo.text.encoding.cp932.cpp Add <string> include (IWYU keep).
library/text/c/tetengo.text.vcxproj Bump MSVC toolset to v145.
library/text/c/src/tetengo_text_encoder.cpp Include cleanup (keep <string>, drop unused <string_view>).
library/text/c/include/tetengo/text/graphemeSplitter.h Use (void) for no-arg C API function prototype.
library/property/test/test_tetengo.property.vcxproj Bump MSVC toolset to v145.
library/property/test/src/usage_tetengo.property.saveLoad_c.h Use (void) for no-arg C API function prototype.
library/property/test/src/usage_tetengo.property.saveLoad_c.c Use (void) for no-arg C functions.
library/property/test/src/test_tetengo.property.storage_proxy.cpp Add <filesystem> include.
library/property/test/src/test_tetengo.property.storage.cpp Mark <string> as IWYU keep.
library/property/test/src/test_tetengo.property.property_set.cpp Mark <string> as IWYU keep.
library/property/test/src/test_tetengo.property.memory_storage.cpp Mark <string> as IWYU keep.
library/property/cpp/tetengo.property.cpp.vcxproj Bump MSVC toolset to v145.
library/property/cpp/src/tetengo.property.json_parser.cpp Remove unused <type_traits>, add <variant> (IWYU keep).
library/property/cpp/src/tetengo.property.file_storage.cpp Add <string> include (IWYU keep).
library/property/cpp/include/tetengo/property/storage_proxy.hpp Mark <optional> as IWYU keep.
library/property/cpp/include/tetengo/property/memory_storage.hpp Mark <filesystem> as IWYU keep.
library/property/c/tetengo.property.vcxproj Bump MSVC toolset to v145.
library/property/c/src/tetengo_property_storage.cpp Add <filesystem> include.
library/property/c/src/tetengo_property_propertySet.cpp Add <filesystem> include.
library/property/c/include/tetengo/property/storage.h Use (void) for no-arg C API function prototypes.
library/platform_dependent/test/test_tetengo.platform_dependent.vcxproj Bump MSVC toolset to v145.
library/platform_dependent/test/src/test_tetengo.platform_dependent.text_eX.cpp Remove unused includes.
library/platform_dependent/cpp/tetengo.platform_dependent.cpp.vcxproj Bump MSVC toolset to v145.
library/lattice/test/test_tetengo.lattice.vcxproj Bump MSVC toolset to v145.
library/lattice/test/src/usage_tetengo.lattice.viterbi_cpp.cpp Add <cstddef> include.
library/lattice/test/src/usage_tetengo.lattice.viterbi_c.h Use (void) for no-arg C API function prototype.
library/lattice/test/src/usage_tetengo.lattice.viterbi_c.c Remove unused include + use (void) for no-arg C functions.
library/lattice/test/src/test_tetengo.lattice.wildcard_constraint_element.cpp Mark <string> as IWYU keep.
library/lattice/test/src/test_tetengo.lattice.vocabulary.cpp Remove unused include + minor formatting fix.
library/lattice/test/src/test_tetengo.lattice.path.cpp Mark <string> as IWYU keep.
library/lattice/test/src/test_tetengo.lattice.node_constraint_element.cpp Mark <string> as IWYU keep.
library/lattice/test/src/test_tetengo.lattice.n_best_iterator.cpp Mark <algorithm> as IWYU keep.
library/lattice/test/src/test_tetengo.lattice.lattice.cpp Mark <algorithm>/<string> as IWYU keep.
library/lattice/test/src/test_tetengo.lattice.custom_vocabulary.cpp Remove unused include.
library/lattice/test/src/test_tetengo.lattice.custom_input.cpp Mark <algorithm> as IWYU keep.
library/lattice/test/src/test_tetengo.lattice.constraint_element.cpp Mark <string> as IWYU keep.
library/lattice/test/src/test_tetengo.lattice.constraint.cpp Mark <string> as IWYU keep.
library/lattice/cpp/tetengo.lattice.cpp.vcxproj Bump MSVC toolset to v145.
library/lattice/cpp/src/tetengo.lattice.vocabulary.cpp Mark <tetengo/lattice/entry.hpp> as IWYU keep.
library/lattice/cpp/src/tetengo.lattice.unordered_map_vocabulary.cpp Remove unused <type_traits>.
library/lattice/cpp/src/tetengo.lattice.path.cpp Mark <tetengo/lattice/node.hpp> as IWYU keep.
library/lattice/cpp/include/tetengo/lattice/wildcard_constraint_element.hpp Mark forward declaration as IWYU keep.
library/lattice/cpp/include/tetengo/lattice/vocabulary.hpp Replace include with forward declaration(s).
library/lattice/cpp/include/tetengo/lattice/unordered_map_vocabulary.hpp Replace include with forward declaration(s) + IWYU keeps.
library/lattice/cpp/include/tetengo/lattice/path.hpp Mark <tetengo/lattice/node.hpp> as IWYU keep.
library/lattice/c/tetengo.lattice.vcxproj Bump MSVC toolset to v145.
library/lattice/c/src/tetengo_lattice_vocabulary.cpp Mark <algorithm> as IWYU keep + remove unused include.
library/lattice/c/src/tetengo_lattice_nBestIterator.cpp Mark <algorithm> as IWYU keep.
library/lattice/c/src/tetengo_lattice_input.cpp Mark <string> as IWYU keep.
library/lattice/c/include/tetengo/lattice/path.h Use (void) for no-arg C API function prototype.
library/lattice/c/include/tetengo/lattice/entry.h Use (void) for no-arg C API function prototype.
library/lattice/c/include/tetengo/lattice/constraint.h Use (void) for no-arg C API function prototype.
library/json/test/test_tetengo.json.vcxproj Bump MSVC toolset to v145.
library/json/test/src/usage_tetengo.json.parsing_c.h Use (void) for no-arg C API function prototype.
library/json/test/src/usage_tetengo.json.parsing_c.c Use (void) for no-arg C API function definition.
library/json/cpp/tetengo.json.cpp.vcxproj Bump MSVC toolset to v145.
library/json/cpp/src/tetengo.json.json_parser.cpp Add file_location include (IWYU keep).
library/json/cpp/src/tetengo.json.channel.cpp Remove unused <vector> include.
library/json/c/tetengo.json.vcxproj Bump MSVC toolset to v145.
library/json/c/src/tetengo_json_reader.cpp Mark <string> as IWYU keep.
library/json/c/include/tetengo/json/reader.h Use (void) for no-arg C API function prototype.
library/json/c/include/tetengo/json/element.h Use (void) for many no-arg C API function prototypes.
executable/setup/setup.vcxproj Bump MSVC toolset to v145.
configure.ac Adjust pthread flag handling; add clang-specific link-flag tweak; move pthread flags into CPPFLAGS.
README.md Update requirements (VS/Boost/Doxygen/WiX/Python) + update .slnx instructions.
Makefile.am Distribute .slnx files instead of removed .sln files.
Doxyfile Update to Doxygen 1.16.1 config + enable new options (e.g., MARKDOWN_STRICT).
.github/workflows/windows-visualcpp.yml Update Windows CI to newer toolchain (Boost/WiX/VS runner) + .slnx usage + newer action versions.
.github/workflows/linux-gcc.yml Update GCC/Boost versions and Ubuntu runner; bump action versions.
.github/workflows/linux-clang.yml Update Clang/Doxygen/Boost versions and Ubuntu runner; bump action versions.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread configure.ac Outdated
Comment thread setup/installer/Makefile.nmake
Comment thread README.md
kaorut added 2 commits April 29, 2026 15:09
Avoids potential override of pthread link flags by subsequent AC_SUBST calls.

Changed from:

AC_SUBST([LDFLAGS], "${AX_PTHREAD_LINK_CFLAGS} ${LDFLAGS}")

to:

LDFLAGS="${AX_PTHREAD_LINK_CFLAGS} ${LDFLAGS}"
AC_SUBST([LDFLAGS], "${LDFLAGS} ${BOOST_LDFLAGS}")

This ensures pthread flags are preserved when Boost LDFLAGS are appended later.
Modernize dependencies as per #349.

* Update AX_BOOST_BASE minimum version from 1.88.0 to 1.91.0
* Remove wix7 flags from WiX Toolset commands in Makefile.nmake to use WiX 7.0.0
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR modernizes the project’s toolchain/build setup and performs broad IWYU- and C-API-cleanup changes to align the codebase with newer compilers, Boost, WiX, and Visual Studio solution formats.

Changes:

  • Replaces Visual Studio .sln solutions with XML-based .slnx equivalents and updates docs/packaging to match.
  • Updates build infrastructure and CI workflows for newer toolchains (Boost, compilers, WiX, GitHub Actions versions/runners).
  • Applies mechanical code hygiene updates: IWYU include adjustments, and C/C-header function prototypes updated to (void).

Reviewed changes

Copilot reviewed 118 out of 126 changed files in this pull request and generated no comments.

Show a summary per file
File Description
tool/make_character_property_map_cpp.py Docstring formatting tweak (copyright line alignment).
tool/make_character_property_map.py Docstring formatting tweak (copyright line alignment).
tetengo.slnx Adds new Visual Studio solution in .slnx format.
tetengo.sln Removes legacy .sln solution file.
tetengo.setup.slnx Adds new setup/installer solution in .slnx format.
tetengo.setup.sln Removes legacy setup .sln solution file.
setup/installer/installer.vcxproj Updates MSVC platform toolset version.
setup/installer/generate_content_wxs_source.py Docstring formatting tweak.
setup/installer/generate_content_wxs.py Docstring formatting tweak.
setup/installer/copy_libimage_files.py Docstring formatting tweak.
setup/installer/Makefile.nmake Updates WiX CLI invocations to include EULA acceptance flags.
sample/transfer_trains/transfer_trains.vcxproj Updates MSVC platform toolset version.
sample/transfer_trains/src/timetable.cpp Adds <functional> include (IWYU keep).
sample/search_dict_c/src/main.c Uses (void) in no-arg function prototype for C correctness.
sample/search_dict_c/search_dict_c.vcxproj Updates MSVC platform toolset version.
sample/search_dict/search_dict.vcxproj Updates MSVC platform toolset version.
sample/make_dict/make_dict.vcxproj Updates MSVC platform toolset version.
sample/json2timetable/src/printStationTimetable.c Uses (void) in no-arg function prototype for C correctness.
sample/json2timetable/src/encode.c Uses (void) in no-arg function prototype for C correctness.
sample/json2timetable/json2timetable.vcxproj Updates MSVC platform toolset version.
library/trie/test/test_tetengo.trie.vcxproj Updates MSVC platform toolset version.
library/trie/test/src/usage_tetengo.trie.search_cpp.cpp Adds <utility> include (IWYU keep).
library/trie/test/src/usage_tetengo.trie.search_c.h Uses (void) in no-arg function prototype for C correctness.
library/trie/test/src/usage_tetengo.trie.search_c.c Uses (void) in no-arg function definition for C correctness.
library/trie/test/src/test_tetengo.trie.value_serializer.cpp Formats lambdas more compactly (no behavior change).
library/trie/test/src/test_tetengo.trie.trie.cpp Formatting and fixes missing whitespace in a static variable name.
library/trie/test/src/test_tetengo.trie.shared_storage.cpp Fixes missing whitespace in a static variable name.
library/trie/test/src/test_tetengo.trie.mmap_storage.cpp Adjusts includes (drops <ios>, adds <sstream>) and whitespace fixes.
library/trie/test/src/test_tetengo.trie.memory_storage.cpp Fixes missing whitespace in a static variable name.
library/trie/cpp/tetengo.trie.cpp.vcxproj Updates MSVC platform toolset version.
library/trie/cpp/src/tetengo.trie.mmap_storage.cpp Removes unused <type_traits> include.
library/trie/cpp/src/tetengo.trie.double_array_iterator.cpp Removes unused <memory> include.
library/trie/cpp/src/tetengo.trie.double_array_builder.hpp Adds <iterator> include (IWYU keep).
library/trie/cpp/include/tetengo/trie/trie.hpp Adjusts default_serializer references/forward decls and IWYU keep include.
library/trie/cpp/include/tetengo/trie/shared_storage.hpp Marks includes/forward decls with IWYU keep.
library/trie/cpp/include/tetengo/trie/mmap_storage.hpp Marks includes with IWYU keep.
library/trie/cpp/include/tetengo/trie/memory_storage.hpp Marks includes/forward decls with IWYU keep.
library/trie/cpp/include/tetengo/trie/double_array.hpp Replaces include with forward declaration for iterator type.
library/trie/c/tetengo.trie.vcxproj Updates MSVC platform toolset version.
library/trie/c/src/tetengo_trie_trieIterator.cpp Adds missing <vector> include.
library/trie/c/src/tetengo_trie_trie.hpp Adds default_serializer include (IWYU keep).
library/trie/c/include/tetengo/trie/storage.h Uses (void) in no-arg function prototype for C correctness.
library/text/test/test_tetengo.text.vcxproj Updates MSVC platform toolset version.
library/text/test/src/usage_tetengo.text.grapheme_split_cpp.cpp Removes unused <memory> include.
library/text/test/src/usage_tetengo.text.graphemeSplit_c.h Uses (void) in no-arg function prototype for C correctness.
library/text/test/src/usage_tetengo.text.graphemeSplit_c.c Uses (void) in no-arg function prototypes/definitions for C correctness.
library/text/test/src/usage_tetengo.text.encoding_c.h Uses (void) in no-arg function prototype for C correctness.
library/text/test/src/usage_tetengo.text.encoding_c.c Uses (void) in no-arg function definition for C correctness.
library/text/test/src/test_tetengo.text.grapheme_splitter.cpp Removes unused <memory> include.
library/text/test/src/test_tetengo.text.encoding.cp932.cpp Removes unused includes (map/sstream/vector).
library/text/test/src/test_tetengo.text.encoder.cpp Removes unused includes (map/sstream).
library/text/cpp/tetengo.text.cpp.vcxproj Updates MSVC platform toolset version.
library/text/cpp/src/tetengo.text.grapheme_splitting.east_asian_character_X.cpp Removes unused include.
library/text/cpp/src/tetengo.text.grapheme_splitting.default_character_widX.cpp Removes unused include.
library/text/cpp/src/tetengo.text.encoding.utf16.cpp Adds missing <vector> include.
library/text/cpp/src/tetengo.text.encoding.cp932.cpp Adds <string> include (IWYU keep).
library/text/c/tetengo.text.vcxproj Updates MSVC platform toolset version.
library/text/c/src/tetengo_text_encoder.cpp Adjusts includes; keeps <string> with IWYU pragma.
library/text/c/include/tetengo/text/graphemeSplitter.h Uses (void) in no-arg function prototype for C correctness.
library/property/test/test_tetengo.property.vcxproj Updates MSVC platform toolset version.
library/property/test/src/usage_tetengo.property.saveLoad_c.h Uses (void) in no-arg function prototype for C correctness.
library/property/test/src/usage_tetengo.property.saveLoad_c.c Uses (void) in no-arg function prototypes/definitions for C correctness.
library/property/test/src/test_tetengo.property.storage_proxy.cpp Adds <filesystem> include.
library/property/test/src/test_tetengo.property.storage.cpp Marks <string> include with IWYU keep.
library/property/test/src/test_tetengo.property.property_set.cpp Marks <string> include with IWYU keep.
library/property/test/src/test_tetengo.property.memory_storage.cpp Marks <string> include with IWYU keep.
library/property/cpp/tetengo.property.cpp.vcxproj Updates MSVC platform toolset version.
library/property/cpp/src/tetengo.property.json_parser.cpp Adjusts includes; adds <variant> (IWYU keep).
library/property/cpp/src/tetengo.property.file_storage.cpp Adds <string> include (IWYU keep).
library/property/cpp/include/tetengo/property/storage_proxy.hpp Marks <optional> include with IWYU keep.
library/property/cpp/include/tetengo/property/memory_storage.hpp Marks <filesystem> include with IWYU keep.
library/property/c/tetengo.property.vcxproj Updates MSVC platform toolset version.
library/property/c/src/tetengo_property_storage.cpp Adds <filesystem> include.
library/property/c/src/tetengo_property_propertySet.cpp Adds <filesystem> include.
library/property/c/include/tetengo/property/storage.h Uses (void) in no-arg function prototypes for C correctness.
library/platform_dependent/test/test_tetengo.platform_dependent.vcxproj Updates MSVC platform toolset version.
library/platform_dependent/test/src/test_tetengo.platform_dependent.text_eX.cpp Removes unused includes (map/sstream/vector).
library/platform_dependent/cpp/tetengo.platform_dependent.cpp.vcxproj Updates MSVC platform toolset version.
library/lattice/test/test_tetengo.lattice.vcxproj Updates MSVC platform toolset version.
library/lattice/test/src/usage_tetengo.lattice.viterbi_cpp.cpp Adds <cstddef> include.
library/lattice/test/src/usage_tetengo.lattice.viterbi_c.h Uses (void) in no-arg function prototype for C correctness.
library/lattice/test/src/usage_tetengo.lattice.viterbi_c.c Removes unused include and uses (void) in no-arg prototypes/defs.
library/lattice/test/src/test_tetengo.lattice.wildcard_constraint_element.cpp Marks <string> include with IWYU keep.
library/lattice/test/src/test_tetengo.lattice.vocabulary.cpp Removes unused <memory> and tweaks constructor formatting.
library/lattice/test/src/test_tetengo.lattice.path.cpp Marks <string> include with IWYU keep.
library/lattice/test/src/test_tetengo.lattice.node_constraint_element.cpp Marks <string> include with IWYU keep.
library/lattice/test/src/test_tetengo.lattice.n_best_iterator.cpp Marks <algorithm> include with IWYU keep.
library/lattice/test/src/test_tetengo.lattice.lattice.cpp Marks <algorithm>/<string> includes with IWYU keep.
library/lattice/test/src/test_tetengo.lattice.custom_vocabulary.cpp Removes unused <memory> include.
library/lattice/test/src/test_tetengo.lattice.custom_input.cpp Marks <algorithm> include with IWYU keep.
library/lattice/test/src/test_tetengo.lattice.constraint_element.cpp Marks <string> include with IWYU keep.
library/lattice/test/src/test_tetengo.lattice.constraint.cpp Marks <string> include with IWYU keep.
library/lattice/cpp/tetengo.lattice.cpp.vcxproj Updates MSVC platform toolset version.
library/lattice/cpp/src/tetengo.lattice.vocabulary.cpp Marks entry.hpp include with IWYU keep.
library/lattice/cpp/src/tetengo.lattice.unordered_map_vocabulary.cpp Removes unused <type_traits> include.
library/lattice/cpp/src/tetengo.lattice.path.cpp Marks node.hpp include with IWYU keep.
library/lattice/cpp/include/tetengo/lattice/wildcard_constraint_element.hpp Marks node forward decl with IWYU keep.
library/lattice/cpp/include/tetengo/lattice/vocabulary.hpp Replaces direct include with forward declarations for entry types.
library/lattice/cpp/include/tetengo/lattice/unordered_map_vocabulary.hpp Reworks includes/forward declarations; adds IWYU keep markers.
library/lattice/cpp/include/tetengo/lattice/path.hpp Marks node.hpp include with IWYU keep.
library/lattice/c/tetengo.lattice.vcxproj Updates MSVC platform toolset version.
library/lattice/c/src/tetengo_lattice_vocabulary.cpp Marks <algorithm> include with IWYU keep; removes unused include.
library/lattice/c/src/tetengo_lattice_nBestIterator.cpp Marks <algorithm> include with IWYU keep.
library/lattice/c/src/tetengo_lattice_input.cpp Marks <string> include with IWYU keep.
library/lattice/c/include/tetengo/lattice/path.h Uses (void) in no-arg function prototype for C correctness.
library/lattice/c/include/tetengo/lattice/entry.h Uses (void) in no-arg function prototype for C correctness.
library/lattice/c/include/tetengo/lattice/constraint.h Uses (void) in no-arg function prototype for C correctness.
library/json/test/test_tetengo.json.vcxproj Updates MSVC platform toolset version.
library/json/test/src/usage_tetengo.json.parsing_c.h Uses (void) in no-arg function prototype for C correctness.
library/json/test/src/usage_tetengo.json.parsing_c.c Uses (void) in no-arg function definition for C correctness.
library/json/cpp/tetengo.json.cpp.vcxproj Updates MSVC platform toolset version.
library/json/cpp/src/tetengo.json.json_parser.cpp Adds file_location include (IWYU keep).
library/json/cpp/src/tetengo.json.channel.cpp Removes unused <vector> include.
library/json/c/tetengo.json.vcxproj Updates MSVC platform toolset version.
library/json/c/src/tetengo_json_reader.cpp Marks <string> include with IWYU keep.
library/json/c/include/tetengo/json/reader.h Uses (void) in no-arg function prototype for C correctness.
library/json/c/include/tetengo/json/element.h Uses (void) in no-arg function prototypes for C correctness.
executable/setup/setup.vcxproj Updates MSVC platform toolset version.
configure.ac Updates pthread handling and bumps required Boost version; adjusts substituted flags.
README.md Updates build requirements/tool versions and references .slnx solutions.
Makefile.am Updates distributed artifacts to ship .slnx instead of .sln.
Doxyfile Updates to Doxygen 1.16.1 template/settings (incl. new tags).
.github/workflows/windows-visualcpp.yml Updates CI toolchain versions, runner image, WiX install steps, and uses .slnx.
.github/workflows/linux-gcc.yml Updates GCC/Ubuntu/Boost versions and action versions.
.github/workflows/linux-clang.yml Updates Clang/Ubuntu/Boost/Doxygen versions and action versions.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

kaorut added 2 commits April 29, 2026 15:29
Updated WiX Toolset commands in Makefile.nmake to include the wix7 argument for msi transform and build operations, ensuring compatibility with the specified WiX version.
Updated kogyan submodule from commit 0091e14f to 29f0fe8c.
@kaorut kaorut merged commit da38ccf into main Apr 29, 2026
24 of 27 checks passed
@kaorut kaorut deleted the modernize branch April 29, 2026 08:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

task-enhancement New feature or request v1.9.0

Development

Successfully merging this pull request may close these issues.

Modernize the dependencies.

2 participants