TODO 4.41 KB
Newer Older
1 2 3 4
; -*-org-*-

* Général

5 6
** BUG:

7
** TODO Avant Prochaine release
8 9 10
+ [ ] ajouter parsing de types non atomiques
+ [ ] ajouter détection de nbre infini de solutions
+ [ ] permettre à ./acg de charger des fichiers .acgo
11 12
+ [ ] utiliser UF avec tableaux destructifs, et tester l'amélioration des performances
+ [ ] autoriser l'utilisation de symboles non fonctionnels
13
+ [ ] rajouter l'utf8
14
+ [ ] générer svg aussi pour la commande parse
15 16 17 18
+ [X] Uniformiser les sorties avec logs
+ [ ] Add error (and warning) messages management to the Error module, and make a difference between "real" parsing errors and errors resulting from evaluating the parsing against some environment. The latter can be output all together (may be some limit to be set)
+ [ ] Add debug flag (+ flag for log sources?)
+ [ ] Change command line parsing to use Cmd
19

POGODALLA Sylvain's avatar
POGODALLA Sylvain committed
20 21 22
** Optimisation
+ [ ] magic rewriting
+ [ ] PersistentArray
23 24
+ [ ] parallélisme
+ [ ] Mettre un compteur des règles utilisés qui tienne compte du nombre de terminaux générés pour profiter de la linéarité et éviter d'essayer des règles qui rajouteraient des terminaux au-delà du nombre d'occurrences dans le terme à parser
POGODALLA Sylvain's avatar
POGODALLA Sylvain committed
25

26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
** Permettre l'utilisation des PersistentArray

** TODO Vérifier (et supprimer ou mettre en IFDEBUG) les assert


* datalog.ml
+ [ ] Vérifier pourquoi "pred_table" est paramètre de Rule.to_abstract
  et aussi de Datalog_AbstractSyntax.Rule.to_string
+ [ ] Vérifier pourquoi content est passé en paramètre dans les
  to_abstract alors que c'est un champ du record rule
+ [ ] Idem pour Rule.extract_consequence
+ [ ] Réfléchir à la possibilité de faire de l'unification directement
  entre contents. Ça réduirait par exemple les itérations dans
  "extract_consequence"
+ [X] Autoriser l'instanciation avec des variables encore présentes
+ [X] Implanter la réponse à une requête.
+ [ ] Ajouter dans le programme l'enregistrement de toutes les
  constantes et les parcourir pour ajouter aux faits ceux qui ont
  encore des variables.
+ [ ] Ajouter la possibilité d'étendre un programme datalog
+ [ ] changer le champ idb de prog en Set plutôt que list
+ [ ] changer edb et idb en Set plutôt que list
+ [ ] build_forest sans query n'est pas correct (il faut faire
  plusieurs forêts)
POGODALLA Sylvain's avatar
POGODALLA Sylvain committed
50 51 52 53 54
* reduction.ml
+ [ ] offrir la possibilité de construire une requête à partir de plusieurs terms
+ [ ] offrir la possibilité de construire une requête non totalement
  instanciée (utile ?). Prévoir modifications dans la manière de
  construire la forêt partagée après une requête.
55 56 57 58 59 60 61 62 63 64 65 66 67

* alterTrees.ml
+ [ ] changer la focused list des forêts en simple liste ?
+ [ ] garder trace de Link_to plutôt que de l'actual forest dans les move
+ [X] gérer les analyses infinies (ordre sur les chemins)

* unionFind.ml
+ [ ] Changer le rank dans "union" lorsque match de Value contre
  Link_to

* lambda.ml
+ [ ] Vérifier les passages de paramètres dans les
  unfold_{labs|abs|binder} pour l'affichage, et simplifier
68 69 70 71
+ [ ] reprendre partout l'utilisation des fonctions Format.printf, et
  les unifier pour les utiliser même quand simple "string" (si
  formattés, peut causer un problème d'assert dans la réduction à
  cause sans doute d'un "\n" qui reste)
72 73 74 75 76 77 78 79 80 81 82 83 84

* typeInference.ml
+ [ ] change or add inference (possibly with a signature) to principal
  typing
+ [ ] remove the level parameter (and any other useless parameter)
  from the inference_aux function (when no LOG occur)


* acg_lexicon.ml
+ [ ] add the int id (as in Lambda.Const i) in the map from the
  constant name for abstract constants
+ [ ] Définir le parsing pour les types non atomiques
+ [ ] Définir le parsing pour les almost linear terms
85 86
+ [ ] Vérifier que les Signature.expand_term ne sont pas redondants
  avec les Lambda.normalize ~id_to_term
87 88 89 90

* Divers
+ [ ] ajouter un espace de nommage pour les lexiques et signatures
+ [ ] Ajouter un -nooout option pour acgc ?
91 92
+ [ ] Vérifier ce qui se passe avec les différents parenthèsages lors
  du parsing
93 94 95 96 97 98 99 100 101 102 103 104 105


* Extension de signatures et lexiques
+ Warning signature: duplicate type or term definition (+ conflict with declaration)
+ Warning lexicon:
  + duplicate type or term interpretation
  + forgotten interpretations
+ Update lexicon if:
  + Interpretation
    1. new type/constant declaration in abstract signature  => check interpretation
    2. new or update type/constant definition in abstract or object signature => recompute lex
  + Composition
    1. one of the lexicon was updated => recompute lex