The JVM raw interpreter doesn't perform liveness analysis, so references sometimes persist much too long. Concretely in Scala, this leads to high memory consumption by lazy lists when a parent frame retains a reference to the root of the list. We added a mechanism to the Scala compiler to erase these references.| SYSTEMF @ EPFL
Rocq uses an algorithm with heuristics to test convertibility of terms. While these heuristics work fine for many problems, some simple convertibility problems can take forever. Usually, these problems are between convertible terms obtained using a reduction tactic. We propose to add a convertibility checker that takes a convertibility certificate to speed up convertibility checks in such cases.| SYSTEMF @ EPFL
An annotated guide to adding captureless lookbehinds to the Rust linear-time regex engine.| SYSTEMF @ EPFL
Practice paper about philosophy and implementation of CS-214 Software Construction at SEFI Annual Conference 2024.| SYSTEMF @ EPFL
A story about writing high-performance code for a custom accelerator in a RISC-V CPU, with the help of some semi-automated tools.| SYSTEMF @ EPFL
Final project report about string diagram rewriting in Coq for CS-628 Interactive Theorem Proving, Spring 2024| SYSTEMF @ EPFL
An introduction to SpecMerger, a tree-diffing tool designed to facilitate mechanized specification audits.| SYSTEMF @ EPFL
An introduction to Alectryon| SYSTEMF @ EPFL
A step-by-step guide on using guvcview, ffmpeg, and aegisub to assemble a talk video.| SYSTEMF @ EPFL
Tips and tricks for writing functions that take proofs as arguments.| SYSTEMF @ EPFL
Computations with dependent types often get stuck on rewrites that use opaque lemmas. When the corresponding equality is decidable, these lemmas don't need to be made transparent to unblock computation.| SYSTEMF @ EPFL
An annotated guide to adding captureless lookbehinds to the RE2 linear-time regex engine.| SYSTEMF @ EPFL