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