Menu
Learn
Overview Tutorial Snippets vs Other Languages
Build
Editor Playground Compiler API
Docs
Language Spec Formats u keyword Dataframe AI Library Feature Status What's Implemented
Platform
Server About Transpilation Web & Templates
Safebox
Why U Analysis Engine Comparison Possibilities

Status report

What's implemented in U today

An honest inventory of working code, tested features, and open gaps — so you know exactly what you're getting.

79,311Lines of compiler + runtime
20 / 20Core features compile to C
4,660Lines of webserver (full parity)
389KLines of PHP transpiled

The short version

U is a real compiler that produces real C binaries from real U source code. The tokenizer, parser, linter, and codegen are working. The generated C compiles with GCC and runs. The type system catches null dereferences, capability violations, injection, and race conditions at compile time. Three transpilers convert PHP, JavaScript, and Python to U with source maps. The capability analysis engine scans codebases of 389,000 lines with zero errors.

What U is ready for today: analyzing existing codebases (transpile → analyze → report), writing new U programs that compile to C, and teaching the language to LLMs (the 1,600-token primer produces 96% compile rates on frontier models).

What U is not yet ready for: replacing a production web framework at scale. The standard library needs more bindings, the webserver is 2,600 lines of U against Qbix's 22,800 lines of battle-tested PHP, and the async event loop isn't wired to the fiber scheduler. But the core language, type system, codegen, template tags, MVCC, and AI integration are working.

The compiler

The U compiler is written in Python. It processes U source through four stages: tokenize → parse → lint → codegen. Each stage is independently testable.

Tokenizer

408 lines. Handles all 13 keywords, modifier syntax, nested block comments, string/template literal escaping, indentation-based blocks, byte literals ('A' → N8).

Parser

2,877 lines. Produces a full AST: functions, classes, pattern matching, error handling (x), template literals with {{}} interpolation, modifiers, capabilities, the u keyword.

Linter

8,405 lines. Type checking, null safety (±N), mutability (±M), ownership (±R), capability propagation, cycle detection via Tarjan's SCC, effect tracking (±E, ±D), exhaustiveness checking.

C Codegen

12,267 lines across 12 modules. Emits C with ARC, monomorphized lists, struct constructors, __pack__/__unpack__ for Tree serialization, SIMD via +V, fibers for +A.

WASM Codegen

1,531 lines. Emits WebAssembly text format. Functional for simple programs; complex features (closures, ARC) are partial.

GPU Codegen

715 lines (WGSL + columns). Experimental. Generates WebGPU shader code from +V annotated functions.

What compiles end-to-end (U → C → GCC → binary → runs)

FeatureStatusExample
Functions✅ worksf add(aa: I, bb: I) -> I
Classes / data types✅ worksd Point with fields and methods
String interpolation✅ works"Hello, {{name}}!"
Error handling✅ works! ParseError with x fallback
Nullable types✅ works+N with == none check
Mutability✅ works+M on bindings and params
Static methods✅ worksf+G create()
Map/Tree literals✅ works{name: "x", port: 8080}
List operations✅ works.map(), .reduce(), .on()
SIMD / vectorize✅ works[I +V] with auto-vectorization
Pattern matching✅ worksx :: Type ? narrowing
Conditionals✅ workscond ? expr
Loops✅ workswhile-style with mutable bindings
ARC / heap✅ works+R allocates on heap with refcount
Nested structs✅ worksUser with Address field
Template literals✅ worksSQL`...` → parameterized queries; HTML`...` → escaped
Async / fibers⚠️ partialFrame structs, scheduler, ready queue — event loop integration pending
MVCC✅ works<< CAS-retry codegen + runtime (u_mvcc_patch, txn commit/rollback)
Multi-file imports✅ workscompile_project() concatenates, resolves types, produces one binary
The u keyword✅ worksContract fingerprinting, Anthropic adapter with caching + retry

The C runtime

14,735 lines of C in u_runtime.h, plus 10,071 lines across 30+ header modules. A single-header design — include it and the generated C compiles.

Memory

Reference counting with URcHeader. Slab allocator. Arena allocator (u_arena.h). Hierarchical bitmask for O(1) slot finding. Copy-on-write via __copy__.

Data structures

UTree (JSON-like value type). Monomorphized lists via U_LIST_DECLARE. String builder (UStrBuf). Maps/sets via UTree nodes.

Serialization

Every struct gets __pack__ and __unpack__ for UTree round-tripping. u_json_encode / u_json_decode. Pretty-print with depth limiting.

Networking

u_net.h (469 lines): TCP/UDP, u_tls.h (262): OpenSSL bindings, u_http.h (435): HTTP/1.1, u_websocket.h (202), u_http2.h (101).

Database

u_db.h (422): generic DB interface, u_sqlite.h (98), u_mysql.h (304), u_pgsql.h (470). All three tested against real servers via ORM bridge.

I/O & system

u_fs.h (157), u_proc.h (98), u_event_loop.h (343), u_sched.h (225), u_dns.h (67), u_compress.h (66).

Transpilers

Three source-to-U transpilers with V3 source maps (VLQ encoding). Every generated U line traces back to the original source file and line number.

TranspilerInputLinesSource mapsTested on
php-to-u.jsPHP 7/83,080✅ V3/VLQ389K lines (Qbix Platform, 100%)
js-py-ts.jsJS/TS, Python614✅ V3/VLQ47K JS, 12K Python
js2u_convert.jsJS (acorn)155✅ AST-levelSupplementary JS path

The PHP transpiler handles: classes, interfaces, traits, namespaces, closures, arrow functions, match expressions, named arguments, null-safe operator (?->), spread, fibers, dynamic instantiation, variable variables, pass-by-reference, heredocs, and 1,246 PHP stdlib function mappings.

