File:  [local] / rpl / LIMITATIONS
Revision 1.32: download - view: text, annotated - select for diffs - revision graph
Fri Dec 10 16:08:27 2010 UTC (13 years, 4 months ago) by bertrand
Branches: MAIN
CVS tags: rpl-4_0_20, HEAD
Ajout de l'interception de SIGTERM.

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

CVSweb interface <joel.bertrand@systella.fr>