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, and can even contain 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: 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.
Release Notes: This release adds the ability to easily use a pkg-configured package, can generate symlinks to unique generated C files, and adds support for a timer, child processes, and asynchronous texual interaction with an outside process. A graphical probe can interact with MELT to display various GCC internal representations related to a given source location. The probe mode is able to start and communicate with an external graphical probe. A simple probe, coded in C++ for GTKmm3.4, is available as the self-contained program simplemelt-gtkmm-probe.cc.
Release Notes: The MELT plugin is available for GCC 4.6 and 4.7. Small MELT language improvement (macro-string syntax). Runtime improvements: handles SIGIO Unix signals with asynchronous input channels (experimental feature), and can be compiled with C++ (like GCC 4.7 often is). Library improvements: many more matchers and much more generated documentation to interface with GCC internals.
Release Notes: Several enhancements and bugfixes.