diff --git a/AFAIRE b/AFAIRE deleted file mode 100644 index af7e376936510aedd623984038b560e73cf01bf5..0000000000000000000000000000000000000000 --- 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 ffa6aa70014baaeebf5b7372d5a04fd5d4329a07..0000000000000000000000000000000000000000 --- 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 cb7aedf9e5390337bdbb05ee680c3f82ef2e7b63..0000000000000000000000000000000000000000 --- 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 ecc2dfa0efffe4df69dbe4fd32c07395b59ff3ed..b33f3518cad3f5fa8b780837ff45e734fb76a788 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 648a0c2e903b00dc1a67db97ddfeb0255f4cedee..0000000000000000000000000000000000000000 --- 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 731fbbd528f84e08e9c7b7bbcb56fe9bda706073..0000000000000000000000000000000000000000 --- 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 54321146e77215c8321b0cb95a7e5a52050f09de..0000000000000000000000000000000000000000 --- 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 9b1f906542786ef6c792966cb27bd061cea43451..0000000000000000000000000000000000000000 --- 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 Binary files a/notes-pascal/devel-notes.pdf and /dev/null differ diff --git a/notes-pascal/devel-notes.tex b/notes-pascal/devel-notes.tex deleted file mode 100644 index b46bfc524001c278304eb750c9e454c39ef1f6b8..0000000000000000000000000000000000000000 --- 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 b50083e32cb9776676e7ecaf98f79ecb3fc0d92c..0000000000000000000000000000000000000000 --- 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 0e893f55bd74a028f27d706e51884fb927beba59..0000000000000000000000000000000000000000 --- 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 940e3b4ee3e4c176068e58b57fac967546175b5e..0000000000000000000000000000000000000000 --- 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 5f8b6cf11bf895929734a5f40970eacc6b0b486b..286730c4689b2db369f0b633a904b83703a5cea7 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 7d8f670a84e3728be3fe2b98644ab6ec99328b2e..ee94718d609d5a039d03fac9d6e995fa2a221da9 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 8b8f0d7f7f2229240730771a4ca8f92630893def..0000000000000000000000000000000000000000 --- 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 fc122154026a0b4dbadf4dda3a04d358e24b2599..0000000000000000000000000000000000000000 --- 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