Skip to content

Commit 0d9916b

Browse files
authored
Say which line a C++ program writes, because we told a consumer the wrong one (#23)
⚠️⚠️ README's first code block is for a C program, and a C++ program names `openkal-llvm-runtime' INSTEAD. Naming both is not redundancy --- that package pins this one exactly, a version requirement here does not float up, and a program that names both gets neither: error: dependency 'mcpplibs.openkal-musl' has irreconcilable versions: '0.10.0' requested by '<the program>' '0.9.0' requested by 'mcpplibs.openkal-llvm-runtime@0.5.0' ⭐ RECORDED BECAUSE WE GOT IT WRONG OURSELVES. The consumer who reported openkal-linux#13 builds C++ --- their own reports name libc++abi --- and the 0.10.0 announcement told them to change openkal-musl = "0.10.0" which for their build does not select the new C library and does not select the old one either. It does not resolve. The correction is posted on that issue and `openkal-llvm-runtime' 0.6.0 is what makes the right line exist. ⇒ A table, so that the next consumer answers this without asking and the next release has an obvious place to be recorded.
1 parent 2601979 commit 0d9916b

1 file changed

Lines changed: 34 additions & 2 deletions

File tree

README.md

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,40 @@ openkal-musl = "0.10.0"
1414
It names no implementation and no platform: a C library is the one consumer that
1515
must know which implementation it needs, so it declares that itself.
1616

17-
One further line is required, and the reason is worth stating because it is not
18-
about openkal:
17+
⚠️⚠️ **That line is for a C program. A C++ program names the runtime instead, and
18+
naming both is an error rather than a redundancy.**
19+
20+
`openkal-llvm-runtime` supplies libc++, libc++abi and libunwind configured for
21+
this package, and it pins the version of this package **exactly** — a version
22+
requirement here does not float up. So a program that names both gets neither:
23+
24+
```
25+
error: dependency 'mcpplibs.openkal-musl' has irreconcilable versions:
26+
'0.10.0' requested by '<the program>'
27+
'0.9.0' requested by 'mcpplibs.openkal-llvm-runtime@0.5.0'
28+
```
29+
30+
⇒ A C++ program writes **one** line, and the C library arrives with it:
31+
32+
```toml
33+
[dependencies]
34+
openkal-llvm-runtime = "0.6.0" # carries openkal-musl 0.10.0
35+
```
36+
37+
⭐ Recorded here because it was got wrong by the people who maintain this
38+
package: the consumer who reported openkal-linux#13 builds C++, and was told to
39+
change the line above rather than this one. The version table below is what a
40+
consumer needs to answer it without asking.
41+
42+
| this package | is carried by |
43+
| --- | --- |
44+
| 0.10.0 | `openkal-llvm-runtime = "0.6.0"` |
45+
| 0.9.0 | `openkal-llvm-runtime = "0.5.0"` |
46+
| 0.7.0 | `openkal-llvm-runtime = "0.4.0"` |
47+
| 0.6.0 | `openkal-llvm-runtime = "0.3.1"` |
48+
49+
One further line is required for a C program, and the reason is worth stating
50+
because it is not about openkal:
1951

2052
```toml
2153
[build]

0 commit comments

Comments
 (0)