Namespace Architecture
Single NS entry model: one lump, one Inform E-GT, CALL splits by clistCount. Navana is sole NS writer. CLOOMC++ compiles JS and Haskell to 20-instruction target.
Namespace (Navana)
NS Table (0xFD00) — 3 words per entry
W0: location
W1: B|F|G|C|type(2)|clistCount(9)|limit(17)
W2: version(7)|seal(25)
type=01 (Inform) for all abstractions
E-GT points here
Lump (power-of-2 allocation)
Code — Turing domain (RWX)
method_table + code words
CR14: loc=base, lim=clistStart-1
FREESPACE — inaccessible (no CR covers it)
C-list — Church domain (L only)
GT slots (clistCount entries)
CR6: loc=base+clistStart, lim=clistCount-1
offset 0 ─────────────────── allocSize (pow2)
CALL splits lump
CR14 (code)
loc = base
lim = clistStart - 1
perms = RWX (hardcoded)
CR6 (c-list)
loc = base + clistStart
lim = clistCount - 1
perms = L (hardcoded)
R001: domain purity enforced
CLOOMC++ Compiler
JavaScript
Haskell
Resident Object Model
c-list = symbol table
32-bit code words
20 instructions
Output: compiled abstraction → Navana.Abstraction.Add → lump
GT Type Legend
00 NULL — zero value
01 Inform — NS entry
10 Outform — remote (F-bit)
11 Abstract — GT IS value
E-GT Format
ver(7)|idx(17)|perms=E(6)|01
32 bits, unforgeable
word1 Layout
31: B (bind)
30: F (far)
29: G (GC)
28: chain
27-26: type (01=Inform)
25-17: clistCount (0-511)
16-0: limit (17 bits)
Private Digital Shadow — Namespace Isolation (R009)
Each namespace protects itself. No external actor can reach inside without a valid, unrevoked Inform GT.
Revoking a GT (incrementing version) instantly cuts ALL access — every copy becomes invalid.