kernel: update to Tarver's S41.2 (2026-07-11 refresh)#9
Merged
Conversation
Replace the community ShenOSKernel-41.2 with Mark Tarver's re-uploaded S41.2 (2026-07-11) — same version string, restructured kernel of a different lineage. Canonical source: pyrex41/shen-s41.1 tag s41.2-pristine-20260711 (commit 11fc51b); byte-identical to shenlanguage.org/Download/S41.2.zip (sha256 51becbf…3ee836). Vendor the 15 refreshed core .kl files byte-identical. Drop dict.kl (put/get now store pointer lists on *property-vector* directly, no dict layer), compiler.kl (shen-cl artifact), and init.kl (absorbed into declarations.kl/toplevel.kl; there is no shen.initialise function any more — declarations.kl self-initialises via top-level forms at load). Retain community stlib.kl + extensions as an overlay (upstream now ships StLib as separate lazy Shen sources, but the conformance suite and the Ratatoskr stage-1 launcher still need them). Vendor backend.kl for audit completeness but do not boot it (upstream loads it as precompiled backend.lsp; dead weight for a Rust port). Boot order now follows upstream install.lsp (runtime loader), not make.shen (bootstrap-generation order): declarations.kl and macros.kl must precede types.kl, whose 161 top-level (declare …) forms invoke the type checker; types.kl loads last. run_shen_initialise is a graceful no-op when shen.initialise is absent (keeps shaken/legacy kernels working). Regenerate all AOT kernel modules; update the shenffi embedded KERNEL_PARTS, PROVENANCE, and docs. All gates green: kernel-tests 134/134 across release/debug/debug-gc, fmt+clippy, workspace tests, shen-check, tcb-audit, kernel-aot-audit, cedar-equiv. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This was referenced Jul 14, 2026
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.
Update vendored kernel to Mark Tarver's S41.2 (2026-07-11 refresh)
Replaces the community
ShenOSKernel-41.2kernel this port vendored withMark Tarver's re-uploaded S41.2 (2026-07-11 refresh) — the same
version string but a restructured kernel of a different lineage.
Canonical source: the
pyrex41/shen-s41.1mirror, tags41.2-pristine-20260711(commit11fc51b); byte-identical tohttps://www.shenlanguage.org/Download/S41.2.zip(Last-Modified2026-07-11, sha256
51becbf…3ee836). Full detail inkernel/klambda/PROVENANCE.md.Upstream delta
.klvendored byte-identical:backend core declarations load macros prolog reader sequent sys t-star toplevel track types writer yacc.dict.kl,compiler.kl,init.kl:put/getnow store pointer lists on*property-vector*directly(
shen.change-pointer-value/shen.remove-pointerinsys.kl) — nodict layer, no native dict primitives needed.
compiler.klwas a shen-cl artifact (never in the release zip).init.klis gone and there is noshen.initialisefunction anymore:
declarations.klsets*property-vector*, runsshen.initialise-arity-table, and builds the lambda table(
shen.build-lambda-table (external shen)) via top-level formsevaluated during file load.
backend.kl(newcl.*Common-Lisp backend) is vendored +AOT-generated for audit completeness but not booted (upstream loads
it as precompiled
backend.lsp; dead weight for a Rust port).What this PR does
dict/compiler/init.kl; retainsstlib.kl(community stdlib) + community extensions as an overlay —upstream now ships StLib as separate lazy Shen sources, but the
conformance suite and the Ratatoskr stage-1 launcher still need them
(migration to
Lib/StLibsources tracked as follow-up).install.lsp(the reference SBCLruntime loader), not
Sources/make.shen(the bootstrap-generationorder). This is now load-bearing:
declarations.klandmacros.klmust precede
types.kl, whose 161 top-level(declare …)forms invokethe type checker (
shen.prolog-vector, the prolog-memory global).types.klloads last.run_shen_initialisea graceful no-op whenshen.initialiseis absent (the refreshed kernel self-initialises at load); still
calls it when present, preserving the Ratatoskr stage-2 contract.
scripts/codegen-kernel-aot.sh);updates
aot/kernel/mod.rs, theshenffiembeddedKERNEL_PARTS,PROVENANCE.md, and the21-file references in the docs.Test status
REPL smoke: boots clean,
*version*=41.2, arithmetic /map/reverse/append/shen.hushall correct.Remaining work / notes for other ports
stlib.klas an overlay ratherthan loading upstream's
Lib/StLibShen sources. Functionally complete(134/134) but not the upstream stdlib-load path.
crates/ratatoskr-buildstill defaults itsmanifest
inittoshen.initialise. Boot no longer requires it (theno-op change covers shaken kernels), but a shaken slice of this kernel
has no such function — the builder's default should move to "none".
Out of scope here; flagged for the Ratatoskr repo.
shen.initialise(callonly-if-defined); properties live on a plain
*property-vector*absvector, not a dict (a port with native dict-backed
put/getwould break — shen-rust's are kernel defuns, so it dodged this); the
declarations-before-typesload order.🤖 Generated with Claude Code