Annotation of rpl/LIMITATIONS, revision 1.39

1.1       bertrand    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: 
1.37      bertrand    7: Libérer la mémoire (arbre des variables) à la fin d'un processus et d'un thread
                      8: Convertir avec le nouveau système de la gestion de la mémoire :
                      9: - READ FLOW (longueur_effective ligne 2815)
                     10: rpl/src/'`instructions_w1-conv.c
                     11: instructions_w1-conv.c: In function ‘librpl_instruction_write’:
                     12: instructions_w1-conv.c:1603: warning: ‘ios’ may be used uninitialized in this
                     13: function
                     14: instructions_w1-conv.c:431: warning: ‘chaine’ may be used uninitialized in this
                     15: function
                     16: 
                     17: interruptions-conv.c: In function ‘librpl_liberation_threads’:
                     18: interruptions-conv.c:806: error: ‘struct_processus’ has no member named
                     19: ‘nombre_variables’
                     20: interruptions-conv.c:809: error: ‘struct_processus’ has no member named
                     21: ‘s_liste_variables’
                     22: interruptions-conv.c:811: error: ‘struct_processus’ has no member named
                     23: ‘s_liste_variables’
                     24: interruptions-conv.c:815: error: ‘struct_processus’ has no member named
                     25: ‘s_liste_variables’
                     26: interruptions-conv.c:818: error: ‘struct_processus’ has no member named
                     27: ‘s_liste_variables’
                     28: interruptions-conv.c:821: error: ‘struct_processus’ has no member named
                     29: ‘s_liste_variables’
                     30: interruptions-conv.c:824: error: ‘struct_processus’ has no member named
                     31: ‘s_liste_variables’
                     32: 
                     33: 
                     34: optimisation-conv.c: In function ‘librpl_sequenceur_optimise’:
                     35: optimisation-conv.c:75: error: ‘struct_processus’ has no member named
                     36: ‘nombre_variables’
                     37: optimisation-conv.c:77: error: ‘struct_processus’ has no member named
                     38: ‘s_liste_variables’
                     39: optimisation-conv.c:82: error: ‘struct_processus’ has no member named
                     40: ‘s_liste_variables’
                     41: optimisation-conv.c:133: error: ‘struct_processus’ has no member named
                     42: ‘s_liste_variables’
                     43: optimisation-conv.c:136: error: ‘struct_processus’ has no member named
                     44: ‘s_liste_variables’
                     45: optimisation-conv.c:151: error: ‘struct_processus’ has no member named
                     46: ‘s_liste_variables’
                     47: optimisation-conv.c:216: error: ‘struct_processus’ has no member named
                     48: ‘s_liste_variables’
                     49: optimisation-conv.c:234: error: ‘struct_processus’ has no member named
                     50: ‘s_liste_variables’
                     51: 
                     52: 
1.32      bertrand   53: Traiter SIGTERM
1.33      bertrand   54: RUN
1.36      bertrand   55: Ajouter MULTICAST (pour les sockets)
1.37      bertrand   56: Rajouter le test des dépassements pour INCR et DECR
1.33      bertrand   57: 
1.36      bertrand   58: 4.1 -> nouvelle gestion des variables
                     59: 
                     60: Ajouter TeXmacs
                     61: Ajouter giac$fonction
1.18      bertrand   62: 
1.1       bertrand   63: Dessiner les niveaux sur les graphes
                     64: { "main" { "default" } { "automatic" 10 } } axes redraw 
                     65: Ne fonctionne pas...
                     66: 
                     67: // Teste les interfaces d'entrée et de sortie d'une fonction. Une fonction
                     68: // peut avoir plusieurs interfaces.
1.15      bertrand   69: FONCTION
                     70: <<
                     71:    INTERFACE
                     72:        ALTERN
                     73:        RESULT
                     74:        REQUIRES
                     75:        END
                     76:    END
                     77: >>
                     78: 
1.13      bertrand   79: fonction
                     80:   INTERFACE
1.16      bertrand   81:    generic
1.15      bertrand   82:    integer scalar
1.13      bertrand   83:    real matrix
1.15      bertrand   84:    complex vector
1.13      bertrand   85:    table
                     86:    list
1.15      bertrand   87:    binary
                     88:    name
                     89:    string
                     90:    algebraic
                     91:    expression
                     92:    file
                     93:    socket
                     94:    library
                     95:    process
                     96:    sql
                     97:    mutex
                     98:    semaphore
                     99:   CONSTRAINED
                    100:    4 pick size 6 pick size same
1.13      bertrand  101:   RESULT
                    102:    type
                    103:   END
                    104: 
                    105:   INTERFACE
                    106:    integer
                    107:    real matrix
                    108:    integer/real/complex vector
                    109:    table
                    110:    list
                    111:   RESULT
                    112:    type
