Heh π¨ v1.0.0 β the language is frozen
Heh π¨ v1.0.0 β the language is frozen
Heh is a small programming language designed to stop changing. Nineteen
keywords, a spec that fits in eight printed pages against a hundred-page
budget, and a NEVER list fixed on day one. This release freezes the surface:
after v1.0, code that runs today runs unchanged forever.
What Heh is
- Easier than Python. Indentation blocks, inference everywhere except
function boundaries, one obvious way to do things. - Infinite by nature.
intis arbitrary-precision β overflow does not
exist.2 ** 200andfactorial(1000)are exact, with nothing to import.
Ranges may be unbounded:for i in 0..runs until youbreak. - Secure by default. All I/O flows from a single
Sysvalue handed to
main. A function that never receives it cannot touch the filesystem,
network, clock, or environment. Any capability can be revoked from the
command line (--deny-net), and revocation fails closed. - Reliable. Static types, errors as values (
ok/err/try), no
null, no exceptions, exhaustivematch. - Immortal. One binary, zero crates β Rust standard library only.
No package registry: dependencies are vendored into your repo and pinned by
SHA-256 inheh.lock, verified on every run.
Getting it
git clone https://github.com/Lord1Egypt/Heh && cd Heh
cargo build --release # target/release/heh β the whole toolchain
echo 'sys.print("Heh lives forever π¨")' > hello.heh
./target/release/heh run hello.hehThe toolchain
heh run Β· heh check Β· heh test Β· heh fmt Β· heh get Β· heh ast Β·
heh tokens β one binary, no configuration files, no options to argue about.
The formatter is canonical and comment-preserving. heh run --vm executes on
the bytecode VM, which is byte-identical to the tree-walking evaluator across
the entire conformance corpus.
Standard library
Eight pure modules β math, json, fmt, time, regex (RE2-style, no
backtracking), csv, hash (SHA-256, CRC32), debug β plus builtin methods
on str, list, and map. Anything effectful lives on Sys instead. The
complete frozen surface is in docs/STDLIB.md.
What v1.0 does not have
- No raw sockets. A socket is a handle with a lifetime, and Heh has no
resource-lifecycle construct; committing to one at the freeze would be a
permanent decision made in a hurry.sys.net.getcovers HTTP request and
response work. Sockets remain a candidate addition against the page budget. - No concurrency. When it arrives it will be structured and colorless β
async/awaitfunction coloring is on the NEVER list. - Everything else on the NEVER list (SPEC Β§1.2), permanently: null, exceptions,
integer overflow,eval, classes, macros, operator overloading, global
mutable state, a package server, implicit coercion.
Conformance
tests/corpus/ is the definition: an implementation that passes it is Heh.
The corpus grows and never shrinks. The spec, not the implementation, is
authoritative β where they disagreed during the v1.0 audit, the implementation
was fixed.
License
MIT Β© Mohamed Mounir (Lord1Egypt)