Code and Software

Here are some code and software that I have written and/or maintain.

rebuild-initramfs

A tool for Arch Linux-based systems to quickly rebuild their initramfs using dracut. Unlike mkinitcpio and booster, dracut does not come with a pacman hook, and this fills in the gap.

You can find the development on GitHub, or install the packaged version from the Arch User Repository.

Coq formalizations

  • Commutative algebra: basic classical commutative algebra formalized within the MathComp framework, which is very work in progress.
  • Category theory: yet another category theory formalization, this time using the MathComp framework. Again, very work in progress.
  • Certified OCaml Interpreter: a formalization of OCaml's core type system, with structural polymorphism and GADTs. This was the basis for my ML Workshop 2021 and CoqPL 2021 papers (see my papers page).
  • Kami: a formalization of RISC-V I worked on while interning (and working) at SiFive a few years ago.
  • Compact data structures: a formalization of several compact data structures, which was the basis of my ITP 2019 paper.

Old projects

  • Elephant Tracks 2: a framework for fast, extensible JVM GC tracing. Unfortunately, the work on it has stopped after all students working on the project eventually left the area.
  • JVM heap visualization: a project I did for my undergraduate degree in computer science.

Arch Linux private repository

This is mostly just for my personal use, but I maintain an Arch custom repository for software that I like to use. You are also welcome to use it; to do so, you can add the following lines to your pacman.conf:

[xuanrui]
Server = https://arch.xuanruiqi.com/repo/

You will likely need to add my key (6E06FBC8) to the keyring:

# pacman-key --recv-keys 6E06FBC8
# pacman-key --lsign-key 6E06FBC8