Skip to content

kernel: move to upstream ShenOSKernel 43.1 at ec16a9f (deref-once type checker) - #31

Merged
pyrex41 merged 1 commit into
mainfrom
kernel-ec16a9f
Oct 22, 2026
Merged

pyrex41 merged 1 commit into
mainfrom
kernel-ec16a9f

Conversation

@pyrex41

@pyrex41 pyrex41 commented Oct 22, 2026

Copy link
Copy Markdown
Owner

Moves the vendored klambda to upstream Shen-Language/shen-sources ec16a9f. That is the 43.1 release plus shen-sources#117: the type checker now dereferences (copies) the checked term once per shen.by-hypothesis / shen.search-user-datatypes call, instead of once per hypothesis or datatype rule. Both functions also fail at once on an empty list. (version) is still "43.1".

Kernel

  • Source: ShenOSKernel-43.1-ec16a9f.tar.gz from https://github.com/pyrex41/shen-sources/releases/tag/upstream-ec16a9f. It is unmodified upstream sources, built with the repo's make klambda / make release. sha256 060066a8f84d9a2f7d41cb3b37b986a8d4653279752b739b5063cd648d9baacd.
  • The 23 release .kl files are replaced. kernel/tests/ and kernel/stlib/ are unchanged, and identical to the archive.
  • In substance only t-star.kl changes. The other 12 changed files are gensym renumbering.
  • crates/shen-rust/src/aot/kernel/*.rs is regenerated with scripts/codegen-kernel-aot.sh.
  • kernel/klambda/PROVENANCE.md, the README and the CHANGELOG record the provenance.

Gates (local, macOS arm64)

  • scripts/gates.sh: gates 0-10 all PASS. That covers shengen-codegen, fmt + clippy, build, cargo test, shen-check, tcb-audit, kernel-aot-audit, kernel-tests (canonical, 154/0), kernel-tests-debug, kernel-tests-debug-gc and cedar-equiv.
  • capcov shenbench, 8 workloads: 7/8 payloads match the go-1f587de reference. All 8 are byte-identical to main.
    • The exception is f-modelcheck, which fails the same way on main: exit 1, read-file-as-bytelist: shen/load.shen: No such file or directory.

Speed (b-typed, /usr/bin/time -l, one pair)

CPU instructions
main ec950a0 53.6 s 848 G
this branch 14.2 s 284 G (-67%)

An earlier two-round trial of the same change (#117 without its empty-list early exit) left c-untyped and d-g5 flat.

🤖 Generated with Claude Code

…e checker)

Vendor the klambda built from unmodified Shen-Language/shen-sources
ec16a9f, the merge of shen-sources#117. shen.by-hypothesis and
shen.search-user-datatypes now dereference the checked term once per
call, instead of once per hypothesis or datatype rule. (version) stays
"43.1".

The archive is ShenOSKernel-43.1-ec16a9f.tar.gz from pyrex41/shen-sources
release upstream-ec16a9f, sha256
060066a8f84d9a2f7d41cb3b37b986a8d4653279752b739b5063cd648d9baacd.
The kernel AOT modules are regenerated with scripts/codegen-kernel-aot.sh.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@pyrex41
pyrex41 merged commit c14dec6 into main Oct 22, 2026
2 checks passed
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