Annotation of rpl/LIMITATIONS, revision 1.18

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

CVSweb interface <joel.bertrand@systella.fr>