File:  [local] / rpl / LIMITATIONS
Revision 1.59: download - view: text, annotated - select for diffs - revision graph
Sat Nov 19 17:53:20 2011 UTC (12 years, 5 months ago) by bertrand
Branches: MAIN
CVS tags: rpl-4_1_4, HEAD
Mise à jour (RPL/CAS et répertoire tools). Fin de la refonte des fonctions
traitant des chaînes de caractères (UCASE, POS, LCASE).

    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: Translitération des fichiers (avec un pointeur sur la localisation du fichier
    8: dans la structure du fichier).
    9: 
   10: Fichiers non formatés : restent à coder pour les écritures :
   11:          * 0000 XXXX                Binaire sur XXXX octets
   12:          * 0010 00 00               vecteur integer*1 (dimensions integer*1)
   13:          * 0010 01 00               vecteur integer*1 (dimensions integer*2)
   14:          * 0010 10 00               vecteur integer*1 (dimensions integer*4)
   15:          * 0010 11 00               vecteur integer*1 (dimensions integer*8)
   16:          * 0010 00 01               vecteur integer*2 (dimensions integer*1)
   17:          * 0010 01 01               vecteur integer*2 (dimensions integer*2)
   18:          * 0010 10 01               vecteur integer*2 (dimensions integer*4)
   19:          * 0010 11 01               vecteur integer*2 (dimensions integer*8)
   20:          * 0010 00 10               vecteur integer*4 (dimensions integer*1)
   21:          * 0010 01 10               vecteur integer*4 (dimensions integer*2)
   22:          * 0010 10 10               vecteur integer*4 (dimensions integer*4)
   23:          * 0010 11 10               vecteur integer*4 (dimensions integer*8)
   24:          * 0010 00 11               vecteur integer*8 (dimensions integer*1)
   25:          * 0010 01 11               vecteur integer*8 (dimensions integer*2)
   26:          * 0010 10 11               vecteur integer*8 (dimensions integer*4)
   27:          * 0010 11 11               vecteur integer*8 (dimensions integer*8)
   28:          * 0011 00 00               matrice integer*1 (dimensions integer*1)
   29:          * 0011 01 00               matrice integer*1 (dimensions integer*2)
   30:          * 0011 10 00               matrice integer*1 (dimensions integer*4)
   31:          * 0011 11 00               matrice integer*1 (dimensions integer*8)
   32:          * 0011 00 01               matrice integer*2 (dimensions integer*1)
   33:          * 0011 01 01               matrice integer*2 (dimensions integer*2)
   34:          * 0011 10 01               matrice integer*2 (dimensions integer*4)
   35:          * 0011 11 01               matrice integer*2 (dimensions integer*8)
   36:          * 0011 00 10               matrice integer*4 (dimensions integer*1)
   37:          * 0011 01 10               matrice integer*4 (dimensions integer*2)
   38:          * 0011 10 10               matrice integer*4 (dimensions integer*4)
   39:          * 0011 11 10               matrice integer*4 (dimensions integer*8)
   40:          * 0011 00 11               matrice integer*8 (dimensions integer*1)
   41:          * 0011 01 11               matrice integer*8 (dimensions integer*2)
   42:          * 0011 10 11               matrice integer*8 (dimensions integer*4)
   43:          * 0011 11 11               matrice integer*8 (dimensions integer*8)
   44:          * 0101 0 XXX               nom de longueur XXX
   45:          * 0101 10 LL               nom de longueur integer*LL
   46:          * 0110 0 XXX               expression RPN
   47:          * 0110 10 LL
   48:          * 0111 0 XXX               expression algébrique
   49:          * 0111 10 LL
   50:          * 1000 0 XXX               chaîne de caractères
   51:          * 1000 10 LL
   52:          * 1001 0 XXX               table de longueur XXX
   53:          * 1001 10 00               table de longueur integer*1
   54:          * 1001 10 01               table de longueur integer*2
   55:          * 1001 10 10               table de longueur integer*4
   56:          * 1001 10 11               table de longueur integer*8
   57:          *
   58:          * 1010 00 10               vecteur real*4 (dimensions integer*1)
   59:          * 1010 01 10               vecteur real*4 (dimensions integer*2)
   60:          * 1010 10 10               vecteur real*4 (dimensions integer*4)
   61:          * 1010 11 10               vecteur real*4 (dimensions integer*8)
   62:          * 1010 00 11               vecteur real*8 (dimensions integer*1)
   63:          * 1010 01 11               vecteur real*8 (dimensions integer*2)
   64:          * 1010 10 11               vecteur real*8 (dimensions integer*4)
   65:          * 1010 11 11               vecteur real*8 (dimensions integer*8)
   66:          * 1011 00 10               vecteur complex*8 (dimensions integer*1)
   67:          * 1011 01 10               vecteur complex*8 (dimensions integer*2)
   68:          * 1011 10 10               vecteur complex*8 (dimensions integer*4)
   69:          * 1011 11 10               vecteur complex*8 (dimensions integer*8)
   70:          * 1011 00 11               vecteur complex*16 (dimensions integer*1)
   71:          * 1011 01 11               vecteur complex*16 (dimensions integer*2)
   72:          * 1011 10 11               vecteur complex*16 (dimensions integer*4)
   73:          * 1011 11 11               vecteur complex*16 (dimensions integer*8)
   74:          * 1100 00 10               matrice real*4 (dimensions integer*1)
   75:          * 1100 01 10               matrice real*4 (dimensions integer*2)
   76:          * 1100 10 10               matrice real*4 (dimensions integer*4)
   77:          * 1100 11 10               matrice real*4 (dimensions integer*8)
   78:          * 1100 00 11               matrice real*8 (dimensions integer*1)
   79:          * 1100 01 11               matrice real*8 (dimensions integer*2)
   80:          * 1100 10 11               matrice real*8 (dimensions integer*4)
   81:          * 1100 11 11               matrice real*8 (dimensions integer*8)
   82:          * 1101 00 10               matrice complex*8 (dimensions integer*1)
   83:          * 1101 01 10               matrice complex*8 (dimensions integer*2)
   84:          * 1101 10 10               matrice complex*8 (dimensions integer*4)
   85:          * 1101 11 10               matrice complex*8 (dimensions integer*8)
   86:          * 1101 00 11               matrice complex*16 (dimensions integer*1)
   87:          * 1101 01 11               matrice complex*16 (dimensions integer*2)
   88:          * 1101 10 11               matrice complex*16 (dimensions integer*4)
   89:          * 1101 11 11               matrice complex*16 (dimensions integer*8)
   90: 
   91: Utiliser clock() et clock_t pour émuler getrusage sous OS/2
   92: 
   93: Regarder les d_ep_division_par_zero pour coller un undef à la place.
   94: 
   95: ->TAG TAG-> DTAG
   96: ->UNIT UNIT-> DUNIT
   97: 
   98: Convertir avec le nouveau système de la gestion de la mémoire :
   99: - READ FLOW (longueur_effective ligne 2815)
  100: rpl/src/'`instructions_w1-conv.c
  101: instructions_w1-conv.c: In function ‘librpl_instruction_write’:
  102: instructions_w1-conv.c:1603: warning: ‘ios’ may be used uninitialized in this
  103: function
  104: instructions_w1-conv.c:431: warning: ‘chaine’ may be used uninitialized in this
  105: function
  106: 
  107: Traiter SIGTERM
  108: RUN
  109: Ajouter MULTICAST (pour les sockets)
  110: Rajouter le test des dépassements pour INCR et DECR
  111: 
  112: Ajouter TeXmacs
  113: 
  114: Dessiner les niveaux sur les graphes
  115: { "main" { "default" } { "automatic" 10 } } axes redraw 
  116: Ne fonctionne pas...
  117: 
  118: -> I:integer scalar, J:integer scalar << >>
  119: 
  120: // Teste les interfaces d'entrée et de sortie d'une fonction. Une fonction
  121: // peut avoir plusieurs interfaces.
  122: 
  123: constrained FONCTION
  124:     interface STANDARD
  125:         integer scalar, generic, real scalar
  126:     returns
  127:         real scalar
  128:     or
  129:         integer scalar
  130:     requires
  131:         VARIABLE FONCTION2
  132:     end
  133: 
  134:     interface SPECIFIQUE
  135:         scalar, ...
  136:     returns
  137:         scalar
  138:     requires
  139:     end
  140: provides
  141: <<
  142: >>
  143: 
  144: Ajouter un champs dans RPN et ADR pour pointer vers une liste.
  145: 
  146: Types :
  147: generic
  148: scalar (integer/real/complex)
  149: vector (integer/real/complex)
  150: matrix (integer/real/complex)
  151: table
  152: list
  153: binary
  154: name
  155: string
  156: algebraic
  157: expression
  158: file
  159: socket
  160: library
  161: process
  162: sql
  163: mutex
  164: semaphore
  165: 
  166: Traiter les expressions et les noms dans les fichiers. Rajouter un
  167: type de format pour les binaires non formatés (LOGICAL)
  168: 
  169: IMPORT -> installe à chaud de nouvelles définitions. Écrase les anciennes
  170: si nécessaire.
  171: 
  172: Prévoir un drapeau pour tester les interfaces (34)
  173: -> désarmé : test des interfaces
  174: -> armé : on ne teste rien
  175: 
  176: colorspec pour les couleurs des graphiques de gnuplot
  177: 
  178: TRIGGER attaché à un objet (fonction appelée dès la modification de l'objet)
  179: -> vérification de contrainte...
  180: 
  181: Decomposition de Hessenberg dgehrd, zgehrd; dorghr, zunghr for computing P
  182: dgehd2.f+dgebal.f
  183: 
  184: Pseudo inverse dgelss, zgelss
  185: 
  186: Tables dans interface_tex
  187: 
  188: Fichiers à accès direct -> entretenir une table en mémoire (hsearch())
  189: Les enregistrements sont de la forme :
  190: [Position enregistrement suivant][enregistrement]
  191: ADDNODE
  192: DELNODE
  193: 
  194: { arguments } << programme >> << interruption >> SUBMIT
  195: arg1 ... argn n << programme >> << interruption >> SUBMIT
  196: 
  197: rpl -b (batch) 32 (nombre de threads)
  198: 
  199: FOREIGN (pour les variables)
  200: 
  201: Côté esclave
  202: foreign -> X Y Z << >>
  203: FVARLOCK
  204: FVARUNLOCK
  205: 
  206: Côté maître
  207: foreign -> X Y Z << >> (il faut savoir si on est sur le mêtre ou sur un esclave)
  208: 
  209: FOREIGN permet à un esclave d'accéder à une variable partagée
  210: du maître.
  211: 
  212: ADDNOTE envoie les variables de niveau 0 au noeud client.
  213: SUBMIT envoie l'adresse de création des variables 'foreign' au client
  214: // Maître
  215: << foreign 1 -> X
  216:     <<
  217:         << foreign -> X << 'X' incr >> >> << >> submit
  218:     >>
  219: >>
  220: 
  221: ================================================================================
  222: 
  223: Compilation -> faire un exécutable qui appelle rpl par rpl -S
  224: 
  225: Verification des erreurs mémoire dans le cas d'erreur avant l'appel au
  226: séquenceur dans rpl.c
  227: 
  228: Coller un fichier ~/.rpl qui contient les valeurs par défaut des drapeaux
  229: 
  230: 'a(3)+a(3,4)' ne doit pas provoquer d'erreur si a est du type liste ou table.
  231: Si a est une liste ou une table : une seule dimension possible !
  232: 
  233: [[ 1 2 ]]3 est valide !
  234: 
  235: Evaluation symbolique des fonction ?
  236: 
  237: SQL sur des données binaires
  238: 
  239: La manière standard de faire est d'utiliser des wchar_t pour représenter les
  240: caractères (à distinguer des bytes).
  241: Il y a plein de choses dans la bibliothèque standard :
  242: - mbtowc et compagnie, et aussi mbrtowc et compagnie, une variante
  243: probablement identique dans ton cas
  244: - fgetwc, fputwc, fwprintf etc. pour les entrées-sorties
  245: - wcs*() qui remplace les fonctions en str*()
  246: 
  247: Vérifier la cohérence des arguments de OPEN
  248: 
  249: TO DO
  250:     File support : SEEK, SUPPRESS, REWRITE
  251: 
  252: Mettre des tableaux dans les formats binaires
  253: 
  254: Fichier en accès direct -> 12 {} puis entretenir un fichier d'index.
  255: Fichiers flow
  256: 
  257: SLOPEFIELD
  258: 
  259: Simplification des expressions : convertir la notation polonaise en
  260: arbre.
  261: 
  262: Problème d'indentation de
  263: select
  264:     case then end <- sur la même ligne

CVSweb interface <joel.bertrand@systella.fr>