Yoann Padioleau’s Homepage
(aka pad, padator, aryx)
I like to code and do research on stuff to make it easier to code stuff.
Creator of Semgrep. These days mostly focused on
computer science education (see Education projects below).
Before that, at Facebook working on pfff, which led to
codemap, codegraph, and
sgrep (Semgrep’s ancestor) — see Industry.
And before that, a PhD and postdoc in program analysis — see Academia.
More: Programs · Papers · Talks
News
(AI) marks a project whose code is almost entirely written by an AI (Claude Code), under my
direction: I choose the design and review, the AI writes the lines.
- October 2026 — tinybox:
about 150 games and 50 applications, from Pong and Doom to VisiCalc and a web browser, each
rebuilt in miniature in OCaml, playable in your browser (AI).
- September 2026 — Started IX: xix, but in mini and tiny versions (AI).
- August 2026 — New website! We’re live again (last website and last update was in 2010).
- August 2019 — Nathalie is born!
- May 2019 — Joined r2c, to turn sgrep into what became
Semgrep.
- January 2017 — Giovanni is born!
- January 2016 — Started xix: Plan 9 again, rewritten in OCaml.
- December 2015 — Met Knuth!
- July 2015 — Married Luisa!
- January 2014 — Started principia-softwarica: Plan 9,
explained program by program.
- March 2012 — Met Luisa!
- October 2009 — Joined Facebook, started pfff.
- May 2008 — My first website!
- February 2005 — Defended my PhD thesis, Logic File System,
at Université de Rennes 1 (see Academia).
- November 1995 — I am really online! Internet! (first year at INSA Rennes)
- November 1987 — I am online! Minitel! (3615 ULLA)
- November 1977 — I am born!
Education projects
- principia-softwarica — a fork of Plan 9
(by Rob Pike, Ken Thompson, et al.), repurposed as a teaching operating system, in C.
(principia-softwarica.org). Spinoffs:
- goken9cc — a portable multi-architecture toolchain
(compilers, assemblers, linkers) rooted in the Plan 9/Inferno toolchains, extended to also
target Linux/macOS/Windows
- chidb — a teaching database engine
(by Borja Sotomayor and Adam Shaw)
- xix — a from-scratch rewrite, in OCaml, of Plan 9 — the
windowing system and userland so far, eventually also the kernel — for teaching systems
programming with a saner language.
(aryx.github.io/xix). Spinoffs:
- ocaml-light — OCaml 1.07 (by Xavier Leroy
et al.) stripped of objects and functors for teaching
- efuns / mmm — an
Emacs clone (by Fabrice Le Fessant) and a web browser (by Francois Rouaix), both in OCaml
- tigerc-- / quickc--
— forks of a Tiger compiler (by Paul Govereau) and of the Quick C-- compiler for the C--
portable assembly language (by Norman Ramsey et al.)
- IX (AI) — 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 (AI) — an OCaml library for
making pictures, animations, and games, plus about 150 games and 50 applications that made
computing history, each rebuilt in miniature to be read. Spinoffs:
- tinybox — all those games
and applications in one menu (and one executable, after BusyBox), playable in your browser.
- codemap v2 — a new
codemap: a codebase drawn as a map, to be read from the
whole down to a single line; it runs on any directory
(manual).
- 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; it started as the playground’s
TinyChrome and
grows from there, towards the web as it is.
- xv6-multiarch — unifying the many
architecture-specific forks of MIT’s teaching OS xv6 (by Russ Cox, Frans Kaashoek, and Robert
Morris).
- Oberon (Niklaus Wirth, 1988) — an OS and
language built by one person, kept small on purpose.
official site ·
book pdf
- Plan 9 (Bell Labs, 1992) — the
successor to Unix by its original authors, small and clean enough to understand as a whole;
the base of both principia-softwarica and xix.
9p.io
- Singularity (Microsoft
Research, 2003) — a research OS rethought from first principles.
- The Elements of Computing Systems
(Noam Nisan & Shimon Schocken, 2005) — building a whole computer, from NAND gates up through an OS,
in twelve incremental projects. nand2tetris is the course built
around the book. intro video
- TempleOS (Terry A. Davis, 2005) — another one-person OS,
down to its own compiler and language; its author’s life was troubled and the project
controversial, but the sheer scope of it built solo is still striking.
- STEPS (Alan Kay, Viewpoints Research Institute, 2006–2012) — the goal was an entire computing environment
in a few thousand lines of code; they didn’t fully get there, but the attempt is worth reading.
NSF grant proposal, 2006 ·
first progress report, 2007 ·
final report, 2011
- Dynamicland (Bret Victor, 2017) — a physical space where computation is
woven into everyday objects and surfaces.
Software development
Full list: software.md
- Semgrep — static analysis tool I created: find bugs
using rules that look like the code they match, continuing the semantic code search and
transformation line of work from the original sgrep/Coccinelle research (see
Academia) through pfff at Facebook (see Industry).
- codemap / codegraph
— source code visualizers (treemap, dependency graph); visualizing code instead of just reading
it. Now mostly superseded by
codemap v2 (see the playground
above), which draws the dependencies on the map too.
- codequery / codecheck
— querying and checking a codebase.
- syncweb — a literate programming tool; lets you edit code
or doc and stay in sync both ways (unlike original literate programming, doc-only); keeps the
principia, xix, codemap, codegraph, and efuns docs in sync with their source.
- Coccinelle — a program transformation engine for
C, co-authored with Julia Lawall; see Academia.
- lfs — a logic file system, from my PhD thesis (see
Academia)
- dircolors.el — an old GNU Emacs mode for colorizing
ls output.
Fun & games
- ocaml-elm-playground 0.1.7 — the
playground before any AI: an OCaml port of the Elm playground package, for making pictures,
animations, and small games easily, with a few
games (Pong, Snake, Tetris,
Asteroid).
- ICFP Programming Contest — competed five years running, always in OCaml:
raytracer (2000),
XML (2001),
robots (2002, team “Magic Insa” with Pascal Rigaux —
writeup),
race (2003),
cop-robber (2005).
- linux-livecd — an early Linux live CD I built, predating Knoppix and the wave of live-CD
distros that followed; never published beyond a circle of friends.
Elsewhere
Try this page with a different look:
plain HTML ·
plain HTML, centered ·
Principia style