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 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.
Release Notes: Language improvements: CHEADER works as expected. MELT doesn't use PPL anymore. Many cmatchers have been added for constant tree nodes (true, false, int, double, 0, etc). Runtime improvements: Adds a Read Eval Print Loop and an Eval mode. Adds support for custom finalized data. Can be more easily built as a plugin for cross-compilers. Better debugging. The probe is also showing Gimple/SSA graphically. Many bugfixes.