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} ***

Reply via email to