TODO 5.46 KB
Newer Older
1

2

3
*********** BUGS
4

5 6 7 8 9
* Bug dans le repertoire HS si dans Makefile.lurette on 
  positionne CFLAGS à -Oi pour i >= 1. Le bug ne se produit
  que sur les machines linux possedant gcc 3.


10 11
* quand une formule s'avere fausse du point de vue des variables 
numeriques, il ne faut pas repartir du haut du graphe, mais backtraker
12 13
depuis la branche qui s'avere fausse. Sinon, les probabilités induites
par les poids sont un peu contre-intuitives.
14
En plus, en backtraquant ainsi, je n'ai plus de problemes de dag2three !
15
et je ne suis plus obligé de ...
16

17
* Le remplacement dynamique de .luc est tres surement cassé (les current_nodes
18
   ne sont pas mis a jour) -> le retester 
19

20

21 22 23 24 25 26 27 28 29 30 31
* time lucky -l 100 six_lines.luc 

prend 5 secondes pour n=1000 alors que 

time lucky -l 10 six_lines.luc

prend 170 secondes pour n=10000
!!!



32
*********** A faire  
33

34 35 36 37 38 39 40 41

* Faire une experience ou je n'utilise plus du tout les bdds mais je
passe par une forme normale pour les booleans pour voir

on pourrait ainsi avoir 2 modes, pasque avec les bdds (j=1 or j=2)
donne une repartition 25/75, et depend de l'ordre dans lequel
apparaissent les monomes...

42 43 44 45 46 47 48 49
* Portage Sildex

* Un TP de Lurette pour le 2 juillet pour les partenaire de Safeair.


* autoriser plusieurs automates dans le meme fichier

* Finir lucky2lus
50 51 52 53 54 55 56

* Préciser dans le manuel le role des 2 fenetres + mettre 
un message dans chaque fenetres du style

  "This is the standard output window"
  "This is the standard error window"

57
??? y'a deja les tooptips...
58

59 60
* rajouter une option --reactive dans lucky où il rend ses valeurs precedentes
  si aucune formule n'est satisfiable (ainsi que --reactive-no-warning)
61 62 63 64 65 66

* plot a besion de gnu-awk ... Je devrais ecrire moi-meme en caml
  le programme qui genere le bon format pour gnuplot...
  En plus, Pour les gros fichier, ca rame à donf !


67
* Finir le compilo lutin de Yvan
68

69
* Les alias doivent ils etre dans le .rif au meme titre
70
  que les autres variables locales  -> ajouter une option !
71

72 73 74 75 76 77 78

* Ajouter la possibilité de pouvoir rejouer un séquence et de la continuer 
  (? redondant avec la graine ?)
 
* inclure la libc en statique (comme pascal) 
  ou  mettre tous les .so dans un repertoire (comme matlab) ???

79 80
* coder les types enumerer avec un boolean au lieu d'un entier
 (suggestion BJ)
81 82 83 84 85

* Finir le ocaml-lutin (.mluc)



86
* Mettre des iterateurs de tableaux
87 88
 -> nécessite d'avoir une notion de noeud ou de fonction dans lucky

89 90 91 92 93 94 95 96 97 98 99 100 101 102
macros {
-- une fonction/macro peut-etre dépliée telle quelle
  (up_down : bool -> int -> int -> real) =
     macro c i j ->  
       if c then i+j else i-j;
}  
 
une telle macro pourrait aussi
  o etre recursive ( -> fonction caml)
  o avoir sa propre mémoire ( -> noeud lustre)

Mais ca complique. On verra apres.


103 104
* Rajouter les fonctions, et notamment les fonctions externes
 -> comment faire depuis un tel interpreteur ????
105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
 -> appeler du caml ? du C ?

*  En fait, il faudrait definir un nouveau format lucky basé sur caml
  qque chose qui resemblerait à 

  let i1 = ("toto", Int, 12, ...)
  and i2 = ...
  in
  let il = [i1; i2; ...] in 

  let f1 = And(Or(.... (sin x)))
  and ...
  in
  let t1 = (n1, n2, f1, Pre(X))
  and t2 = ...
  in
  let tl = [t1; t2; ...] in
  let automata = {
      inputs = li,
      outputs = lo,
      ...
      transitions = tl
  } 
  in
    run automata

AVANTAGES :
   (1) La syntaxe du format est tres facile à décrire : c'est du caml !!
   (2) L'analyse lex, synt, et de type est faite par caml
   (3) Ainsi, les appels de fonctions externes, c'est "finger in the nose"
   (4) sans parler des librairies
   (5) Pour passer de l'ancien format au nouveau, il me suffit 
       de faire un pretty print de ma structure de donné interne...

INCONVÉNIENTS :
   (1) ca oblige les gens à avoir un compilo caml chez eux...
   
142

143 144
* reporter le contenu de la nouvelle section de d1.1-v2 dans les entetes de modules

145

146

147
* il faudrait au moins pouvoir avoir des pre sur des var de types structurés
148

149
* En fait, il faudrait ecrire les regles de typage des expressions
150

151
* Finir le lustre2lucky avec Yussef
152

153 154


155
*********** A faire  aussi (moins urgent (?))
156

157
* Portage Reluc
158

159 160
* Chercher a detecter des egalites lors de l'ajout d'une inegalité.
  pour les contraintes de dimension > 1 (cf code commenté dans store.ml)
161

162 163
* compiler sim2chrogtk sous cygwin

164 165 166
* giro : 
 -> Il faudrait rajouter la possibilité de faire, par ex, des 
    tirages selon une loi normale pour les variables a générer.
167
 -> En faire un envt plus realiste
168 169 170 171

* autoconf : 
 -> tester si gtk est la

172
*********** A faire ???
173

174 175
* ajouter les options --product-mode {multiply | arbiter}
  qui disent comment on multiplie 2 automates (cf papier)
176 177


178 179 180 181 182 183 184
* Utiliser l'ordre des parametres plutot que leur noms 
  Quoique, quand on fait le produit de plusieurs automates, 
  ca n'est guere pratique...
 
  --> 2 options : --var-order (default), --var-name
  
* zipper et dezipper les .rif a la vollée (cf zlib et camlzip)
185

186 187 188 189 190 191 192
* Si jamais on a à faire a des polyedres trop gros, on pourrait
  peut-etre chercher a remettre en cause les choix qui ont été faits
  lors des egalités (ie, le choix de la variable à substituer). Ce calcul
  coute peut-etre un peu cher (car, comment faire autrement qu'essayer
  toutes les possibilités), mais au moins, ca donnerait une solution
  dans des cas ou les polyedres peteraient...

193 194 195 196 197 198 199 200 201
* Réfléchir à une version d'un tireur sans bdd ou les choix seraient
  effectués pendant le parcours de la formule (pas d'équité, mais bon) +
  backtracking quand ca n'est pas satisfiable. Le gros pb a priori 
  est que les probas vont dépendre de la structure de la formule.