File:  [local] / rpl / LIMITATIONS
Revision 1.22: download - view: text, annotated - select for diffs - revision graph
Wed May 19 09:22:32 2010 UTC (13 years, 11 months ago) by bertrand
Branches: MAIN
CVS tags: rpl-4_0_15, HEAD
Correction de fuites de mémoire et de l'option --enable-debug.

    1: RESTRICTIONS
    2:     Only sequential formatted files are supported.
    3: 
    4: Économisons notre mépris eut égard au nombre de nécessiteux.
    5: Chateaubriand.
    6: 
    7: Mettre les variables dans un arbre avec une liste chaîne des niveaux dans
    8: chaque maillon de la pile système. -> version 4.1
    9: 
   10: Mettre les variables dans un arbre mis à plat :
   11: [ niveau 1 ][ niveau 2,1 ][ niveau 2,5 ][ niveau 3,1 ]...
   12: avec des pointeur relatifs pour pouvoir copier rapidement par un
   13: memcpy() l'ensemble de la structure de description des variables lors
   14: d'un spawn.
   15: 
   16: 
   17: Sur MacOS rpl -ist 808 sort alors que rpl -is ne sort pas !
   18: 
   19: Empêcher les interruptions ctrlC dans les appels récursifs (evaluation et
   20: sequenceur)
   21: Connexion au terminal de contrôle perdue !
   22: 
   23: Routing library unloaded.
   24: 
   25: +++Erreur : Type d'argument invalide pour la commande SWAP [27630]
   26: 
   27: +++Information : Génération du fichier rpl-core [27630]
   28: +++Erreur : Type d'argument invalide pour la commande GET [27630]
   29: 
   30: +++Erreur : Type d'argument invalide pour la commande >> [27630]
   31: +++Information : Génération du fichier rpl-core [27630]
   32: 
   33: +++Erreur : Type d'argument invalide pour la commande > [27630]
   34: +++Information : Génération du fichier rpl-core [27630]
   35: 
   36: +++Information : Génération du fichier rpl-core [27630]
   37: tchaikovski:[~/rpl/cvs/optimisation] > ./serveur.rpl
   38: 
   39: -> toujours une erreur de type _type d'argument invalide_ !
   40: 
   41: Dessiner les niveaux sur les graphes
   42: { "main" { "default" } { "automatic" 10 } } axes redraw 
   43: Ne fonctionne pas...
   44: 
   45: // Teste les interfaces d'entrée et de sortie d'une fonction. Une fonction
   46: // peut avoir plusieurs interfaces.
   47: FONCTION
   48: <<
   49:     INTERFACE
   50:         ALTERN
   51:         RESULT
   52:         REQUIRES
   53:         END
   54:     END
   55: >>
   56: 
   57: fonction
   58:   INTERFACE
   59:     generic
   60:     integer scalar
   61:     real matrix
   62:     complex vector
   63:     table
   64:     list
   65:     binary
   66:     name
   67:     string
   68:     algebraic
   69:     expression
   70:     file
   71:     socket
   72:     library
   73:     process
   74:     sql
   75:     mutex
   76:     semaphore
   77:   CONSTRAINED
   78:     4 pick size 6 pick size same
   79:   RESULT
   80:     type
   81:   END
   82: 
   83:   INTERFACE
   84:     integer
   85:     real matrix
   86:     integer/real/complex vector
   87:     table
   88:     list
   89:   RESULT
   90:     type
   91:   END
   92: REQUIRES
   93:   variables globales ou définitions
   94: PROVIDES
   95: <<
   96: >>
   97: 
   98: Traiter les expressions et les noms dans les fichiers. Rajouter un
   99: type de format pour les binaires non formatés (LOGICAL)
  100: 
  101: IMPORT -> installe à chaud de nouvelles définitions. Écrase les anciennes
  102: si nécessaire.
  103: 
  104: Prévoir un drapeau pour tester les interfaces (34)
  105: -> désarmé : test des interfaces
  106: -> armé : on ne teste rien
  107: 
  108: colorspec pour les couleurs des graphiques de gnuplot
  109: 
  110: TRIGGER attaché à un objet (fonction appelée dès la modification de l'objet)
  111: -> vérification de contrainte...
  112: 
  113: Decomposition de Hessenberg dgehrd, zgehrd; dorghr, zunghr for computing P
  114: dgehd2.f+dgebal.f
  115: 
  116: Pseudo inverse dgelss, zgelss
  117: 
  118: Tables dans interface_tex
  119: 
  120: Fichiers à accès direct -> entretenir une table en mémoire (hsearch())
  121: Les enregistrements sont de la forme :
  122: [Position enregistrement suivant][enregistrement]
  123: ADDNODE
  124: DELNODE
  125: 
  126: { arguments } << programme >> << interruption >> SUBMIT
  127: arg1 ... argn n << programme >> << interruption >> SUBMIT
  128: n BATCH (lance N threads simultanés en boucle) Arrêt lorsque DELNODE est
  129: appelé du noeud maître
  130: 
  131: FOREIGN (pour les variables)
  132: 
  133: FOREIGN permet à un esclave d'accéder à une variable partagée
  134: du maître.
  135: 
  136: ADDNOTE envoie les variables de niveau 0 au noeud client.
  137: SUBMIT envoie l'adresse de création des variables 'foreign' au client
  138: // Maître
  139: << foreign 1 -> X
  140:     <<
  141:         << foreign -> X << 'X' incr >> >> << >> submit
  142:     >>
  143: >>
  144: 
  145: ================================================================================
  146: 
  147: Compilation -> faire un exécutable qui appelle rpl par rpl -S
  148: 
  149: Verification des erreurs mémoire dans le cas d'erreur avant l'appel au
  150: séquenceur dans rpl.c
  151: 
  152: Coller un fichier ~/.rpl qui contient les valeurs par défaut des drapeaux
  153: 
  154: 'a(3)+a(3,4)' ne doit pas provoquer d'erreur si a est du type liste ou table.
  155: Si a est une liste ou une table : une seule dimension possible !
  156: 
  157: [[ 1 2 ]]3 est valide !
  158: 
  159: Evaluation symbolique des fonction ?
  160: 
  161: SQL sur des données binaires
  162: 
  163: La manière standard de faire est d'utiliser des wchar_t pour représenter les
  164: caractères (à distinguer des bytes).
  165: Il y a plein de choses dans la bibliothèque standard :
  166: - mbtowc et compagnie, et aussi mbrtowc et compagnie, une variante
  167: probablement identique dans ton cas
  168: - fgetwc, fputwc, fwprintf etc. pour les entrées-sorties
  169: - wcs*() qui remplace les fonctions en str*()
  170: 
  171: FLOW (utilise en lecture FORMAT)
  172: 
  173: Vérifier la cohérence des arguments de OPEN
  174: 
  175: TO DO
  176:     File support : SEEK, SUPPRESS, REWRITE
  177: 
  178: Mettre des tableaux dans les formats binaires
  179: 
  180: Fichier en accès direct -> 12 {} puis entretenir un fichier d'index.
  181: Fichiers flow
  182: 
  183: SLOPEFIELD
  184: 
  185: Simplification des expressions : convertir la notation polonaise en
  186: arbre.
  187: 
  188: Problème d'indentation de
  189: select
  190:     case then end <- sur la même ligne

CVSweb interface <joel.bertrand@systella.fr>