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