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 rc2 for GCC 4.6


Hello,

It is my pleasure to announce MELT plugin 0.9 release candidate 2.

MELT provides a Lispy domain specific language to ease the coding of GCC extensions, with
high-level features (dynamic typing, reflection, object-oriented, functional/applicative,
and pattern-matching) while dealing well with GCC internals. The MELT language is
translated to C.

The NEWS are the same as for 0.9rc1 announced yesterday.

I believe that the bug reported by Alexandre Lissy on
http://groups.google.com/group/gcc-melt/msg/2a23f12c6f0d7f02 
has been corrected.

> #######################################################################
> NEWS for 0.9 MELT plugin for gcc-4.6
> 
> September 2011: Release of MELT plugin 0.9 rc1 for gcc-4.6
> 
> New features:
> 
>     Documentation is generated
> 
>     The PLUGIN_PRE_GENERICIZE event is interfaced.
> 
>     The build machinery and the binary module loading has been
>     significantly updated.  Modules shared objects are like
>     warmelt-macro.3461497d8ef7239dc1f2f132623e6dd5.quicklybuilt.so and
>     they contain the md5sum of the catenation of all C files. They
>     also come in various flavor: quicklybuilt (the generated C is
>     compiled with -O0 -DMELT_HAVE_DEBUG), optimized (the generated C
>     is compiled with -01 and without -DMELT_HAVE_DEBUG), debugnoline
>     (the generated C is compiled with -g and -DMELT_HAVE_DEBUG but no
>     #line directives).
> 
>     Conceptually, a module is loaded by loading its +meltdesc.c
>     file. That file (e.g. warmelt-macro+meltdesc.c corresponding to
>     warmelt-macro.melt) should never be moved or even edited.  It is
>     parsed at module load time, and contains the various md5sum of
>     real generated C files.
> 
>     New option -fplugin-arg-melt-workdir= for the work directory,
>     where every .c or .so files are generated.
> 
>     The DISCR_BOX discriminant has been removed. Use containers instead.
> 
>     Containers, that is instances of class_container having one single field 
>     :container_value, are supported by syntactic macros and sugar & function.
>        (container V)   
>           =equivalent=   (instance class_container :container_value V)
>        (content C)
>           =equivalent=   (get_field :container_value C)
>        (set_content C V)
>           =equivalent=   (put_fields C :container_value V)
>     You can write exclaim instead of content, and there is a new syntactic 
>     sugar
>        !X
> 
>      is the same as (content X) - the exclamation mark should be
>      followed by spaces, letters, or left parenthesis to be parsed as
>      exclaim -that is as the content macro above.
> 
>     In patterns, ?(container ?v) means 
>     ?(instance class_container :container_value ?v)
> 
>     Fields can be accessed by their name, so
>       (:F C)
>    is the same as (get_field :F C)
>    Hence (:container_value foo) is the same as !foo or 
>    (get_field :container_value foo)
> 
>    Experimental syntactic sugar: inside an s-expr, a macro string
>    written ##{...}# is expanded as several components, not a single
>    list.
> 
>    Slow boxed arithmetic operations are available (e.g. +iv gets two
>    boxed integer and gives the boxed integer of their sum).
> 
> Many bug fixes.
> 
> The build system has been revamped. The generated .c files should be
> available when running MELT.
> 
> 
> Thanks to Pierre Vittet, Alexandre Lissy, Romain Geissler for
> feedback, patches, suggestions.
> 
> 
> ####

As usual, bug reports, patches, comments are welcome.

Cheers.
-- 
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]