File:
[local] /
rpl /
LIMITATIONS
Revision
1.38:
download - view:
text,
annotated -
select for diffs -
revision graph
Mon Jun 20 17:34:09 2011 UTC (13 years, 10 months ago) by
bertrand
Branches:
MAIN
CVS tags:
HEAD
La nouvelle gestion des variables fonctionne sur des programmes non
compilés utilisant des variables de tous niveaux. Les différentes techniques
de masquage des variables ont été testées ainsi que les portées des variables.
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: Virer les cases vides dans la pile des variables par niveau.
8:
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:
59: Traiter SIGTERM
60: RUN
61: Ajouter MULTICAST (pour les sockets)
62: Rajouter le test des dépassements pour INCR et DECR
63:
64: 4.1 -> nouvelle gestion des variables
65:
66: Ajouter TeXmacs
67: Ajouter giac$fonction
68:
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.
75: FONCTION
76: <<
77: INTERFACE
78: ALTERN
79: RESULT
80: REQUIRES
81: END
82: END
83: >>
84:
85: fonction
86: INTERFACE
87: generic
88: integer scalar
89: real matrix
90: complex vector
91: table
92: list
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
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
119: END
120: REQUIRES
121: variables globales ou définitions
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:
148: Fichiers à accès direct -> entretenir une table en mémoire (hsearch())
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
156:
157: rpl -b (batch) 32 (nombre de threads)
158:
159: FOREIGN (pour les variables)
160:
161: Côté esclave
162: foreign -> X Y Z << >>
163: FVARLOCK
164: FVARUNLOCK
165:
166: Côté maître
167: foreign -> X Y Z << >> (il faut savoir si on est sur le mêtre ou sur un esclave)
168:
169: FOREIGN permet à un esclave d'accéder à une variable partagée
170: du maître.
171:
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>