File:  [local] / rpl / LIMITATIONS
Revision 1.41: download - view: text, annotated - select for diffs - revision graph
Fri Jun 24 09:10:36 2011 UTC (12 years, 9 months ago) by bertrand
Branches: MAIN
CVS tags: HEAD
Modification des règles de compilation pour lier rplcas à l'exécutable
rpl et à la bibliothèque librpl.a.

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

CVSweb interface <joel.bertrand@systella.fr>