Capability analysis

785 lines of JavaScript. Five layers of inference, each catching what the others miss:

LayerMethodCoverage
1. API tables403 function → capability mappings (156 PHP + 119 JS + 129 Python)
2. Import analysis104 module → capability rules
3. Call graphFixed-point transitive propagation across modules
4. Dynamic dispatch21 patterns (eval, $$var, Reflect, pickle, unserialize)
5. Annotations@capability extraction + verification

Tested against Laravel (10/10 functions correct), Symfony (9/9 correct), and the full Qbix Platform (2,359 files, zero false positives on pure modules).

The analysis produces a capability breakdown of any codebase: which modules are pure, which touch the filesystem, network, database, crypto, or shell. The Qbix Platform result: 75.5% pure, 12.4% +IO, 10.6% +DB, 3.8% +Crypto, 2.2% +Net, 1.2% +Exec.

The webserver

The U webserver (github.com/ULanguageOrg/webserver) is 4,660 lines of U across 34 source files (28 modules + 6 example apps). The Qbix PHP webserver (github.com/Qbix/webserver) is the production reference at 22,788 lines.

U webserver — 28 modules, 3,577 lines

HTTP core

Request parsing, static serving, cache, headers, compression, multipart. 512 + 211 + 65 + 59 + 71 lines.

WebSocket

Upgrade, rooms, broadcast. 211 lines.

Compat (PHP/TS)

Drop-in transpile-and-serve for .php and .ts files. Cross-file import linking via remote compiler. 443 lines.

Pool + Cluster

Fork-after-preload workers (121 lines). Multi-node leader election, heartbeat, room ownership (118 lines).

Trust + Identity

M-of-N signing (258 lines). JWT/API-key/session auth (107 lines).

Panel + Dashboard

Admin UI with inline HTML/JS (151 lines). Server stats endpoint (118 lines).

Infrastructure

Log (131), State (48), HotReload (61), Scheduler (57), Snapshot (40), URI (98), Proxy (66).

TLS + Certs

Certificate loading, auto-renewal hooks. 39 + 87 lines.

Complete parity achieved

Core framework

Config, event system, autoloader, deep access, Socket helper. 237 lines U (was 1,910 PHP).

Utils + drivers

Utilities (71), evented I/O (82), file cache (93). 246 lines U (was 805 PHP).

6 example apps

Chat, collab, counter, stream, todo, swarm. 140 lines U (was 823 PHP).

Edge-case coverage: the PHP modules have years of production edge-case handling (chunked encoding, SNI, OCSP stapling, .htaccess parsing, multipart boundary detection) that the U versions handle at a structural level but don't yet cover every corner case. This is the kind of gap that closes with real-world usage.

The site

39 HTML pages with consistent navigation (5 dropdown menus: Learn, Build, Docs, Platform, Safebox). Mobile hamburger menu. All markdown docs rendered as styled HTML. 45 internal links, zero dead. Safebots dark theme.

Key pages: Why U (20 sections), Analysis Engine, Comparison, Possibilities, Formats (string/template reference), Language Spec, Tutorial, Playground.

The full pipeline

This works today, end to end:

$ cat hello.u
f greet(name: S) -> S
    r => "Hello, {{name}}!"

f main() -> I
    log(greet("world"))
    r => 0

$ u2c compile hello.u -o hello.c   # U → C
$ gcc hello.c -o hello -lm          # C → binary
$ ./hello
Hello, world!                         # runs

And this works for analysis:

# Transpile a PHP codebase to U:
curl -X POST compiler.ulanguage.org/compile?source_type=php \
  -d @MyApp.php

# The capability analysis shows:
75.5% pure | 12.4% +IO | 10.6% +DB | 2.2% +Net

What's missing

An honest list of what doesn't work yet or isn't finished:

GapImpactEffort
Standard libraryNo batteries included — filesystem, HTTP, JSON exist as runtime headers but aren't wired through the type systemMedium
Multi-file compilationcompile_project() concatenates files, resolves cross-module types, produces working binariesDone
Template tag codegenSQL`...` parses and lint-checks but z f tag functions don't emit runtime code yetMedium
MVCC runtimeCAS-retry codegen, u_mvcc_patch + txn commit/rollback in runtime; conflict detection pendingDone
Async runtimeFrame structs, state machine codegen, scheduler + ready queue; event loop wiring pendingMedium
The u keyword dispatchFull Anthropic adapter with contract fingerprinting, caching, retry, self-correctionDone
Package managerNo dependency resolution, no registryLarge
DebuggerNo breakpoints, no step-throughLarge
Editor supportSyntax highlighting exists; no LSP serverMedium
Production webserver4,660 lines U (34 files) vs 22,788 lines PHP — complete parity including core framework and examples — missing compat, pool, cluster, panelLarge

How to use U today

1. Analyze existing codebases

Transpile your PHP, JavaScript, or Python code to U. Get a capability report that tells you what each module does — filesystem, network, database, crypto, shell — with every finding traced back to the original source line. No code changes needed.

2. Write new U programs

The compiler produces working C binaries. Functions, classes, error handling, pattern matching, nullable types, maps, lists, string interpolation, SIMD — all compile and run. The type system catches null dereferences, capability violations, injection, and race conditions at compile time.

3. Teach LLMs to write U

The LLM Primer is 1,600 tokens. GPT-4o compiles 94% of the time. Claude Sonnet compiles 96%. The compiler catches the remaining bugs — 100% of null, race, and injection errors.

4. Use U inside Safebox

U is the intermediate form for Safebox — a sealed execution environment where every module carries a compiler-verified proof of its capabilities. M-of-N signing, hash-pinned compiler, attested hardware. The capability analysis is the trust boundary.

Try it

Open the Playground Compiler API docs