File:  [local] / rpl / LIMITATIONS
Revision 1.52: download - view: text, annotated - select for diffs - revision graph
Mon Sep 26 15:57:33 2011 UTC (12 years, 6 months ago) by bertrand
Branches: MAIN
CVS tags: HEAD
En route pour la 4.1.4.

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

CVSweb interface <joel.bertrand@systella.fr>