Skip to content

tweaks - #28

Merged
Randalphwa merged 9 commits into
mainfrom
tweaks
Mar 31, 2026
Merged

Randalphwa merged 9 commits into
mainfrom
tweaks

Conversation

@Randalphwa

Copy link
Copy Markdown
Member
  • Add support for sccache
  • Switch to #pragma once instead of conditional guards
  • Remove unused header
  • Remove duplicate compiler check
  • Change variable names, replace magic numbers for clarity

Every compiler that supports C++23 supports #pragma once — GCC, Clang, MSVC, and Intel have all supported it for well over a decade.
Check is in version.h
Added /wd4018 alongside the existing /wd4307 in the MSVC test compile options. This suppresses the signed/unsigned warning from MSVC's system headers while leaving all other diagnostics intact.
Root cause: On Windows, std::abort() triggers two things that hang headless CI:

CRT abort message box — a dialog requesting user input

Windows Error Reporting (Watson/WER) — attempts to phone home and/or show a crash dialog

The SIGABRT signal handler never fires because MSVC's abort() hits the dialog first.

Fixes in no_exceptions.cpp:

_set_abort_behavior(0, _WRITE_ABORT_MSG | _CALL_REPORTFAULT) — suppresses both the CRT dialog and WER, letting abort() proceed cleanly to the signal handler

_CrtSetReportMode(_CRT_ASSERT/_CRT_ERROR, _CRTDBG_MODE_DEBUG) — redirects any Debug CRT assertions to the debugger (no-op in CI) instead of popping dialogs
Added TIMEOUT 10 to the test properties — if anything still hangs on any platform, CTest will kill it after 10 seconds instead of blocking forever
@Randalphwa
Randalphwa merged commit 7d020b5 into main Mar 31, 2026
4 checks passed
@Randalphwa
Randalphwa deleted the tweaks branch March 31, 2026 04:42
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