Dear All, It is my pleasure to announce the MELT plugin 0.9.7 release for GCC 4.6, 4.7 and future 4.8
You can download its source gnuzipped archive from http://gcc-melt.org/melt-0.9.7-plugin-for-gcc-4.6-or-4.7-or-4.8.tar.gz this is a gnu-zipped source tar file of 5193713 bytes of md5sum 9873b7cb1363c3638457fe775a402aa9 extracted from the MELT branch of GCC svn rev. 192291 on october 10th 2012. (there have been 4 release candidates before, but you should better use this release). MELT is a high-level domain specific language to extend the GCC compiler. See http://gcc-melt.org/ for more. It is a free software implementation (GPLv3+ licensed, FSF copyrighted) of a plugin for GCC 4.6, 4.7 & 4.8 developped on GNU/Linux/Debian/AMD64. In addition of those wanting to extend GCC with a MELT extension, this release should also interest many people interested in GCC, since it also provides a probe to show (interactively, with a graphical interface) some of the internal representations (Tree, Gimple, Gimple/SSA, ....) at a given source location. For such a use you only need to compile with gcc -fplugin=melt -fplugin-arg-melt-mode=probe This 0.9.7 MELT plugin release brings a lot of new features and bug fixes. ################################################################ NEWS for 0.9.7 MELT plugin for GCC 4.6 & 4.7 & future 4.8 [[october, 10th, 2012]] Language improvement ==================== When creating an instance with definstance or instance, the translator checks that fields are filled with values. Previous versions of MELT could crash in that case. (CHEADER ...) constructs are working as documented. The Parma Polyhedra Library is removed from MELT. String values know their length, so safe access to some byte inside is possible. Added a lot of cmatchers (and implicit primitives) like tree_boolean_false_node, tree_boolean_true_node, tree_boolean_type_node, tree_char_type_node, tree_const_ptr_type_node, tree_double_type_node, tree_float_type_node, tree_int128_integer_type_node, tree_int128_unsigned_type_node, tree_integer_minus_one_node, tree_integer_one_node, tree_integer_type_node, tree_integer_zero_node, tree_long_double_type_node, tree_long_integer_type_node, tree_long_long_integer_type_node, tree_long_long_unsigned_type_node, tree_long_unsigned_type_node, tree_null_pointer_node, tree_ptr_type_node, tree_short_integer_type_node, tree_short_unsigned_type_node, tree_signed_char_type_node, tree_size_type_node, tree_unsigned_char_type_node, tree_unsigned_type_node, tree_void_type_node to access the very built-in trees known to GCC. Added more tree & gimple related matchers and primitives. Less spurious warnings when building MELT. Runtime improvements ==================== Add a runtime expression evaluation function TRANSLATE_RUN_MELT_EXPRESSIONS with a mode eval for initial evaluation of a sequence of expressions, and a mode repl for read-eval-print-loop, and a mode eval for evaluating and printing a given expression. Try e.g. gcc -c -fplugin=melt -fplugin-arg-melt-mode=eval \ -fplugin-arg-melt-arg='(list discr_tree class_sexpr)' \ empty.c The repl mode reads sequences of MELT expressions from stdin, each sequence should end by two consecutive newlines. Advanced users could register their own finalized client data using the melt_payload_register_descriptor C function. The building procedure has been revamped. Advanced users could define their GCCMELT_BUILD_NOTIFICATION environment variable to e.g. a script meltbuild-notification like #! /bin/bash # first arg title, second arg message if [ "$DISPLAY" = ":0.0" -a -n "$DESKTOP_SESSION" -a $(which notify-send) ]; then notify-send -t 3500 -i info "MELT BUILD: $1" "$2" else logger -t meltbuild -p user.info "$1=" "$2" fi and they will have a nice bubble notification under most Linux desktops of the major steps of the build. The building procedure is now quicker than before. Advanved MELT users can set their MELTGCC_NO_CHECK_RUNTIME to disable checking of the MELT runtime. This is notably needed when the MELT plugin is compiled for a cross compiler. Advanced MELT users willing to debug with gdb could set the melt_alptr_1 and melt_objhash_1 in their gdb debugger to track allocation or changes of MELT values or objects. The -fmelt-debugging=all option works as expected in the MELT branch and so does -fplugin-arg-melt-debugging=all in the MELT plugin. Numerous bug fixes. The probe has been improved, and also shows some Gimple/SSA. Consider using Alexandre Lissy's replacement (Python/Qt based) of the probe. ###### Thanks to Alexandre Lissy, Emmanuel Haucourt, Jeremie Salvucci for their help and contributions. Bug reports and feature requests are welcome on gcc-m...@googlegroups.com 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} ***