From ebeb303ab2867235869666e671600c955c8d887f Mon Sep 17 00:00:00 2001
From: Erwan Jahier <jahier@imag.fr>
Date: Thu, 28 Jan 2016 16:40:34 +0100
Subject: [PATCH] Clean-up the git repo.

---
 AFAIRE                             |   45 -
 ALIRE                              |   57 --
 ALIRE.compil-des-nodes             |   12 -
 _oasis                             |    2 +-
 alire                              |    4 -
 {figs => doc/figs}/srctab.fig      |    0
 doc/lpp.dep.dot                    |    4 -
 doc/lpp.depfull.dot                |    4 -
 lazy.notes.ml                      |   25 -
 notes-pascal/devel-notes.pdf       |  Bin 52225 -> 0 bytes
 notes-pascal/devel-notes.tex       |  154 ----
 notes-pascal/exemplecompil-0.tex   |  287 ------
 notes-pascal/exemplecompil.txt     |   70 --
 notes-pascal/pack+static.problemes |  150 ---
 README.org => notes.org            |   19 -
 src/lv6version.ml                  |    4 +-
 todo.org                           |  571 ------------
 todo.org_archive                   | 1374 ----------------------------
 rundbg => utils/rundbg             |    0
 19 files changed, 3 insertions(+), 2779 deletions(-)
 delete mode 100644 AFAIRE
 delete mode 100644 ALIRE
 delete mode 100644 ALIRE.compil-des-nodes
 delete mode 100644 alire
 rename {figs => doc/figs}/srctab.fig (100%)
 delete mode 100644 doc/lpp.dep.dot
 delete mode 100644 doc/lpp.depfull.dot
 delete mode 100644 lazy.notes.ml
 delete mode 100644 notes-pascal/devel-notes.pdf
 delete mode 100644 notes-pascal/devel-notes.tex
 delete mode 100644 notes-pascal/exemplecompil-0.tex
 delete mode 100644 notes-pascal/exemplecompil.txt
 delete mode 100644 notes-pascal/pack+static.problemes
 rename README.org => notes.org (92%)
 delete mode 100644 todo.org
 delete mode 100644 todo.org_archive
 rename rundbg => utils/rundbg (100%)

diff --git a/AFAIRE b/AFAIRE
deleted file mode 100644
index af7e3769..00000000
--- a/AFAIRE
+++ /dev/null
@@ -1,45 +0,0 @@
-
-12/08/06
-bug 
-./objlinux64/lus2lic test_static/cond01.lus -dbg lazyc
-
-
-12/08/03
-
-./objlinux/lus2lic test_static/predef01.lus
-Fatal error: exception Match_failure("objlinux/doNoPoly.ml", 55, 17)
-
-
-12/08/01 ->
- ./objlinux/lus2lic test_static/predef01.lus -dbg lazyc
-*** Error in file "/home/raymond/git/lus2lic/test_static/predef01.lus", line 6, col 6 to 8, token 'map':
-*** Lustre::map<<Lustre::or, 42>>: unknown Lustre operator. 
-*** Available operators in the current scope are:
-
-----------------------
-
-
-12/07/30 -> remplacement de GetEff.check_static_arg 
-  par une version epurée qui ne fait de cohérence de type
-  (cf vielle version check_static_arg_old.ml)
-  -> A FAIRE !!
-
-================================================================
-- UnifyType.f (BIEN AVANCE)
-----------------------------------------------------------------
-unifyType : remplacer
-   Unif of Eff.type_
-par
-   Unif of Eff.poly_match
-----------------------------------------------------------------
-07/12 fait partiellement, au niveau des expressions
-----------------------------------------------------------------
-
-================================================================
-- Eff : node_exp dans by_pos_op dans val_exp_core
-----------------------------------------------------------------
-Ca revient à copier la définition d'un noeud partout où
-il est utilisé => FAIRE AUTREMENT
-----------------------------------------------------------------
-----------------------------------------------------------------
-
diff --git a/ALIRE b/ALIRE
deleted file mode 100644
index ffa6aa70..00000000
--- a/ALIRE
+++ /dev/null
@@ -1,57 +0,0 @@
-
-Reprise des travaux, juillet 2012 ...
-
-Besoins :
-- intégrer les constructions d'horloge avancées (condact et merge)
-
-En cours :
-- sans tout casser, remettre un peu d'ordre dans la bande  
-  Compile/Eff/LasyCompiler, surtout LasyCompiler qui fait 
-  un peu trop de choses...
-- Idée, on passe par une forme intermédaire LicPrg :
-  * composée des type "compilés" Eff.xxx
-  * point de sortie de LasyCompiler : son rôle doit
-    être revu à la baisse, il s'occupe de "tirer" les fils 
-    (aspect lazy), c'est-à-dire résoudre tout ce qui est
-    packaging et parametres statiques, MAIS PAS PLUS
-  * toutes les autre modifs de type source_2-source sont fait
-    dans des modules dédiés par des fonctions LicPrg -> LicPrg
-  * L'impression proprement dite des progs est un (simple)
-    dump du LicPrg : elle n'est plus faite au fur et à mesure
-    dans LasyCompiler
-
-
-ETAT COURANT
-
------------------------------------------------------------
-12/07/09
-
---> Les expressions de noeud qui s'avèrent polymorphes et/ou
-  surchargés, sont :
-  - acceptées dans les val_exp, à condition que l'utilisation
-    lève l'ambiguité
-  - refusées dans les "node alias"
-
-  = PLUS TARD : il faudrait que les noeuds qui s'avèrent polymorphes
-    et/ou surchargés soient traités comme de MACROS avec un STATIG ARG
-    de nature TYPE implicite
-
------------------------------------------------------------
-12/07/05
-
-- completement séparé la compil de l'affichage, du coup
-  on a débranché l'ancien source_to_source
-
-- l'ajout d'alias sur type array est fait par une passe source 2 source :
-  ca fait un exemple de traitement s2s simple,
-  c'est plus propre qu'avant ou c'etait fait par effet de bord
-  a l'affichage
---> consequence co-latterale : les clashs sur nom de type introduit
-    sont gérés de manière plus "smart"
-
-==> reste a faire :
-   refaire les traitements source_to_source !!
-   
-    
-  
-
diff --git a/ALIRE.compil-des-nodes b/ALIRE.compil-des-nodes
deleted file mode 100644
index cb7aedf9..00000000
--- a/ALIRE.compil-des-nodes
+++ /dev/null
@@ -1,12 +0,0 @@
-
-compile_all ->
-
-compile_all_nodes ->
-
-compile_all_item node_check_interface ->
-  node_check_interface:cache on ->
-
-node_check_interface_do
-
-   node_check: cache on node_check_do
- + node_check_do en plus pour l'interface (prov)
diff --git a/_oasis b/_oasis
index ecc2dfa0..b33f3518 100644
--- a/_oasis
+++ b/_oasis
@@ -1,6 +1,6 @@
 OASISFormat: 0.4
 Name:        lustre-v6
-Version:     1.1.631
+Version:     1.632
 Synopsis:    The Lustre V6 Verimag compiler
 Description: This package contains:
              - lus2lic: the (current) name of the compiler (and interpreter via -exec).
