Annotation of rpl/LIMITATIONS, revision 1.24
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.24 ! bertrand 7: Mettre les variables dans un arbre avec une liste chaînée des niveaux dans
1.1 bertrand 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: 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:
1.1 bertrand 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.
1.15 bertrand 28: FONCTION
29: <<
30: INTERFACE
31: ALTERN
32: RESULT
33: REQUIRES
34: END
35: END
36: >>
37:
1.13 bertrand 38: fonction
39: INTERFACE
1.16 bertrand 40: generic
1.15 bertrand 41: integer scalar
1.13 bertrand 42: real matrix
1.15 bertrand 43: complex vector
1.13 bertrand 44: table
45: list
1.15 bertrand 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
1.13 bertrand 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
1.1 bertrand 72: END
73: REQUIRES
1.15 bertrand 74: variables globales ou définitions
1.1 bertrand 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:
1.8 bertrand 101: Fichiers à accès direct -> entretenir une table en mémoire (hsearch())
1.1 bertrand 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:
1.18 bertrand 114: FOREIGN permet à un esclave d'accéder à une variable partagée
115: du maître.
116:
1.1 bertrand 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>