Skip to content

build: portable build with the cth package, ci - #1

Merged
codethinki merged 16 commits into
masterfrom
refactor/cth-package
Oct 6, 2026
Merged

codethinki merged 16 commits into
masterfrom
refactor/cth-package

Conversation

@codethinki

Copy link
Copy Markdown
Owner
  • cth comes as finished package in lib/cth (built from cth master), find_package(cth COMPONENTS cth) loads only the header only core
  • file reads use cth::io::file::read instead of the windows only cth::win mapping / unbuffered read
  • missing <cstddef>, ctest registration order, buildcache optional, constexpr steps via cth_target_set_constexpr_steps
  • gcc, clang and msvc presets, unused boost-asio removed
  • same CI as cth and cth_cmake: linux (gcc, clang), windows (msvc, clang 23)

Builds, tests and solves on linux with gcc 16 and clang 23. Windows (and whether msvc supports #embed) is checked by this PR's CI.

Lukas Thomann added 16 commits October 5, 2026 02:45
find_package(cth COMPONENTS cth) loads the header only core from the
package in lib/cth. No separately installed cth needed anymore.
Replaces the windows only cth::win file mapping and unbuffered read. dyn_load
keeps the data alive, the returned string_view pointed into the released
mapping before.
enable_testing() ran after the subprojects were added, so ctest saw no
tests. The targets already enable buildcache with OPTIONAL.
…_steps

Raises the limit for gcc and clang, as_cxpr_array evaluates the word list
split twice.
Same pipeline as cth and cth_cmake: linux (gcc, clang) in a CachyOS container,
windows (msvc, clang 23).
msvc has no #embed. Compilers without __has_embed read the word list file
at runtime instead of embedding it.
Built from cth 932ab8f: std range formatting, as_cxpr_array.
A letter only counted as coverable if some word started or ended with it,
so puzzles where a letter only appears inside words (q in squaw, v in wavy)
were reported unsolvable without searching. The union of all word masks
has to cover every letter instead.
Splits solve into init_nodes, build_graph and trace_solutions, names the
interchangeable words of an edge and gives solutions a formatter. Removes
the unused incoming counter.
Removes the unused precompute_word_list.
@codethinki
codethinki merged commit 1f0d067 into master Oct 6, 2026
6 checks passed
@codethinki
codethinki deleted the refactor/cth-package branch October 6, 2026 10:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant