Repository navigation
release: 2026.10.26.2 -- ok images, mcpp over mcpplibs.os 0.2.0 (modules/platform removed), argv-named programs, no signal handlers - #842
Merged
Conversation
…2026.10.26.2) 2026.10.26.1 linked every POSIX output to $out.tmp and renamed it. Emscripten names the files it writes beside the output after the output, so a link to app.js.tmp wrote no app.wasm: the edge's implicit output was missing and mcpp pack of a wasm32-emscripten program found no stem family (mcpp-plugins' dist-web). A WebAssembly link is in place, as a PE link is. Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…e format, mcpplibs.os, and part 1's closure Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…_paths is per package (#844) A GCC module map now names the BMI directory as its repository ($root) and every path below it, so a BMI built with GCC's own mapper and one built with a map record their imports at the same paths: an indirect import, and `import std.compat`, are found in a unit with a map. A dependency BMI an earlier mcpp cached spells its imports the earlier way, so the cache key of a package that provides a module under GCC carries the spelling (the upgrade lane's `modules` variant). The dyndep step reads $root. The `trim_paths` prefix map left the flags every unit shares: a unit carries the fixed roots and its own package's closure, so switching workspace members no longer recompiles their common dependencies (e2e 872 F). Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
Sunrisepeak
force-pushed
the
release/2026.10.26.2
branch
from
October 26, 2026 09:44
9016c0b to
90719e0
Compare
…cord is active Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…dep step does A staged BMI's edge waits for the modules its map names, and the backend read the map line by line: `$root gcm.cache' became a module named `$root' and every path lost its repository, so the edge waited for `local-dev.gen-dep/gen.dep.table.gcm' beside the build directory (e2e 849). It reads the map with parse_module_map now. Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…conditional; a closed reader ends mcpp in order The platform constants and architecture, the executable's name, PATH lookup, directory links, no-replace renames, volume identities and terminals come from mcpplibs.os. What it does not carry -- the launchers and their signal guard, flock-compatible file locks, durable sync -- is one implementation unit per system, selected by modules/platform/mcpp.toml. openkal ignores SIGPIPE for its own writes, and the ignore survived exec into every program mcpp started; std::print to a closed stdout threw. mcpp installs a SIGPIPE handler first thing: it ends mcpp as an interrupt does, then by the signal (141), and exec resets it for children. e2e 941. Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…d, run by okrun, packed as the image (M2) or a program that carries it (M3) The triple names no operating system (<arch>-unknown-none-elf); the convention's flags and an ld.lld link produce an ET_DYN entered at ok_main; okld note and okld check, programs of the graph, finish each image before it takes its name. okrun is the target's runner. The target side's kernel-abi is fixed to openkal; every layer above it is the graph's, and the payload's libc++ is withheld. e2e 942; unit Triple.OpenkalIsAnImageForNoOperatingSystem. Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…eads it back as its anchor Only the root's git dependencies were written, so a branch two edges away moved to its tip on every build and an --offline build stopped at it (mcpp's own CI: platform -> mcpplibs.os -> openkal). e2e 943. Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…age another loads (.okso) is built An image exports what its source marks and nothing else, so the link drops what nothing reaches and the requirements note names only what the program uses; the unwind index is there for dl_iterate_phdr. kind = "shared" on <arch>-openkal produces lib<name>.okso. Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…of the unwinder and of the C library Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
… so mcpp update moves a branch forward; M3 programs name themselves mcpp update cleared mcpp.lock and the next build replayed the old graph, building the old commit and writing it back (2026.10.19.1 onwards). The record carries a digest of mcpp.lock and declines otherwise. e2e 943 C. The generated M3 program runs its image with okrun_options::carried. Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
… commits a stack as its guard page is touched) Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…lved commit; an image build with no okld is refused as image-tool-absent, and the matrix declares the openkal cells Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
… the workspace's source, and an unresolved one is refused by name Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…ndex carries (e2e 944) Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…d, okrun for an ok image); e2e 942 G Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…only what was published Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…-tools (workspace inheritance, the target's conditional tables); a workspace root's effective manifest merges its own [workspace.dependencies]; e2e 942 pins the image's environment Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…the image's tools were Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…kspace = true inherits in every table Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
… join_list); e2e 942 takes openkal-tools 0.1.0 Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…x wherever it is in the graph; e2e 945 Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…c e2e bootstrap builds against the index as published Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…tanding image states the symbol it is entered at (#845) kind = "entry"; main = { from = "<dependency>/<entry>" } on programs, rows and [test]; start on programs, entries, rows and [test]; mcpp:link-start (build-program protocol 16). The entry compiles in its package's context and links only into the programs that select it; required_features gate it and windows_entry follows it. start is accepted on freestanding targets only, renders -e and a --defsym check, and disagreeing statements are refused. A file a target names as main on any row is no longer an ordinary source. The compiled build-program interface is kept by version and text digest. Design 2026-10-26 §24, SPEC-004 §14, docs 04/08/30/40/50, e2e 946 and 947. Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…solved (design 2026-10-26 §25, D25) The operating system is reached through mcpplibs.os 0.2.0. What was mcpp's own meaning under `platform` now lives in the module that owns it: - modules/invocation (mcpp.invocation): the environment of one invocation, statements over the started environment; every package reads through it and every started program receives it. mcpp no longer writes its own process environment; xlings' environment is given per invocation. - mcpp.effects: the constraints of a run. - mcpp.run: every program mcpp starts, by argument vector, in a unit that ends with mcpp; the general `execute(argv, Options)`; the command interpreter only for commands that are text by nature. A watcher thread over os::interrupt replaces the signal handlers; a closed standard output ends mcpp in the same order. - src/runtime (launch_env, search, env_contract), mcpp.build.command_line, mcpp.build.capacity, mcpp.ui.terminal, mcpp.home.files (the lock, in native/<system>), toolchain-model's mcpp.toolchain.platform and mcpp.toolchain.apple_sdk, scaffold's project-name rule. Platform differences are `if constexpr` and per-system implementation units; no OS header remains in src/ or modules/. Interfaces that carried implementations were split where GCC 16.1 wrote compiled interfaces their importers could not read (§25.7). A failed detached code generation is withdrawn so the next build compiles the unit again. Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…th is, not a spelling of its store Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…out the others'; one evaluation of a sources list Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…ater record replaces it; network checks run in mcpp's directory Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…ends in Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…dency replaces the previous version's same-size files; a status file with no number is a failed unit Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
… quick child printing what the reader checks Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…g after an upgrade Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
… entry merged into the dissolution's Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
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.
mcpp 2026.10.26.2. The CHANGELOG section
[2026.10.26.2]is the full statement; in summary:Added
x86_64-openkal/aarch64-openkal: one ok image per architecture (openkal SPEC clause 12), linked byld.lld, noted and checked byokld, run byokrunon Linux, macOS and Windows; both tools come from the graph (openkal-tools).Changed (design 2026-10-26 §25)
modules/platformis removed. mcpp reaches the operating system through mcpplibs.os 0.2.0; what was mcpp's own meaning moved to the module that owns it (invocation,mcpp.effects,mcpp.run,src/runtime,mcpp.build.command_line,toolchain-model,src/ui,mcpp.home.files). The one primitive kept per system is the home's lock (src/native/{posix,windows}), selected by[target.<os>.build] sources.[hooks], MSVC environment scripts, recorded command lines). Programs read an empty standard input and run in a unit that ends with mcpp.mcpplibs.os.interruptends the running units, writes the interrupt record first, restores the terminal and ends mcpp as requested. A closed standard output ends mcpp in the same order.Fixed
.wasm; GCC module maps name their repository;mcpp updatemoves branch dependencies; transitive git branches are locked; and the other entries in the CHANGELOG.Ecosystem released for this round (GitHub + GitCode mirror, index entries merged): openkal 0.17.1; openkal-linux 0.18.1/0.18.2; openkal-macos 0.15.1; openkal-windows 0.13.1/0.13.2/0.13.3; openkal-musl 0.22.1–0.22.3; openkal-llvm-runtime 0.16.1–0.16.3; openkal-image (openkal-ld/run/tools) 0.1.1; mcpplibs.os 0.2.0 (mcpp-index #579 #581 #583 #585 #586 #587).
CI: every job passed on 8863464; the head after it changes CHANGELOG.md only.
Co-authored-by: speak-agent 248744407+speak-agent@users.noreply.github.com