A NotImplemented_nid_no_patch call inside an #if, #ifdef or #ifndef block
opened in the export's own body runs only on some hosts, so the export
is partial, not a stub. An export wrapped in a preprocessor block from
outside its body keeps its class.
An export whose body reaches NotImplemented_nid_no_patch on every path,
directly or through a helper that always reaches it, stays a stub. One
that reaches it only under a condition (if, else, loop, switch, ternary,
short-circuit or lambda) is now classified as partial, so implemented
exports with guards for unknown behaviour are no longer counted as stubs.
progress.py and the progress page are unchanged.
report() turned every nonzero exit of git merge-base into "<head> and
<base> have no common ancestor", so a mistyped or unfetched --head, a
tree or a blob was reported as unrelated history and git's own error was
dropped. Now only exit status 1 keeps that message, and any other
failure raises "git merge-base failed: <stderr>" like the merge-tree
call in conflicts(). git merge-base returns 1 when the histories share
no commit and dies with 128 when a revision does not resolve to a
commit. The tool still exits 2 in both cases, and
test_unrelated_histories_are_an_error now also checks that an invalid
head reports git's own merge-base error and not a missing common
ancestor.
The patch advisor prints its conversion options through command_line,
which quotes a path containing a space, and passes resolved paths to the
relinker, so the unit test failed when the temporary directory had a
space in its path or was reached through an 8.3 short name or a symlink.
Build the expected text with the same helper, resolve the fixture root
and give it a space so every machine exercises the quoted rendering.
Co-Authored-By: Claude Fable 5.1 <[email protected]>
CMake stores a check_type_size result as two cache entries: HAVE_<VAR>, documented as Result of TRY_COMPILE, and <VAR>, documented as CHECK_TYPE_SIZE. The exporter only recognized the first, so a seeded configure restored HAVE_<VAR>=TRUE, skipped the probe and had no size. Seed the size entry too, and hash tools/configure_seed.py into the seed cache key so a seed written by the old exporter is not restored.