[us-commits] [ehb54/ultrascan3] 505b56: perceiver: run the regression in CI, under floors ...
emre brookes
noreply at github.com
Tue Aug 18 10:15:54 MDT 2026
Branch: refs/heads/ehb54-issue-1016-somo-merge-2
Home: https://github.com/ehb54/ultrascan3
Commit: 505b560e0e802db5fe8bb52f906b70d1f7f2264d
https://github.com/ehb54/ultrascan3/commit/505b560e0e802db5fe8bb52f906b70d1f7f2264d
Author: ehb54 <brookes at uthscsa.edu>
Date: 2026-08-18 (Tue, 18 Aug 2026)
Changed paths:
M .github/workflows/somo-module-tests.yml
M us_somo/develop/perceiver/Makefile
M us_somo/develop/perceiver/residue_oracle.h
M us_somo/develop/perceiver/tests/regression.cpp
Log Message:
-----------
perceiver: run the regression in CI, under floors that can actually fail
Set 2 committed the fixtures, but CI still only asserted the vacuous-pass
guard -- it built bin/regression, ran it with NO arguments to prove it fails
on nothing, and never scored a structure. The regression itself had not run
in CI at all.
Running it is not enough on its own: the harness only failed when it scored
ZERO atoms, so perception could fall from 99.8% to 90% and still exit 0. Two
optional floors are added, and `make regress-ci` pins them to the committed
fixture set:
--min-atoms 41219 a fixture going missing or truncated would quietly
shrink what every percentage is measured over while
still reporting a healthy-looking number
--min-geometric 99.8 perception getting worse fails the build
They are floors, not expected values: an improvement must not fail. Both are
reported together rather than short-circuiting, so one run tells you
everything out of tolerance. Unknown options are now rejected rather than
being read as input filenames.
The vacuous-pass step is kept alongside the real run, because the real run
would still go green if the fixtures vanished AND the guard broke.
residue_oracle.h is brought to the coding standards. It had
while (ss>>t) v.push_back(t); return v;
which is what -Wmisleading-indentation was reporting on every build: the
return reads as guarded by the while and is not. Braces settle it. Scoring is
unchanged -- 41219 atoms, 99.833% geometric perception, 69 genuine errors,
before and after.
Also drops the stale "the demo structures are not committed to the
repository" text from the failure message, which set 2 made untrue.
Co-Authored-By: Claude Opus 5 <noreply at anthropic.com>
Commit: 59325d3cbbd758a15ae9fe6f17c5f53fda5aa85d
https://github.com/ehb54/ultrascan3/commit/59325d3cbbd758a15ae9fe6f17c5f53fda5aa85d
Author: ehb54 <brookes at uthscsa.edu>
Date: 2026-08-18 (Tue, 18 Aug 2026)
Changed paths:
M us_somo/develop/grpy/grpy_exposure.hpp
M us_somo/develop/grpy/grpy_shell.hpp
M us_somo/develop/grpy/tests/test_shell.cpp
M us_somo/develop/src/us_hydrodyn_grpy.cpp
M us_somo/develop/src/us_hydrodyn_other.cpp
M us_somo/develop/src/us_hydrodyn_settings.cpp
Log Message:
-----------
somo: braces on the code this set adds, per the coding standards
The UltraScan III standards require braces on a simple if/for/while body.
The rule earns its keep: an unbraced body is what produced the
-Wmisleading-indentation warning on the perceiver build, and it is the shape
that lets a second statement be added later outside the guard it appears to
be under.
Scope is deliberately narrow, so this stays reviewable:
- the four grpy files this set ADDS are formatted in full with the project
tool (ehb54/grpy-cpp tools/us3_style.pl). The whole file is new code, so
there is no existing formatting for a reviewer to diff against.
- the files this set MODIFIES get braces ONLY, only on lines this set
added: 15 sites across us_hydrodyn_grpy.cpp, _other.cpp and _settings.cpp.
No spacing, indentation or reflow -- those files carry ~1400 pre-existing
unbraced bodies between them, and touching any of them would bury this
set's actual changes in the diff. That remains for the planned full pass.
Verified: brace counts balance in every edited file (delta 0 opening vs
closing), grpy test_shell and test_process both ALL PASS, perceiver unit
tests 147 checks 0 failures, regression unchanged at 99.833% over 41219
atoms.
Note for anyone repeating this with the tool: `--check` reports a body whose
brace sits on its own line as unbraced, though the formatter correctly leaves
it alone. Acting on that list mechanically produces `) {` above `{`. Twelve
of the sites here were that false positive and were skipped. Fixed upstream
in ehb54/grpy-cpp#1.
Co-Authored-By: Claude Opus 5 <noreply at anthropic.com>
Commit: 735d4f94f2cdef575e6e0b2d18c4a99115fb3d51
https://github.com/ehb54/ultrascan3/commit/735d4f94f2cdef575e6e0b2d18c4a99115fb3d51
Author: ehb54 <brookes at uthscsa.edu>
Date: 2026-08-18 (Tue, 18 Aug 2026)
Changed paths:
M us_somo/develop/cmdline.pri
M us_somo/develop/generic.pri
M us_somo/develop/libus_somo.pro
Log Message:
-----------
somo: declare the C++17 the grpy module requires
Nothing in the SOMO build declared a C++ standard, so it inherited whatever
the compiler happened to default to. That was harmless while the code was
C++11-compatible. This set vendors the grpy module, which is not: its own
tests compile it with -std=c++17, and ShellReport::Provenance is brace-
initialized while carrying default member initializers, which is only an
aggregate from C++14 on.
The result was a build that depends on the toolchain rather than on anything
stated. The CI containers use a GCC new enough to default to gnu++17, so they
compile it and the branch looked fine. A Qt5 macOS build passes -std=gnu++11
from its mkspec and fails outright:
grpy/grpy_shell.hpp:443:27: error: no viable overloaded '='
note: candidate function not viable: cannot convert initializer list
argument to 'grpy::ShellReport::Provenance'
macOS is a release target, so this would have surfaced at packaging time
rather than in CI.
Declared in the tracked build files rather than in local.pri, which is
per-developer and untracked -- a requirement of the source belongs with the
source, and existing developers' local.pri files would never have picked it
up. Set in all three of libus_somo.pro, generic.pri and cmdline.pri so the
library and the programs linking against it agree.
Verified on arm64 macOS / Qt 5.15.14, whose mkspec is one of the affected
ones: every source compiles, including grpy_shell.hpp and grpy_exposure.hpp.
Co-Authored-By: Claude Opus 5 <noreply at anthropic.com>
Compare: https://github.com/ehb54/ultrascan3/compare/2eb987336bc7...735d4f94f2cd
To unsubscribe from these emails, change your notification settings at https://github.com/ehb54/ultrascan3/settings/notifications
More information about the us-commits
mailing list