Annotation of rpl/LIMITATIONS, revision 1.28

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.18      bertrand    7: Empêcher les interruptions ctrlC dans les appels récursifs (evaluation et
                      8: sequenceur)
                      9: Connexion au terminal de contrôle perdue !
                     10: 
                     11: Routing library unloaded.
                     12: 
1.1       bertrand   13: Dessiner les niveaux sur les graphes
                     14: { "main" { "default" } { "automatic" 10 } } axes redraw 
                     15: Ne fonctionne pas...
                     16: 
                     17: // Teste les interfaces d'entrée et de sortie d'une fonction. Une fonction
                     18: // peut avoir plusieurs interfaces.
1.15      bertrand   19: FONCTION
                     20: <<
                     21:    INTERFACE
                     22:        ALTERN
                     23:        RESULT
                     24:        REQUIRES
                     25:        END
                     26:    END
                     27: >>
                     28: 
1.13      bertrand   29: fonction
                     30:   INTERFACE
1.16      bertrand   31:    generic
1.15      bertrand   32:    integer scalar
1.13      bertrand   33:    real matrix
1.15      bertrand   34:    complex vector
1.13      bertrand   35:    table
                     36:    list
1.15      bertrand   37:    binary
                     38:    name
                     39:    string
                     40:    algebraic
                     41:    expression
                     42:    file
                     43:    socket
                     44:    library
                     45:    process
                     46:    sql
                     47:    mutex
                     48:    semaphore
                     49:   CONSTRAINED
                     50:    4 pick size 6 pick size same
1.13      bertrand   51:   RESULT
                     52:    type
                     53:   END
                     54: 
                     55:   INTERFACE
                     56:    integer
                     57:    real matrix
                     58:    integer/real/complex vector
                     59:    table
                     60:    list
                     61:   RESULT
                     62:    type
1.1       bertrand   63:   END
                     64: REQUIRES
1.15      bertrand   65:   variables globales ou définitions
1.1       bertrand   66: PROVIDES
                     67: <<
                     68: >>
                     69: 
                     70: Traiter les expressions et les noms dans les fichiers. Rajouter un
                     71: type de format pour les binaires non formatés (LOGICAL)
                     72: 
                     73: IMPORT -> installe à chaud de nouvelles définitions. Écrase les anciennes
                     74: si nécessaire.
                     75: 
                     76: Prévoir un drapeau pour tester les interfaces (34)
                     77: -> désarmé : test des interfaces
                     78: -> armé : on ne teste rien
                     79: 
                     80: colorspec pour les couleurs des graphiques de gnuplot
                     81: 
                     82: TRIGGER attaché à un objet (fonction appelée dès la modification de l'objet)
                     83: -> vérification de contrainte...
                     84: 
                     85: Decomposition de Hessenberg dgehrd, zgehrd; dorghr, zunghr for computing P
                     86: dgehd2.f+dgebal.f
                     87: 
                     88: Pseudo inverse dgelss, zgelss
                     89: 
                     90: Tables dans interface_tex
                     91: 
1.8       bertrand   92: Fichiers à accès direct -> entretenir une table en mémoire (hsearch())
1.1       bertrand   93: Les enregistrements sont de la forme :
                     94: [Position enregistrement suivant][enregistrement]
                     95: ADDNODE
                     96: DELNODE
                     97: 
                     98: { arguments } << programme >> << interruption >> SUBMIT
                     99: arg1 ... argn n << programme >> << interruption >> SUBMIT
1.28    ! bertrand  100: 
        !           101: rpl -b (batch) 32 (nombre de threads)
1.1       bertrand  102: 
                    103: FOREIGN (pour les variables)
                    104: 
1.27      bertrand  105: Côté esclave
                    106: foreign -> X Y Z << >>
                    107: FVARLOCK
                    108: FVARUNLOCK
                    109: 
                    110: Côté maître
1.28    ! bertrand  111: foreign -> X Y Z << >> (il faut savoir si on est sur le mêtre ou sur un esclave)
1.27      bertrand  112: 
1.18      bertrand  113: FOREIGN permet à un esclave d'accéder à une variable partagée
                    114: du maître.
                    115: 
1.1       bertrand  116: ADDNOTE envoie les variables de niveau 0 au noeud client.
                    117: SUBMIT envoie l'adresse de création des variables 'foreign' au client
                    118: // Maître
                    119: << foreign 1 -> X
                    120:    <<
                    121:        << foreign -> X << 'X' incr >> >> << >> submit
                    122:    >>
                    123: >>
                    124: 
                    125: ================================================================================
                    126: 
                    127: Compilation -> faire un exécutable qui appelle rpl par rpl -S
                    128: 
                    129: Verification des erreurs mémoire dans le cas d'erreur avant l'appel au
                    130: séquenceur dans rpl.c
                    131: 
                    132: Coller un fichier ~/.rpl qui contient les valeurs par défaut des drapeaux
                    133: 
                    134: 'a(3)+a(3,4)' ne doit pas provoquer d'erreur si a est du type liste ou table.
                    135: Si a est une liste ou une table : une seule dimension possible !
                    136: 
                    137: [[ 1 2 ]]3 est valide !
                    138: 
                    139: Evaluation symbolique des fonction ?
                    140: 
                    141: SQL sur des données binaires
                    142: 
                    143: La manière standard de faire est d'utiliser des wchar_t pour représenter les
                    144: caractères (à distinguer des bytes).
                    145: Il y a plein de choses dans la bibliothèque standard :
                    146: - mbtowc et compagnie, et aussi mbrtowc et compagnie, une variante
                    147: probablement identique dans ton cas
                    148: - fgetwc, fputwc, fwprintf etc. pour les entrées-sorties
                    149: - wcs*() qui remplace les fonctions en str*()
                    150: 
                    151: FLOW (utilise en lecture FORMAT)
                    152: 
                    153: Vérifier la cohérence des arguments de OPEN
                    154: 
                    155: TO DO
                    156:    File support : SEEK, SUPPRESS, REWRITE
                    157: 
                    158: Mettre des tableaux dans les formats binaires
                    159: 
                    160: Fichier en accès direct -> 12 {} puis entretenir un fichier d'index.
                    161: Fichiers flow
                    162: 
                    163: SLOPEFIELD
                    164: 
                    165: Simplification des expressions : convertir la notation polonaise en
                    166: arbre.
                    167: 
                    168: Problème d'indentation de
                    169: select
                    170:    case then end <- sur la même ligne

CVSweb interface <joel.bertrand@systella.fr>