File:  [local] / rpl / LIMITATIONS
Revision 1.24: download - view: text, annotated - select for diffs - revision graph
Tue Jul 13 17:37:07 2010 UTC (13 years, 8 months ago) by bertrand
Branches: MAIN
CVS tags: rpl-4_0_17, HEAD
Dernières modifications mineures pour la 4.0.17.

    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: Mettre les variables dans un arbre avec une liste chaînée des niveaux dans
    8: chaque maillon de la pile système. -> version 4.1
    9: 
   10: Mettre les variables dans un arbre mis à plat :
   11: [ niveau 1 ][ niveau 2,1 ][ niveau 2,5 ][ niveau 3,1 ]...
   12: avec des pointeur relatifs pour pouvoir copier rapidement par un
   13: memcpy() l'ensemble de la structure de description des variables lors
   14: d'un spawn.
   15: 
   16: Empêcher les interruptions ctrlC dans les appels récursifs (evaluation et
   17: sequenceur)
   18: Connexion au terminal de contrôle perdue !
   19: 
   20: Routing library unloaded.
   21: 
   22: Dessiner les niveaux sur les graphes
   23: { "main" { "default" } { "automatic" 10 } } axes redraw 
   24: Ne fonctionne pas...
   25: 
   26: // Teste les interfaces d'entrée et de sortie d'une fonction. Une fonction
   27: // peut avoir plusieurs interfaces.
   28: FONCTION
   29: <<
   30:     INTERFACE
   31:         ALTERN
   32:         RESULT
   33:         REQUIRES
   34:         END
   35:     END
   36: >>
   37: 
   38: fonction
   39:   INTERFACE
   40:     generic
   41:     integer scalar
   42:     real matrix
   43:     complex vector
   44:     table
   45:     list
   46:     binary
   47:     name
   48:     string
   49:     algebraic
   50:     expression
   51:     file
   52:     socket
   53:     library
   54:     process
   55:     sql
   56:     mutex
   57:     semaphore
   58:   CONSTRAINED
   59:     4 pick size 6 pick size same
   60:   RESULT
   61:     type
   62:   END
   63: 
   64:   INTERFACE
   65:     integer
   66:     real matrix
   67:     integer/real/complex vector
   68:     table
   69:     list
   70:   RESULT
   71:     type
   72:   END
   73: REQUIRES
   74:   variables globales ou définitions
   75: PROVIDES
   76: <<
   77: >>
   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: n BATCH (lance N threads simultanés en boucle) Arrêt lorsque DELNODE est
  110: appelé du noeud maître
  111: 
  112: FOREIGN (pour les variables)
  113: 
  114: FOREIGN permet à un esclave d'accéder à une variable partagée
  115: du maître.
  116: 
  117: ADDNOTE envoie les variables de niveau 0 au noeud client.
  118: SUBMIT envoie l'adresse de création des variables 'foreign' au client
  119: // Maître
  120: << foreign 1 -> X
  121:     <<
  122:         << foreign -> X << 'X' incr >> >> << >> submit
  123:     >>
  124: >>
  125: 
  126: ================================================================================
  127: 
  128: Compilation -> faire un exécutable qui appelle rpl par rpl -S
  129: 
  130: Verification des erreurs mémoire dans le cas d'erreur avant l'appel au
  131: séquenceur dans rpl.c
  132: 
  133: Coller un fichier ~/.rpl qui contient les valeurs par défaut des drapeaux
  134: 
  135: 'a(3)+a(3,4)' ne doit pas provoquer d'erreur si a est du type liste ou table.
  136: Si a est une liste ou une table : une seule dimension possible !
  137: 
  138: [[ 1 2 ]]3 est valide !
  139: 
  140: Evaluation symbolique des fonction ?
  141: 
  142: SQL sur des données binaires
  143: 
  144: La manière standard de faire est d'utiliser des wchar_t pour représenter les
  145: caractères (à distinguer des bytes).
  146: Il y a plein de choses dans la bibliothèque standard :
  147: - mbtowc et compagnie, et aussi mbrtowc et compagnie, une variante
  148: probablement identique dans ton cas
  149: - fgetwc, fputwc, fwprintf etc. pour les entrées-sorties
  150: - wcs*() qui remplace les fonctions en str*()
  151: 
  152: FLOW (utilise en lecture FORMAT)
  153: 
  154: Vérifier la cohérence des arguments de OPEN
  155: 
  156: TO DO
  157:     File support : SEEK, SUPPRESS, REWRITE
  158: 
  159: Mettre des tableaux dans les formats binaires
  160: 
  161: Fichier en accès direct -> 12 {} puis entretenir un fichier d'index.
  162: Fichiers flow
  163: 
  164: SLOPEFIELD
  165: 
  166: Simplification des expressions : convertir la notation polonaise en
  167: arbre.
  168: 
  169: Problème d'indentation de
  170: select
  171:     case then end <- sur la même ligne

CVSweb interface <joel.bertrand@systella.fr>