File:  [local] / rpl / LIMITATIONS
Revision 1.29: download - view: text, annotated - select for diffs - revision graph
Mon Sep 13 11:58:42 2010 UTC (13 years, 6 months ago) by bertrand
Branches: MAIN
CVS tags: HEAD
Inversion d'un patch de compilation (curses/ncurses)

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

CVSweb interface <joel.bertrand@systella.fr>