Church Machine
Church Machine IDE v…
Capability-secured computing on the QMTECH Wukong Artix-7 FPGA — write, simulate, and deploy CLOOMC programs.
Core Functions
🔌
Hardware
Flash & connect your Wukong Artix-7 board
🗂️
Namespace
Browse all capability table entries
🧩
Workshop
Build and inspect abstractions
📝
Code
Write and compile CLOOMC programs
⚙️
Simulator
Step and run the Church Machine
🚀
Deploy
Build LUMPs and deploy to hardware
Learning Tools
📘
Tutorials
Step-by-step CLOOMC guides
🧩
Abstractions
Browse and deploy capability modules
📊
Dashboard
Live MTBF, call-home, and fault records
Documentation
📖
ISA Reference
Full instruction set reference
📚
All Docs
Hardware, language, and API guides
🌐
Mum Tunnel
Share abstractions with the community
Learning Tools in hamburger menu: ?learn=1  ·  Advanced views: ?debug=1
Context Registers
Wukong A7
G21
Boot/User
G20
Fault
← DWRITE LED[0]
CR0-CR15 -- 128-bit Context Registers (4 x 32-bit words)
CR Detail
DR0-DR15 -- 32-bit Values (DR0 = zero)
Gate Log — Live LUMP validation & capability gates
Machine Architecture
Memory — Foundation Layer Status
No program loaded
Editor
0
1
2
3
4
5
pre-boot 0b000000
Ready. Write Church assembly and click Assemble.
Namespace Table -- Golden Token Entries
Hello Mum — Keystone Connect Flow QR image →
printf("Hello, World\n"); proves a Turing machine can write to stdout
Keystone.Hello() proves the CM can reach a named person, across any distance, through a capability stack
Why this matters

printf writes bytes to a file descriptor — it has no knowledge of who is on the other end. Keystone.Hello() travels through a capability stack: every hop is authenticated by a Golden Token, so the CM can prove it reached a specific named person and not merely an open socket. That guarantee — identity plus authority, enforced in hardware — is what separates capability-based computing from conventional I/O.

STEP 1 — ACTIVE
Scan QR & Connect
Scan Mum's QR code (or paste her identity string) to call Keystone.Connect() and fill c-list slot 1 with her E-GT.
STEP 2 — PENDING
Say Hello
Call Keystone.Hello() through the live Tunnel once Mum is connected in Step 1.
Mum's QR Code (served from this IDE — scan or paste)
Mum QR Code
Scan or Paste Identity String
Keystone NS[32] — C-list Slot 1 (Mum E-GT)
NULL GT — Connect() not yet called
Step 2: Say Hello (connect in Step 1 first)
Connect to Mum in Step 1 to enable the live Tunnel bridge.
Mum's canonical identity string (copy for paste above):
Loading…
⚠ Developer Tool
Rotates Mum's Ed25519 key pair and refreshes this page.
Memory — Word-Addressed Dump
Abstraction Catalog
Select an abstraction
Click any abstraction on the left to see its methods, permissions, and how it fits into the CR6/CR14 canonical form.
LUMP Repository
Select a lump
Pick a lump above to see its methods, pet names, MTBF, deployment info, and capabilities.
Execution Trace 0 rows
# PC Op Cond Dst Src Description DR0DR1DR2DR3 DR4DR5DR6DR7 DR8DR9DR10DR11 DR12DR13DR14DR15 NZCV STO
🧬 Biology
Get Started with the Church Machine
Three steps to run your first capability-secured program on real hardware.
1
Flash Your Wukong
Download the pre-built bitstream and program it onto your QMTECH Wukong Artix-7 FPGA board. The board will boot the Church Machine kernel automatically.
Waiting
2
Connect & Verify
Plug in your Wukong over USB and verify it calls home. The board will appear in your Devices list once registered.
Waiting
3
Write & Run a Program
Open Programs, write a CLOOMC assembly program, assemble it and run it in the simulator. Every instruction is capability-checked by the hardware.
Waiting

In 1843, Ada Lovelace wrote the first computer program — Note G, an algorithm for computing Bernoulli numbers. It was not just code. It was the first first-class program: it passed functions as arguments to other functions, not just values.

This is the vital distinction. Basic machine code (Turing) moves numbers between registers — ADD R0, R1, R2 adds two values, nothing more. CLOOMC is different. In CLOOMC, a variable can hold a function, pass it to another function, and return a function as a result. let double = \x -> x * 2 creates a function. let apply = \f x -> f(x) passes that function as an argument. Ada did this in 1843 — Alonzo Church formalised it in 1936 as the lambda calculus.

Type let x = 2 + 3 and you are writing what Ada wrote. To see her original algorithm as Church Machine code, click Create and select the Bernoulli example.

λ>
History
Hardware Instruction Set — 20 Instructions
M-bit rules — per-register inspection model
The M-bit is a 1-bit flag on every CR register, separate from its GT permissions. It is set and cleared by hardware to control the M-window (inspection channel).
  • CR15 M=1 — Abstract Manager window open; CR15 descriptor mirrored in DR11–DR15.
  • CR6, CR14 M=1 — set by CALL/ELOADCALL after M-elevated mLoad; marks callee registers as machine-derived.
  • CR12, CR15 M=1 on LOAD — set when loading via a NULL-perm GT during M-elevation (boot / M-Abstraction path).
  • CALL / RETURN boundary_mwinWriteback gates and clears CR15.M; _resetAllMBits zeroes every CR before setup.
  • CHANGE context switch — M-bits are saved with the outgoing thread and restored with the incoming thread.
