Bootstrap Cupid OS toward a Cupid-owned toolchain - #33
Draft
frankischilling wants to merge 623 commits into
Draft
Conversation
This was referenced Jul 26, 2026
Member
Author
|
Pushed The commit adds a frozen four-file compile closure, live-drift rejection, bounded frontier publication retries, and isolation from hidden compiler staging trees. Six new regression methods cover the production rule, private input use, drift preservation, transient and persistent publication failures, and concurrent staging. Verification is complete:
The branch remains |
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.
Purpose
This draft carries the ongoing Cupid OS bootstrap. The normal build is moving toward CupidC, CupidASM, CupidDis, CupidLD, and CupidObj without reducing the operating system, Doom, or vendored source to fit the current tools. TempleOS remains reference material only.
Current checkpoint
The latest branch work contains four green compiler and runtime steps:
91aabe5carries private floating lvalues through pointers, multidimensional arrays, function and method parameters, and record fields.a67ce0aadds representedfloat4anddouble2arrays, arithmetic operators, compound stores, and their runtime contracts.8f7d930converts private decimal floating literals with fixed-size integer arithmetic and one ties-to-even rounding step at the requested IEEE width.cfb8105resolves Browser assignment targets once, owns bindings by scope, makes stack and string exhaustion transactional, preserves native function IDs, checks array-length limits, and formats finite numbers without signed narrowing. It also adds tagged structure typedefs, checked private allocation and constant arithmetic, complete REPL record rollback, and correct addresses for both&record.fieldand&pointer->field.The Browser self-test uses the new compiler behavior directly. Its ordinary tagged saved-reference record remains intact; the compiler was extended instead of rewriting the source around the missing feature. ADRs 0218 and 0219, the bootstrap log and matrices, root docs, wiki, and in-OS CTXT manuals record the decisions, failed probes, proof, and limits.
Current proof
python -m unittest tests.test_browser_cupidc_numberspasses 20 tests.python -m unittest tests.test_private_cupidc_call_abipasses 90 tests.make -j4 allpasses in 585.918 seconds. The 9,014,992-byte kernel ELF has SHA-2567c9b028511cbd80975decfb05144e25196dfe1a3135d4fd2371164081369c7d3; the 8,809,620-byte flat kernel has SHA-256e56fe5efe850dc6491dce821a058be373843916886d29529249fc36f929742fe.e513ad89ab307c7f9a4b83456c93ed28a08487c6a429af355e2fac359e8b7476.browser --selftestrun passes in 93.885 seconds with four CPUs, QEMU'smaxCPU model, e1000, the strong SMP validator, all ten expected parser diagnostics, the exact 26-field Browser marker, and clean JIT completion. Its 39,588-byte log has SHA-256eb994c43e7925956cf3d7f0d9d59ea4f6937ad6847386faf2e9ae1797212ee77.86743bfd29a6a18c72ee19835a427fbef529b099bedd535894d3b3c598d6d7eb..csource was added or changed, and no TempleOS file was built, modified, or counted.Remaining work
This stays a draft and must not be merged yet. Issue #31 remains open for the rest of the embedded Cupid mode surface. Browser object-to-primitive conversion, BigInt, full ECMAScript coercion and formatting, and the full unsigned array-index range remain open. Private wide strings, larger tokens, broader typedef declarators and tag scope, more compiler self-hosting, and the remaining host orchestration and platform dependencies also remain open. This checkpoint moves no build owner and removes no host dependency.