1.1       bertrand  113:   END
                    114: REQUIRES
1.15      bertrand  115:   variables globales ou définitions
1.1       bertrand  116: PROVIDES
                    117: <<
                    118: >>
                    119: 
                    120: Traiter les expressions et les noms dans les fichiers. Rajouter un
                    121: type de format pour les binaires non formatés (LOGICAL)
                    122: 
                    123: IMPORT -> installe à chaud de nouvelles définitions. Écrase les anciennes
                    124: si nécessaire.
                    125: 
                    126: Prévoir un drapeau pour tester les interfaces (34)
                    127: -> désarmé : test des interfaces
                    128: -> armé : on ne teste rien
                    129: 
                    130: colorspec pour les couleurs des graphiques de gnuplot
                    131: 
                    132: TRIGGER attaché à un objet (fonction appelée dès la modification de l'objet)
                    133: -> vérification de contrainte...
                    134: 
                    135: Decomposition de Hessenberg dgehrd, zgehrd; dorghr, zunghr for computing P
                    136: dgehd2.f+dgebal.f
                    137: 
                    138: Pseudo inverse dgelss, zgelss
                    139: 
                    140: Tables dans interface_tex
                    141: 
1.8       bertrand  142: Fichiers à accès direct -> entretenir une table en mémoire (hsearch())
1.1       bertrand  143: Les enregistrements sont de la forme :
                    144: [Position enregistrement suivant][enregistrement]
                    145: ADDNODE
                    146: DELNODE
                    147: 
                    148: { arguments } << programme >> << interruption >> SUBMIT
                    149: arg1 ... argn n << programme >> << interruption >> SUBMIT
1.28      bertrand  150: 
                    151: rpl -b (batch) 32 (nombre de threads)
1.1       bertrand  152: 
                    153: FOREIGN (pour les variables)
                    154: 
1.27      bertrand  155: Côté esclave
                    156: foreign -> X Y Z << >>
                    157: FVARLOCK
                    158: FVARUNLOCK
                    159: 
                    160: Côté maître
1.28      bertrand  161: foreign -> X Y Z << >> (il faut savoir si on est sur le mêtre ou sur un esclave)
1.27      bertrand  162: 
1.18      bertrand  163: FOREIGN permet à un esclave d'accéder à une variable partagée
                    164: du maître.
                    165: 
1.1       bertrand  166: ADDNOTE envoie les variables de niveau 0 au noeud client.
                    167: SUBMIT envoie l'adresse de création des variables 'foreign' au client
                    168: // Maître
                    169: << foreign 1 -> X
                    170:    <<
                    171:        << foreign -> X << 'X' incr >> >> << >> submit
                    172:    >>
                    173: >>
                    174: 
                    175: ================================================================================
                    176: 
                    177: Compilation -> faire un exécutable qui appelle rpl par rpl -S
                    178: 
                    179: Verification des erreurs mémoire dans le cas d'erreur avant l'appel au
                    180: séquenceur dans rpl.c
                    181: 
                    182: Coller un fichier ~/.rpl qui contient les valeurs par défaut des drapeaux
                    183: 
                    184: 'a(3)+a(3,4)' ne doit pas provoquer d'erreur si a est du type liste ou table.
                    185: Si a est une liste ou une table : une seule dimension possible !
                    186: 
                    187: [[ 1 2 ]]3 est valide !
                    188: 
                    189: Evaluation symbolique des fonction ?
                    190: 
                    191: SQL sur des données binaires
                    192: 
                    193: La manière standard de faire est d'utiliser des wchar_t pour représenter les
                    194: caractères (à distinguer des bytes).
                    195: Il y a plein de choses dans la bibliothèque standard :
                    196: - mbtowc et compagnie, et aussi mbrtowc et compagnie, une variante
                    197: probablement identique dans ton cas
                    198: - fgetwc, fputwc, fwprintf etc. pour les entrées-sorties
                    199: - wcs*() qui remplace les fonctions en str*()
                    200: 
                    201: Vérifier la cohérence des arguments de OPEN
                    202: 
                    203: TO DO
                    204:    File support : SEEK, SUPPRESS, REWRITE
                    205: 
                    206: Mettre des tableaux dans les formats binaires
                    207: 
                    208: Fichier en accès direct -> 12 {} puis entretenir un fichier d'index.
                    209: Fichiers flow
                    210: 
                    211: SLOPEFIELD
                    212: 
                    213: Simplification des expressions : convertir la notation polonaise en
                    214: arbre.
                    215: 
                    216: Problème d'indentation de
                    217: select
                    218:    case then end <- sur la même ligne

CVSweb interface <joel.bertrand@systella.fr>