Brussels / 31 January & 1 February 2015



a translated Lisp dialect inside GCC for customizing the compiler

GCC-MELT see for more is a Lispy domain specific language (and GPLv3+ implementation, as a GCC meta-plugin) to extend and customize the GCC compiler (see for more)

This talk (for people familiar with Lisp, but unfamiliar with GCC internals) will describe the MELT dialect, the implementation challenges, and some MELT usage, with the future directions within the MELT project.

MELT is a Lispy domain specific language to ease the customization of GCC thru particular extensions (notably for additional coding rules checks and diagnostics, or for additional application-specific optimizations).

MELT is a bootstrapped Lisp implementation (of nearly 100KLOC of GPLv3+ source code), compiled to C++ code fit for GCC internals. The MELT dialect has several pecularities: it offers both first-class values and other stuff as data kinds; it provides useful language features (pattern-matching, introspective reflection, meta-programming with macros) for powerful GCC customization.

MELT is integrated inside GCC by being a GCC meta-plugin. It enables adding new GCC optimization passes. We describe some implementation challenges and how we tackled them.


Basile Starynkevitch