Learning to Fix Build Errors with Graph2Diff Neural Networks

  • 2019-11-04 13:40:27
  • Daniel Tarlow, Subhodeep Moitra, Andrew Rice, Zimin Chen, Pierre-Antoine Manzagol, Charles Sutton, Edward Aftandilian
  • 11

Abstract

Professional software developers spend a significant amount of time fixingbuilds, but this has received little attention as a problem in automaticprogram 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, andthen use a Graph Neural Network model to predict a diff. A diff specifies howto modify the code's abstract syntax tree, represented in the neural network asa sequence of tokens and of pointers to code locations. Our network is aninstance of a more general abstraction that we call Graph2Tocopo, which ispotentially useful in any development tool for predicting source code changes.We evaluate the model on a dataset of over 500k real build errors and theirresolutions from professional developers. Compared to the approach of DeepDelta(Mesbah et al., 2019), our approach tackles the harder task of predicting amore precise diff but still achieves over double the accuracy.

 

Quick Read (beta)

loading the full paper ...