Large codebases with many contributors inevitably fall victim to the emergence of bugs and vulnerabilities. The precise way they are progressively introduced is not yet fully understood. Prior works have focused mainly on small amounts of Java codebases because they rely on slow tools and require human intervention. We propose and evaluate a novel process for extracting from a Git commit history the changes that induce a fixing commit and mining patterns from those changes. For tracking down fix-inducing changes, we use HyperAST, a tool that far surpasses its predecessors both in terms of memory usage and in terms of execution time.
Small mistakes in OCaml modules often result in huge error messages that are both hard to read and uninformative, although technically correct. Indeed, some modules contain many thousands of items. Detecting typos in field names can greatly improve error messages by providing a few “did you mean”-like suggestions to the user instead of a long list of missing fields. In order to display those hints in reasonable time, we have explored a way to compute them efficiently using an ingenious combination of commonly known data structures and algorithms.
During this internship, we explored a way to improve OCaml module error messages by detecting spelling mistakes efficiently using an ingenious combination of algorithms and data structures. An implementation of this work in a fork of the OCaml compiler has been done, and will soon be proposed as a pull request on the main compiler branch.
The MP2I/MPI pathway is part of the French “CPGE” system, which is an intensive two-year preparation program for entrance exams to grandes écoles, such as ENS Rennes. It corresponds to the first two years of licence. This pathway focuses specifically on mathematics, computer science, and physics. Students follow courses on computational complexity theory, formal languages, and logic. Studied languages are C, OCaml, and SQL.
Baccalauréat général (2021).
Very high honors (mention « Très bien »). Majors: computer science, mathematics and physics & chemistry.
The computer science major introduces students to basic topics such as graph theory, recursion, and object oriented programming.