Skip to content

Commit 5b85ece

Browse files
authored
feat: openkal 0.5.1 and the four packages that are written against it (#224)
Six packages, and the last two are what the first four exist to make possible. openkal 0.5.1 the specification: the declarations in C as well as in modules, five error values, five operations and two naming rules that a C library above it could not be written without, and a conformance suite of 97 observations that an implementation runs against itself openkal-linux 0.5.1 reimplemented on the kernel's own system-call interface, so that a C library can sit above it openkal-macos 0.3.1 reimplemented on that kernel's own calls, and two names no C library defines openkal-windows 0.1.1 new: an implementation on the Win32 interfaces and the object manager beneath them, using no C runtime symbol openkal-musl 0.3.0 musl 1.2.5 redirected onto openkal --- 1345 sources compiled unmodified, four patched lines, nine replaced sources sbase 0.1.0 new: the 97 suckless base utilities, sources unmodified, running on Linux, macOS and Windows sbase is the measurement rather than the demonstration. It has no Windows port and does not build on macOS as it stands: three of its tools include a header of the Linux C libraries and four use a field POSIX 2008 specifies that the other system's C library does not have. Neither obstacle is in a kernel, and a C library removes both by being present rather than by being adapted to. Fifty comparisons against the system's own tools hold on all three. Two version notes, both about a tag being the one thing that cannot be given a second meaning. openkal 0.5.0 and its three implementations were tagged, released and mirrored, and then found to carry files that describe a machine rather than the package; the mirror allows neither replacing an asset nor deleting a release, so the cleaned trees are 0.5.1, 0.3.1 and 0.1.1 and the earlier tags are not carried here. openkal-musl was `openkal-libc' up to 0.2.0, whose tags are still in that repository, so its first version under the new name is 0.3.0; openkal-libc keeps its own descriptor for anything pinned to it.
1 parent 9dd2467 commit 5b85ece

6 files changed

Lines changed: 226 additions & 0 deletions

File tree

‎pkgs/o/openkal-linux.lua‎

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,13 @@ package = {
1919

2020
xpm = {
2121
linux = {
22+
["0.5.1"] = {
23+
url = {
24+
GLOBAL = "https://github.com/mcpplibs/openkal-linux/archive/refs/tags/0.5.1.tar.gz",
25+
CN = "https://gitcode.com/mcpp-res/openkal-linux/releases/download/0.5.1/openkal-linux-0.5.1.tar.gz",
26+
},
27+
sha256 = "fa9dd5daff81666e80b38f213e9b9a073e8461946f0a58a911fc67a04f1d8415",
28+
},
2229
["0.4.0"] = {
2330
url = {
2431
GLOBAL = "https://github.com/mcpplibs/openkal-linux/archive/refs/tags/0.4.0.tar.gz",
@@ -28,6 +35,13 @@ package = {
2835
},
2936
},
3037
macosx = {
38+
["0.5.1"] = {
39+
url = {
40+
GLOBAL = "https://github.com/mcpplibs/openkal-linux/archive/refs/tags/0.5.1.tar.gz",
41+
CN = "https://gitcode.com/mcpp-res/openkal-linux/releases/download/0.5.1/openkal-linux-0.5.1.tar.gz",
42+
},
43+
sha256 = "fa9dd5daff81666e80b38f213e9b9a073e8461946f0a58a911fc67a04f1d8415",
44+
},
3145
["0.4.0"] = {
3246
url = {
3347
GLOBAL = "https://github.com/mcpplibs/openkal-linux/archive/refs/tags/0.4.0.tar.gz",
@@ -37,6 +51,13 @@ package = {
3751
},
3852
},
3953
windows = {
54+
["0.5.1"] = {
55+
url = {
56+
GLOBAL = "https://github.com/mcpplibs/openkal-linux/archive/refs/tags/0.5.1.tar.gz",
57+
CN = "https://gitcode.com/mcpp-res/openkal-linux/releases/download/0.5.1/openkal-linux-0.5.1.tar.gz",
58+
},
59+
sha256 = "fa9dd5daff81666e80b38f213e9b9a073e8461946f0a58a911fc67a04f1d8415",
60+
},
4061
["0.4.0"] = {
4162
url = {
4263
GLOBAL = "https://github.com/mcpplibs/openkal-linux/archive/refs/tags/0.4.0.tar.gz",

‎pkgs/o/openkal-macos.lua‎

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,13 @@ package = {
1919

2020
xpm = {
2121
linux = {
22+
["0.3.1"] = {
23+
url = {
24+
GLOBAL = "https://github.com/mcpplibs/openkal-macos/archive/refs/tags/0.3.1.tar.gz",
25+
CN = "https://gitcode.com/mcpp-res/openkal-macos/releases/download/0.3.1/openkal-macos-0.3.1.tar.gz",
26+
},
27+
sha256 = "c9347af16af21969938cffd112abd9a2f930eab28500d15ab8cc17b236f4b766",
28+
},
2229
["0.2.0"] = {
2330
url = {
2431
GLOBAL = "https://github.com/mcpplibs/openkal-macos/archive/refs/tags/0.2.0.tar.gz",
@@ -28,6 +35,13 @@ package = {
2835
},
2936
},
3037
macosx = {
38+
["0.3.1"] = {
39+
url = {
40+
GLOBAL = "https://github.com/mcpplibs/openkal-macos/archive/refs/tags/0.3.1.tar.gz",
41+
CN = "https://gitcode.com/mcpp-res/openkal-macos/releases/download/0.3.1/openkal-macos-0.3.1.tar.gz",
42+
},
43+
sha256 = "c9347af16af21969938cffd112abd9a2f930eab28500d15ab8cc17b236f4b766",
44+
},
3145
["0.2.0"] = {
3246
url = {
3347
GLOBAL = "https://github.com/mcpplibs/openkal-macos/archive/refs/tags/0.2.0.tar.gz",
@@ -37,6 +51,13 @@ package = {
3751
},
3852
},
3953
windows = {
54+
["0.3.1"] = {
55+
url = {
56+
GLOBAL = "https://github.com/mcpplibs/openkal-macos/archive/refs/tags/0.3.1.tar.gz",
57+
CN = "https://gitcode.com/mcpp-res/openkal-macos/releases/download/0.3.1/openkal-macos-0.3.1.tar.gz",
58+
},
59+
sha256 = "c9347af16af21969938cffd112abd9a2f930eab28500d15ab8cc17b236f4b766",
60+
},
4061
["0.2.0"] = {
4162
url = {
4263
GLOBAL = "https://github.com/mcpplibs/openkal-macos/archive/refs/tags/0.2.0.tar.gz",

‎pkgs/o/openkal-musl.lua‎

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
-- openkal-musl --- musl 1.2.5 above openkal rather than above one kernel.
2+
--
3+
-- The version line continues rather than restarting. This repository was
4+
-- `openkal-libc' up to 0.2.0, and those tags are still in it; a package that
5+
-- restarted at 0.1.0 would give one tag two meanings, which is the one thing a
6+
-- release chain cannot allow. The earlier name keeps its own descriptor so that
7+
-- a project pinned to it continues to resolve, and nothing is added to it.
8+
--
9+
-- No `deps'. The package names the specification it is written against and the
10+
-- implementation of openkal for the target being built, both in its own
11+
-- manifest --- because a C library is the one consumer that knows the program
12+
-- above it carries no other runtime, and that is what selects the
13+
-- implementation's `standalone' feature.
14+
--
15+
-- The consequence for a program is that it names this package and nothing else.
16+
package = {
17+
spec = "1",
18+
namespace = "mcpplibs",
19+
name = "openkal-musl",
20+
description = "musl 1.2.5 redirected onto openkal: one C library, ported once, above every implementation of the specification rather than above one kernel",
21+
licenses = {"Apache-2.0", "MIT"},
22+
repo = "https://github.com/mcpplibs/openkal-musl",
23+
type = "package",
24+
25+
xpm = {
26+
linux = {
27+
["0.3.0"] = {
28+
url = {
29+
GLOBAL = "https://github.com/mcpplibs/openkal-musl/archive/refs/tags/0.3.0.tar.gz",
30+
CN = "https://gitcode.com/mcpp-res/openkal-musl/releases/download/0.3.0/openkal-musl-0.3.0.tar.gz",
31+
},
32+
sha256 = "ec96bc1f68c42daf2b8db4815138b8fc548cebb910c13482dbefa4c4a8994f17",
33+
},
34+
},
35+
macosx = {
36+
["0.3.0"] = {
37+
url = {
38+
GLOBAL = "https://github.com/mcpplibs/openkal-musl/archive/refs/tags/0.3.0.tar.gz",
39+
CN = "https://gitcode.com/mcpp-res/openkal-musl/releases/download/0.3.0/openkal-musl-0.3.0.tar.gz",
40+
},
41+
sha256 = "ec96bc1f68c42daf2b8db4815138b8fc548cebb910c13482dbefa4c4a8994f17",
42+
},
43+
},
44+
windows = {
45+
["0.3.0"] = {
46+
url = {
47+
GLOBAL = "https://github.com/mcpplibs/openkal-musl/archive/refs/tags/0.3.0.tar.gz",
48+
CN = "https://gitcode.com/mcpp-res/openkal-musl/releases/download/0.3.0/openkal-musl-0.3.0.tar.gz",
49+
},
50+
sha256 = "ec96bc1f68c42daf2b8db4815138b8fc548cebb910c13482dbefa4c4a8994f17",
51+
},
52+
},
53+
},
54+
55+
mcpp = "*/mcpp.toml",
56+
}

‎pkgs/o/openkal-windows.lua‎

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
-- openkal-windows --- an implementation for a system that shares no ancestry
2+
-- with the one openkal was first written on.
3+
--
4+
-- No `deps`. The interfaces it uses are the ones every installation of that
5+
-- system already has, and it names them in the objects it produces rather than
6+
-- on a link line, so a project that selects it needs nothing further.
7+
--
8+
-- The package is listed for every platform because a descriptor's platform
9+
-- table describes availability rather than applicability. A project selects
10+
-- this implementation with a conditional dependency on `cfg(windows)`, and a
11+
-- project that selects it elsewhere fails at compile time, which is the correct
12+
-- place for that failure.
13+
package = {
14+
spec = "1",
15+
namespace = "mcpplibs",
16+
name = "openkal-windows",
17+
description = "An implementation of openkal for Windows, on the Win32 interfaces and the object manager beneath them, using no C runtime symbol",
18+
licenses = {"Apache-2.0"},
19+
repo = "https://github.com/mcpplibs/openkal-windows",
20+
type = "package",
21+
22+
xpm = {
23+
linux = {
24+
["0.1.1"] = {
25+
url = {
26+
GLOBAL = "https://github.com/mcpplibs/openkal-windows/archive/refs/tags/0.1.1.tar.gz",
27+
CN = "https://gitcode.com/mcpp-res/openkal-windows/releases/download/0.1.1/openkal-windows-0.1.1.tar.gz",
28+
},
29+
sha256 = "e4e517c80d030eacd5427e85c4431a425d098a151c263554bf79d277f360d444",
30+
},
31+
},
32+
macosx = {
33+
["0.1.1"] = {
34+
url = {
35+
GLOBAL = "https://github.com/mcpplibs/openkal-windows/archive/refs/tags/0.1.1.tar.gz",
36+
CN = "https://gitcode.com/mcpp-res/openkal-windows/releases/download/0.1.1/openkal-windows-0.1.1.tar.gz",
37+
},
38+
sha256 = "e4e517c80d030eacd5427e85c4431a425d098a151c263554bf79d277f360d444",
39+
},
40+
},
41+
windows = {
42+
["0.1.1"] = {
43+
url = {
44+
GLOBAL = "https://github.com/mcpplibs/openkal-windows/archive/refs/tags/0.1.1.tar.gz",
45+
CN = "https://gitcode.com/mcpp-res/openkal-windows/releases/download/0.1.1/openkal-windows-0.1.1.tar.gz",
46+
},
47+
sha256 = "e4e517c80d030eacd5427e85c4431a425d098a151c263554bf79d277f360d444",
48+
},
49+
},
50+
},
51+
52+
-- The package's own manifest, inside the tarball's wrap directory.
53+
mcpp = "*/mcpp.toml",
54+
}

‎pkgs/o/openkal.lua‎

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,13 @@ package = {
2222

2323
xpm = {
2424
linux = {
25+
["0.5.1"] = {
26+
url = {
27+
GLOBAL = "https://github.com/mcpplibs/openkal/archive/refs/tags/0.5.1.tar.gz",
28+
CN = "https://gitcode.com/mcpp-res/openkal/releases/download/0.5.1/openkal-0.5.1.tar.gz",
29+
},
30+
sha256 = "cc4bd91fe0ea7c2046307e9bee92b58c9ea29f18056a03ff717f6c8e1e839d20",
31+
},
2532
["0.4.0"] = {
2633
url = {
2734
GLOBAL = "https://github.com/mcpplibs/openkal/archive/refs/tags/0.4.0.tar.gz",
@@ -31,6 +38,13 @@ package = {
3138
},
3239
},
3340
macosx = {
41+
["0.5.1"] = {
42+
url = {
43+
GLOBAL = "https://github.com/mcpplibs/openkal/archive/refs/tags/0.5.1.tar.gz",
44+
CN = "https://gitcode.com/mcpp-res/openkal/releases/download/0.5.1/openkal-0.5.1.tar.gz",
45+
},
46+
sha256 = "cc4bd91fe0ea7c2046307e9bee92b58c9ea29f18056a03ff717f6c8e1e839d20",
47+
},
3448
["0.4.0"] = {
3549
url = {
3650
GLOBAL = "https://github.com/mcpplibs/openkal/archive/refs/tags/0.4.0.tar.gz",
@@ -40,6 +54,13 @@ package = {
4054
},
4155
},
4256
windows = {
57+
["0.5.1"] = {
58+
url = {
59+
GLOBAL = "https://github.com/mcpplibs/openkal/archive/refs/tags/0.5.1.tar.gz",
60+
CN = "https://gitcode.com/mcpp-res/openkal/releases/download/0.5.1/openkal-0.5.1.tar.gz",
61+
},
62+
sha256 = "cc4bd91fe0ea7c2046307e9bee92b58c9ea29f18056a03ff717f6c8e1e839d20",
63+
},
4364
["0.4.0"] = {
4465
url = {
4566
GLOBAL = "https://github.com/mcpplibs/openkal/archive/refs/tags/0.4.0.tar.gz",

‎pkgs/s/sbase.lua‎

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
-- sbase --- the suckless base utilities, above openkal-musl.
2+
--
3+
-- The sources are upstream's, unmodified. What this package supplies is a
4+
-- manifest naming one dependency, two build decisions that are about linking
5+
-- rather than about sources, and fifty comparisons against the system's own
6+
-- tools.
7+
--
8+
-- It is listed for every platform, and that is the result rather than a
9+
-- convention: sbase has no Windows port and does not build on macOS as it
10+
-- stands --- three of its tools include a header of the Linux C libraries and
11+
-- four use a field POSIX 2008 specifies that the other system's C library does
12+
-- not have. Neither obstacle is in a kernel.
13+
package = {
14+
spec = "1",
15+
namespace = "mcpplibs",
16+
name = "sbase",
17+
description = "The suckless base utilities recompiled above openkal-musl: ninety-seven tools, sources unmodified, on Linux, macOS and Windows",
18+
licenses = {"MIT", "Apache-2.0"},
19+
repo = "https://github.com/mcpplibs/sbase",
20+
type = "package",
21+
22+
xpm = {
23+
linux = {
24+
["0.1.0"] = {
25+
url = {
26+
GLOBAL = "https://github.com/mcpplibs/sbase/archive/refs/tags/0.1.0.tar.gz",
27+
CN = "https://gitcode.com/mcpp-res/sbase/releases/download/0.1.0/sbase-0.1.0.tar.gz",
28+
},
29+
sha256 = "cd8ea89e9b15ae1ef41c0efba58304d39e853d649783b9300c0fab69375e36ff",
30+
},
31+
},
32+
macosx = {
33+
["0.1.0"] = {
34+
url = {
35+
GLOBAL = "https://github.com/mcpplibs/sbase/archive/refs/tags/0.1.0.tar.gz",
36+
CN = "https://gitcode.com/mcpp-res/sbase/releases/download/0.1.0/sbase-0.1.0.tar.gz",
37+
},
38+
sha256 = "cd8ea89e9b15ae1ef41c0efba58304d39e853d649783b9300c0fab69375e36ff",
39+
},
40+
},
41+
windows = {
42+
["0.1.0"] = {
43+
url = {
44+
GLOBAL = "https://github.com/mcpplibs/sbase/archive/refs/tags/0.1.0.tar.gz",
45+
CN = "https://gitcode.com/mcpp-res/sbase/releases/download/0.1.0/sbase-0.1.0.tar.gz",
46+
},
47+
sha256 = "cd8ea89e9b15ae1ef41c0efba58304d39e853d649783b9300c0fab69375e36ff",
48+
},
49+
},
50+
},
51+
52+
mcpp = "*/mcpp.toml",
53+
}

0 commit comments

Comments
 (0)