Skip to content
@aoughwl

aoughwl

aoughwl is the next-gen self-hosted platform for things

‎‎‎‎‎ ‎‎ ‎‎ ‎‎ ‎‎ ‎‎ ‎‎ ‎‎‎‎ ‎aoughwl
‎‎ ‎‎ ‎‎ ‎‎ ‎‎ ‎‎ ‎ ‎‎ ‎‎ ‎‎ ‎‎ ‎‎ ‎‎‎next-gen self-hosted platform for things n stuff
‎‎ ‎ ‎‎ ‎‎ ‎‎ ‎ ‎‎ ‎‎ ‎‎ ‎ ‎‎ ‎‎ ‎‎ ‎ ‎‎ ‎‎ ‎ ‎‎ ‎‎ ‎‎ ‎ ‎‎ ‎‎ ‎‎ ‎ ‎‎ ‎‎ ‎‎ ‎ ‎‎ ‎‎ ‎‎ aoughwl.github.io


⭐ aowlmony — a ground-up Nimony toolchain

A from-scratch reimplementation of the Nimony toolchain (the NIF-based Nim compiler) — parser, semchecker, lowering, backends — written in Nimony and self-hosting, built from the ground up.

Our intermediate format is AIF ≡ NIF, byte-for-byte, so every stage is a drop-in and any Nim/Nimony program behaves identically — and it also runs in the browser and ships native C / JavaScript backends.

We didn't set out to replace Nimony. The aoughwl substrate was going to run on it; we patched where it fell short, then rebuilt the pieces from scratch, and ours ended up better. We're here now, so we're finishing it.

AIF ≡ NIF: how it interops · the full stack

The pipeline

.nim / .aowl → aowlparse → aowlsem* → aowlhexer* → { aowlc → C · aowljs → JS · aowli → interpret }

aowlsem and aowlhexer are intentionally private for now — docs are public, access on request (Discord: timbuktu_guy). The playground moves onto the new sem + hexing shortly.

Project Docs
aowl toolchainaowlparse · aowlsem · aowlhexer · aowlc · aowljs · aowli AIF ≡ NIF
nim-code — Claude Code plugin + MCP server docs
nimony-lsp — Language Server + VSCode extension docs
net stacktcp·net·tls·http·compress·serve·ws·requests — TLS 1.3, HTTP/1.1+2, WebSocket, HTTP/3 docs
web / html / css — typed HTML5 + MDN CSS engine + DSL docs
nimony-ts / nimony-py / nimony-hl — idiomatic TS/Py backends + shared HL-IR ts · py · hl




Daily Blog


011 2026-07-17 - Friday, July 17th 2026

A heavy day on the front and middle of the pipeline.

