This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Ann: MELT plugin 0.9.6 rc1 for GCC 4.6 & 4.7


Hello All,

It is my pleasure to announce the MELT plugin 0.9.6 release candidate 1 for GCC 4.6 & 4.7.

MELT is a high-level domain specific language to extend the GCC compiler. See
http://gcc-melt.org/ for more. The MELT plugin is free software GPLv3+ licensed, FSF
copyrighted.

You can download it from
http://gcc-melt.org/melt-0.9.6-rc1-plugin-for-gcc-4.6-or-4.7.tar.gz
a gnu zipped source tar file of 4807210 bytes & md5sum 9aa85f5fbdf5225b1d67326a3594dd46
extracted from the MELT branch of GCC svn revision 189302.

This release candidate brings a lot of features:

################################################################
NEWS for 0.9.6 MELT plugin for GCC 4.6 & 4.7
[[july 2012]]

   Language improvements
   =====================

   Syntax: (USE-PACKAGE-FROM-PKG-CONFIG <packagename>)

   On systems, such as most Linux distributions, with the pkg-config
   utility http://en.wikipedia.org/wiki/Pkg-config
   http://pkg-config.freedesktop.org/ the given packagename is used
   when compiline the generated C code and when linking the generated
   shared module.

   Emited C code by MELT is more conformant to C++ and C coding standards.

   More primitives, macros, ... notably WHEN & UNLESS, like in Common Lisp...

   The CLASS_CONTAINER has been renamed as CLASS_REFERENCE. Likewise
   SET_CONTENT is renamed as SET_REFERENCE...

   Runtime improvements
   ====================

   When a function is called in an occurrence expecting secondary
   results and does not return secondary results, a warning is
   emitted.

   MELT may emit symlinks to "unique" C files in the workdir, helpful
   when regenerating an already generated file...

   "Interrupts" have been inproperly named, speak of "signals" (in the
   Posix/Unix sense, not the Gtk/Qt one!).

   Add support for timers & child processes...

   Library improvment
   ==================

---------
   The probe mode is able to to start and communicate an external
   graphical probe.

   A simple probe, coded in C++ for GTKmm3.4, is available as a self
   contained program simplemelt-gtkmm-probe.cc; its compilation
   command is given at the very end of that source file, e.g.:

        g++ -std=gnu++0x -Wall -O -g \
          $(pkg-config --cflags --libs gtksourceviewmm-3.0  gtkmm-3.0  gtk+-3.0) \
        -o $HOME/bin/simplemelt-gtkmm-probe simplemelt-gtkmm-probe.cc

   You could have the following shell script, named melt-probe
                     
     #! /bin/bash -x
     exec simplemelt-gtkmm-probe -T $*

   The probe mode is expecting a shell script named melt-probe
   somewhere in your path.

   You can now compile some C or C++ ... file with GCC enhanced by MELT, e.g.
     gcc -fplugin=melt -fplugin-arg-melt-mode=probe -c some-file.cc

   A graphical window appears, to display your source code
   some-file.cc (and others, e.g. included files). Click on the
   buttons inside it to show the corresponding GCC internals at the
   corresponding source location.

   you could add your own information display to the probe. Look into xtramelt-probe.melt
   for more.

---------
   Ability to walk on gimple sequences using GCC infrastructure thru
   walk_gimple_seq & walk_gimple_seq_unique_tree primitives.

   Much more interfaces to Gimple & Trees...

####################

The probe thing should actually be useful even to people not willing to code in MELT, but
interested in having a crude graphical interface to interactively query some important
GCC internal representations. The major difference with e.g. dump files with
-fdump-tree-all is that by clicking on a button, you can get a lot of GCC internal
representations relevant to that precise source location. It could even be useful to
learn about GCC internals.

A lot of thanks to Alexandre Lissy, Jeremie Salvucci.


I'm waiting for bug reports about this release candidate, preferably on
gcc-melt@googlegroups.com

Regards

PS: I'm on vacation from July 7th to July 15th 2012, probably without internet access.

-- 
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 mine, sont seulement les miennes} ***


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]