File:  [local] / rpl / LIMITATIONS
Revision 1.43: download - view: text, annotated - select for diffs - revision graph
Mon Jun 27 13:14:27 2011 UTC (12 years, 9 months ago) by bertrand
Branches: MAIN
CVS tags: rpl-4_1_0, HEAD
Ajout de --with-32bits-abi pour limiter la compilation de gmp et mpfr
à 32 bits sur des architectures utilisant multilib (entre autres sparc64 ou
gmp/mpfr sont compilées par défaut en 64 bits alors que les exécutables sont
compilés par défaut en 32 bits !).

    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: FORCER -m32 ou -m64 avec configure.in
   22: 
   23: Ajouter TeXmacs
   24: 
   25: Dessiner les niveaux sur les graphes
   26: { "main" { "default" } { "automatic" 10 } } axes redraw 
   27: Ne fonctionne pas...
   28: 
   29: // Teste les interfaces d'entrée et de sortie d'une fonction. Une fonction
   30: // peut avoir plusieurs interfaces.
   31: 
   32: FONCTION
   33: constrained
   34:     interface
   35:         { integer scalar }
   36:     returns
   37:         { real scalar }
   38:         { integer scalar }
   39:     requires
   40:         { VARIABLE FONCTION2 }
   41:     end
   42: 
   43:     interface
   44:     returns
   45:     requires
   46:     end
   47: provides
   48: <<
   49: >>
   50: 
   51: FONCTION
   52: <<
   53:     {
   54:         <[ { input } { { output1 } { output2 } } { requires } ]>
   55:         <[ { input } { { output1 } { output2 } } { requires } ]>
   56:     }
   57:     << expression >>
   58:     CONSTRAINT
   59: >>
   60: 
   61: Ajouter un champs dans RPN et ADR pour pointer vers une liste.
   62: 
   63: Types :
   64: generic
   65: scalar (integer/real/complex)
   66: vector (integer/real/complex)
   67: matrix (integer/real/complex)
   68: table
   69: list
   70: binary
   71: name
   72: string
   73: algebraic
   74: expression
   75: file
   76: socket
   77: library
   78: process
   79: sql
   80: mutex
   81: semaphore
   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>