Hello, and happy new year to everyone!
I'm pleased to announce that I will be holding a 90 minutes session at
the next ACCU conference in Bristol. The abstract is given below.
The Bright Side of Exceptions
In many programming languages, the term "exception" really means "error". This
is rather unfortunate because an exception is normally just something that
does not happen very often; not necessarily something bad or wrong.
Some ancient languages like C don't support exceptions at all. You need to
indicate them with specific return values from functions. Languages with
explicit support for exceptions (e.g. Java, C++ or Python) provide built-in
facilities for handling them. The most traditional approach to this is the
"try/catch/throw" system, whatever it may actually be called in your favorite
language. As it turns out, this system suffers from limitations which affect
its usability in complex situations. The two major problems are 1. the
obligatory stack unwinding on error recovery and 2. a two-levels only
separation of concerns (throwing / handling).
In this talk, we will demonstrate the benefits of using a system which does
not suffer from these limitations. More precisely:
- the stack is not necessarily unwound on error recovery, which means that the
full execution context at the time the error was signaled is still
available,
- the separation of concerns is 3-fold: the code that signals an error (throw)
is different from the code that handles the error (catch) which itself is
different from the code that chooses how to handle the error (restart).
It turns out that an exception handling mechanism like this is able to handle
more than just errors and in fact, even more than just exceptional events. In
Lisp, this system is called the "condition" system. Conditions are the bright
side of exceptions: not necessarily bad, not even necessarily exceptional.
Conditions become an integral part of your programming paradigms toolkit. We
will provide two examples of "condition-driven development". The first one
will show how to handle actual errors, only in a more expressive and cleaner
fashion than with a regular try/catch/throw system. The second example will
demonstrate the implementation of something completely unrelated to error
handling: a user-level coroutine facility.
--
Resistance is futile. You will be jazzimilated.
Scientific site: http://www.lrde.epita.fr/~didier
Music (Jazz) site: http://www.didierverna.com
EPITA/LRDE, 14-16 rue Voltaire, 94276 Le Kremlin-Bicêtre, France
Tel. +33 (0)1 44 08 01 85 Fax. +33 (0)1 53 14 59 22
Chers collègues,
Nous vous souhaitons une bonne et heureuse année ! Nous aurons le
plaisir de la commencer en accueillant Gaël Thomas le mercredi 23
janvier 2013 (11h-12h), en Salle L-Alpha du LRDE.
* 11h: Amélioration du design et des performances
des machines virtuelles langages
-- Gaël Thomas - REGAL-LIP6/UPMC/INRIA
http://pagesperso-systeme.lip6.fr/Gael.Thomas/
Avec l'avènement du Web et du besoin de protéger les utilisateurs contre
des logiciels malicieux, les machines virtuelles langages, comme les
machines virtuelles Java et .Net, sont devenues la norme pour exécuter
des programmes. Dans cet exposé, je vais présenter les travaux que j'ai
menés ces dernières années et qui se sont concentrés sur trois aspects
des machines virtuelles: leur design, leur sûreté de fonctionnement, et
leur performance sur les architectures multi-cœurs.
Ma première contribution est VMKit, une bibliothèque qui facilite le
développement de nouvelles machines virtuelles performantes en cachant
leur complexité dans un ensemble de composants réutilisables. Ma seconde
contribution est I-JVM, une machine virtuelle Java qui élimine les huit
vulnérabilités connues qu'un composant de la plateforme OSGi pouvait
exploiter. Ma troisième contribution vise à améliorer les performances
des machines virtuelles sur les architectures multi-cœurs en se
focalisant sur les verrous et les ramasse-miettes: avec un mécanisme de
verrouillage qui surpasse tous les autres mécanismes connus lorsque le
nombre de cœurs augmente, et avec avec une étude des goulets
d'étranglement des ramasse-miettes sur les architectures multi-cœurs.
-- Gaël Thomas est maître de conférences (HDR) à l'UPMC Paris Sorbonne
qu'il a rejointe en 2006 après avoir passé une année en post doctorat à
l'université Joseph Fourier. Il est membre de l'équipe REGAL du LIP6,
une équipe mixte entre l'INRIA et l'UPMC qui étudie les systèmes
d'exploitation et les systèmes distribués à large échelle. Ses travaux
visent à améliorer les performances, la modularité et la sûreté de
fonctionnement des machines virtuelles langages comme la machine
virtuelle Java.
Depuis 2011, il est président de l'association ACM SIGOPS France.
Pour plus de renseignements, consultez http://seminaire.lrde.epita.fr/.
L'entrée du séminaire est libre. Merci de bien vouloir diffuser cette
information le plus largement possible.
--
Akim Demaille
Akim.Demaille(a)lrde.epita.fr
_______________________________________________
Seminaire mailing list
Seminaire(a)lrde.epita.fr
https://www.lrde.epita.fr/mailman/listinfo/seminaire
;; ______ _ _____ _ __ ____
;; | ____| | | / ____| ( ) /_ | |___ \
;; | |__ | | | (___ |/ | | __) |
;; | __| | | \___ \ | | |__ <
;; | |____ | |____ ____) | | | ___) |
;; |______| |______| |_____/ |_| |____/
;;
;; European Lisp Symposium 2013 - ELS'13
;; Madrid, Spain
;;
;; June 3-4, 2013
;;
;; http://els2013.european-lisp-symposium.org/
The purpose of the European Lisp Symposium is to provide a forum for
the discussion and dissemination of all aspects of design,
implementation and application of any of the Lisp and Lisp-inspired
dialects, including Common Lisp, Scheme, Emacs Lisp, AutoLisp, ISLISP,
Dylan, Clojure, ACL2, ECMAScript, Racket, SKILL, Hop and so on. We
encourage everyone interested in Lisp to participate.
The main theme of the 2013 European Lisp Symposium is on the use of
these languages with respect to the current grand challenges: big
tables, open data, semantic web, network programming, discovery,
robustness, runtime failures, etc.
The European Lisp Symposium 2013 solicits the submission of papers
with these specific themes in mind, alongside the more traditional
tracks which have appeared in the past editions.
We invite submissions in the following forms:
Papers: Technical papers of up to 15 pages that describe original
results or explain known ideas in new and elegant ways.
Demonstrations: Abstracts of up to 4 pages for demonstrations of
tools, libraries, and applications.
Tutorials: Abstracts of up to 4 pages for in-depth presentations about
topics of special interest for at least 90 minutes and up to 180
minutes.
Lightning talks: Abstracts of up to one page for talks to last for no
more than 5 minutes.
All submissions should be formatted following the ACM SIGS guidelines
and include ACM classification categories and terms. For more
information on the submission guidelines and the ACM keywords, see:
http://www.acm.org/sigs/publications/proceedings-templates and
http://www.acm.org/about/class/1998.
Submissions should be directed, before March 1st, to
https://www.easychair.org/conferences/?conf=els13
Invited speakers:
Florian Loitsch, Google: Dart, why you should care.
GÈrard Assayag, Ircam: Lisp and Music Research.
Important dates:
March, 1st 2013: submission deadline
April, 5th 2013: acceptance results
June, 3-4 2013: symposium
Program Commitee:
Pascal Costanza, Intel, Belgium
Ludovic Courtes, INRIA, France
Theo D'Hondt, Vrije Universiteit Brussel, Belgium
Florian Loitsch, Google, Denmark
Christian Queinnec, UPMC, France
Kurt Noermark, Aalborg University, Denmark
Olin Shivers, Northeastern University, USA
Manuel Serrano, INRIA, France
Didier Verna, EPITA, France
Chair:
Juan Jose Garcia-Ripoll, local organizer
Christian Queinnec, PC co-chair
Manuel Serrano, PC co-chair
--
After 9 years of releases with a leading "0." in their version number,
this might be unexpected:
We are pleased to announce the release of Spot 1.0.
Spot is a model-checking library developed collaboratively by LRDE
and LIP6. It provides algorithms and data structures to implement
the automata-theoretic approach to LTL model checking.
This major new releases features a set of completely rewritten
command-line tools, an implementation of reverse simulation,
and support for testing automata.
You can find the new release here:
http://spot.lip6.fr/dl/spot-1.0.tar.gz
A more detailed listing of the changes follows.
New in spot 1.0 (2012-10-27):
* License change: Spot is now distributed using GPL v3+ instead
of GPL v2+. This is because we started using some third-party
files distributed under GPL v3+.
* Command-line tools
Useful command-line tools are now installed in addition to the
library. Some of these tools were originally written for our test
suite and had evolved organically into useful programs with crappy
interfaces: they have now been rewritten with better argument
parsing, saner defaults, and they come with man pages.
- genltl: Generate LTL formulas from scalable patterns.
This offers 20 patterns so far.
- randltl: Generate random LTL/PSL formulas.
- ltlfilt: Filter lists of formulas according to several criteria
(e.g., match only safety formulas that are larger than
some given size). Besides being used as a "grep" tool
for formulas, this can also be used to convert
files of formulas between different syntaxes, apply
some simplifications, check whether to formulas are
equivalent, ...
- ltl2tgba: Translate LTL/PSL formulas into Büchi automata (TGBA,
BA, or Monitor). A fundamental change to the
interface is that you may now specify the goal of the
translation: do you you favor deterministic or smaller
automata?
- ltl2tgta: Translate LTL/PSL formulas into Testing Automata.
- ltlcross: Compare the output of translators from LTL/PSL to
Büchi automata, to find bug or for benchmarking. This
is essentially a Spot-based reimplementation of LBTT
that supports PSL in addition to LTL, and that can
output more statistics.
An introduction to these tools can be found on-line at
http://spot.lip6.fr/userdoc/tools.html
The former test versions of genltl and randltl have been removed
from the source tree. The old version of ltl2tgba with its
gazillion options is still is src/tgbatest/ and is meant to be
used for testing only. Although ltlcross is meant to replace
LBTT, we are still using both tools in this release; however this
is likely to be the last release of Spot that redistributes LBTT.
* New features in the Spot library:
- Support for various flavors of Testing Automata.
The flavors are:
+ "classical" Testing Automata, as used for instance by
Geldenhuys and Hansen (Spin'06), using Büchi and
livelock acceptance conditions.
+ Generalized Testing Automata, extending the previous
with multiple Büchi acceptance sets.
+ Transition-based Generalized Testing Automata moving Büchi
acceptance to transitions, and getting rid of livelock
acceptance conditions by expliciting stuttering self-loops.
Supporting algorithms include anything required to run
the automata-theoretic approach using testing automata:
+ dedicated synchronized product
+ dedicated emptiness-check for TA and GTA, as these
may require two passes because of the two kinds of
acceptance, while a TGTA can be checked for emptiness
with the same one-pass algorithm as a TGBA.
+ conversion from a TGBA to any of the above kind, with
options to reduce these automata with bisimulation,
and to produce a BA/GBA that require a single pass
(at the expense of determinism).
+ output in dot format for display
A discussion of these automata, part of Ala Eddine BEN SALEM's
PhD work, should appear in ToPNoC VI (LNCS 7400). The web-based
interface and the aforementioned ltl2tgta tool can be used
to build testing automata.
- TGBA can now be reduced by Reverse Simulation (in addition to
the Direct Simulation introduced in 0.9). A function called
iterated_simulations() will alternate direct and reverse
simulations in a loop as long as it diminishes the size of the
automaton.
- The enumerate_cycles class implements the Loizou-Thanisch
algorithm to enumerate elementary cycles in a SCC. As an
example of use, is_weak_scc() will tell whether an SCC is
inherently weak (all its cycles are accepting, or none of them
are).
- parse_lbt() will parse an LTL formula expressed in the prefix
syntax used (at least) by LBT, LBTT and Scheck.
to_lbt_string() can be used to print an LTL formula using this
syntax.
- to_wring_string() can be used to print an LTL formula into
Wring's syntax.
- The LTL/PSL parser now has a lenient mode that can be useful
to interpret atomic proposition with language-specific constructs.
In lenient mode, any (...) or {...} block that cannot be parsed
as formula will be assumed to be an atomic proposition.
For instance the input (a < b) U (process[2]@ok), normally
flagged as a syntax error, is read as "a < b" U "process[2]@ok"
in lenient mode.
- minimize_obligation() has a new option to disable WDBA
minimization it cases it would produce a deterministic automaton
that is bigger than the original TGBA. This can help
choosing between less states or more determinism.
- new functions is_deterministic() and count_nondet_states()
(The count of nondeterministic states is now displayed on
automata generated with the web interface.)
- A new class, "postprocessor", makes it easier to apply
all available simplification algorithms on a TGBA/BA/Monitors.
* Minor changes:
- The '*' operator can (again) be used as an AND in LTL formulas.
This is for compatibility with formula written in Wring's
syntax. However inside SERE it is interpreted as the Kleen
star.
- When printing a formula using Spin's LTL syntax, we don't
double-quote complex atomic propositions (that was not valid
Spin input anyway). For instance F"foo == 2" used to be
output as <>"foo == 2". We now output <>(foo == 2) instead.
The latter syntax is understood by Spin 6. It can be read
back by Spot in lenient mode (see above).
- The gspn-ssp benchmark has been removed.
Chers collègues,
La prochaine session du séminaire Performance et Généricité du LRDE
(Laboratoire de Recherche et Développement de l'EPITA) aura lieu le
Mercredi 17 octobre 2012 (10h00-12h00), Salle Alpha du LRDE.
Au programme:
* 10h: Systèmes d'exploitation en dur: une clef du passage de 10 à 1000 cœurs
-- Raphael Poss - University of Amsterdam
http://staff.science.uva.nl/~poss
Afin d'exploiter le potentiel des puces multi-cœurs pour une performance
évolutive et à haut rendement énergétique, le projet Apple-CORE a
co-conçu un modèle général d'architecture matérielle et une interface de
contrôle de parallélisme. Cette interface, appelée SVP, est réalisée par
du matériel sur puce dédié à la gestion de la concurrence de programmes
parallèles exécutés sur plusieurs cœurs. SVP se base sur les principes
de synchronisation de flux de données («data flow»), de programmation
impérative et d'exécution efficace du parallélisme en termes de budget
temps et énergie. Les composants matériels correspondants peuvent
coordonner plusieurs cœurs RISC équipés de multi-threading matériel,
organisés en clusters de calcul sur puce, dits «Microgrids».
Comparés à l'approche traditionnelle «accélérateurs», les Microgrids
sont destinés à être utilisés comme composants dans les systèmes
distribués sur puce contenant à la fois des grappes de petits cœurs et
optionnellement de gros cœurs –optimisés pour l'exécution séquentielle–
disponibles en tant que «services» pour les applications. Les principaux
aspects de cette architecture sont l'asynchronisme, c'est-à-dire la
capacité à tolérer les opérations irrégulières avec des temps de latence
longs, un modèle de programmation à échelle invariante, une vision
distribuée de la puce, et une mise à l'échelle transparente de la
performance d'un seul code binaire à plusieurs tailles de grappes de
cœurs.
Cette présentation décrit le modèle d'exécution, la micro-architecture
des cœurs, sa réalisation au sein d'une plateforme et son environnement
logiciel.
-- Diplômé CSI en 2003, Raphael est resté actif à l'EPITA jusqu'en 2004,
puis a travaillé en tant qu'ingénieur logiciel à Paris puis Rotterdam.
Il rejoint en 2008 le groupe Computer Systems Architecture à
l'Université d'Amsterdam en tant que chef de projet et
enseignant-chercheur, où il reçoit un doctorat en septembre 2012. Il
donne des cours d'architecture matérielle à Amsterdam et Leiden, et
continue de coordonner des activités de recherche au croisement entre
architecture, compilateurs et systèmes d'exploitation.
* 10h45: Platform and Research overview on the Intel Single-chip Cloud Computer
-- Roy Bakker - University of Amsterdam
http://www.science.uva.nl/~bakkerr
The Single-chip Cloud Computer (SCC) is a 48-core experimental processor
created by Intel Labs targeting the many-core research community. The
6x4 mesh Network-on-Chip provides 24 tiles with 2 cores each. All cores
are independent and run their own instance of an operating system. It
has hardware support (local buffers on the tiles) for sending short
messages between cores, and allows for voltage and frequency control at
8 and 2 cores respectively.
We have already modified the SVP runtime system to use these on-chip
buffers for the communication between threads executed on separate
cores. We also created a visual application for manual process migration
and scheduling on the SCC as well as a library for customized voltage
and frequency scaling on the chip.
Currently we focus on automated parallelization and mapping of one or
multiple sequential programs onto the 48 cores by modifying the daedalus
framework to target the SCC. The daedalus framework parallelizes
sequential C programs using Kahn Process Networks (KPNs) and generates
code to run the KPN on multiple hardware platforms like for example an
FPGA, SMP CPU or GPU. The SCC backend, which is work in progress, should
result in a tool that utilizes the SCC cores in an optimal way by means
of performance and energy consumption. It should also allow the system
to dynamically adapt on changes in the computational or communicational
needs of the processes by scaling frequency and migrating processes.
-- Roy Bakker is a PhD student in the Computer Systems Architecture group
at the University of Amsterdam, where he also graduated for his
Bachelor's (2008) and Master's (2011) degree. His current work is funded
by the Netherlands Organisation for Scientific Research (NWO) project on
Smart Energy Systems (SES).
Pour plus de renseignements, consultez http://seminaire.lrde.epita.fr/.
L'entrée du séminaire est libre. Merci de bien vouloir diffuser cette
information le plus largement possible.
--
Akim Demaille
Akim.Demaille(a)lrde.epita.fr
_______________________________________________
Seminaire mailing list
Seminaire(a)lrde.epita.fr
https://www.lrde.epita.fr/mailman/listinfo/seminaire
Bonjour,
nous avons le plaisir de vous annoncer la sortie du n°26 du bulletin du LRDE.
C'est un numéro Spécial Rentrée qui présente l'ensemble des membres du LRDE.
Vous y trouverez également un aperçu des activités du LRDE et de la majeure CSI
dont font partie tous les élèves épitéens intégrant le labo.
Vous pouvez télécharger le bulletin en couleur à la page suivante :
http://publis.lrde.epita.fr/201209-l-air-de-rien-26
--
Daniela Becker
Responsable administrative du LRDE
We are happy to announce that the following paper has been
published in the Proceedings of the Workshop on Applications of
Discrete Geometry and Mathematical Morphology (Springer LNCS
volume 7346). This paper is an extended version of the initial
WADGMM 2010 paper.
Nous avons le plaisir de vous annoncer que l'article suivant a
été publié dans les actes du Workshop on Applications of Discrete
Geometry and Mathematical Morphology (Springer LNCS volume 7346).
Cet article est une version étendue de l'article originel de
WADGMM 2010.
Roland Levillain (1,2), Thierry Géraud (1,2) and Laurent Najman (2)
Writing Reusable Digital Topology Algorithms in a Generic Image
Processing Framework
http://publis.lrde.epita.fr/201206-WADGMM-LNCS
(1) EPITA Research and Development Laboratory (LRDE)
(2) Université Paris-Est, Laboratoire d'Informatique Gaspard-Monge,
Equipe A3SI, ESIEE Paris
Digital Topology software should reflect the generality of the
underlying mathematics: mapping the latter to the former requires
genericity. By designing generic solutions, one can effectively
reuse digital topology data structures and algorithms. We
propose an image processing framework focused on the Generic
Programming paradigm in which an algorithm on the paper can be
turned into a single code, written once and usable with various
input types. This approach enables users to design and implement
new methods at a lower cost, try cross-domain experiments and
help generalize results.
--
Roland Levillain
EPITA Research and Development Laboratory (LRDE)
14-16, rue Voltaire - FR-94276 Le Kremlin-Bicêtre Cedex - France
Phone: +33 1 53 14 59 45 - Fax: +33 1 53 14 59 22 - www.lrde.epita.fr
Chers collègues,
L'édition 2011-2012 du séminaire de recherche du LRDE, consacré
au thème cher à notre laboratoire – Performances et Généricité –
vient de s'achever.
Cette année encore nous avons eu le plaisir d'accueillir des
orateurs de qualité, renommés dans leur domaine. Vous trouverez
ci-dessous une liste thématique des différents exposés. Les
hyperliens vous conduirons non seulement à leur résumé détaillé,
mais également aux planches des exposés, et aux vidéos pour certaines
séances.
Nous remercions chaleureusement les orateurs qui nous ont
honorés de leur présence. Merci également aux visiteurs !
Nous prenons d'ores et déjà rendez-vous pour une reprise à la
rentrée prochaine. N'hésitez pas à nous proposer un exposé,
ou à nous indiquer des orateurs potentiels.
Bonnes vacances à tous,
Akim, pour le Laboratoire de R&D de l'EPITA
* Langages, paradigmes de programmation
=======================================
* GPU Computing : début d'une ère ou fin d'une époque ?
Eric Mahé -- Responsable du projet OpenGPU
http://seminaire.lrde.epita.fr/2012-06-20.php
* Reusable Generic Look Ahead Multithreaded Cache:
A case study for a high resolution player
Guillaume Chatelet -- Ingénieur R&D à Mikros Image
http://seminaire.lrde.epita.fr/2012-03-14.php
* Des performances dans les nuages avec la virtualisation des langages
Yann Régis-Gianas -- Maître de conférence à l'université Paris Diderot
http://seminaire.lrde.epita.fr/2012-02-15.php
* Certification d'annotations de coût dans les compilateurs
Nicolas Ayache -- Post-doc au laboratoire PPS de l'université Paris Diderot
http://seminaire.lrde.epita.fr/2012-02-15.php
* Pourquoi Javascript est-il aussi rapide/lent ?
Nicolas Pierron -- Ingénieur R&D, Mozilla Paris
http://seminaire.lrde.epita.fr/2011-10-26.php
* Traitement d'image
====================
* Un modèle générique de traitement et de représentation des images
Antoine Manzanera -- Enseignant-Chercheur à l'ENSTA-ParisTech
http://seminaire.lrde.epita.fr/2012-05-09.php
* Analyse des mouvements apparents dans un flux vidéo
Matthieu Garrigues -- Ingénieur Recherche à l'ENSTA-ParisTech
http://seminaire.lrde.epita.fr/2012-05-09.php
* Filtrage morphologique dans les espaces de formes :
Applications avec la représentation d'image par arbres
Yongchao Xu -- Doctorant LRDE/ESIEE
http://seminaire.lrde.epita.fr/2012-07-04.php
* Le point de vue d'un théoricien sur l'intérêt de la généricité
pour le traitement d'images
Laurent Najman -- Professeur à l'ESIEE
http://seminaire.lrde.epita.fr/2012-03-21.php
* Interactive 2D and 3D Segmentation with ilastik
Ullrich Köthe -- Senior Researcher, University of Heidelberg
http://seminaire.lrde.epita.fr/2012-11-16.php
* Model checking
================
* Vérification efficace de propriétés insensibles au bégaiement
Ala Eddine Ben Salem -- Doctorant LRDE/LIP6
http://seminaire.lrde.epita.fr/2012-07-04.php
* Composition dynamique de techniques pour le model checking efficace
Étienne Renault -- Doctorant LRDE/LIP6
http://seminaire.lrde.epita.fr/2012-07-04.php
_______________________________________________
Seminaire mailing list
Seminaire(a)lrde.epita.fr
https://www.lrde.epita.fr/mailman/listinfo/seminaire
The Vaucanson team is pleased to announce the release of Vaucanson 1.4.1,
just in time for the fireworks.
Vaucanson is a platform for manipulating weighted finite state
automata. It includes a C++ generic library and a command-line
interface (TAF-Kit).
http://www.lrde.epita.fr/cgi-bin/twiki/view/Vaucanson/Vaucanson141
Vaucanson 1.4.1 is a maintenance release that fixes a handful of bugs,
and introduce a few simple new features.
- New TAF-Kit commands:
+ ``coquotient``
+ ``alphabet``
+ ``partial-erase``
+ ``gui``
- Bug fixes:
+ never create 0-labeled transitions in ``proper``.
+ fix support of transitions that are linear combinations of pairs
in FMP transducers
- A new TAF-Kit option ``--list-all-commands-json`` outputs the list of
all command in a format (json) that may be parsed by third-party
tools to interface with TAF-Kit.
You can find the new release here:
http://www.lrde.epita.fr/dload/vaucanson/1.4/vaucanson-1.4.1.tar.gz (63MB)
http://www.lrde.epita.fr/dload/vaucanson/1.4/vaucanson-1.4.1.tar.bz2 (54MB)
MD5:
fb904d35e2d0ba70977289e6fb4f39f9 vaucanson-1.4.1.tar.gz
aafb84b15bb90a2fdbdeed96dedc1c94 vaucanson-1.4.1.tar.xz
Please send bug reports to <vaucanson-bugs(a)lrde.epita.fr> and other
inquiries to <vaucanson(a)lrde.epita.fr>.
--
Alexandre Duret-Lutz