Software

A flat, systematic list of my software projects. Raw repository list: github.com/aryx?tab=repositories.

From scratch

I’m the main author of most of these (often also the single author), except Coccinelle, co-authored with Julia Lawall.

Project Description
xix A from-scratch rewrite, in OCaml, of Plan 9 — the windowing system and userland so far, eventually also the kernel.
syncweb A literate programming tool that lets you edit either the code or the literate doc and stay in sync both ways, fixing the biggest complaint about original literate programming tools (which required editing only the doc, code being generated/extracted one-way).
ocaml-caps Capability types and rules for OCaml.
ocaml-elm-playground 0.1.7 The playground before any AI: an OCaml library for pictures/animations/small games, modeled on Evan Czaplicki’s Elm playground package.
ocaml-commons OCaml standard library extensions.
ocamltarzan (deprecated) Compile-time reflection / metaprogramming for OCaml.
Semgrep Static analysis tool: find bugs using rules that look like the code they match.
osemgrep My personal fork of Semgrep, since leaving the Semgrep company; focused on OCaml/C improvements and LSP support.
semgrep-pfff-libs / semgrep-pfff-langs Parsing libraries behind Semgrep.
pfff A big monorepo of language parsers and tools built on them (semantic search/grep, semantic patch, refactoring, visualization, …), from my Facebook years. Ancestor of semgrep-pfff-libs/langs, Semgrep, and codemap/codegraph below. Also used internally at Facebook by closed-source tools such as checkModule, a dead code analyzer, and dynamic/static test-coverage indexing and test-runner optimization (à la Echelon, a Microsoft Research paper from around 2010) — mostly bug-finding tools for what would now be called appsec (the term didn’t exist yet in 2010).
codemap Source code visualizer (treemap). Now mostly superseded by codemap v2, below.
codegraph Source code dependencies visualizer. Now mostly superseded by codemap v2, below.
codequery Querying a codebase using Prolog.
codecheck A multi-language whole-program analysis code checker.
yacfe (deprecated) Yet Another C Front-End: style-preserving C/C++ transformations.
Coccinelle A program transformation engine for C, co-authored with Julia Lawall.
lfs Logic file system.

Mostly written by AI

Code almost entirely written by an AI (Claude Code), under my direction: I choose the design and review, the AI writes the lines.

Project Description
IX xix made tiny: the whole Principia Softwarica system, from an ARM emulator to the C toolchain and the shell, in small but real OCaml programs.
the playground An OCaml library for pictures/animations/games, started (by hand, up to 0.1.7, see above) as a port of Evan Czaplicki’s Elm playground package, plus about 150 games and 50 applications that made computing history, each rebuilt in miniature to be read. Spinoffs: tinybox, codemap v2, and mini-chrome, below.
tinybox The playground’s games and applications in one menu (and one executable, after BusyBox), playable in your browser.
codemap v2 A new codemap, part of the playground: a codebase drawn as a map, to be read from the whole down to a single line, with its dependencies drawn on it too; runs on any directory (manual). Mostly supersedes codemap and codegraph.
mini-chrome A small web browser written from scratch in OCaml, all the way down: its own HTML, CSS, and JavaScript engines, its own network stack (HTTP, TLS 1.3), developer tools, and it can even draw with the playground’s own software rasterizer; started as the playground’s TinyChrome and grows from there, towards the web as it is.

Forks / took over someone else’s work

Originally written by others, but extended and often reorganized by me (and lately also Claude Code).

Project Description
principia-softwarica Plan 9 (Bell Labs: Ken Thompson, Rob Pike, and others), repurposed as a teaching operating system, in C.
goken9cc Portable multi-architecture toolchain rooted in the Plan 9/Inferno toolchains (later extended by Go developers), extended further to Linux/macOS/Windows.
xv6-multiarch Unifying the many architecture-specific forks of MIT’s teaching OS xv6 (Russ Cox, Frans Kaashoek, and Robert Morris).
chidb A teaching database engine, originally by Borja Sotomayor and Adam Shaw (UChicago).
ocaml-light OCaml 1.07, originally by Xavier Leroy et al. (INRIA), stripped of objects and functors, for teaching.
tigerc-- Fork of the Tiger front end for C-- (Paul Govereau), a compiler for the Tiger language from Andrew Appel’s textbook.
quickc-- Fork of Quick C-- (Norman Ramsey), a compiler for the C-- portable assembly language.
efuns An Emacs clone, originally by Fabrice Le Fessant (INRIA); I took over maintenance in 2015.
mmm My fork of the OCaml MMM web browser, originally by Francois Rouaix (INRIA).

← back to the main page