Hello All,
[posted to GCC mailing list & to gcc-melt-fre...@googlegroups.com & to various persons] I am giving a tutorial at the GCC Summit in Ottawa about "Easily coding a GCC extension with MELT" on october 26th 2010 (if http://gccsummit.org/ http://www.gccsummit.org/2010/schedule.php is correct). Since I am not a good English speaker, I am making a rehearsal of this tutorial in Paris (France) at Irill.org. Any person willing to attend IRILL is welcome (the room is not very big, but I don't expect a lot of people, perhaps a dozen, for the rehearsal in Paris... However, Irill is in central Paris and easily reachable.). Thanks to Roberto Di Cosmo, head of IRILL, to let me talk there. For those in France and/or not attending the GCC Summit but interested by GCC MELT, feel free to forward this. ###############################################################################" [[tutorial given at Ottawa, GCC Summit, October 26th 2010, with a rehearsal given in Paris, october 20th 2010, 10:00 am, at IRILL, 25 avenue d'Italie, 75014 Paris, France]] Easily coding a GCC extension with MELT ======================================= GCC MELT is a branch and plugin providing a powerful domain specific lispy language to code GCC extensions in. MELT offers several high level features and is translated to C code, hooked to GCC thru the plugins hooks. Notable features of MELT include: interface to most GCC internal types( like Gimple, Tree, Loop-s, etc.), a copying garbage collector, a single-inheritance, reflexive, object system, first-class functional values and anonymous functions, powerful and flexible pattern matching, easy integration of C code chunks. The tutorial is targeted for the GCC summit audience: people somehow familiar with the GCC internals (e.g. knowledgeable of the Gimple & Tree representations, and of the passes organization). It does not presuppose familiarity with Lisp. It will show how the main feature of the MELT domain specific language, how to code simple and more complex passes using MELT, how can passes share data, how to extend MELT itself, how to interface additional GCC internals to MELT, etc. MELT could be used to prototypes new ideas inside GCC, but is in particular intended for application-, entreprise-, or domain- specific extensions of GCC, e.g. for GCC extensions tailored to some big software project (improved diagnostics, specific optimizations, source code processing, navigation, retro-engineering, ...). This GCC summit MELT tutorial requires some basic knowledge about GCC internals. The first part of this tutorial will illustrate basic usage of MELT and introduce the MELT lispy domain specific language and the separation of MELT values from other stuff. It does not presuppose any familiarity with any Lisp variant. The second part of the tutorial will focus on MELT pattern matching facilities and show how to use them to concisely explore particular GCC internal representations (notably Gimple and Tree). The third part of the tutorial will detail how to code real GCC passes in MELT and suggest possible MELT extensions for several specific domains. It will give some insight on the internals of MELT. ######### Regards. ############################################################# French micro-summary: Micro-résumé français. Je vais faire une répétition (en anglais) de ma présentation tutorielle sur GCC MELT (la présentation définitive aura lieu au GCC Summit à Ottawa, Canada, le 26 octobre 2010). Cette répétition aura lieu dans les locaux de l'IRILL, 25 avenue d'Italie, 75014 Paris http://www.irill.org/ le mercredi 20 octobre 2010 à 10h du matin. -- 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} ***