- Papers at ISSTA and FUZZING (July 2023)
We will be presenting three papers at the upcoming ISSTA conference in Seattle!
GrayC: Greybox Fuzzing of Compilers and Analysers for
C is about
a new technique and tool for finding (crash) bugs in compilers and
analysers for the C programming language, by performing
coverage-guided fuzzing using custom mutators tailored specially for
C. It is joint with Karine
(former Imperial postdoc, now faculty at King’s College London),
(Imperial PhD student) and Cristian Cadar.
RustSmith: Random Differential Compiler Testing for Rust is a
tool demonstration paper about the first (to our knowledge) tool aimed
at differential testing of Rust compilers. It seems that the official
rustc, is pretty reliable: RustSmith did not find any
new bugs, though the tool was able to find a number of (new to us)
historical bugs, and provide some coverage improvements. This is based
on the excellent MEng thesis work of Mayank Sharma, and is also a
collaboration with Imperial PhD student Pingshi Yu.
Grammar Mutation for Testing Input
presents a new technique for grammar-based fuzzing that involve
mutating the grammar itself to generate weird - but not too weird -
inputs. It is a “registered report”, which means that it sets out a
plan for a large experimental campaign (yet to be run) to evaluate the
idea. This idea and plan will be presented at the FUZZING
workshop. The work is led by Bachir
(Imperial PhD student) and is joint with Cristian Cadar.
6 months ago
- Compiler testing paper at PLDI 2023 (April 2023)
Delighted that a new paper, Program Reconditioning: Avoiding Undefined Behaviour When Finding and Reducing Compiler Bugs, will appear at PLDI 2023. This is joint work with former masters students Bastien Lecoeur and Hasan Mohsin. I’m very fortunate to get to work with such talented students at Imperial!
The paper focuses on the problem of what to do about programming language undefined behaviour when deploying random differential testing and test case reduction to find compiler bugs.
This paper is close to my heart and has been a bit of a labour of love - rejected from PLDI 2022 and FSE 2022 (but with very useful reviewer feedback). I hope people find it interesting.
Check it out!
8 months ago
- New year updates (January 2023)
Happy New Year everybody! Having not posted any news for a while, here is a summary of some of the exciting things that have been happening since June!
New PhD students: Bachir Bendrissou and Pingshi Yu joined the group as PhD students (with Bachir being co-supervised by Cristian Cadar)
New postdoc: Chengsong Tan has joined the group as a postdoc on the IRIS project, working under my and John Wickerson‘s guidance
Dan Iorga passed his viva: Dan Iorga (co-supervised with John Wickerson) successfully defended his PhD thesis, “Memory Models for Heterogeneous Systems”, in November - congratulations Dan!
Inaugural Lecture: I gave my Inaugural Lecture, “My Plan B” - check it out on YouTube!
Most Influential Paper award: Our paper on GPUVerify from 2012 won the Most Influential Paper award at OOPSLA 2022! At time of writing the only evidence for this claim comes from Twitter, but the announcement should make it here in due course.
Paper at POPL 2023: We have had a paper, “Taking Back Control in an Intermediate Language for GPU Computing”, accepted at POPL 2023 - check it out! The paper is about using formal modelling techniques to improve the SPIR-V programming language - see this tweet summary. Joint work with Vasileios Klimis, Jack Clark and John Wickerson at Imperial, and our collaborators Alan Baker and David Neto at Google.
Paper at ICST 2023 Industry Track: During 2021 and 2022 I spent time as a Visiting Researcher at Google working on compiler testing techniques for the WebGPU and SPIR-V shading languages. We have had a paper, “Industrial Deployment of Compiler Fuzzing Techniques for Two GPU Shading Languages”, describing this experience accepted at the industry track of the ICST 2023 conference. The work features contributions from two excellent former Imperial undergraduates, Hasan Mohsin and Hana Watson, as well as Vasyl Teliman, an independent contributor based in Ukraine, and Ben Clayton, Ryan Harrison and David Neto at Google. Draft available soon!
Paper at CC 2023: George Mitenkov, formerly an undergrad at Imperial, did an excellent BEng project jointly with members of the Blue Brain team at EPFL, on generating efficient vector and GPU code from the NMODL domain specific language using LLVM IR. We have just had a paper on this work, entitled “MOD2IR: High-Performance Code Generation for a Biophysically Detailed Neuronal Simulation DSL”, accepted at the CC 2023 conference - this is joint work with George Mitenkov, Ioannis Magkanaris, Omar Awile, Pramod Kumbhar and Felix Schürmann. Draft available soon!
Looking forward to an exciting year ahead!
a year ago
- PLDI 2022 (June 2022)
It’s wonderful to be back at an in-person conference - PLDI’22 in San Diego. Dan Iorga will present last year’s OOPSLA paper on CPU/FPGA memory models. I enjoyed participating in the Student Research Competition as a judge, and am looking forward to the Steering Committee meeting.
2 years ago
- Experience paper at ISSTA (June 2022)
Frank Busse, Pritam Gharat, Cristian Cadar and I have had an experience paper accepted at ISSTA 2022 on various attempts to combine static analysis and dynamic symbolic execution.
The paper actually reports a couple of negative results: the static analysers we investigated are not able to find real-world bugs in the kinds of applications we were able to apply the KLEE tool to, and on a large set of synthetic bugs we found that equipping KLEE with information from candidate error traces reported by static analysers did not actually help much in accelerating KLEE’s progress towards the bug. I was pleased that the ISSTA reviewers were receptive to the idea of publishing these negative results, which we hope will provide inspiration for future work.
Check out the paper.
2 years ago
- Paper on metamorphic compiler concurrency testing (June 2022)
Check out our paper, High-coverage Metamorphic Testing of Concurrency Support in C Compilers, with Matt Windsor and John Wickerson, that just appeared in the STVR journal!
2 years ago
- Serving on various PCs (February 2022)
I took a bit of a break from PC service after serving as PC chair for ECOOP 2019 and general chair for PLDI 2020, and while I was only part time in academia. But now, it is my honour to have recently served on, or be due to serve on, some exciting program committees, including ECOOP 2022, CAV 2022, ASE 2022 and POPL 2023.
2 years ago