diff --git a/alire b/alire
deleted file mode 100644
index 648a0c2e..00000000
--- a/alire
+++ /dev/null
@@ -1,4 +0,0 @@
-
-git clone file:///usr/local/src/lustre/repos/lus2lic.git lus2lic
-
-
diff --git a/figs/srctab.fig b/doc/figs/srctab.fig
similarity index 100%
rename from figs/srctab.fig
rename to doc/figs/srctab.fig
diff --git a/doc/lpp.dep.dot b/doc/lpp.dep.dot
deleted file mode 100644
index 731fbbd5..00000000
--- a/doc/lpp.dep.dot
+++ /dev/null
@@ -1,4 +0,0 @@
-digraph G {
-  size="7.5,10" ;
-  rankdir = TB ;
-}
diff --git a/doc/lpp.depfull.dot b/doc/lpp.depfull.dot
deleted file mode 100644
index 54321146..00000000
--- a/doc/lpp.depfull.dot
+++ /dev/null
@@ -1,4 +0,0 @@
-digraph G {
-  size="7.5,10" ;
-  rankdir = LR ;
-}
diff --git a/lazy.notes.ml b/lazy.notes.ml
deleted file mode 100644
index 9b1f9065..00000000
--- a/lazy.notes.ml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-#DBG: LazyCompiler.node_check_interface 'Lustre::map<<node oper = Lustre::or, const size = 42>>'
-#DBG: LazyCompiler.lookup_node_exp_eff: node key 'Lustre::map<<node oper = Lustre::or, const size = 42>>' NOT FOUND
-#DBG: LazyCompiler.node_check 'Lustre::map<<node oper = Lustre::or, const size = 42>>'
-#DBG: LazyCompiler.x_check 'in file "/home/raymond/git/lus2lic/test_static/predef01.lus", line 6, col 6 to 8, token 'map''
-#DBG: LazyCompiler.lookup_node_exp_eff: node key 'Lustre::map<<node oper = Lustre::or, const size = 42>>' NOT FOUND
-*** Can not find package 'Lustre' in the following packages: 
-
-
-
-let x_check
-	(tab            : ('x_key, 'x_eff  Eff.check_flag) Hashtbl.t)
-	(find_x         : SymbolTab.t -> Ident.t -> Lxm.t -> ('x_info  Lxm.srcflagged) SymbolTab.elt)
-	(x_check_do     : t -> 'x_key -> Lxm.t -> SymbolTab.t -> bool -> Ident.pack_name -> x_info srcflagged -> 'x_eff)
-	(lookup_x_eff   : ('x_key, 'x_eff Eff.check_flag) Hashtbl.t -> 'x_key -> Lxm.t -> 'x_eff)
-	(pack_of_x_key  : 'x_key -> string )
-	(name_of_x_key  : 'x_key -> string)
-	(this           : t)
-	(x_key          : 'x_key)
-	(lxm            : Lxm.t)
-: 'x_eff
-
-
-
-NodeStaticArgEff  of (Ident.t * node_key)
diff --git a/notes-pascal/devel-notes.pdf b/notes-pascal/devel-notes.pdf
deleted file mode 100644
index 288601a46534d2bf101aa5d8e9aecbebf6952d3c..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 52225
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
C-m9_z

diff --git a/notes-pascal/devel-notes.tex b/notes-pascal/devel-notes.tex
deleted file mode 100644
index b46bfc52..00000000
--- a/notes-pascal/devel-notes.tex
+++ /dev/null
@@ -1,154 +0,0 @@
-
-%PASTEX:FIGDIR=figs
-\documentclass[12pt,a4paper]{article}
-
-\usepackage[latin1]{inputenc} % 8 bits
-\usepackage[francais]{babel}  % francais
-\usepackage{graphics}
-\usepackage{latexsym}
-\usepackage{here}
-\usepackage{color}
-
-%\input{commandes}
-%\input{algoenv}
-%\input{save_paper}
-
-\sloppy
-
-\title{LPP-v6 -- Notes Développeur}
-\author{P.Raymond}
-\date{}
-
-\begin{document}
-
-\maketitle
-\tableofcontents
-%\clearpage
-
-\section{Ligne de commande et analyse syntaxique}
-
-\subsection{Fichiers acceptés}
-
-Les fichiers supportés sont~:
-\begin{itemize}
-\item Les fichiers \verb|foo.lus| à la syntaxe Lustre-v6 comportant un ensemble
-de déclarations de packages et de modules.
-\item Les fichiers \verb|foo.lus| contenant uniquement un corps de
-package à la syntaxe v6~;
-un tel fichier est considéré comme la déclaration implicite d'un package
-dont le nom est \verb|foo|, et dont tous les items sont exportés (\verb|provided|). 
-\end{itemize}
-
-Restrictions/à faire~:
-\begin{itemize}
-\item pour l'instant on prend un seul fichier, mais ça sera facilement adaptable
-\end{itemize}
-
-\subsection{Analyse syntaxique}
-
-Elle produit un ensemble de déclarations de packages et de modèles
-dans une structure syntaxique abstraite (module \verb|Syntaxe|),
-qui constitue le {\bf source brut}.
-
-\section{Analyse des déclarations}
-
-C'est la première phase de compilation qui consiste à vérifier la cohérences
-des déclaration modulo l'organisation en ``name-space'' (les packages).
-
-Cette phase produit une nouvelle version du source (module \verb|SrcTab|)~:
-\begin{itemize}
-\item unicité des déclarations de modèles et de packages 
-\item instanciation (purement syntaxique) des modèles
-\item identification des items exportés et de leurs définitions
-abstraites (e.g. un type fourni par un package est présenté abstrait
-pour les utilisation extérieures).
-\end{itemize} 
-
-Au final on a une table de sources bien organisée (\verb|SrcTab|) mais
-qui renvoie encore à des infos purement syntaxiques (\verb|Syntaxe|),
-voir figure~\ref{srctab}~:
-\begin{itemize}
-\item les trois tables d'export (const, type, oper) sont indéxées
-par des identificateurs absolus (pack+nom) et pointent sur 
-des définitions éventuellement abstraites~: c'est la seule vision
-qu'on en a de l'extérieur, et l'analyse doit être faite uniquement
-modulo cette info.
-\item la table des définitions de pack, chacun comportant 
-ses tables d'items (const, type, oper)~; les idents sont relatifs
-et les définitions concrêtes.
-\end{itemize}
-
-\begin{figure}
-\begin{center}
-\input{srctab.pdf_t}
-\caption{La table des sources}
-\label{srctab}
-\end{center}
-\end{figure}
-
-
-\section{Compilation à la demande}
-
-Une compilation modulaire, package par package, est pratiquement 
-impossible~:
-\begin{itemize}
-\item comment générer du code pour des n\oe uds paramétrés ?
-\item comment faire du type-checking générique pour des tableaux
-dont on ne connaît pas la taille ?
-\item et encore plus dur, comment traiter la récursivité statique ?
-\end{itemize}
-
-La solution la plus raisonable semble de faire une compilation à
-la demande~:
-\begin{itemize}
-\item on part d'un n\oe ud principal à compiler, dont tous les éventuels
-arguments statiques sont connus (en particulier la taille effective des tableaux
-manipulés),
-\item on ``tire'' récursivement sur les dépendances pour compiler tous
-les items nécessaires à ce n\oe ud (ça comprend les types, les constantes statiques,
-les n\oe uds internes utilisés).
-\end{itemize}
-
-\paragraph{Remarque.} Un point n'est pas très clair~:
-est-il intéressant de faire malgrès tout une analyse préliminaire 
-indépendante d'un main particulier~?
-
-Dans Lpp4x, c'est ce qu'on appelait le ``typage de surface''~: 
-ça vérifiait les références, et faisait un typage approché, où, en particulier,
-la taille des  tableaux était abstraite.
-
-\subsection{Items syntaxiques vers items effectifs}
-
-C'est la terminologie hérité de Lpp4x~:  la compilation consiste
-à associer à des items syntaxiques (types, consts, nodes) des
-items effectifs (c'est-à-dire compilés).
-
-\subsection{Compile Task}
-
-Pour implémenter la compilation à la demande, on met en \oe uvre un mécanisme
-de ``tâches de compilation''. Chaque tâche est identifiée parfaitement par~:
-\begin{itemize}
-\item l'item à traiter (type, const, n\oe ud),
-\item le contextes (table de symboles) dans lequel on doit traiter.
-\end{itemize}
-
-Il faut bien différencier~:
-\begin{itemize}
-\item la recherche d'infos {\em utilisateur} pour un item,
-\item la compilation effective de l'item.
-\end{itemize}
-Par exemple, la compilation d'un n\oe ud peut nécessiter des infos
-sur un type dans le contexte de compilation de ce n\oe ud.
-Supposons qu'il s'agisse d'un type importé d'un package (soit \verb|Pa::ty|)~:
-\begin{itemize}
-\item on cheche l'info accessible sur le type depuis le contexte actuel~;
-supposons que le type soit laissé abstrait dans la table provides de \verb|Pa|,
-la compilation du n\oe ud courant doit se faire avec cette seule info
-(\verb|Pa::ty| est un type abstrait),
-\item parallèlement, on stocke dans les tâches de compilation à effectuer la
-compilation effective de \verb|Pa::ty|, dans le contexte du pack \verb|Pa|.
-\end{itemize}
-
-
-
-\end{document}
diff --git a/notes-pascal/exemplecompil-0.tex b/notes-pascal/exemplecompil-0.tex
deleted file mode 100644
index b50083e3..00000000
--- a/notes-pascal/exemplecompil-0.tex
+++ /dev/null
@@ -1,287 +0,0 @@
-
-
-\section{Code source}
-
-Le code source contient une déclaration de modèle (\verb|modSimple|),
-3 packages déclarés comme des instances de ce modèle (\verb|pint|,
-\verb|pbool| et \verb|preal|) et deux packages classiques
-avec ``bodies'' (\verb|inter| et \verb|mainPack|).
-
-Le but est de compiler le n\oe ud \verb|mainPack::preced|.
-
-\begin{verbatim}
-----------------------------
-model modSimple
-needs 
-    type t;
-provides
-    node fby1(init, fb: t) returns (next: t);
-body
-  
-node fby1(init, fb: t) returns (next: t);
-let
-  next = init -> pre fb;
-tel
-end
------------------------
-package pint is modSimple(int);
-package pbool is modSimple(bool);
-package preal is modSimple(real);
--------------------------
-package inter
-  uses pbool, pint, preal;
-  provides 
-    node preced(in: selType) returns (out, out2: selType);
-    const n : int;
-    type selType;
-body        
-  type selType = { i: int; b: bool; r: real };
-	const n: int = -4;
-	node preced(in: selType) returns (out, out2: selType);
-	let
-      out2 = { i = 0; b = true; r = .0}; --pSel::fby1(in);
-  		out.i = pint::fby1(out2.i, in.i);
-  		out.b = pbool::fby1(out2.b, in.b);
-  		out.r = preal::fby1(out2.r, in.r);
-	tel 
-end
---------------------------
-package mainPack
-        uses inter;
-        provides 
-          node preced(in: inter::selType) returns (out: inter::selType); 
-body
-     type  T = int^N;
-     const X = N;
-           N : int = -2 * inter::n;
-        node preced(in: inter::selType) returns (out: inter::selType);
-        	var out2 : inter::selType;
-				let
-                out, out2 =  inter::preced( in );
-        tel 
-end
-\end{verbatim}
-
-\section{Vocabulaire}
-
-Dans rentrer dans les détails on signale que~:
-\begin{itemize}
-\item les dénotations syntaxiques de type sont appelées typexp
-(ne pas confondre avec les définitions de types),
-\item les dénotations de valeurs (constantes, flots) sont appelées valexp. 
-\end{itemize}
-
-L'approche générale est d'associer à toute notion syntaxique ``toto''
-une notion sémantique (c'est-à-dire ``compilée), qu'on appèlere
-``toto-eff'' (pour effectif).
-Par exemple, à toute dénotation de type sera associée un ``typeff'',
-qui, dans ce cas précis, servira de base au type-checking
-(ce sera la dénotation canonique du type). 
-
-
-\section{Table des pack source}
-
-Une première étape consiste à traiter les instances de modèles, de manière à avoir 
-des packs utilisés. On reste très ``syntaxique'' à ce niveau.
-Par exemple, pour \verb|pint|, on construit une structure pack interne
-équivalente à ce qu'on aurrait obtenu en écrivant directement~:
-
-\begin{verbatim}
-package pint
-provides
-    type t = int;
-    node fby1(init, fb: t) returns (next: t);
-body
-   node fby1(init, fb: t) returns (next: t);
-   let
-     next = init -> pre fb;
-   tel
-\end{verbatim}
-
-Noter que les paramètres de \verb|needs| deviennent des \verb|provides|
-dans le pack instancié. 
-
-\section{Compilation}
-
-Le but est de produire un code intermédiare Lustre Internal Code (lic).
-On sait déjà que~:
-\begin{itemize}
-\item c'est du Lustre (collection de nodes, type et const),
-\item sans pack,
-\item ça doit être facilement exécutable/simulable 
-\end{itemize}
-
-On fait une compilation ``lazzy'' du n\oe ud \verb|mainPack::preced|. 
-
-\subsection{Relativité des items compilés}
-
-Toute compilation d'item se fait relativement au pack de définition de cet item.
-En particulier, le type-checking est relatif au pack où on est, par exemple~:
-\begin{itemize}
-\item dans \verb|mainPack::preced| on voit que l'entrée \verb|in| est déclarée
-de type \verb|inter::selType|. On cherche dans l'ensemble des sources
-la déclaration correspondante~: dans le provides de \verb|inter|,
-ce type est abstrait. Donc, dans \verb|mainPack|, la représentation canonique
-de ce type (le ``typeff'' qui sert de base au type-checking) sera un type abstrait. 
-
-Ce faisant, on mettra dans la liste des items à compiler le type
-\verb|inter::selType|, qui lui sera compilé depuis le pack \verb|inter|.
-Dans \verb|inter| le typeff ne sera donc pas un type abstrait, mais 
-un type structure.
-
-En bref, le processus de compilation consiste en une liste de ``tâches'' de compilation
-à effectuer, chaque tâche étant constituée d'un item particulier dans un pack particulier. 
-
-Reprenons l'exemple...
-
-\section{Tâche ``node \verb|mainPack::preced|''}
-
-\subsubsection{Environnement de n\oe ud}
-
-La compil se fait dans un environnement de résolution des références (dont l'implémentation
-est à définir). Ici, on s'intéresse juste à ce qu'il doit faire, pas à comment il est fait~!
-
-Tout ce qu'on sait au départ, c'est que cet env est lié à \verb|mainPack|, c'est-à-dire
-qu'il cherche cherche les items nécessaires en priorité dans \verb|mainPack|.
-
-L'environnement de départ est un ``pack env'' avec 3 espaces de noms
-bien différenciés (const, types et opérateurs).
-
-Pour traiter un n\oe ud, on a besoin d'un ``node env'' où on retrouve les  espaces de noms
-type et opérateurs, mais où on a un nouvel espace, les flots~:
-\begin{itemize}
-\item en priorité les variables du n\oe ud (input, output, local),
-\item sinon des constantes du package.
-\end{itemize}
-
-Pour~:
-\begin{verbatim}
-node preced(in: inter::selType) returns (out: inter::selType);
-var out2 : inter::selType;
-\end{verbatim}
-on a donc dans l'env node~:
-\begin{itemize}
-\item \verb|in|, ident d'entrée, typé par la typexp \verb|inter::selType|,
-\item \verb|out|, ident de sortie, typé par la typexp \verb|inter::selType|,
-\item \verb|out2|, ident de locale, typé par la typexp \verb|inter::selType|.
-\end{itemize}
-
-La première chose à faire est de type-checker ces variables, c'est-à-dire
-de leur associer un typeff. Dans les trois cas, on doit traiter
-la même typexp \verb|inter::selType| (on est malin, on le fera une seule
-fois et on tabulera).
-
-Vu depuis le pack courant, on obtient un typeff ``type abstrait de nom \verb|inter::selType|''. 
-
-\subsubsection{Profil du n\oe ud}
-En même temps (ou avant ou juste après) qu'on élabore le node-env, on calcule et stocke
-le profil du n\o eud, c'est-à-dire essentiellement sont type ``fonctionnel''. On obtient
-un truc du style \verb|inter::selType -> inter::selType|.
-Dans un programme plus compilqué il faut tenir compte des horloges, la notion 
-de profil est donc un peu plus compliquée.
-
-\subsubsection{Traitement du body du n\oe ud}
-
-Toutes les équations du n\oe ud doivent être traitées. On doit faire essentiellement trois choses~:
-\begin{itemize}
-\item type-checking (le type de la left-part correspond au type de la right-part),
-\item clock-checking (similaire, c'est un calcul de type aussi),
-\item def-checking~: traitement plus global qui consiste à vérifier que toutes
-les variables produites sont bien définies de manière unique
-\end{itemize}
-Tous ces traitements peuvent être fait en même temps ou en séquence (à voir).
-Le résultat doit être  un ensemble ``d'équations effectives'', c'est-à-dire
-certainement correctes, et sans doute récrites sous une forme
-``facile à exécuter'' (c'est pas encore très clair~: c'est lié à
-la définition qu'on a du code intermédiaire \verb|lic|).
-
-On a une équation~:
-\begin{verbatim}
-out, out2 =  inter::preced( in );
-\end{verbatim}
-En général, on n'a pas 1 type mais une liste de type par partie droite/gauche
-(c'est lié à la notion de tuple implicite).
-
-Ici, pour la partie droite on calcule la liste de typeff \verb|[inter::selType;inter::selType]|.
-
-Pour la partie droite, on traite la valexp \verb|inter::preced( in )|~:
-\begin{itemize}
-\item récursivement, on traite la liste d'argument \verb|in|, qui est typée \verb|[inter::selType]|.
-\item puis on cherche le profil de l'opérateur \verb|inter::preced|~:
-      \begin{itemize}
-		\item on trouve que c'est un node provided par \verb|inter|, avec le profil déclaré~:
-				\verb|node preced(in: selType) returns (out, out2: selType)|,
-		\item ce profil est traité pour optenir un profil effectif~:
-				\verb|inter::selType -> inter::selType * inter::selType|
-		\item cette information suffit à continuer le traitement local, mais on note qu'il faudra
-				effectuer la tâche de compilation \verb|node inter::preced| 
-		\item on résout \verb|(inter::selType -> inter::selType * inter::selType)| appliqué
-            à \verb|[inter::selType]| qui donne finalement la liste de typeff
-				\verb|[inter::selType;inter::selType]| pour la partie droite.
-		\end{itemize}
-\item on vérifie que partie gauche et droite sont compatibles (même type) : le type-checking
-réussit.
-\end{itemize}
-Pour les programmes plus compliqués, on doit aussi tenir compte des horloges.
-
-Au cours du traitement, ou après, on fait le def-ckecing~: 
-toutes les ssorties/locales sont marquées comme indéfinies.
-Chaque fois qu'on traite une partie gauche, on marque les variables
-définies par l'équation. Attention, dans le cas de tableaux ou de structures,
-la définition peut être partielle, ce qui complique un peu.
-Si une variable (ou un morceau de variable) est défini plusieurs fois, il y a erreur.
-Si à la fin une variable (ou un morceau de variable) n'est pas défini, il y a erreur.
-
-Au final, si tout va bien, on a construit un version ``compilée'' du corps
-du n\oe ud, éventuellement légérement différente de la version source 
-(le formar lic à définir).
-
-\section{Tâche ``type \verb|inter::selType|''}
-
-On traite la déclaration du type (vu de l'intérieur du pack \verb|inter|~:
-\begin{verbatim}
-type selType = { i: int; b: bool; r: real };
-\end{verbatim}
-
-On crée une déclaration compilée équivalente (c'est une structure avec les champs etc.).
-Le typeff de réference dans le pack est crée~: c'est tout simplement l'ident (\verb|selType|).
-
-\section{Tâche ``node \verb|inter::preced|''}
-
-Similaire à ce qu'on a déjà vu.
-\begin{verbatim}
-node preced(in: selType) returns (out, out2: selType);
-let
-   out2 = { i = 0; b = true; r = .0}; --pSel::fby1(in);
-   out.i = pint::fby1(out2.i, in.i);
-   out.b = pbool::fby1(out2.b, in.b);
-   out.r = preal::fby1(out2.r, in.r);
-tel 
-\end{verbatim}
-Ça va nous conduire à rechercher les profils ``provided'' des n\oe uds
-\verb|pint::fby1|, \verb|pbool::fby1|, \verb|preal::fby1|, 
-et à mettre ces même n\oe uds dans la liste des tâche de compil.
- 
-etc.
-
-\section{Quelques points importants}
-
-Dans les tâches de compil on va avoir aussi~:
-\begin{itemize}
-\item évaluation statique de constante, pour pouvoir traiter les types tableaux,
-les paramètres statiques. Dans ce cas, le ``consteff'' est une vraie constante
-compile-time (2, 12, true, 42).
-Normelement, ga ne concerne QUE les entiers et les booléens, pas les réels (à vérifier),
-\item compilation standard de constantes~; dans ce cas on n'est pas obligés à
-aller jusqu'à l'évaluation complète (on peut garder des expressions, des constantes
-abstraites etc.).
-\item en général, un n\oe ud à compiler n'est pas un simple ident~: c'est un ident
-plus une liste de paramètres statiques effectifs (ce qu'on appèle les arguments 
-statiques). En général, un tâche de compil de n\oe ud sera caractérisée par~:
-\begin{verbatim}
-packid::nodeid << type t = typeff; const n = consteff >>
-\end{verbatim}
-
-\end{itemize}
-
-\end{itemize}
diff --git a/notes-pascal/exemplecompil.txt b/notes-pascal/exemplecompil.txt
deleted file mode 100644
index 0e893f55..00000000
--- a/notes-pascal/exemplecompil.txt
+++ /dev/null
@@ -1,70 +0,0 @@
-
-
-1) Expansion des modèles
-------------------------
-Réalisée dans le module SrcTab
-
-Exemple :
-
-   model modSimple
-   needs
-       type t;
-   provides
-       node fby1(init, fb: t) returns (next: t);
-   body
-   
-   node fby1(init, fb: t) returns (next: t);
-   let
-     next = init -> pre fb;
-   tel
-   end
-   
-et :
-
-   package pint is modSimple(int);
-
-on instancie ``syntaxiquement'', et tout ce passe comme ci on avait un pack :
-
-   package pint
-   provides
-       type t = int;
-       node fby1(init, fb: t) returns (next: t);
-   body
-      node fby1(init, fb: t) returns (next: t);
-      let
-        next = init -> pre fb;
-      tel
-
-2) Tables des items
--------------------
-
-Dans SrcTab, on a une table de pack_mng. Chaque
-pack a (au plus) deux tables de symboles pour résoudre
-les références SIMPLES (juste un ident) :
-- une pour traiter le corps (la def) du pack
-- une optionnelle pour traiter la partie provide
-  (si pas de provide, alors on a une seule table pour les deux)
-
-N.B. Les SymbolTab restent au niveau syntaxique :
-- ident de type -> extern + nom complet
-                ou local  + def syntaxique
-(et pareil pour const et oper)
-
-
-3) Compilation à la demande
----------------------------
-
-Le cas général est la compilation d'une instance 
-de template (noeud avec arguments statiques). Le
-cas simple est une version dégénérée.
-
-On demande donc la compil d'un noeud AVEC ses arguments statiques
-déjà résolus (le tout s'appele un node_key).
-
-La compil se fait dans un GlobalEnv qui gère les "items"
-déjà compilés. La structure du Global suit celle du SrcTab :
-pour chaque pack, on a :
-- un PackEnv "body",
-- un éventuel PackEnv "provide"
-
-
diff --git a/notes-pascal/pack+static.problemes b/notes-pascal/pack+static.problemes
deleted file mode 100644
index 940e3b4e..00000000
--- a/notes-pascal/pack+static.problemes
+++ /dev/null
@@ -1,150 +0,0 @@
-
-Probleme initial :
- Au niveau syntaxe, les noeuds/functions avec params statiques
- sont pas prévus dans le "provides" des package
-
-Sol : Ajout dans la synaxe -> ok
-
-Probleme 2 :
-
- Pour la compilation "lazy", on a besoin de la nature (const, type, node)
- des params statiques attendus pour pouvoir evaluer correctement les
- argument statiques donnÃs
-
- Il y avait un magouille prevue pour ca (entre autre) dans Ast2lic :
- via le champs global_symbol de IdSolver on peut retrouver
- le "source" des noeuds et donc leurs params statiques
- (cf. get_abstract_static_params)
- Mais ca ne marche INTRINSEQUEMENT que pour les noeuds references SANS
- package (i.e toto et pas titi::toto)
-
-Sol : ajout de all_src dans IdSolver, ce qui permet en fait
- de retrouver n'importe quelle info source si besoin
- (c'est un peu la grosse Bertha quoi)
- 
-Problemes restant ?
-- c'est un peu violent, pas dans l'esprit de IdSolver,
-   qui se voulait un mecanisme d'abstraction du source ...
-- du coup, le role de OdSolver.global_symbol est moins clair :
-  est-ce c'est encore necessaire de le trimballer ?
-
-
-XXX- Il reste encore des trucs bizarre, nottament quand on appelle
-     depuis un package
-Sol : il suffit de commenter un assert dans solve_x_idref, rien a faire
-      dans le cas de params statique puisque on a reussi a arriver
-      jusque la, cést que le "genre"des params statiques est ok
-
-
-Tests d'utilisation de dadic.lv6 (source + bas) :
-
-1) sans package 
- ---------------
-(* fichier x5.lv6 *)
-node x5 = Dadic::Mult<<5>>;
-
-./_build/src/main.byte dadic.lv6 x5.lv6
-
--> OK
-(n.b. avec un warning pas necessaire:
-Warning. in file "/net/estrop/local/pascal/git/lus2lic/dadic.lv6", line 42, col 5 to 8, token 'Mult':
----> Dadic::Mult<<const n = 1>> is declared as a node, but it uses no memory (i.e., it is a function).
-
-2) avec package SANS uses
--------------------------
-(* fichier toto1.lv6 *)
-package Toto1
-provides
-   node x5(x:bool)returns (y:bool);
-body
-   node x5 = Dadic::Mult<<5>>;
-end
-
-./_build/src/main.byte dadic.lv6 toto1.lv6 -n Toto1::x5 
-
--> OK (meme warning)
-
-
-3) avec package ET uses
--------------------------
-(* fichier toto2.lv6 *)
-package Toto2
-uses Dadic;
-provides
-   node x5(x:bool)returns (y:bool);
-body
-   node x5 = Mult<<5>>;
-end
-
-./_build/src/main.byte dadic.lv6 toto2.lv6 -n Toto2::x5 -ec
-
--> KO
-*** oops: lus2lic internal error
-        File "src/licTab.ml", line 323, column 20
-*** when compiling lustre programs dadic.lv6, toto2.lv6
-
-*** You migth want to sent a bug report to jahier@imag.fr
-
-Sol : voir ci dessus, ca marche
-
-fichier dadic.lv6
-(******************************************************
-dadic.lv6 version 1.00
-******************************************************)
-package Dadic
-provides
-	(* O : x -> 2*x *)
-	node O(x : bool) returns (y : bool);
-	(* I : x -> 2*x + 1 *)
-	node I(x : bool) returns (y : bool);
-	(* Add : x,y -> x + y *)
-	node Add(x, y : bool) returns (xpy : bool);
-	(* Chs : x -> -x *)
-	node Chs(x : bool) returns (ux : bool);
-	(* Mult : const n, x -> n*x *)
-	node Mult<<const n : int>>(x : bool) returns (y : bool);
-	(* OfInt : const n -> x *)
-body
-   node O(x : bool) returns (y : bool); let y = false -> pre x; tel
-   node I(x : bool) returns (y : bool); let y = true -> pre x; tel
-   node Add(x, y : bool) returns (xpy : bool);
-   var c : bool;
-   let
-	   c = if (false -> pre c) then (x or y) else (x and y);
-	   xpy = ((false-> pre c) = (x = y));
-   tel
-   node Chs(x : bool) returns (ux : bool);
-   var after_x : bool;
-   let
-	   ux = if (after_x) then (not x) else (x);
-	   after_x = false -> pre(after_x or x);
-   tel
-   node Mult<<const n : int>>(x : bool) returns (y : bool);
-   let
-	   y = with (n < 0) then (
-			Mult<<-n>>(Chs(x))
-	    ) 
-	    else with (n = 0) then false
-	    else with (n = 1) then x
-	    else with ((n mod 2) = 0) then (
-	       Mult<<n div 2>>(O(x))	
-	    ) else ( --(n div 2) = 1
-	       Add(Mult<<n div 2>>(O(x)), x)
-	    );
-   tel
-   (* ici -> pas de noeuds sans entree ? *)
-   node OfInt<<const n : int>>(_:bool) returns (y : bool);
-   let
-	   y = with (n = -1) then true
-	       else with (n = 0) then false
-	       else with ((n mod 2) = 0) then
-	          O(OfInt<<n div 2>>(true))
-	       else with (n > 0) then
-	          I(OfInt<<n div 2>>(true))
-	       else
-	          --attention aux négatifs !
-	          I(OfInt<<(n-1) div 2>>(true));
-   tel
-end
-
-
diff --git a/README.org b/notes.org
similarity index 92%
rename from README.org
rename to notes.org
index 5f8b6cf1..286730c4 100644
--- a/README.org
+++ b/notes.org
@@ -5,29 +5,10 @@ Pour installer les outils de cross compilation (gcc et ocaml) :
 
  aptitude install mingw32 mingw32-binutils mingw32-runtime mingw32-ocaml gcc-mingw32 
 
-
-sur grivola, le cross-compilateur gcc est la :
- /usr/i586-mingw32msvc/bin
-
-
-
-
-* cloning
-
-you need ocaml, rdbg-plugin, (more ?)
-
-#+BEGIN_SRC sh
-git clone file:///usr/local/src/lustre/repos/lus2lic.git lus2lic
-cd lus2lic
-make 
-make test
-#+END_SRC
-~
 * Tests (=./test=)
 
 requires 'sudo apt-get install dejagnu'
 
-
 The idea is to run those tests before *each commit*.
 
 All  tests  are  controlled  by file:test/Makefile;  which  runs  the
diff --git a/src/lv6version.ml b/src/lv6version.ml
index 7d8f670a..ee94718d 100644
--- a/src/lv6version.ml
+++ b/src/lv6version.ml
@@ -1,7 +1,7 @@
 (** Automatically generated from Makefile *) 
 let tool = "lus2lic"
 let branch = "master"
-let commit = "631"
-let sha_1 = "985f0039a1a3e13cc876be36e8b0e77fb0471e28"
+let commit = "632"
+let sha_1 = "d1b062d3a67a2e288c8904f60b9c9874c11b0707"
 let str = (branch ^ "." ^ commit ^ " (" ^ sha_1 ^ ")")
 let maintainer = "jahier@imag.fr"
diff --git a/todo.org b/todo.org
deleted file mode 100644
index 8b8f0d7f..00000000
--- a/todo.org
+++ /dev/null
@@ -1,571 +0,0 @@
-#+TODO: TODO(!) STARTED(!) WAITING(!) | DONE(d!) CANCELED(c)
-#+CATEGORY: lv6
-
-* Failures spotted by non reg tests (13)
-
-** TODO Front-end error (1)
-   - State "TODO"       from ""           [2014-08-26 Tue 10:20]
-
- cat lus2lic*.log | grep "FAIL: without any option:" | sed s/'FAIL: without any option:'/-/
-
-1. ./lus2lic -o bug_map_fby.lic bug_map_fby.lus
- map<<fby, n>> pas supporté
-
-** TODO soc2c (2)
-   - State "TODO"       from ""           [2014-08-26 Tue 10:20]
-
-cat lus2lic*.log | grep "FAIL: Generate c code  :" | sed s/'FAIL: Generate c code  :'/-/
-
-1) ./lus2lic -2c should_work/cond01.lus -n cond01
-   the type of + in condact<<+,0>> is not inferred
-
-2) ./lus2lic -2c should_work/filter.lus -n filter
-  a false cycle is detected  
-   
-** TODO Divergences -exec et ecexe (4)
-   - State "TODO"       from ""           [2014-07-11 Fri 16:54]
-
- grep "FAIL:" lus2lic*.log | grep "exec" | grep "ecexe" | sed s/'FAIL: Try to compare lus2lic -exec and ecexe:'/-/
-
-
-1) ../utils/test_lus2lic_no_node should_work/filter.lus
-  spurious cycle detected (cf plus haut)
-
-2) ../utils/test_lus2lic_no_node should_work/Gyroscope.lus
-3) ../utils/test_lus2lic_no_node should_work/Gyroscope2.lus
-  #ERROR: Output takes on nil
-   c'est le ec qui a l'air fautif, car j'arrive a reproduire
-   le pb avec ecexe et lus2lic -exec semble fonctionner
-
-4) ../utils/test_lus2lic_no_node should_work/cond01.lus
-   cf plus haut (polymorphisme et iterateur)
-
-* lus2lic -2C
-** TODO lic2c : le jour ou on genere du code C, y'a peut-etre des trucs a recuperer
-   - State "TODO"       from ""           [2012-12-10 Mon 14:32]
-chez Cedric  Pasteur qui a  une implementation pour optimiser  la maj
-des tableaux
-http://www.di.ens.fr/~pouzet/bib/lctes12.pdf
-
-** TODO lic2c : Ca plante si un identificateur lustre comporte un "'"
-
-bin oui, ca n'est pas legal en C. Du coup je fais quoi ?
-Je rejete ?
-
-** TODO Reject file name that cannot be used to build valid C ident when using the -2c option
-   - State "TODO"       from ""           [2014-05-23 Fri 17:20]
-** TODO lic2c : Ca plante si un identificateur lustre se nomme double...
-   - State "TODO"       from ""           [2014-06-13 Fri 16:59]
-** TODO lic2c : types externes utilisés en I/O du main pas supportés
-
- file:test/should_work/simple.lus lus2lic -2c should_work/simple.lus -n simple
-    types externes
-
-faire comme pour _assign_EXT_TYPE en s'inspirant de ce que fait ec2c
-
-** TODO lic2c : slice en partie gauche pas traitée
-
-1. file:test/should_work/morel.lus lus2lic -2c should_work/morel.lus -n morel
-2. file:test/should_work/morel2.lus lus2lic -2c should_work/morel2.lus -n morel2
-3. file:test/should_work/morel3.lus lus2lic -2c should_work/morel3.lus -n morel3
-4. file:test/should_work/morel4.lus lus2lic -2c should_work/morel4.lus -n morel4
-5. file:test/should_work/left.lus lus2lic -2c should_work/left.lus -n left
-
-Quand ca sera corrigé, rétablir les tests correspondant dans
-file:~/lus2lic/test/site.exp (cf proc does_not_contain_left_slices)
-
-** TODO lic2c : polymorphisme
-   - State "TODO"       from ""           [2014-07-09 Wed 17:13]
- lus2lic -2c should_work/cond01.lus -n cond01
-
-echoue aussi en mode exec.
-
-Je devrais pourvoir accepter celui la, non ?
-
-** TODO Question : remettre en cause le choix de représentation des Soc.key ?
-   - State "TODO"       from ""           [2014-06-27 Fri 15:29]
-
-En effet, il ne reste plus que les ite à etre polymorphes, et c'est à cause des 
-soc polymorphes que je me trimbale le profile du soc dans les Soc.key !
-
-par ailleur,  l2lSplit ne devrait pas  splitter les ites, si  on veut
-pouvoir faire l'optimisation  qui consiste à n'executer  qu'une des 2
-branches si les noeuds ne font pas d'effet de bord. 
-
-** TODO nommage des soc à mémoires avec valeurs initiales
-
-Pour distinguer les  différentes instances de soc  à memoire (arrow
-et fby), j'utilise le hash de  leur valeur initiale, ce qui est faux,
-car hash n'est pas une injection.
-
-Est-ce la bonne approche ?   Une alternative serait de n'avoir qu'une
-seule soc  et de faire la  bonne initialisation en passant  la valeur
-initiale en argument de la fonction reset.
-
-Une autre solution serait d'utiliser un générateur de nom unique, par
-exemple basé sur un compteur.
-
-[...] sauf  qu'en fait, la fonction  de hash renvoie toujours  la meme
-valeur (bug) et que ca marche tres bien. Ce qui prouve bien que ca ne
-sert a rien cette affaire.
-
-* lus2lic -ec
-** le merge n'est pas expansé et ecexe ne le connais pas
-1. ./myec2c -o modes3x2_v4.c modes3x2_v4.ec
-2. ./myec2c -o modes3x2_v3.c modes3x2_v3.ec
-  -> le merge de type enum n'est pas expansé.
-
-3. ./myec2c -o test_merge.c test_merge.ec
-  -> genere un "when not clk" pas supporté pas ec
-
-* Packages, modeles, etc.
-** STARTED Il ne detecte plus les erreurs de type lors d'instanciation de noeuds
-   - State "STARTED"    from "TODO"       [2013-01-28 Mon 17:02]
-     cf échange de mails avec PAscal le 28/01/2013
-   - State "TODO"       from ""           [2012-12-21 Fri 11:08]
-#+begin_src sh
-cd test; ./lus2lic -vl 2 --nonreg-test should_fail/type/parametric_node2.lus
-#+end_src
-
-file:test/should_fail/type/parametric_node2.lus
-
-Ah bah oui, c'est écrit ici :
-file:src/ast2lic.ml::202
-
-   (* NOUVELLE VERSION ÉPURÉE :
-      ON ne fait AUCUNE vérif de cohérence de types pour les param statiques,
-      on ne vérifie QUE la nature (pour pouvoir résoudre les args qui sont des idents
-      A FAIRE + TARD ? !!
-   *)
-
-fixer le commentaire "OBSOLETE ET UN PEU FAUX"
- file:/~/lus2lic/src/lic.ml::440
-
-** TODO mauvais numero de ligne lors d'erreur d'instanciation de parametres de noeud
-   - State "TODO"       from ""           [2012-12-21 Fri 10:58]
-
-#+begin_src sh
-cd src; ../objlinux/lus2lic -vl 2 --nonreg-test should_fail/type/parametric_node.lus
-#+end_src
-
-   Opening file /home/jahier/lus2lic/test/should_fail/type/parametric_node.lus
-   Error in file "parametric_node.lus", line 4, col 17 to 17, token 'n':
-   can't eval type: bad array size, int expected but get real
-
-le message serait meilleur s'il indiquait la ligne 17 où l'erreur est effectuée
-
-file:src/astInstanciateModel.ml
-file:test/should_fail/type/parametric_node.lus
-
-* Testing process
-** TODO  Quand tous les test sont ok: comprendre pourquoi test_lus2lic_no_node et rdbg divergent
-   SCHEDULED: <2014-09-08 Mon>
-   - State "TODO"       from ""           [2013-12-10 Tue 13:37]
-En fait, c'est le bis qui semble avoir raison à chaque fois
-a voir quand j'aurais tous les tests qui passent
-
-pour voir la liste des tests que échouent : file:~/lus2lic/test/lus2lic.sum
-
-** STARTED [#B] utiliser rdbg -lurette a la place de lurettetop dans les test de non reg
-   SCHEDULED: <2014-11-03 Mon>
-   - State "STARTED"    from "TODO"       [2013-12-06 Fri 17:37]
-   - State "TODO"       from ""           [2013-11-27 Wed 18:18]
-
-Pour cela, il suffit de modifier le fichier file:~/lus2lic/test/site.exp
-
-ca marche, mais c'est plus lent (100->183s). c'est sans doute parce que
-je passe par des sockets.
-
-Il  faudrait passer  par  des cmxs  pour l'env  et  l'oracle, mais  ca
-complique un peu le script car il faut générer les bons cmxs. 
-
-[...]
-
-Voila, je passe  maintenant par des cmxs. Malheureusement,  je passe à
-300s car je passe pas mal de temps  à generer ces cmxs, et comme je ne
-fais que 10 step à chaque fois, c'est cet aspect qui domine...
-
-Bon, sinon, si on regarde juste nested.lus, sur 10 pas, l'overhead a l'air
-d'etre autour de 2%
-
-
-Sur plus.lus pendant 10000 steps, j'ai
-|--------------+------|
-| rdbg -socket | 9:44 |
-| rdbg -cmxs   | 8:40 |
-| lurettetop   | 4:00 |
-|--------------+------|
-
-Sur nested.lus pendant 10 steps, j'ai : 
-|--------------+----------|
-| rdbg -socket | 64s      |
-| rdbg -cmxs   | 185s !!! |
-| lurettetop   | 53.3s    |
-|--------------+----------|
-
-Comment c'est possible ce truc ???!!!
-
-nested.ec possede  certes plus  de 7000 variables  (dont pres  de 6000
-sont locales), du coup manipuler des  listes n'aide pas. Mais c'est le
-cas pour les 3.
-
-Le mode socket ne transmet pas les var locales, d'ou la difference ?
-
-Est-ce une bonne idée d'utiliser  des listes d'ailleurs. au niveau des
-mli, peut-etre.  Mais je devrais  peut-etre m'en affranchir  plus vite
-pour traiter ce genre d'exemple...
-
-** TODO Testing node with enums don't work
-   - State "TODO"       from ""           [2013-05-28 Tue 14:46]
-
-indeed, ec requires they are extern const, and lus2lic requires to have int
-
-- one solution would be that -eei generates correct ec, by inlining constant
-- I could also add enums in Lutin
-
-Actually, I should do both...
-
-../utils/test_lus2lic_no_node should_work/enum0.lus     
-
-en fait, l'option --gen-auto-test traduit les types enums en entier ; du coup
-l'appel depuis l'oracle au noeud à tester est mal typé...
-
-** TODO Écrire un test qui mette en jeu exhaustivement tous les operateurs
-   - State "TODO"       from ""           [2013-03-19 Tue 10:38]
-** TODO try to compile the C code resulting from ec2c at some point
-   - State "TODO"       from ""           [2013-01-18 Fri 23:12]
-in particular, are nodes using extern nodes generated properly?
-
-** TODO les (nouveaux) tests ne capturent pas les changements de # lignes dans les should_fail
-   - State "TODO"       from ""    [2013-01-11 Fri 11:15]
-
-** TODO Nommage des variables fraiches : Reprendre LicVarName.ml
-   - State "TODO"       from ""           [2013-01-16 Wed 18:03]
-car c'est completement n'importe quoi (j'ai réussit a faire des clashs
-entre les var inventées dans split et dans ExpandNodes !!)
-
-Pascal a introduit un mecanisme qui shunte LicName -> en discuter avec lui.
-
-** TODO Il faudrait traiter proprement les programmes lutin (et lustre) qui débordent (int)
-   - State "TODO"       from ""           [2013-05-10 Fri 17:28]
-
- ../utils/test_lus2lic_no_node should_work/test_node_expand.lus
- ../utils/test_lus2lic_no_node should_work/test_node_expand2.lus
-** TODO au sujet des tests de non-regression
-   - State "TODO"       from ""           [2013-04-23 Tue 17:31]
-
-Actuellement, test_lus2lic_no_node, je compare lus2lic -ec + ecexe et lus2lic -exec. 
-
-Ca serait bien de  faire la meme chose en passant  par lus2lic -lv4 +
-lus2ec voir.
-
-** TODO lus2lic -ee -exec devrait utiliser des enums (a la ecexe)
-   - State "TODO"       from ""           [2013-05-07 Tue 16:36]
-
-** TODO le test des programmes packagés ne fonctionne pas
-   - State "TODO"       from ""           [2013-05-10 Fri 10:52]
-modifer
-file:~/lus2lic/utils/test_lus2lic_no_node
-
-** TODO quand une assertion est violée dans ecexe, ca fait des trucs zzardbi dans lurette
-   - State "TODO"       from ""           [2014-09-04 Thu 13:46]
-
-par exemple, decommenter le assert dans file:test/should_work/test_node_expand2.lus
-et lancer
-   /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node should_work/test_node_expand2.lus 
-
-il dit 'A SUT input is missing: o1'
-tout en cachant la vraie erreur (assert error)
-
-* Divers
-** TODO lv4 enum types are not compatible with lutin ones
-   - State "TODO"       from ""           [2014-03-28 Fri 15:49]
-For lv6, it's ok, so, well...
-
-I'd need to add support for enums in Lutin to fix this one.
-
-
--> Or the -eei option could do something else (inlining const definition)
-indeed, -ec -eei generates ec code that is not syntactically correct for ecexe.
-
-Should I do this (const inlining) with 'ec -eei only ? it seems fair enough
-
--> Other idea. Go though V4 and lus2ec.
-
-** TODO lus2lic : reprendre unifyClock.ml proprement
-   SCHEDULED: <2014-11-10 Mon>
-   - State "TODO"       from ""           [2013-09-24 Tue 16:35]
-cf  file:~/lus2lic/src/unifyClock.ml
-http://www.cs.cornell.edu/courses/cs3110/2011sp/lectures/lec26-type-inference/type-inference.htm
-
-** TODO Soc2cIdent.key_op2str est faux
-   - State "TODO"       from ""           [2014-08-13 Wed 17:33]
-** TODO Extern and ec
-
-lus2lic should_work/decl.lus -n decl -ec 
-
-generates incorrect ec code instead of raising an error.
-
-** TODO Revoir le nommage des instances de noeuds parametriques
- par ex, pour should_work/NONREG/param_struct.lus
- ca invente des noms bien débiles du point de vue du nom du pack.
- Style 'mk_tab__param_struct::toto_toto_3'
- alors qu'aucun package ne s'appelle 'mk_tab__param_struct'
-
-** TODO le with devrait opérer sur une val_exp, pas sur un ident.
-   - State "TODO"       from ""           [2013-02-12 Tue 18:31]
-
-** TODO l2lCheckOutputs.ml  Unbound value VarMap.bindings
-en mode cross-win32 car pas defini en 3.11
-   - State "TODO"       from ""           [2013-02-22 Fri 08:27]
-** TODO Découper un peu les fonctions dans src/lic2soc.ml
-   - State "TODO"       from ""           [2013-03-19 Tue 10:26]
-le role et le perimetre get_leaf en particulier n'est pas clair.
-de plus son code est dupliqué.
-file:src/lic2soc.ml
-
-** TODO pb sur le GYRO : bug dans le prog ou dans le compilo ???
-   - State "TODO"       from ""           [2013-05-31 Fri 16:30]
-
- ../utils/test_lus2lic_no_node should_work/Gyroscope2.lus
- ../utils/test_lus2lic_no_node should_work/Gyroscope.lus
-
-si je lance ecexe dessus, j'obtiens un 
-    "#ERROR: Output takes on nil"
-au step 3
-Mais curieusement, via lus2lic -exec, je n'ai pas de soucis.
-
-* Pas clair
-** WAITING Regarder si on pourrait se passer du PREDEF_CALL (et de passer par le  CALL normal)
-   - State "WAITING"    from "STARTED"    [2013-02-06 Wed 17:14]
-   - State "STARTED"    from "TODO"       [2013-02-06 Wed 17:14]
-  - State "TODO"       from ""           [2012-10-26 Fri 14:59]
-cf file:./src/lic.ml::206
-
-Mouais. C'est pas clair. Si on regarde par exemple ici :
-   file:src/ast2lic.ml:407
-On voit qu'on n'y fait pas le même traitement.
-À voir avec Pascal.
-
-** TODO Dans file:src/eff.ml::195 on pourrait virer la notion de call by name
-qui  ne sert  que pour  les  structures. Mais  au niveau  du Eff,  on
-pourrait s'en être  débarrassé au profit d'un appel  par position. A
-faire au moment de la compilation des expressions.
-
-question : est-ce que cela nous  prive d'une optim pour le traitement
-du with ?
-comment fait caml ?
-  - State "TODO"       from ""           [2012-10-26 Fri 14:59]
-
-
-** TODO operateurs iterables 
-  - State "TODO" from "" [2012-03-30 Fri 17:03]
-- mettre dans la doc 
-- voir si on ne pourrait pas completer la liste
-en mettant tous les operateurs unaires de 
- file:~/lus2lic/src/syntaxTreeCore.ml::91 
-dans 
- file:~/lus2lic/src/predef.ml::62
-- tout au moins, eviter les assert false sur
-#+BEGIN_CENTER lustre :exports bug_map_fby.lus
-type state = struct {
-   idy : int;
-   leader : int;
-   level : int
-};
-const n=5;
-const inits = [
-   state { idy = 33; leader =  5; level = 2} ,
-   state { idy = 41; leader =  5; level = 3} ,
-   state { idy = 21; leader =  5; level = 4} ,
-   state { idy = 10; leader = 10; level = 0} ,
-   state { idy = 75; leader = 75; level = 0}
-] ;
-const O = false;
-const I = true;
-const connect = [
-   [ O, I, O, O, I ],
-   [ I, O, I, O, O ],
-   [ O, I, O, I, O ],
-   [ O, O, I, O, I ],
-   [ I, O, O, I, O ]
-];
-node algo (clk: bool; ps: state; neigh: bool^5) returns (ns: state);
-let
-   ns = if clk then
-         state { idy =  ps.idy ; leader = ps.leader; level = ps.level + 1 }
-      else
-         state { idy =  ps.idy ; leader = ps.leader; level = ps.level };
-tel
-node simu(ck:bool^5) returns (s: state^n);
-var ps : state^n;
-let
-   ps = map<<fby, 5>>(inits, s);
-   s = map<<algo, n>> (ck, ps, connect);
-tel
-#+END_CENTER
-
-bon, y'a plus d'erreur, mais ca ne compile pas. Est-ce choquant ?
- 
-** TODO Verifier les boucles combinatoires meme quand on ne genere pas de ec
-   - State "TODO"       from "STARTED"    [2013-01-29 Tue 09:49]
-
-  ./lus2lic should_fail/semantics/deploop.lus
-
-On pourrait utiliser   file:src/misc.ml pour prendre finement en compte les 
-struct et les arrays.
-
-** TODO Faut-il jeter ces self loop ? Sans doute pas.
-   - State "TODO"       from ""           [2013-05-10 Fri 17:44]
-../utils/test_lus2lic_no_node should_work/filter.lus
-../utils/test_lus2lic_no_node should_work/activation2.lus
-../utils/test_lus2lic_no_node should_work/activation1.lus
-../utils/test_lus2lic_no_node should_work/speedcontrol.lus
-
-solution : 
-l2lSplit: split access of access in left parts.
-
-indeed, consider the following example:
-
-   z.y.y = z.x.x;
-
-which is fine. But if we transform it into
-
-   z.y.y = v0.x;
-   v0 = z.x;
-
-
-we have a cycle !!!
-
-but what if we split further, it's fine again
-
-   v1 = z.y
-   v1.y = v0.x;
-   v0 = z.x;
-
--> split more !
-
-** TODO Enlever Abstract_type_eff de Lic.type_ ou vérifier partout que c'est correct.
-   - State "TODO"       from ""           [2012-12-20 Thu 17:26]
-dans lic.ml, on definit les types compilés ainsi :
-and type_ =
-  | Bool_type_eff
-  | Int_type_eff
-  | Real_type_eff
-  | Abstract_type_eff of Ident.long * type_
-  | Array_type_eff    of type_ * int
-  ...
-
-Mais est-ce vraiment utile de garder le Abstract_type_eff à ce niveau ?
-
-en effet, ca oblige à traiter les 2 cas en permanence (par ex lors des
-transfos l2l).
-
-Pascal suggere carrément de 
-- definir un type 
-
-#+begin_src ocaml
-type type_ref of string 
-#+end_src
-- transformer les expressions lic de telle sorte que il n'y ait plus 
-  de type_ mais juste des type_ref
-
-Car en fait, actuellement, le type Lic.type_ sert à faire la verif de
-type et  a representer le type  des expressions lic. Du  coup le type
-des expressions est inutilement  compliqué; d'ou l'idée d'avoir juste
-des  "type_ref of  string" (Ce  qui  simplifiera (?)  le travail  des
-passes ultérieures, style lic2c).
-
-Bon, je ferai  ca quand tous les tests fonctionneront  et pendant que
-j'essairais de me passer de ulglyStuff/id_solver. A voir aussi ce qui
-sera  le  plus  pratique  quand  je me  remettrai  à  bosser  sur  le
-lic2c/licexe
-
-
-Autre idée : Dans LicPrg, ne plus utiliser de Lic.type_ mais des 
-LicPrg.type_ (=string)
-+ une table  LicPrg.type_ -> Lic.type au cas où
-
-l2lAliasTypes fait plus au moins le boulot. Faudrait intergrer cette
-passe à la fonction qui construit le LicPrg initial.
-
-boarf  ; ca  fait beaucoup  de bazard  pour pas  grand chose.  Ce qui
-simplifierait les  choses pour la  suite, c'est  de ne plus  avoir de
-Lic.type_ du tout dans les val_exp et autre.
-
-Autre idée  : je fais  ca lors du passage  à la structure  de données
-suivante (soc). Oui, ca fait du sens. en plus, les l2l* utilisent les
-infos Lic.type_, donc autant attendre un peu avant de s'en passer.
-
-
-** TODO C'est normal qu'il se plante au step 2 celui la ???
-   - State "TODO"       from ""           [2013-05-31 Fri 16:42]
- ../utils/test_lus2lic_no_node should_work/sincos.lus
-
- 
-
-
-
-* a classer
-
-** Fix 'make rel-test'  in release-v6 dir
-** bug clock tim
-   - State "TODO"       from ""           [2013-09-23 Mon 11:13]
-
-donc c'est file:~/lus2lic/src/l2lExpandNodes.ml le coupable on dirait
-en effet, quand on ne branche que l'expansion de noeud
-     ~/lus2lic/objlinux/lus2lic   ~/xxx/test.lus -n verify -en > xxx.ec
-on obtient
-
-    uw1:bool when cw;   ici 3
-   _u1_5:bool when cr;  ici 1
-puis
-   _u1_5 = uw1;
-ce qui ne peut pas marcher...
-
- ===> creating _uw1_1 from uw1 with clock  on true(cw) on base
- ===> creating _u1_5 from u1 with clock  on true(cr) on base
-
-uw1 : bool when cw;
-u1 : bool when cw;
-
-c'est donc _u1_5 qui n'est pas sur la bonne horloge ?
-
-a l'appel de
-    OK2 = (mem(cr, ur1) = mem(cw, uw1));
-ne se prendrait-il pas les pieds dans le tapi ?
-
-car _u1_5 est créé lors de l'un de ces 2 appels
-
-[...]
-
-bon, si dans mem je renomme cw en clk, ca marche !!!
-c'est un probleme de clash de nom de variable !!!
-
-[...]
-
-Finalement, le pb est plutot la il semblerait :
-file:~/lus2lic/src/evalClock.ml::83
-
-** Generate macro for simple predef op in -2c mode.
-** Add a --2c-stack that favor the use of stack vs heap
-
-indeed, currently, a soc call is done like that
-
-#+BEGIN_SRC C
-  set_input(ctx, i1);
-  step(ctx);
-  get_output(ctx,o1);
-#+END_SRC 
-
-by using the stack, I mean something like
-
-#+BEGIN_SRC C
-  step(i,o);
-#+END_SRC
-
-** in Soc2cextern.cpy_def: shouldn't I use macro instead of function to be consistent ?
-file:~/lus2lic/src/soc2cExtern.ml::28
-
-I could even define a default version using memcpy as for arrays BTW.
-
diff --git a/todo.org_archive b/todo.org_archive
deleted file mode 100644
index fc122154..00000000
--- a/todo.org_archive
+++ /dev/null
@@ -1,1374 +0,0 @@
-#    -*- mode: org -*-
-
-
-Archived entries from file /home/jahier/lus2lic/todo.org
-
-* TODO Mettre à jour le tout nouveau file:README.org wrt src
-  SCHEDULED: <2012-12-10 Mon>
-  - State "TODO"       from ""           [2012-12-10 Mon 17:02]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2012-12-13 Thu 15:37
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: Urgent
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-
-* TODO Renommer tous les modules et faire du ménage
-  SCHEDULED: <2012-12-10 Mon>
-  - State "TODO"       from ""           [2012-12-10 Mon 16:55]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2012-12-13 Thu 15:37
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: Urgent
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-
-* TODO rebrancher le nodeExpand.ml et structArrayExpand.ml
-   SCHEDULED: <2012-12-20 Thu>
-   - State "TODO"       from ""           [2012-12-10 Mon 16:55]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2012-12-20 Thu 17:23
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: Urgent
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-
-file:src/l2lExpandNodes.mli
-file:src/l2lExpandArrays.mli
-
-que Pascal les a débranché lors de son ménage d'été.
-
-* TODO Pascal a shunté mon LicName dans split. Avait-il (une bonne) raison ?
-   SCHEDULED: <2012-12-20 Thu>
-   - State "TODO"       from ""           [2012-12-17 Mon 16:37]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2012-12-20 Thu 17:23
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: Urgent
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-
-par ex, file:~/lus2lic/src/l2lExpandArrays.ml::50
-dois-je faire comme lui ou comme avant ?
-
-* TODO le mode ec genere tous les noeuds (ce que n'aime pas ec2c)
-  - State "TODO"       from ""           [2013-01-11 Fri 09:33]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-01-11 Fri 18:15
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: Regressions introduites par Pascal
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-
-* TODO il ne faut pas générer l'alias de type en ec
-   - State "TODO"       from ""           [2013-01-11 Fri 09:41]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-01-11 Fri 18:15
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: Regressions introduites par Pascal
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-file:/tmp/t0.ec
-
-* TODO y'a un List.fold_left2 qui plante
-   - State "TODO"       from ""           [2013-01-11 Fri 10:08]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-01-16 Wed 16:30
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: Regressions introduites par Pascal
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-
-oops: lus2lic internal error
-File "objlinux/l2lExpandNodes.ml", line 131, column 4
-when compiling lustre program should_work/test.lus
-file:test/should_work/test.lus
-file:~/lus2lic/src/l2lExpandNodes.ml::131
-
-
-* TODO Ya un probleme avec ce fichier lustre (compilait avant)
-   - State "TODO" from "" [2013-01-07 Mon 16:20]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-01-17 Thu 10:57
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: Urgent
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-
-../objlinux/lus2lic   should_work/lionel/triSel.lus   -en -ei -o /tmp/xxx.lus
-
-* TODO le -o ne fonctionne plus
-  SCHEDULED: <2013-01-07 Mon>
-  - State "TODO"       from ""           [2013-01-07 Mon 14:28]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-01-17 Thu 10:57
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: Urgent
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-
-* TODO pb dans la verif de définition unique de variable en mode -en
-   - State "TODO"       from ""           [2013-01-11 Fri 09:49]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-01-17 Thu 10:58
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: Regressions introduites par Pascal
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-
-file:~/lus2lic/testsuite/should_work/heater_control.lus::39
-
-* TODO Regression dans le mode -ec
-   - State "TODO"       from ""           [2013-01-11 Fri 09:33]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-01-17 Thu 10:59
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: Regressions introduites par Pascal
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-
-undefined new var :
-file:testsuite/should_work/Gyroscope2.lus
-file:/home/jahier/lus2lic/testsuite/should_work/deSimone.lus::47
-
-var defined twice:
-file:/home/jahier/lus2lic/testsuite/should_work/heater_control.lus
-
-Peut-etre est-ce  lié au pb  précédent ? plus  précisement, peut-etre
-que le bug existait  mais qu'on ne le voyait pas  car tous les noeuds
-n'étaient pas générés ?
-
-Quoiqu'il en soit, c'est interessant de tester tous les noeuds ce que
-ne font pas mes scripts tcl en l'état.
-
-* TODO internal error in l2lExpandArrays.ml with -esa
-   - State "TODO"       from ""           [2013-01-18 Fri 10:48]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-01-18 Fri 18:01
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: Regressions introduites par Pascal
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-./lus2lic -esa -o /tmp/ply02.ec  should_work/broken/ply02.lus
-
- oops: lus2lic internal error
-File "objlinux/l2lExpandArrays.ml", line 213, column 14
- when compiling lustre program file:test/should_work/broken/ply02.lus
-
-nb : le mode -en ne marche pas bas bien non plus...
-
- ./lus2lic -en -o /tmp/ply02.ec  should_work/broken/ply02.lus
- Error in file "/home/jahier/lus2lic/test/should_work/broken/ply02.lus", line 8, col 2 to 2, token 'o': 
- Variable o is already defined.
-
-ok : it was dut to a bug in l2lRmPoly.ml: var types were not susbtituted in "Lic.left".
-
-* TODO Refaire marcher les tests de non-reg qui sont cassés 
-   SCHEDULED: <2013-01-07 lun.>
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-01-21 lun. 09:17
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: Regressions introduites par Pascal
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-suites aux modifs de Pascal de l'été 2012
-  - State "TODO"       from ""           [2012-10-26 Fri 14:59]
-
-En fait, ce qui est cassé, c'est surtout le -ec puisqu'il n'a pas
-rebranché l'expansion de tableau et de noeud.
-
-il a fait 
- - mv tests _tests
- - mkdir tests
- - cp _tests/Makefile tests
- - créer des tests qu'il a mis dans  tests...
-
-* DONE compat pb with array type def
-   - State "DONE"       from "WAITING"    [2013-01-21 lun. 09:28]
-   - State "STARTED"    from "WAITING"    [2013-01-21 lun. 09:27]
-   - State "TODO"       from ""           [2013-01-19 Sat 09:40]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-01-21 lun. 09:29
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: Regressions introduites par Pascal
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: DONE
-  :END:
-file:test/should_work/broken/pfs.lus::43
-./lus2lic -ec -o /tmp/pfs.ec should_work/broken/pfs.lus
- Error in file "/home/jahier/lus2lic/test/should_work/broken/pfs.lus", line 43, col 22 to 22, token '[':
- syntax error
-
-It's not clear it should be valid  v6: i put it into the to_sort dir.
-
-* TODO autoriser les , dans les structures ?
-   - State "TODO"       from ""           [2013-01-19 Sat 09:56]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-01-21 lun. 09:30
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: Regressions introduites par Pascal
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-./lus2lic -o /tmp/Gyro.out should_work/broken/Gyro.lus
- Error in file "/home/jahier/lus2lic/test/should_work/broken/Gyro.lus", line 11, col 42 to 42, token ',':
-
-
-* TODO mixing v6 packages and v4 implicit package does not work. Should it?
-   - State "TODO"       from ""           [2013-01-19 Sat 09:36]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-01-21 lun. 09:32
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: Regressions introduites par Pascal
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
- ./lus2lic -o /tmp/old_style_and_pack.out should_work/broken/old_style_and_pack.lus
-Error in file "/home/jahier/lus2lic/test/should_work/broken/old_style_and_pack.lus", 
-line 17, col 1 to 4, token 'node':
-
-file:test/should_work/broken/old_style_and_pack.lus
-
--> to_sort
-
-* TODO Mettre le sha dans l'affichage de --version
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-01-21 lun. 09:40
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: Pas dur
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END: 
-car c'est plus facile dans git pour retrouver ses petits
-  - State "TODO"       from ""           [2012-10-26 Fri 14:59]
-
-* TODO Changer la facon de numeroter les versions dans lus2lic (faire comme dans lurette)
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-01-21 lun. 09:43
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: Vieux trucs (?)
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-  [2010-11-08 Mon]
-* TODO Verifier les boucles combinatoires
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-01-24 Thu 09:13
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: Languages issues
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END: 
-quand on genere du ec (car ec2c ne fait pas la verif !)
-   [2010-06-07 Mon]
-
-On pourrait peut-etre le faire en modifiant celui la : file:src/l2lCheckOutputs.ml ?
-
-* TODO pb d'instance de package ???
-   - State "TODO"       from ""           [2013-01-19 Sat 09:43]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-01-25 Fri 11:25
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: Packages, modeles, etc.
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
- ./lus2lic  -o /tmp/packages.out should_work/broken/packages.lus
- ./lus2lic -ec -o /tmp/packages.ec should_work/broken/packages.lus
- Error in file "/home/jahier/lus2lic/test/should_work/broken/packages.lus", line 22, col 27 to 29, token 'int':
- syntax error
-
-file:test/should_work/broken/packages.lus::22
-
-ok : c'etait juste un pb de syntaxe (depuis toujours vraisemblablement...)
-
-* TODO instanciation de noeuds ne marche pas ? 
-   - State "TODO"       from ""           [2013-01-19 Sat 10:02]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-01-29 Tue 09:37
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: Packages, modeles, etc.
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-./lus2lic -o /tmp/multipar.out should_work/broken/multipar.lus
-file:test/should_work/broken/multipar.lus::20
- Error in file "/home/jahier/lus2lic/test/should_work/broken/multipar.lus", line 20, col 12 to 12, token 'g':
- unknown node: g
- known nodes are: sil, bok, gup, lis
-
-FAIL: without any option: ./lus2lic {    -o /tmp/multipar.out should_work/broken/multipar.lus} 
-* TODO Condact is not working
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-01-29 Tue 16:31
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: Languages issues
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
- file:test/should_work/broken/cond01.lus
-   - State "TODO"       from ""           [2013-01-18 Fri 23:18]
- ./lus2lic -ec -o /tmp/cond01.ec should_work/broken/cond01.lus
-
- oops: lus2lic internal error
-	File "objlinux/l2lExpandMetaOp.ml", line 310, column 4
- when compiling lustre program should_work/broken/cond01.lus          
-
-* TODO Merge is not working
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-01-31 Thu 17:52
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: Languages issues
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-
-./lus2lic should_work/broken/merge.lus 
-file:test/should_work/broken/merge.lus::7
-
-* TODO fix unresolved tests (timeout -> performance bugs)
-   - State "TODO"       from ""           [2013-01-11 Fri 11:04]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-02-04 Mon 21:33
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: Testing process
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-
-par ex,  file:./test/should_work/ec.lus prend  un temps  infini alors
-qu'il n'est pas si gros (y'a  500 variables, mais bon).  bon, en fait
-il prend 26 secondes, ce qui n'est  pas infini, mais bien long tout de
-meme.
-
-nb: c'était deja le cas avant les changements de Pascal.
-
-cf file:test/lus2lic.gprof
-69% du temps est passé dans unify clock !!!!!
- 
-J'ai l'impression que  c'est lié au fait que ce  programme ne definit
-que  des  contantes.   Or  les constantes  sont  potentiellement  sur
-n'importe quelle horloge, ce qui fait que l'algo manipule un gros paquet
-de 'clock_var of int' et que l'on passe beaucoup de temps à faire des 
-apply_substs2
-
-cf file:test/perf/ contenant les resultats de gprof et ocamlprof sur ec.lus
-
------> ca y est, j'ai trouvé : encore une histoire de Verbose pas lazy !!!
-
-* TODO Certains programmes dans should_fail n'echouent qu'en ec (ou bien c'est ec2c) ou l'inverse
-   - State "TODO"       from "STARTED"    [2013-01-23 Wed 18:26]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-02-06 Wed 16:09
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: Testing process
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-du coup les stats sont un peu fausses. a revoir.
-
-* TODO on devrait se passer de 'static_arg list' pour le champ =PREDEF_CALL=
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-02-06 Wed 17:06
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: Aesthetes issues
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END: 
-(c'est censé marcher)
-cf file:./src/lic.ml::206
-  - State "TODO"       from ""           [2012-10-26 Fri 14:59]
-
-
-* TODO le Eff.WITH (aka if statique) n'a pas lieu d'être !
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-02-06 Wed 17:57
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: Aesthetes issues
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-y virer !!
-  - State "TODO"       from ""           [2012-10-26 Fri 14:59]
-
-* TODO const_to_val_eff n'a vraiment rien à faire dans UnifyClock !!!
-
-   - State "TODO"       from ""           [2013-01-29 Tue 14:26]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-02-07 Thu 09:42
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: Aesthetes issues
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-file:src/unifyClock.ml::271
-
-mouarf, pourquoi pas en fait.
-
-* TODO aucune fonction dans Lic.*_to_string ne devrait dependre des options de compil
-   - State "TODO"       from ""           [2013-02-01 Fri 17:54]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-02-07 Thu 09:54
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: Aesthetes issues
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-cf le XXX  file:src/lic.ml::655
-
-* TODO Rajouter le with à la caml pour les structures
-  - State "TODO"       from ""           [2012-10-26 Fri 14:59]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-02-07 Thu 16:10
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: Languages issues
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-
-main peut-on l'appeller with ?
-file:test/should_work/struct_with.lus
-
-
-* TODO Refaire une passe pour virer une fois pour toute cette histoire d'idref dans Eff.
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-02-13 Wed 09:22
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: Aesthetes issues
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-    cf file:/~/lus2lic/src/lic.ml::189
-QU: Pascal l'a fait ?
-    
-
-En fait, il y a 3 types d'idents
-- long : 
-  + pack+nom
-  + Sert à dénoter les items (node/type/const) externes au pack courant
-
-- t : 
-  + juste le nom
-  + Sert à dénoter les items locaux  au pack courant + les variables 
-
-- idref :  
-  + le pack est en option
-  + utile dans les premieres phases de la compil
-  + actuellement utilisé  comme machin pour ranger des  trucs dont on
-    ne  sait pas  trop s'il  s'agit  d'Ident.t ou  Ident.long et  qui
-    permet d'entretenir une  espece de flou désagréable  dans le code
-    et mon esprit...
-
-
-les  idref sont  sensé disparaitre  une fois  que tous  les problemes
-d'identificateurs  ont   été  résolu  (ce   qui  n'est  pas   le  cas
-actuellement).
-
-Le Lic.id_solver est  là pour résoudre les ident.t  ; bizzarement, il
-prend en entrée ces fameux idref  que je voudrais voir disparaitre de
-Lic.
-
-Le truc, c'est que cet id_solver  permet aussi de récuperer des infos
-sur les long, d'ou le idref qui est plus versatile...
-
-sol 1 : dupliquer id2const, id2type, etc et créer des long2const, etc.
-du coup, plus d'idref ! 
-
-* TODO Définir les fonctions de UglyStuff proprement
-   - State "TODO"       from ""           [2012-12-10 Mon 16:38]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-02-13 Wed 09:23
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: Aesthetes issues
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-file:~/lus2lic/src/uglyStuff.ml
-bon j'y ai mis dans IdSolver ; c'est pas si choquant maintenant que
-ces fonctions ne sont plus dans Lic.
-
-* TODO definir un Lic.STRUCT_WITH plutot que de passer par un type option
-  - State "TODO"       from ""           [2013-02-12 Tue 18:32]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-02-13 Wed 09:31
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: Aesthetes issues
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-
-* TODO Mettre tout les val_exp dans les operand dans Lic
-   - State "TODO"       from ""           [2013-02-12 Tue 18:30]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-02-13 Wed 11:16
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: Aesthetes issues
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-
-XXX essayer de virer le constructeur Oper qui n'a pas l'air de servir à grand chose
-* STARTED Intégrer le résultat de mly2bnf dans le manuel
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-02-13 Wed 14:15
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: Divers
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: STARTED
-  :END: 
-* TODO tableaux (hat, array, etc)
-  - State "TODO"       from ""           [2013-03-19 Tue 10:33]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-03-22 Fri 10:25
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: lus2lic -exec
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-* TODO diese et nor
-  - State "TODO"       from ""           [2013-03-30 Sat 14:31]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-04-02 Tue 10:21
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: lus2lic -exec
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-* TODO meta operateurs
-  - State "TODO"       from ""           [2013-03-19 Tue 10:33]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-04-02 Tue 10:37
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: lus2lic -exec
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-* TODO when, current
-  - State "TODO"       from ""           [2013-03-19 Tue 10:33]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-04-03 Wed 08:50
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: lus2lic -exec
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-
-* TODO merge
-  - State "TODO"       from ""           [2013-03-19 Tue 10:33]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-04-05 Fri 15:13
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: lus2lic -exec
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-* TODO fby
-  - State "TODO"       from ""           [2013-04-04 Thu 17:10]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-04-05 Fri 15:13
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: lus2lic -exec
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-
-* TODO condact
-  - State "TODO"       from ""           [2013-03-19 Tue 10:33]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-04-05 Fri 17:23
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: lus2lic -exec
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-
-
-* TODO Traiter la fleche plus proprement.
-   - State "TODO"       from ""           [2013-04-02 Tue 08:33]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-04-08 Mon 13:07
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: lus2lic -exec
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-
-En fait il me suffirait de m'inspirer de ce que j'ai fait dans le condact
-avec la variable "first_instant" !!!
-
-* TODO Translate the fby properly into a soc 
-   - State "TODO"       from ""           [2013-04-04 Thu 17:10]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-04-08 Mon 13:07
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: lus2lic -exec
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-vs "-> pre" as it is done actually in file:~/lus2lic/src/ast2lic.ml::468
-
-* TODO slice
-  - State "TODO"       from ""           [2013-04-05 Fri 11:18]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-04-08 Mon 13:27
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: lus2lic -exec
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-* TODO Unifier les modules Data de Lustre V6 et Lutin
-   - State "TODO"       from ""           [2013-04-02 Tue 08:33]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-04-17 Wed 10:52
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: lus2lic -exec
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-
-ie. rajouter les tableaux, struct, et enum en lutin quitte à ne pas s'en servir
-tout de suite.
-
-Ca va facilité l'utilisation sans duplic de code du module rif_base
-* TODO revoir l'intégration à rif_base et genlex
-  - State "TODO"       from ""           [2013-03-19 Tue 10:25]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-04-17 Wed 10:52
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: lus2lic -exec
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-
-* TODO Integrer ce mode -exec dans lurette, à la facon dont je l'ai fait pour Lutin
-   - State "TODO"       from ""           [2013-03-30 Sat 14:35]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-04-17 Wed 10:53
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: lus2lic -exec
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-Question : comment j'integre ? via un lus2lic.a ?
-
-file:~/lurette/source/common/lustreRun.mli
-
-* TODO Trouver un moyen d'automatiser des tests
-   - State "TODO"       from ""           [2013-03-19 Tue 10:35]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-04-23 Tue 16:54
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: lus2lic -exec
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-via lurette ?
-en comparant le mode -exec avec le résultat obtenu via ec puis ec2c
-
-faudrait rajouter une option dans lurette qui, en cas de variables 
-manquantes, genere le programme lutin qui va bien (loop true) plutot
-que de lancer luciole
-
-Un truc de ce gout là semble fonctionner :
-
-
- ./lus2lic  _trivial3_condact_oracle.lus -n trivial3_condact_oracle -ec > trivial3_condact_oracl
-
-
-./lus2lic trivial3.lus -n trivial3_condact --gen-autotest
-./lus2lic trivial3.lus -n trivial3_condact -ec >> _trivial3_condact_oracle.lus
-./lus2lic  _trivial3_condact_oracle.lus -n trivial3_condact_oracle -ec > trivial3_condact_oracle.ec
-~/lurette/bin/lurettetop -rp "sut:v6:trivial3.lus:trivial3_condact" -rp "env:lutin:_trivial3_condact_env.lut" -rp "oracle:ec:trivial3_condact_oracle.ec:" -go 
-
-Reste à l'integrer dans file:test/lus2lic.tests/non-reg.exp
-
-* TODO assert violation  ~/lus2lic/src/socExecValue.ml::239
-   - State "TODO"       from ""           [2013-05-10 Fri 17:38]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-05-14 Tue 16:38
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: lus2lic -exec
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
- ../utils/test_lus2lic_no_node should_work/X3.lus
-
-* TODO assert violation  ~/lus2lic/src/socExecValue.ml::267
-   - State "TODO"       from ""           [2013-05-10 Fri 17:38]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-05-16 Thu 09:06
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: lus2lic -exec
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-../utils/test_lus2lic_no_node should_work/is_stable.lus
-
-* TODO oops: lus2lic internal error
-   - State "TODO"       from ""           [2013-05-14 Tue 14:35]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-05-16 Thu 13:50
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: lus2lic -exec
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-	File "objlinux/lic2soc.ml", line 648, column 14
-
-./lus2lic should_work/noeudsIndependants.lus -n noeudsIndependants --gen-autotest -np
-
-C'est parce que il y a un clash avec Lustre::gt qui est polymorphe,
-et donc l'alias vers gt ne genere pas de code...
-
-Il faudrait vraiment que je trouve un moyen de ne pas remplir les tables avec
-le contenu du module Lustre de facon strict (ie, le faire lazy !!)
-
-cf file:src/licTab.ml::68
-
-Bon, finalement, j'oblige les gens a ecrire Lustre::gt et puis ca marre.
-
-* TODO oops: lus2lic internal error
-   - State "TODO"       from ""           [2013-05-10 Fri 17:46]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-05-21 Tue 09:31
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: lus2lic -exec
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-	File "objlinux/lic2soc.ml", line 680, column 18
- when compiling lustre program should_work/morel3.lus
--> It was due to a bad handling in slices apprearinf at the lhs od equations.
-* TODO pb avec -en sur programme avec des when
-   - State "TODO"       from ""           [2013-05-21 Tue 11:10]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-05-21 Tue 17:30
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: Divers
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
- ./lus2lic _ck5_oracle.lus -n ck5_oracle  -en
-
-* oops: lus2lic internal error
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-05-31 Fri 13:55
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: lus2lic -exec
-  :ARCHIVE_CATEGORY: lv6
-  :END:
-	File "objlinux/data.ml", line 114, column 15
- when compiling lustre program should_work/left.lus
-
- ./lus2lic should_work/left.lus -exec 
-
-* oops: lus2lic internal error
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-05-31 Fri 13:56
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: lus2lic -exec
-  :ARCHIVE_CATEGORY: lv6
-  :END:
-	File "objlinux/data.ml", line 114, column 15
- when compiling lustre program should_work/left.lus
-
- ./lus2lic should_work/left.lus -exec 
-
-* TODO oops: lus2lic internal error
-   - State "TODO"       from ""           [2013-05-10 Fri 18:05]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-05-31 Fri 13:56
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: lus2lic -exec
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-	File "objlinux/lic2soc.ml", line 680, column 18
- when compiling lustre program should_work/left.lus
-
-
-* TODO internal error
-   - State "TODO"       from ""           [2013-05-10 Fri 17:19]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-05-31 Fri 15:52
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: lus2lic -exec
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-	File "objlinux/unifyType.ml", line 106, column 3
- ../utils/test_lus2lic_no_node should_work/t1.lus
-
-file:src/unifyType.ml::110
-
-* TODO Fix a bug occurring using -en and -esa together.
-   - State "TODO"       from ""           [2013-04-24 Wed 09:22]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-05-31 Fri 16:10
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: Testing process
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-
-#+begin_src sh
-./lus2lic _assertion_oracle.lus -n assertion_oracle   -en  -esa
-#+end_src
-
-** Error in file "/home/jahier/lus2lic/test/_assertion_oracle.lus", line 38, col 3 to 7, token 'v02_1':
-** 
-** Variable _0v02_1_1 is already defined.
-#+end_src
-
--> on verra ca quand les autres  test passeront ; je ferai alors une passe
-complete qur le nommage des variables fraiches.
-
-
-* Performances
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-05-31 Fri 16:24
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_CATEGORY: lv6
-  :END:
-Ceux là sont particulierement long (dont certains vraiment sans raison)
-en fait, quand ecexe se plante (oracle), il bloque tout le monde...
-
-
-
-# of unresolved testcases	12
-
-../utils/test_lus2lic_no_node should_work/assertion.lus
-../utils/test_lus2lic_no_node should_work/normal.lus
-../utils/test_lus2lic_no_node should_work/Gyroscope2.lus
- ../utils/test_lus2lic_no_node should_work/ELMU.lus
- ../utils/test_lus2lic_no_node should_work/aux.lus
-../utils/test_lus2lic_no_node should_work/X1.lus
-../utils/test_lus2lic_no_node should_work/alarme.lus
-../utils/test_lus2lic_no_node should_work/onlyroll2.lus
-../utils/test_lus2lic_no_node should_work/integrator.lus
-../utils/test_lus2lic_no_node should_work/over2.lus
-
-
-* WAITING Ya un probleme avec ce fichier lustre (compilait avant)
-   - State "WAITING"    from "STARTED"    [2013-01-17 Thu 10:48]
-   - State "STARTED"    from "TODO"       [2013-01-17 Thu 10:48]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-05-31 Fri 17:05
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: Pas clair
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: WAITING
-  :END:
-file:test/should_work/call/call04.lus
-
-il semble y avoir une confusion entre parametre et arguments lors
-d'appels de noeuds définis via des itérateurs de tableau
-
-idem pour
-file:test/should_work/fab_test/morel2.lus
-et pleins d'autres. hm, y'aurait pas d'itérateurs dans celui la.
-
--> ok  : c'était à  de l2lAliasType (que  j'ai déranché du  coup) qui
-faisait  que les  types lic  n'étaient plus  uniques et  du coup  les
-substitutions  dans  l'expansion  des  noeuds ne  se  faisaient  plus
-correctement.
-
-je met en attente en attendant de savoir ce qu'on fait de ce module.
-moi j'ai bien envie de virer AbstractType de Lic.type_. En effet, j'avais 
-fait attention à tous les virer pour éviter les soucis, mais le plus 
-propre c'est d'y virer vraiment. 
-
-Pascal lui, s'en  est servi pour faire des types  alias, alors que ca
-n'est pas fait pour. Cela dit, si  on créé des types alias, on risque
-d'avoir le meme genre de soucis. A quoi ca sert d'avoir de tels types
-?  pour moi le role de la compil ca serait plutot de les virer que de
-les rajouter, mais bon. A discuter. cf point d'apres
-
-* TODO Les assertions qui echouent font planter les tests : reflechir a une parade
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-05-31 Fri 17:21
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: Divers
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-
-car apres tout, c'est voulu dans le prog, et ca n'est donc pas un pb du compilo
-
-   - State "TODO"       from ""           [2013-05-31 Fri 16:30]
- ../utils/test_lus2lic_no_node should_work/assertion.lus
- ../utils/test_lus2lic_no_node should_work/drapfab.lus
- ../utils/test_lus2lic_no_node should_work/s.lus
- ../utils/test_lus2lic_no_node should_work/eq1.lus
- ../utils/test_lus2lic_no_node should_work/lecteur.lus
- ../utils/test_lus2lic_no_node should_work/alarme.lus
-
-* TODO pb gen-autotest
-   - State "TODO"       from ""           [2013-06-03 Mon 09:51]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-06-03 Mon 09:57
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: lus2lic -exec
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-../utils/test_lus2lic_no_node should_work/plus.lus
- + ./lus2lic _plus_oracle.lus -n plus_oracle -lv4 -eei -en --no-prefix -o lv4_plus_oracle.lus
-
- Error in file "/home/jahier/lus2lic/test/_plus_oracle.lus", line 6, col 28 to 28, token '=':
- tuple size error: 
- the tuple size is
-	4 for the left-hand-side, and 
-	1 for the right-hand-side (in c_bis,d_bis,e_bis,f_bis = a + b)
-
-et aussi :
-../utils/test_lus2lic_no_node should_work/bred.lus
-../utils/test_lus2lic_no_node should_work/alias.lus
-../utils/test_lus2lic_no_node should_work/bred_lv4.lus
-../utils/test_lus2lic_no_node should_work/minus.lus
-
-* TODO il reste des pbs de portée de nom
-   - State "TODO"       from ""           [2013-06-03 Mon 09:56]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-06-03 Mon 10:21
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: lus2lic -exec
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
- ./lus2lic should_work/myplus.lus -n plus -ec 
-../utils/test_lus2lic_no_node should_work/minus.lus
-
-* TODO Lurette trouve un mismatch sur ce prog au step 0
-   - State "TODO"       from ""           [2013-05-10 Fri 17:08]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-06-04 Tue 10:15
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: lus2lic -exec
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-
-../utils/test_lus2lic_no_node should_work/mapiter.lus
-../utils/test_lus2lic_no_node should_work/arrays.lus
-../utils/test_lus2lic_no_node should_work/nested.lus    
-../utils/test_lus2lic_no_node should_work/matrice.lus
-../utils/test_lus2lic_no_node should_work/mapdeRed.lus
-../utils/test_lus2lic_no_node should_work/over2.lus
-../utils/test_lus2lic_no_node should_work/predefOp.lus
-file:test/should_work/predefOp.lus
-
-* TODO Lurette trouve un mismatch sur ce prog au step 2
-   - State "TODO"       from ""           [2013-05-10 Fri 17:08]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2013-06-04 Tue 14:16
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: lus2lic -exec
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-../utils/test_lus2lic_no_node should_work/cond01.lus
-
-* TODO 
-   - State "TODO"       from ""           [2014-06-16 Mon 08:59]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2014-06-16 Mon 10:50
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: lus2lic -exec
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-
- lus2lic -exec should_work/map.lus -n pbmap
-ne prend pas en compte la valeur du pre
-
-* TODO Lurette trouve un mismatch sur ce prog au step 7
-   - State "TODO"       from ""           [2013-05-10 Fri 17:08]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2014-06-16 Mon 11:00
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: lus2lic -exec
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-
- ../utils/test_lus2lic_no_node should_work/call07.lus
-
-file:test/should_work/call07.lus
-
-* TODO pb en utilisant -2c et -esa en meme temps
-   - State "TODO"       from ""           [2014-07-04 Fri 16:16]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2014-07-10 Thu 10:17
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: lus2lic -2C
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-
- lus2lic should_work/modes3x2_v4.lus  -n modes3x2_v4 -esa -o xxx -2c
-
-* TODO Lurette trouve un mismatch sur ce prog au step 1
-   - State "TODO"       from ""           [2013-05-10 Fri 17:08]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2014-08-07 Thu 12:27
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: lus2lic -exec
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-
-../utils/test_lus2lic_no_node should_work/pipeline.lus
-
-file:test/should_work/pipeline.lus
-
-* TODO Lurette trouve un mismatch sur ce prog au step 6
-   - State "TODO"       from ""           [2013-05-10 Fri 17:08]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2014-08-07 Thu 12:27
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: lus2lic -exec
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-
-file:test/should_work/deSimone.lus 
-
-../utils/test_lus2lic_no_node should_work/deSimone.lus
-
-* TODO Lurette trouve un mismatch sur ce prog au step 2
-   - State "TODO"       from ""           [2013-05-10 Fri 17:08]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2014-08-07 Thu 12:27
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: lus2lic -exec
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-../utils/test_lus2lic_no_node should_work/test.lus
-
-file:test/should_work/test.lus
-
-* TODO le traitement du condact ne marche plus
-   - State "TODO"       from ""           [2014-06-27 Fri 15:26]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2014-08-07 Thu 16:15
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: lus2lic -exec
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-depuis le 2eme commit  du 18-06-2014
-
- lus2lic should_work/test_condact.lus -n test_condact  -exec
-
-
-once the activation condition has been  true, and when it is false it
-returns the default value instead of the previous one.
-* TODO Use severale machine to launch tests in paralell 
-  - State "TODO"       from ""           [2014-08-14 Thu 11:23]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2014-08-22 Fri 10:38
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: Testing process
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-* TODO Traiter TOUS les warnings !!!
-  - State "TODO"       from ""           [2014-08-13 Wed 17:33]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2014-08-26 Tue 10:19
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: Divers
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-* TODO lus2lic genere du ec mal typé !!
-   - State "TODO"       from ""           [2013-05-10 Fri 17:24]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2014-09-03 Wed 11:04
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: Testing process
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-
- ../utils/test_lus2lic_no_node should_work/predef03.lus
-
-* TODO pour ceux la ils suffit d'expanser. Comment eviter que les tests echouent ?
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2014-09-03 Wed 11:04
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: Testing process
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-- lus2lic -2c should_work/activation2.lus -n activation2
-- lus2lic -2c should_work/activation1.lus -n activation1
-- lus2lic -2c should_work/asservi.lus -n asservi
-- lus2lic -2c should_work/speedcontrol.lus -n speedcontrol
-* TODO pb d'horloge
-   - State "TODO"       from ""           [2014-08-13 Wed 17:33]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2014-09-03 Wed 11:07
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: Divers
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-#+BEGIN_SRC lustre
-node xxx(x:int;c:bool) returns (res1,res2:int);
-var
-  y:int when c; 
-  k:int when c;
-let
-  y = x when c;
-  k = (0 fby (k+1)) when c ;-- erreur ici, alors que ca semble bon
-  res1 = current(y);
-  res2 = current(k);
-tel
-#+END_SRC
-
-clock error: ' on c on base' is not a sub-clock of ' on base'
-en plus le message est bizzare
-
-D'une maniere generale, les messages d'erreur en cas de pb d'horloge sont vraiment mauvais.
-
--> non, en fait, le when c ne sert a rien piur definir le k.
-* TODO msg d'erreur un peu mauvais sur ce programme
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2014-09-03 Wed 11:11
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: Divers
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-
-#+begin_src lustre
-node argos_oracle(a:bool;b:bool;s0:bool;s1:bool;s2:bool) returns(ok:bool;s0_bis:bool;s1_bis:bool;s2_bis:bool);
-let
-  (s0_bis,s1_bis,s2_bis) = argos(a,b);
-s0=s0_bis;
-  s1=s1_bis;
-  s2=s2_bis;
-tel;
-#+end_src
-
--> ah bon ? bof.
-
-* TODO ce noeud ne compile pas en mode -ec
-   - State "TODO"       from ""           [2013-04-17 Wed 15:51]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2014-09-03 Wed 11:12
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: Divers
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-
-#+begin_src lustre
-node trivial3(e: int ^2) returns (x: int ^6);
-var
-  c: int ^6;
-let
-  c = e|e|e;
-  x[0..2] = c[3..5];
-  x[3..5] = c[0..2];
- 
-tel
-#+end_src
-
--> maintenant si
-
-* TODO pb en mode -esa avec les itérateurs
-   - State "TODO"       from ""           [2014-06-05 Thu 10:00]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2014-09-03 Wed 11:14
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: Divers
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-lus2lic  should_work/minus.lus -n minus  -esa
-lus2lic should_work/normal.lus -n normal -esa
-
--> plus maintenant
-
-* TODO divergence -exec et -2c (1)
-   - State "TODO"       from ""           [2014-07-11 Fri 12:02]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2014-09-04 Thu 14:42
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: Failures spotted by non reg tests (13)
-  :ARCHIVE_CATEGORY: lv6
-  :ARCHIVE_TODO: TODO
-  :END:
-
-grep "FAIL:" lus2lic*.log | grep "exec" | grep "\-2c" | sed s/'FAIL: Try to compare lus2lic -exec and -2c:'/-/
-
-1) ../utils/compare_exec_and_2c should_work/PCOND.lus 48319 
-  Failure occured in lurette: The oracle first output should be a bool;
-  but ok has type nil
-
-* A option to inline the simple nodes such as AND, OR, NOT etc.
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2014-10-01 Wed 17:31
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: a classer/Willie's wishes
-  :ARCHIVE_CATEGORY: lv6
-  :END:
-
-* The expansion of nodes with -efn --expand-following-nodes [easy]
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2014-10-02 Thu 14:54
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: a classer/Willie's wishes
-  :ARCHIVE_CATEGORY: lv6
-  :END:
-
-the current available options are:
-
--en, --expand-nodes
-            Expand the main node (use the first node if no one is
-specified).
--den, --do_not-expand-nodes <string>
-            Do not expand the specified node (meaningful with -en only of
-course).
-
-It might be better if another option such as -efn --expand-following-nodes
-<string>
-The nodes which are not in the string will not be expanded.
-
-* Generate a copy of memcpy and replace the sizeof operator with the actual size of the structure.
-  :PROPERTIES:
-  :ARCHIVE_TIME: 2014-10-02 Thu 17:54
-  :ARCHIVE_FILE: ~/lus2lic/todo.org
-  :ARCHIVE_OLPATH: a classer/Willie's wishes
-  :ARCHIVE_CATEGORY: lv6
-  :END:
-
-  It seems that the "assert" operator will generate "array" structure
-  where the  number of  the element  depending on  the number  of the
-  arguments to  the "assert". The  generated C  code tries to  make a
-  copy    of    this    structure     with    memcpy    and    giving
-  sizeof(the_structure_to_copy) as the argument.
-
-  Since OTAWA does not handle memcpy, could you generate a version of
-  memcpy (contains  a for loop)  for each  memcpy call.  (Or  just to
-  paste the for loop to replace the memcpy call), while the iteration
-  count of the for loop is given (in actual value) so that ORANGE can
-  handle it.....
-
-
-je comprend pas tout, mais ce que je retiens, c'est de remplacer les memcpy
-par des appels a des fonctions (ou des macros) qui par default utiliseraient 
-des memcpy
-
-genre
-  
-   _assign_ip2(ctx.x, ctx.y);
-
-#+BEGIN_SRC C
-#ifndef _assign_ip2 
-#define _assign_ip2(dest, source) memcpy(dest, source, sizeof(dest))
-#endif
-#+END_SRC
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/rundbg b/utils/rundbg
similarity index 100%
rename from rundbg
rename to utils/rundbg
-- 
GitLab