This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Ann: MELT plugin 0.9.6 rc1 for GCC 4.6 & 4.7
- From: Basile Starynkevitch <basile at starynkevitch dot net>
- To: gc-melt at googlegroups dot com
- Cc: gcc at gcc dot gnu dot org
- Date: Thu, 5 Jul 2012 22:47:05 +0200
- Subject: 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} ***