Yoann “Pad” Padioleau
(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 principia-softwarica and
xix).
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
Education projects
- principia-softwarica — a fork of Plan 9,
rewritten 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
- xix — a from-scratch rewrite, in OCaml, of the Plan 9
userland, for teaching systems programming with a saner language.
(aryx.github.io/xix)
- spinoffs:
- ocaml-light — OCaml 1.07 stripped of objects and
functors for teaching
- efuns / mmm — an
Emacs clone and a web browser, both in OCaml
- tigerc-- / quickc--
— forks built around the Tiger compiler and the C-- portable assembly language
- ocaml-caps /
ocaml-commons — capability types and stdlib
extensions shared by the above
- xv6-multiarch — unifying the many
architecture-specific forks of MIT’s teaching OS xv6.
- STEPS (Alan Kay, Viewpoints Research Institute) — 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
- Oberon (Niklaus Wirth) — an OS and
language built by one person, kept small on purpose.
official site ·
book pdf
- TempleOS (Terry A. Davis) — 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.
- Dynamicland (Bret Victor) — a physical space where computation is
woven into everyday objects and surfaces.
- Singularity (Microsoft
Research) — a research OS rethought from first principles.
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. Built on
semgrep-pfff-libs /
semgrep-pfff-langs, its parsing libraries.
Since leaving the Semgrep company, I’ve kept a personal fork,
osemgrep, focused on OCaml/C improvements and LSP
support.
- codemap / codegraph
— source code visualizers (treemap, dependency graph); visualizing code instead of just reading
it.
- codequery / codecheck
— querying and checking a codebase.
- syncweb — literate programming meets Unison; keeps the
principia, xix, codemap, codegraph, and efuns docs in sync with their source.
- ocaml-caps — capability-based security for OCaml.
- 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 — an OCaml library for
making pictures, animations, and small games easily, modeled on the Elm playground package.
- 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.
Deprecated
ocamltarzan and the earlier pfff/yacfe
libraries — see Academia for that lineage.
Elsewhere