a per-target declaration that stays falsifiable - #454
Merged
Merged
Conversation
`[excluded]` is whole-member, and some members are neither measured-and-broken
nor excludable. `cmp-module` RUNS on `x86_64-windows-gnu` and cannot build on
`x86_64-linux-gnu`: asio's `detail/config.hpp:899` includes
`<linux/version.h>` whenever `__linux__` is defined, OUTSIDE every
`ASIO_DISABLE_*` guard, so no configuration macro prevents it. openkal runs on
the Linux kernel, so `__linux__` is correct; the uapi headers glibc's
userspace installs beside it are not part of what openkal presents. Excluding
the member outright would discard a result that is true in order to hide one
that is also true.
`[not-portable.<member>]` declares one target of one member, with the reason
and the evidence.
THE BAR IS THAT NO MANIFEST KEY REACHES IT. Upstream source asking in the
preprocessor qualifies. A generated configuration header this index writes
does not: `curl`'s `linux/tcp.h` is `#define HAVE_LINUX_TCP_H 1` inside
`#if defined(__linux__)` in `pkgs/c/compat.curl.lua`, which reads a correct
fact about the kernel as a claim about which userspace headers are installed.
That is a recipe defect, the same shape as expat's `arc4random_buf`, and it
belongs in the recipe. The two were one item in the plan; they are not one
thing.
THE DECLARATION STAYS FALSIFIABLE. The cell is measured anyway and
`compat.py check` FAILS when a declared cell builds:
contradicted declaration: cmp-module on x86_64-linux-gnu:
declared not-portable and recorded runs -- remove the declaration
Measured both ways before it was committed: red on a synthetic result
recording `runs`, green on one recording `fails`. A declaration that removes a
cell from the figure on the strength of a sentence, and that nothing can
contradict, is a permanent excuse; the cost of keeping it honest is a build
that was already being paid for.
`selftest` gains three legs pinning that the table is read per (member,
target) and not per member --- reading it per member is exactly the mistake
that would take `cmp-module`'s working Windows cell out of the figure.
…bility
Both are recipe defects.
linux `#define HAVE_LINUX_TCP_H 1` inside `#if defined(__linux__)`.
The kernel IS Linux, so the predicate is right; reading it as
"glibc's userspace headers are installed" is not. The honest test
is `__has_include(<linux/tcp.h>)`. The same block also asserts
`HAVE_GLIBC_STRERROR_R`, false over musl.
windows the recipe's `windows` branch omits HAVE_CONFIG_H so curl_setup.h
reaches the checked-in `lib/config-win32.h`, and links `-lws2_32`
with Schannel. Over openkal that target presents POSIX and is
LP64; config-win32.h is written for LLP64 and the Win32 API.
THE SECOND IS THE INTERESTING ONE: the recipe branches on the PLATFORM where
the question is about the C ENVIRONMENT. Those two agreed on every target this
index had until openkal presented POSIX on Windows, and mcpp has the predicate
for the question actually being asked --- `cfg(c-abi = "musl")`. Recorded
rather than fixed here: it also needs this index's OpenSSL over the same
environment, so it is a larger change than the first.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
[excluded]is whole-member, and some members are neither measured-and-brokennor excludable.
cmp-moduleRUNS onx86_64-windows-gnuand cannot build onx86_64-linux-gnu: asio'sdetail/config.hpp:899includes<linux/version.h>whenever__linux__is defined, OUTSIDE everyASIO_DISABLE_*guard, so no configuration macro prevents it. openkal runs onthe Linux kernel, so
__linux__is correct; the uapi headers glibc'suserspace installs beside it are not part of what openkal presents. Excluding
the member outright would discard a result that is true in order to hide one
that is also true.
[not-portable.<member>]declares one target of one member, with the reasonand the evidence.
THE BAR IS THAT NO MANIFEST KEY REACHES IT. Upstream source asking in the
preprocessor qualifies. A generated configuration header this index writes
does not:
curl'slinux/tcp.his#define HAVE_LINUX_TCP_H 1inside#if defined(__linux__)inpkgs/c/compat.curl.lua, which reads a correctfact about the kernel as a claim about which userspace headers are installed.
That is a recipe defect, the same shape as expat's
arc4random_buf, and itbelongs in the recipe. The two were one item in the plan; they are not one
thing.
THE DECLARATION STAYS FALSIFIABLE. The cell is measured anyway and
compat.py checkFAILS when a declared cell builds:Measured both ways before it was committed: red on a synthetic result
recording
runs, green on one recordingfails. A declaration that removes acell from the figure on the strength of a sentence, and that nothing can
contradict, is a permanent excuse; the cost of keeping it honest is a build
that was already being paid for.
selftestgains three legs pinning that the table is read per (member,target) and not per member --- reading it per member is exactly the mistake
that would take
cmp-module's working Windows cell out of the figure.