Add typed native Linux/libc vocabulary - #13
Merged
Merged
Conversation
isomorphisms
marked this pull request as ready for review
September 14, 2026 16:41
Owner
Author
|
Physical ARMv7 acceptance receipt (2026-09-16) Executed the exact artifact from green workflow run 35115827695 on the physical Android phone in Termux.
Physical ARMv7 native-libc acceptance: PASS. The artifact's build-time receipt still says |
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.
Implements a narrow native Linux/libc vocabulary for current Oils-derived Grease, based on the existing ARMv7 runtime branch.
Current exact head:
ef9c74055c8079a7027771c6b869085ec7df3e3dPinned Oils source:
9024d14ecd25c8c55cd7e8ea0b901a3a9525565cCompanion source PR: isomorphisms/oils#2
Public Grease/YSH boundary:
mmap,munmap,mprotect,msyncopenat,linkat,symlinkat,unlinkatclose,readMapping, andwriteMappingsupport actionsThe C++ layer is the existing Oils/YSH translated native-runtime seam; this PR does not create a second Grease runtime. Native calls go through libc/Bionic directly, with no raw syscall-number table and no general-purpose FFI.
The representative IB proof is
examples/ib-mapped-index.ysh: open a prepared 4096-byte index file, map it shared, readfragment, writepensieve,msync, verify through the mapping, unmap and close; the host receipt then verifies the persisted file bytes outside Grease.Focused native tests cover anonymous and file-backed mappings, bounds/errors,
mprotectstate (including EACCES instead of touching protected memory), relativeopenat, hard links, symbolic links, andunlinkat.GitHub execution uses GitHub-hosted
ubuntu-24.04. The host receipt uses the inherited Oils Podmancpp-specharness, then runs the focused libc tests and mapped-IB example. The ARMv7 receipt uses the inheritedcpp-tarballharness on hosted Ubuntu, installs the explicitly pinned Android NDK27.3.13750724, and cross-builds the Android artifact.Exact-current-head acceptance on GitHub-hosted Ubuntu 24.04:
ef9c74055c8079a7027771c6b869085ec7df3e3d.ef9c74055c8079a7027771c6b869085ec7df3e3d.The prior exact-head receipts at
758f9ad8af42658ef3a047b7f98f023b31d5327aare historical evidence; the current head adopts the base branch's already-landed ARM ELF verifier fix rather than carrying a competing implementation.The branch is mergeable against the current
phone/armv7-runtimebase. Physical-phone execution is not claimed here and remains a separate acceptance boundary.The separate ish/Odriç direct-execve experiment is not the runtime underneath current Grease and is not duplicated by this work.