aowlparser — reached full 310/310 structural parity with the upstream Nim standard library: the entire stdlib round-trips. Shipped a real check lint mode — grammar-level error detection with fix-its and source-ordered diagnostics: assignment = where == was meant, a for missing its in, identifier-expected on let/const, and more. Fixed three parser hangs (infinite recursion) and hardened the lexer — UTF-8 identifiers, BOM stripping, custom numeric literals (N'big), parenthesized proc literals, term-rewriting template patterns.

aowlsem — a big step toward a true drop-in: an auto-import system that pulls in system and the module's own imports with no manual flags, real include splicing, when not defined(...) folding, definite-assignment that honours noinit/threadvar/importc, typedesc modelled as a type, templates as an overload set, accent-quoted/operator routine names, and the first value-object ARC hook synthesis — the foundation for Table. (source private for now; docs public, access on request)

aowli — the interpreter/VM now reads the shared aowlhl HL-IR layer (hlload / hlclassify / hlwalk) instead of its own tree-walk, and gained dynamic method dispatch with field write-through for ptr/var receivers, closures with nested capture, and UTF-8 add(string, Rune).

aowlhl is now the shared high-level IR — one Nim→HL-IR reader that both aowli and aowljs consume, so the interpreter and the JavaScript backend classify and walk the same skeleton. One lowering, many emitters.

010 2026-07-16 - Thursday, July 16th 2026

Repositioned: aoughwl is a ground-up Nimony toolchain. Wrote the interop contract — AIF ≡ NIF, byte-for-byte, so any Nim/Nimony program behaves identically. Renamed the compiler stages aif* → aowl* (aowlparse / aowlsem / aowlhexer / aowlc / aowljs / aowli / aowlmony) — aif now names the format only — and nim-code → aowl-code. Reworked the docs into two homes — Documentation (terse reference) and Engineering Notes (opinionated writeups) — collapsed the changelog into a single Changes record, and normalized every repo description + topics across the org. aowlsem and aowlhexer stay private for now (docs public, access on request); the playground moves onto the new sem + hexing shortly.

009 2026-07-015 - Wednesday, July 15th 2026

Created aifhexer
Created aif
Created aifmony
Created aifc
Created aifjs
Created aifjs-js
Created aifsem

Updated aifi
Updated aifparser
Updated nimony-playground

008 2026-07-014 - Tuesday, July 14th 2026

Took nifi private, oh- the fish weren't bittin today
Updated nifi, 6-10x performance gain

007 2026-07-013 - Monday, July 13th 2026

Updated nimony-playground
Updated nifparser
Updated nifi

  • Added curly bracket support to the nifparser
  • Finalized nifparser, passing against the full nimony suite- byte identical to niffler
  • Nearly finished nimony-playground, missing small QOL and a final port to the aoughwl ecosystem (I cannot wait)

006 2026-07-012 - Sunday, July 12th 2026

Created nimony-playground
Created nifparser

005 2026-07-11 - Saturday, July 11th 2026

Created nifi, a Nimony NIF Interpreter

004 2026-07-10 - Friday, July 10th 2026

Created aowl-lsp, it's nimony-lsp, but with a universal plugin system. Obtain novel features!
Created vscode-aowl, aoughwl hosted on-machine within VSCode

003 2026-07-09 - Thursday, July 9th, 2026

Finalized the aoughwl core spec.

Noticed a memory bug exists- likely roots as a true Nimony bug which interacts with niflens and my nim-code instances
Created nifrewrite makes NIF rewrites simple

Fixed IC
Updated niflens
Updated nimony-lsp
Our VSCode extension + Nimony LSP is nearly as performant and featurefull as it can be, live diagnostics work phenomenally as you type... more to come here.

002 ‎2026-07-08 - Wednesday, July 8th, 2026

Pushed IC to aoughwl/Nimony: ~1s -> ~10ms
see: ic-parallel-deps, ic-cursor-traversal, ic-warm-daemon, ic-batch-intern

Created niflens, a CLI tool for parsing and viewing NIF
Updated nimony-lsp and nim-code to benefit from niflens — live diagnostics and suggestions now work as you type!

Massively expanded the net stack — now 8 one-concern repos:
  • tlsTLS 1.3 over OpenSSL 3, client + server (SNI, ALPN, verification); pulled into its own repo
  • serveHTTPS, a concurrent worker pool, HTTP/2 (nghttp2: h2c + ALPN h2), chunked request bodies + Expect: 100-continue, opt-in gzip/br compression
  • dual-stack IPv6 across tcp / net — one listener serves v4 + v6
  • new compress repo — one-shot gzip / brotli / zstd codecs
  • ws — a nimony-native WebSocket (RFC 6455), server + client, ws:// and wss://
  • HTTP/3 in requests (useHttp3) via curl-impersonate's bundled ngtcp2
Every layer is tested against real clients — curl --http2, live wss://, TLS 1.3 handshakes.

001 ‎2026-07-07 - Tuesday, July 7th, 2026

Today starts the official aoughwl/nimony fork.
This is now the main place my Nimony work will go:

  • features
  • bug fixes
  • more opinionated, dynamic, and substantial stdlib

We also shipped aoughwl/nimony-lsp and aoughwl/nim-code:

  • nimony-lsp is the language-server side
  • nim-code is a Claude Code plugin and MCP server focused on reducing token usage with Nim and Nimony

Effective indefinitely, the Nimony JavaScript/TypeScript/WASM/Python backend work is private.
For interested parties: the JavaScript and WebAssembly backends are ~complete and remain true to the original vision.
I will gladly and promptly add anyone who wants access, but you will need to reach out to me directly over Discord (timbuktu_guy)


Popular repositories Loading

  1. css css Public

    A complete, MDN-typed CSS engine for nimony: parse a whole stylesheet, then validate every value against its official grammar, every function against its signature, and every selector against Selec…

    Nim 2

  2. aowl-lsp aowl-lsp Public

    Language Server Protocol implementation for Nimony (the NIF-based Nim reimplementation), plus a full VSCode extension.

    Nim 2 1

  3. html html Public

    Typed HTML5 for nimony: a registry of every HTML5 element and its attributes (void/deprecated/experimental), a document-tree builder, and a correct escaping, void-aware renderer. Pure stdlib, no deps.

    Nim

  4. web web Public

    HTML + validated CSS in one nimony block: a declarative DSL that builds a typed HTML tree and inline-validates every style declaration against the MDN grammar, lowering each style block to a single…

    Nim

  5. js js Public

    JS-value interop for the nimony JavaScript backend — opaque handles to real JS values across the linear-memory boundary.

    JavaScript

  6. reactive reactive Public

    Nim

Repositories

Showing 10 of 35 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…