Skip to content

feat: openkal 0.5.1 and the four packages that are written against it - #224

Merged
Sunrisepeak merged 1 commit into
mainfrom
feat/openkal-0.5
Aug 20, 2026
Merged

feat: openkal 0.5.1 and the four packages that are written against it#224
Sunrisepeak merged 1 commit into
mainfrom
feat/openkal-0.5

Conversation

@Sunrisepeak

Copy link
Copy Markdown
Member

Six packages. The last two are what the first four exist to make possible.

package version
openkal 0.5.1 the specification: the declarations in C as well as in modules, five error values, five operations and two naming rules a C library above it could not be written without, and a conformance suite of 97 observations 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 — 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, on Linux, macOS and Windows

What sbase measures

sbase has no Windows port, and does not build on macOS as it stands:
three of its tools include <sys/sysmacros.h>, a header of the Linux C
libraries, and four use st_mtim, the field POSIX 2008 specifies, where that
system's C library has st_mtimespec.

Neither obstacle is in a kernel. Both are the C library, and a C library removes
them by being present rather than by being adapted to. Fifty comparisons against
the system's own tools — and against the answers the standard requires, where a
system's own spelling is not portable — hold on all three systems.

Two version notes

Both are about a tag being the one thing in a release chain that cannot be given
a second meaning.

0.5.0 is superseded, not corrected. 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 starts at 0.3.0. It was openkal-libc up to 0.2.0, whose tags
are still in that repository. openkal-libc keeps its own descriptor for
anything pinned to it, and nothing is added to it.

Verified before opening this

  • every package merged, tagged, released, and mirrored to mcpp-res
  • each CN asset fetched with GET and compared byte for byte with GitHub's
  • check_mirror_urls.lua, check_package_name.lua and mcpp xpkg parse on all six descriptors
  • each repository's own CI green on main: openkal 12 jobs across gcc/llvm/msvc and three systems; openkal-windows under llvm, msvc and gcc; sbase 97 binaries and 50/50 comparisons on five rows

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.
@Sunrisepeak
Sunrisepeak merged commit 5b85ece into main Aug 20, 2026
8 checks passed
@Sunrisepeak
Sunrisepeak deleted the feat/openkal-0.5 branch August 20, 2026 04:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant