GCC-MELT is a high-level domain specific language that eases the development of plugin-like extensions for GCC, the Gnu Compiler Collection. These extensions can analyze or modify GCC internal representations, and can be used for static source code analysis, refactoring, specific warnings, optimizations, etc. The MELT language provides high-level features. Notably, MELT code is translated to C or C++, and can even contain C or C++ code. It includes powerful pattern matching facilities and can manipulate dynamically typed values and raw GCC structures. It enables functional/applicative, object-oriented, reflective programming styles and has a familiar Lisp-like syntax.
|Implementation||gcc Lisp Plugins|
Release Notes: This is a bugfix release w.r.t. the MELT 1.0.1 plugin for GCC 4.7 and 4.8. Upgrading is recommended.
Release Notes: This release fixes a bug to make building MELT for GCC 4.7 possible. Please upgrade if you use MELT 1.0.
Release Notes: This is a major release bringing many improvements and bugfixes.
Release Notes: This release adds several new MELT language features (improved code chunks, expression chunks, hooks, static module variables, an eval function, better MELT pass registration inside GCC) improved runtime and tuning, many bugfixes, a read-eval-print-loop and evaluator which work much better, and many more primitives and functions. This is the last MELT plugin to work with GCC 4.6 (preferably for GCC 4.7 and 4.8).
Release Notes: The :auto ctype annotation, now the default in LET bindings, make the newly defined variable gets its c-type from the expression defining it. The BOX, CONSTANT_BOX, and UNBOX syntactic constructs are new. In the MELT runtime a new evalfile mode is available for evaluating an expression from a file, stdin by default. The melt-module.mk makefile fragment is now silent, but can be made verbose. Several primitives have been added, and many bugs have been fixed.