Learning to Fix Build Errors with Graph2Diff Neural Networks
Daniel Tarlow, Subhodeep Moitra, Andrew Rice, Zimin Chen,, Pierre-Antoine Manzagol, Charles Sutton, Edward Aftandilian

TL;DR
This paper introduces Graph2Diff, a deep learning model that uses graph neural networks to automatically localize and fix build errors in source code, significantly improving accuracy over previous methods.
Contribution
The paper presents Graph2Diff, a novel neural network architecture that models source code and build information as graphs to predict precise code modifications for fixing build errors.
Findings
Achieves over double the accuracy of DeepDelta in fixing build errors.
Effectively models source code, build configs, and diagnostics as graphs for error localization.
Demonstrates the potential of Graph2Tocopo abstraction for source code change prediction.
Abstract
Professional software developers spend a significant amount of time fixing builds, but this has received little attention as a problem in automatic program repair. We present a new deep learning architecture, called Graph2Diff, for automatically localizing and fixing build errors. We represent source code, build configuration files, and compiler diagnostic messages as a graph, and then use a Graph Neural Network model to predict a diff. A diff specifies how to modify the code's abstract syntax tree, represented in the neural network as a sequence of tokens and of pointers to code locations. Our network is an instance of a more general abstraction that we call Graph2Tocopo, which is potentially useful in any development tool for predicting source code changes. We evaluate the model on a dataset of over 500k real build errors and their resolutions from professional developers. Compared to…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
MethodsGraph Neural Network
