Dear All, It is my pleasure to announce the MELT plugin 0.9.8 for GCC 4.6, 4.7 & future 4.8
Download http://www.gcc-melt.org/melt-0.9.8-plugin-for-gcc-4.6-or-4.7-or-4.8.tar.gz a gzipped source tarball of 5377928 bytes of md5sum 6c0721202857c44a8edb1ae2252605e8 extracted from MELT branch svn rev. 194693 on december 22nd 2012. MELT is a high-level domain specific language to extend the GCC compiler. See http://gcc-melt.org/ for more. Notice that the web site gcc-melt.org has been revamped and contains much more information than before (and more tutorial information as web pages, even if that is still incomplete). Download http://www.gcc-melt.org/melt-0.9.8-plugin-for-gcc-4.6-or-4.7-or-4.8.tar.gz If you wan a two-page printable leaflet about MELT download gcc-melt.org/gcc-melt-sheet.pdf ################################################################ NEWS for 0.9.8 MELT plugin for GCC 4.6 & 4.7 & future 4.8 [[december, 22th, 2012]] Language improvements ===================== * The LET syntax accepts bindings with the :auto ctype-annotation, like e.g. (let ( (:auto four (+i 2 2)) ) (debug "four=" four)) the ctype is the obtained by the expression defining that binding i.e. (+i 2 2) it the above example which is of ctype_long. The default ctype annotation -which used to be :value- is now :auto this change is upward compatible but is very significant. * BOX-ing and CONSTANT_BOX-ing syntactic constructs The (BOX <stuff>) syntax makes a mutable value boxing the given stuff. So for example (BOX (+i 2 1)) is the same as (MAKE_INTEGERBOX DISCR_INTEGER (+i 2 1)) The (CONSTANT_BOX <stuff>) syntax makes a constant value boxing the given stuff. So for example (CONSTANT_BOX 1) is the same as the expression (MAKE_INTEGERBOX DISCR_CONSTANT_INTEGER 1) * UNBOX-ing syntactic construct The (UNBOX <ctype> <value>) is a convenient way to unbox values. For example the expression (UNBOX :TREE V) is the same as (TREE_CONTENT V) Runtime improvements ==================== A new evalfile mode is available to evaluate expressions from a file (default is standard input). The evaluating modes are diplaying the last evaluated expression using the debug depth parameter, which can be set with -fplugin-arg-melt-debug-depth=10 program argument. C-types have now autoboxing fields. Discriminants for constant boxing of stuff have been added, notably DISCR_CONSTANT_BASIC_BLOCK, DISCR_CONSTANT_EDGE, DISCR_CONSTANT_GIMPLE, DISCR_CONSTANT_GIMPLE_SEQ, DISCR_CONSTANT_LOOP, DISCR_CONSTANT_TREE Vector from GCC 4.8 are now possible inside MELT. A melt_intern_cstring function is available in C to intern arbitrary null-terminated strings. The melt-module.mk makefile is accepting the GCCMELT_MODULE_VERBOSE_BUILD variable. Several primitives have been added. * Numerous bug fixes. ######################################################################## Comments are welcome, notably on the gcc-m...@googlegroups.com list. I strongly invite every person downloading MELT to subscribe & read that list. Merry Christmas and Happy New Year to everyone. Regards. -- Basile STARYNKEVITCH http://starynkevitch.net/Basile/ email: basile<at>starynkevitch<dot>net mobile: +33 6 8501 2359 8, rue de la Faiencerie, 92340 Bourg La Reine, France *** opinions {are only mines, sont seulement les miennes} ***