My favorite paper on the subject of automatic program repair is "A Systematic Study of Automated Program Repair:Fixing 55 out of 105 Bugs for $8 Each" [0][1] see also <a href="http://program-repair.org/" rel="nofollow">http://program-repair.org/</a><p>[0] <a href="http://web.eecs.umich.edu/~weimerw/p/weimer-icse2012-genprog-preprint.pdf" rel="nofollow">http://web.eecs.umich.edu/~weimerw/p/weimer-icse2012-genprog...</a><p>[1] <a href="https://squareslab.github.io/genprog-code/" rel="nofollow">https://squareslab.github.io/genprog-code/</a>
We were attempting something similar last year but with ML (training from error messages to patchfiles to fix the given bug) but found it didn't scale well beyond simple scripts. This is very interesting though. There's a large potential market for this with continuous integration platforms.
Reminded me of a project from a friend of mine that unfortunately is pretty much dead since two years:<p><a href="https://github.com/quantifiedcode/quantifiedcode" rel="nofollow">https://github.com/quantifiedcode/quantifiedcode</a><p>This one also creates graphs from code and once you write a fix for one pattern you can apply it to all.<p>EDIT: it's for python
Looks interesting, though I wonder what sort of checking would be needed to ensure it didn't accidentally replicate a bug everywhere because it was accidentally implemented while fixing something. You wouldn't want something like this on full automatic.
So if there's a fork what happens?<p>I'm skeptical that this would work, but if it does great, probably better suited to bugs than features?<p>I'm quite interested in the possibility of just letting it loose on the internet, and seeing what you get back.
That sounds like a really interesting project! It could make the solving of issues really efficient.
I wonder if there are not well-know assisting tools of the same kind.