File:  [local] / rpl / LIMITATIONS
Revision 1.40: download - view: text, annotated - select for diffs - revision graph
Tue Jun 21 15:26:26 2011 UTC (12 years, 9 months ago) by bertrand
Branches: MAIN
CVS tags: HEAD
Correction d'une réinitialisation sauvage de la pile des variables par niveau
dans la copie de la structure de description du processus. Cela corrige
la fonction SPAWN qui échouait sur un segmentation fault car la pile des
variables par niveau était vide alors même que l'arbre des variables contenait
bien les variables. Passage à la prerelease 2.

    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: Convertir avec le nouveau système de la gestion de la mémoire :
    8: - READ FLOW (longueur_effective ligne 2815)
    9: rpl/src/'`instructions_w1-conv.c
   10: instructions_w1-conv.c: In function ‘librpl_instruction_write’:
   11: instructions_w1-conv.c:1603: warning: ‘ios’ may be used uninitialized in this
   12: function
   13: instructions_w1-conv.c:431: warning: ‘chaine’ may be used uninitialized in this
   14: function
   15: 
   16: Traiter SIGTERM
   17: RUN
   18: Ajouter MULTICAST (pour les sockets)
   19: Rajouter le test des dépassements pour INCR et DECR
   20: 
   21: Ajouter TeXmacs
   22: Ajouter giac$fonction
   23: 
   24: Dessiner les niveaux sur les graphes
   25: { "main" { "default" } { "automatic" 10 } } axes redraw 
   26: Ne fonctionne pas...
   27: 
   28: // Teste les interfaces d'entrée et de sortie d'une fonction. Une fonction
   29: // peut avoir plusieurs interfaces.
   30: FONCTION
   31: <<
   32:     INTERFACE
   33:         ALTERN
   34:         RESULT
   35:         REQUIRES
   36:         END
   37:     END
   38: >>
   39: 
   40: fonction
   41:   INTERFACE
   42:     generic
   43:     integer scalar
   44:     real matrix
   45:     complex vector
   46:     table
   47:     list
   48:     binary
   49:     name
   50:     string
   51:     algebraic
   52:     expression
   53:     file
   54:     socket
   55:     library
   56:     process
   57:     sql
   58:     mutex
   59:     semaphore
   60:   CONSTRAINED
   61:     4 pick size 6 pick size same
   62:   RESULT
   63:     type
   64:   END
   65: 
   66:   INTERFACE
   67:     integer
   68:     real matrix
   69:     integer/real/complex vector
   70:     table
   71:     list
   72:   RESULT
   73:     type
   74:   END
   75: REQUIRES
   76:   variables globales ou définitions
   77: PROVIDES
   78: <<
   79: >>
   80: 
   81: Traiter les expressions et les noms dans les fichiers. Rajouter un
   82: type de format pour les binaires non formatés (LOGICAL)
   83: 
   84: IMPORT -> installe à chaud de nouvelles définitions. Écrase les anciennes
   85: si nécessaire.
   86: 
   87: Prévoir un drapeau pour tester les interfaces (34)
   88: -> désarmé : test des interfaces
   89: -> armé : on ne teste rien
   90: 
   91: colorspec pour les couleurs des graphiques de gnuplot
   92: 
   93: TRIGGER attaché à un objet (fonction appelée dès la modification de l'objet)
   94: -> vérification de contrainte...
   95: 
   96: Decomposition de Hessenberg dgehrd, zgehrd; dorghr, zunghr for computing P
   97: dgehd2.f+dgebal.f
   98: 
   99: Pseudo inverse dgelss, zgelss
  100: 
  101: Tables dans interface_tex
  102: 
  103: Fichiers à accès direct -> entretenir une table en mémoire (hsearch())
  104: Les enregistrements sont de la forme :
  105: [Position enregistrement suivant][enregistrement]
  106: ADDNODE
  107: DELNODE
  108: 
  109: { arguments } << programme >> << interruption >> SUBMIT
  110: arg1 ... argn n << programme >> << interruption >> SUBMIT
  111: 
  112: rpl -b (batch) 32 (nombre de threads)
  113: 
  114: FOREIGN (pour les variables)
  115: 
  116: Côté esclave
  117: foreign -> X Y Z << >>
  118: FVARLOCK
  119: FVARUNLOCK
  120: 
  121: Côté maître
  122: foreign -> X Y Z << >> (il faut savoir si on est sur le mêtre ou sur un esclave)
  123: 
  124: FOREIGN permet à un esclave d'accéder à une variable partagée
  125: du maître.
  126: 
  127: ADDNOTE envoie les variables de niveau 0 au noeud client.
  128: SUBMIT envoie l'adresse de création des variables 'foreign' au client
  129: // Maître
  130: << foreign 1 -> X
  131:     <<
  132:         << foreign -> X << 'X' incr >> >> << >> submit
  133:     >>
  134: >>
  135: 
  136: ================================================================================
  137: 
  138: Compilation -> faire un exécutable qui appelle rpl par rpl -S
  139: 
  140: Verification des erreurs mémoire dans le cas d'erreur avant l'appel au
  141: séquenceur dans rpl.c
  142: 
  143: Coller un fichier ~/.rpl qui contient les valeurs par défaut des drapeaux
  144: 
  145: 'a(3)+a(3,4)' ne doit pas provoquer d'erreur si a est du type liste ou table.
  146: Si a est une liste ou une table : une seule dimension possible !
  147: 
  148: [[ 1 2 ]]3 est valide !
  149: 
  150: Evaluation symbolique des fonction ?
  151: 
  152: SQL sur des données binaires
  153: 
  154: La manière standard de faire est d'utiliser des wchar_t pour représenter les
  155: caractères (à distinguer des bytes).
  156: Il y a plein de choses dans la bibliothèque standard :
  157: - mbtowc et compagnie, et aussi mbrtowc et compagnie, une variante
  158: probablement identique dans ton cas
  159: - fgetwc, fputwc, fwprintf etc. pour les entrées-sorties
  160: - wcs*() qui remplace les fonctions en str*()
  161: 
  162: Vérifier la cohérence des arguments de OPEN
  163: 
  164: TO DO
  165:     File support : SEEK, SUPPRESS, REWRITE
  166: 
  167: Mettre des tableaux dans les formats binaires
  168: 
  169: Fichier en accès direct -> 12 {} puis entretenir un fichier d'index.
  170: Fichiers flow
  171: 
  172: SLOPEFIELD
  173: 
  174: Simplification des expressions : convertir la notation polonaise en
  175: arbre.
  176: 
  177: Problème d'indentation de
  178: select
  179:     case then end <- sur la même ligne

CVSweb interface <joel.bertrand@systella.fr>