M↑ sets   M↓ drops   M↕ save/restore   M~ transient
Church Domain (10)
Turing Domain (10 + shared RETURN)
Pseudo-Instructions
Select a concept or instruction
Click any item on the left to see details.
The Church Machine
Figures
Select a document or figure
Click any document on the left to view it, or click a figure to see the diagram.
♻ Garbage Collection
PP250 four-phase deterministic GC — click once per phase to step through
NS entries
Freed slots
Freed words
Live entries
1
Mark Set G=garbage on every valid NS entry — pessimistic assumption
2
Scan Walk all CR roots + call stack; mark reachable entries live
3
Sweep Find entries still flagged garbage; build reclamation list
4
Clear Zero NS entries + object words; bump version; flip GC polarity
Open Source Community
CLOOMC is free, open source, and community-driven. Law 6: Open Source.
Loading repositories...
Recent Activity
Loading commits...
Contributors
Loading contributors...
Quick Links
Push to GitHub
Export the current simulator source to the connected repository. Every file is updated in a single commit.
Browse Library
Fetch shared abstractions from the Mum Tunnel Library. Search by language or author, then install into your namespace.
Publish Abstraction
Share your compiled abstraction with the community. It will appear in the Mum Tunnel Library for others to import.
📤 GitHub sync: ⏳ loading…
📡 live · polling every 3 s
Time Machine Running FW ACK# Fault Type
Waiting for boards to call home…
Hardware
No devices registered. Connect a board via WebSerial to see it here.

Namespace DNA

Capability GT links between abstractions

Each node is a Namespace slot. Directed arrows represent declared GT capability links from source to target. Hover a node or edge for details.

GT Inspector — Golden Tokens by Type
Every GT currently found in loaded c-lists and live CRs, grouped by type. Click any row to see where it appears.

Site Map

All 53 HTML pages in the Church Machine project.

Simulators
Home — Landing Page CM Simulator — Church-Turing Meta-Machine Church Machine IDE — This page
Documents & Patents
The Six Laws of CLOOMC — Foundational security principles CM Patent Portfolio — Patent application index CM Unified Patent Submission — Full patent document Church Machine — Business Plan — Full business plan document Church Machine — Investor Deck — 15-slide presentation
Technical Figures (50)
Figure A1: Abstract GT Address Space Figure 21: Ada Lovelace Programming Model — Bernoulli Sum-of-Squares Figure 10: Atomic Abstraction Architecture — 7 Zeroes Figure 3: B-bit Capability Propagation Control Biology of Abstractions — Church Machine Figure 11: Boot Sequence State Machine — 5-Phase Hardware Initialization Figure 16: Church Numeral Method Dispatch Figure 8: Pure Church Processor Block Diagram Figure 26: Compiler-Security Separation Figure 10: Conventional vs CM Architecture — Attack Surface Elimination Figure 17: DATA Objects — Church/Turing Bridge Figure 9: Three Dispatch Styles — Same CALL, Three Resolutions Figure 1: Dual-Gate Trusted Security Base Architecture Figure 15: Five-Phase Boot Sequence Figure 2: GT Format and Type Field Figure 14: Hello Mum — Encrypted Capability Tunnel Figure A2: Home Base Tunnel Figure 20: HP-35 and SlideRule Opcode Distribution Figure 6: Lambda Calculus to CM Hardware Mapping Figure 7: LAMBDA Clamp — Macro-Like Code Reuse Figure 1: LAMBDA CR6 Idempotent Self-Invocation Flow Figure 3: LAMBDA Machine-Status Fast Path Figure 5: Non-Nestable LAMBDA with CALL-Mediated Nesting Figure 4: LAMBDA vs. CALL Execution Paths Figure A4: Local Peripheral Autonomy Lumps Directory Figure 5: Machine-Status Fast Path Manifest Viewer Figure 13: Mint Abstraction Nesting & Domain Purity Figure 12: mLoad Validation Pipeline — Five Sequential Checks Figure A3: MTBF Qualification Tiers Figure 24: Multi-Language Compilation to Universal Target Namespace Architecture Figure 13: Network Transparency via F-bit and Tunnel Keys Figure 3: Why No Counter — Software Drives, Hardware Follows ChurchNSGate — Unified NS Integrity Architecture CM Unified Patent Submission Figure 7: PP250 Deterministic Garbage Collection Figure 11: Safe Turing Abstractions Figure 28: Scale-Free Security Model Figure 25: Single-Lump CALL Split Figure 4: Self-Describing Stack Frames — Execution Trace & RETURN Logic Figure 6: Self-Describing Stack Frames — Nesting Scenario & Tag Format SWITCH Instruction — M-Gated LOAD Lifecycle Figure 14: Three Dispatch Styles Figure 2: Three Loop Styles — LAMBDA CR6 Dominates Figure 8: Encrypted Capability Tunnel Between Meta Machines Figure 12: Unified Address Space Figure 27: Upload-Driven Lifecycle Figure 9: Vulnerability Elimination by Construction