  Template-based program repair research is in need for a common ground to
express fix patterns in a standard and reusable manner. We propose to build on
the concept of generic patch (also known as semantic patch), which is widely
used in the Linux community to automate code evolution. We advocate that
generic patches could provide at the same time a unified representation and a
specification for fix patterns. Generic patches are indeed formally defined,
and there exists a robust, industry-adapted, and extensible engine that
processes generic patches to perform control-flow code matching and
automatically generates concretes patches based on the specified change
operations. In this paper, we present the design and implementation of a repair
framework, FLEXIREPAIR, that explores generic patches as the core concept. In
particular, we show how concretely generic patches can be inferred and applied
in a pipeline of Automated Program Repair (APR). With FLEXIREPAIR, we address
an urgent challenge in the template-based APR community to separate
implementation details from actual scientific contributions by providing an
open, transparent and flexible repair pipeline on top of which all advancements
in terms of efficiency, efficacy and usability can be measured and assessed
rigorously. Furthermore, because the underlying tools and concepts have already
been accepted by a wide practitioner community, we expect FLEXIREPAIR's
adoption by industry to be facilitated. Preliminary experiments with a
prototype FLEXIREPAIR on the IntroClass and CodeFlaws benchmarks suggest that
it already constitutes a solid baseline with comparable performance to some of
the state of the art.
