File:
[local] /
rpl /
LIMITATIONS
Revision
1.80:
download - view:
text,
annotated -
select for diffs -
revision graph
Sun May 20 17:28:26 2012 UTC (12 years, 11 months ago) by
bertrand
Branches:
MAIN
CVS tags:
HEAD
Correction de POLL pour traiter une liste de descripteurs et obtenir
des informations sur les types d'actions "pollables". Ajout d'un
timeout dans SMPHRTRYDECR. Si ce timeout vaut 0, la fonction est
équivalente à l'ancienne fonction SMPHRTRYDECR.
1: RESTRICTIONS
2: Only sequential formatted files are supported.
3:
4: typedef MY_TYPE...
5: MY_TYPE a = { .flag = true, .value = 123, .stuff = 0.456 };
6:
7: Ajouter une évaluation dans GET et PUT 'X' { I } get
8:
9: Ajouter STOSIG CLRSIG SIGLOCK SIGUNLOCK SIGQUEUE ISIG WFSIG RCLSIG SIGSTATUS
10: Mettre un masque des signaux dans structure_processus et les
11: tableaux des signaux en variable globale (buffer circulaire protégé par un mutex
12: avec un trylock()).
13:
14: rplss signal processus
15:
16: Rajouter le format dans formateur_flux() (pour les fichiers de type flow).
17:
18: Économisons notre mépris eut égard au nombre de nécessiteux.
19: Chateaubriand.
20:
21: Translitération des fichiers (avec un pointeur sur la localisation du fichier
22: dans la structure du fichier).
23:
24: Fichiers non formatés : restent à coder pour les écritures :
25: * 0000 XXXX Binaire sur XXXX octets
26: * 0010 00 00 vecteur integer*1 (dimensions integer*1)
27: * 0010 01 00 vecteur integer*1 (dimensions integer*2)
28: * 0010 10 00 vecteur integer*1 (dimensions integer*4)
29: * 0010 11 00 vecteur integer*1 (dimensions integer*8)
30: * 0010 00 01 vecteur integer*2 (dimensions integer*1)
31: * 0010 01 01 vecteur integer*2 (dimensions integer*2)
32: * 0010 10 01 vecteur integer*2 (dimensions integer*4)
33: * 0010 11 01 vecteur integer*2 (dimensions integer*8)
34: * 0010 00 10 vecteur integer*4 (dimensions integer*1)
35: * 0010 01 10 vecteur integer*4 (dimensions integer*2)
36: * 0010 10 10 vecteur integer*4 (dimensions integer*4)
37: * 0010 11 10 vecteur integer*4 (dimensions integer*8)
38: * 0010 00 11 vecteur integer*8 (dimensions integer*1)
39: * 0010 01 11 vecteur integer*8 (dimensions integer*2)
40: * 0010 10 11 vecteur integer*8 (dimensions integer*4)
41: * 0010 11 11 vecteur integer*8 (dimensions integer*8)
42: * 0011 00 00 matrice integer*1 (dimensions integer*1)
43: * 0011 01 00 matrice integer*1 (dimensions integer*2)
44: * 0011 10 00 matrice integer*1 (dimensions integer*4)
45: * 0011 11 00 matrice integer*1 (dimensions integer*8)
46: * 0011 00 01 matrice integer*2 (dimensions integer*1)
47: * 0011 01 01 matrice integer*2 (dimensions integer*2)
48: * 0011 10 01 matrice integer*2 (dimensions integer*4)
49: * 0011 11 01 matrice integer*2 (dimensions integer*8)
50: * 0011 00 10 matrice integer*4 (dimensions integer*1)
51: * 0011 01 10 matrice integer*4 (dimensions integer*2)
52: * 0011 10 10 matrice integer*4 (dimensions integer*4)
53: * 0011 11 10 matrice integer*4 (dimensions integer*8)
54: * 0011 00 11 matrice integer*8 (dimensions integer*1)
55: * 0011 01 11 matrice integer*8 (dimensions integer*2)
56: * 0011 10 11 matrice integer*8 (dimensions integer*4)
57: * 0011 11 11 matrice integer*8 (dimensions integer*8)
58: * 0101 0 XXX nom de longueur XXX
59: * 0101 10 LL nom de longueur integer*LL
60: * 0110 0 XXX expression RPN
61: * 0110 10 LL
62: * 0111 0 XXX expression algébrique
63: * 0111 10 LL
64: * 1000 0 XXX chaîne de caractères
65: * 1000 10 LL
66: * 1001 0 XXX table de longueur XXX
67: * 1001 10 00 table de longueur integer*1
68: * 1001 10 01 table de longueur integer*2
69: * 1001 10 10 table de longueur integer*4
70: * 1001 10 11 table de longueur integer*8
71: *
72: * 1010 00 10 vecteur real*4 (dimensions integer*1)
73: * 1010 01 10 vecteur real*4 (dimensions integer*2)
74: * 1010 10 10 vecteur real*4 (dimensions integer*4)
75: * 1010 11 10 vecteur real*4 (dimensions integer*8)
76: * 1010 00 11 vecteur real*8 (dimensions integer*1)
77: * 1010 01 11 vecteur real*8 (dimensions integer*2)
78: * 1010 10 11 vecteur real*8 (dimensions integer*4)
79: * 1010 11 11 vecteur real*8 (dimensions integer*8)
80: * 1011 00 10 vecteur complex*8 (dimensions integer*1)
81: * 1011 01 10 vecteur complex*8 (dimensions integer*2)
82: * 1011 10 10 vecteur complex*8 (dimensions integer*4)
83: * 1011 11 10 vecteur complex*8 (dimensions integer*8)
84: * 1011 00 11 vecteur complex*16 (dimensions integer*1)
85: * 1011 01 11 vecteur complex*16 (dimensions integer*2)
86: * 1011 10 11 vecteur complex*16 (dimensions integer*4)
87: * 1011 11 11 vecteur complex*16 (dimensions integer*8)
88: * 1100 00 10 matrice real*4 (dimensions integer*1)
89: * 1100 01 10 matrice real*4 (dimensions integer*2)
90: * 1100 10 10 matrice real*4 (dimensions integer*4)
91: * 1100 11 10 matrice real*4 (dimensions integer*8)
92: * 1100 00 11 matrice real*8 (dimensions integer*1)
93: * 1100 01 11 matrice real*8 (dimensions integer*2)
94: * 1100 10 11 matrice real*8 (dimensions integer*4)
95: * 1100 11 11 matrice real*8 (dimensions integer*8)
96: * 1101 00 10 matrice complex*8 (dimensions integer*1)
97: * 1101 01 10 matrice complex*8 (dimensions integer*2)
98: * 1101 10 10 matrice complex*8 (dimensions integer*4)
99: * 1101 11 10 matrice complex*8 (dimensions integer*8)
100: * 1101 00 11 matrice complex*16 (dimensions integer*1)
101: * 1101 01 11 matrice complex*16 (dimensions integer*2)
102: * 1101 10 11 matrice complex*16 (dimensions integer*4)
103: * 1101 11 11 matrice complex*16 (dimensions integer*8)
104:
105: Utiliser clock() et clock_t pour émuler getrusage sous OS/2
106:
107: Regarder les d_ep_division_par_zero pour coller un undef à la place.
108:
109: ->TAG TAG-> DTAG
110: ->UNIT UNIT-> DUNIT
111:
112: Convertir avec le nouveau système de la gestion de la mémoire :
113: - READ FLOW (longueur_effective ligne 2815)
114: rpl/src/'`instructions_w1-conv.c
115: instructions_w1-conv.c: In function ‘librpl_instruction_write’:
116: instructions_w1-conv.c:1603: warning: ‘ios’ may be used uninitialized in this
117: function
118: instructions_w1-conv.c:431: warning: ‘chaine’ may be used uninitialized in this
119: function
120:
121: Traiter SIGTERM
122: RUN
123: Ajouter MULTICAST (pour les sockets)
124: Rajouter le test des dépassements pour INCR et DECR
125:
126: Ajouter TeXmacs
127:
128: Dessiner les niveaux sur les graphes
129: { "main" { "default" } { "automatic" 10 } } axes redraw
130: Ne fonctionne pas...
131:
132: -> I:integer scalar, J:integer scalar << >>
133:
134: // Teste les interfaces d'entrée et de sortie d'une fonction. Une fonction
135: // peut avoir plusieurs interfaces.
136:
137: constrained FONCTION
138: interface STANDARD
139: integer scalar, generic, real scalar
140: returns
141: real scalar
142: or
143: integer scalar
144: requires
145: VARIABLE FONCTION2
146: end
147:
148: interface SPECIFIQUE
149: scalar, ...
150: returns
151: scalar
152: requires
153: end
154: provides
155: <<
156: >>
157:
158: Ajouter un champs dans RPN et ADR pour pointer vers une liste.
159:
160: Types :
161: generic
162: scalar (integer/real/complex)
163: vector (integer/real/complex)
164: matrix (integer/real/complex)
165: table
166: list
167: binary
168: name
169: string
170: algebraic
171: expression
172: file
173: socket
174: library
175: process
176: sql
177: mutex
178: semaphore
179:
180: Traiter les expressions et les noms dans les fichiers. Rajouter un
181: type de format pour les binaires non formatés (LOGICAL)
182:
183: IMPORT -> installe à chaud de nouvelles définitions. Écrase les anciennes
184: si nécessaire.
185:
186: Prévoir un drapeau pour tester les interfaces (34)
187: -> désarmé : test des interfaces
188: -> armé : on ne teste rien
189:
190: colorspec pour les couleurs des graphiques de gnuplot
191:
192: TRIGGER attaché à un objet (fonction appelée dès la modification de l'objet)
193: -> vérification de contrainte...
194:
195: Decomposition de Hessenberg dgehrd, zgehrd; dorghr, zunghr for computing P
196: dgehd2.f+dgebal.f
197:
198: Pseudo inverse dgelss, zgelss
199:
200: Tables dans interface_tex
201:
202: Fichiers à accès direct -> entretenir une table en mémoire (hsearch())
203: Les enregistrements sont de la forme :
204: [Position enregistrement suivant][enregistrement]
205: ADDNODE
206: DELNODE
207:
208: { arguments } << programme >> << interruption >> SUBMIT
209: arg1 ... argn n << programme >> << interruption >> SUBMIT
210:
211: rpl -b (batch) 32 (nombre de threads)
212:
213: FOREIGN (pour les variables)
214:
215: Côté esclave
216: foreign -> X Y Z << >>
217: FVARLOCK
218: FVARUNLOCK
219:
220: Côté maître
221: foreign -> X Y Z << >> (il faut savoir si on est sur le mêtre ou sur un esclave)
222:
223: FOREIGN permet à un esclave d'accéder à une variable partagée
224: du maître.
225:
226: ADDNOTE envoie les variables de niveau 0 au noeud client.
227: SUBMIT envoie l'adresse de création des variables 'foreign' au client
228: // Maître
229: << foreign 1 -> X
230: <<
231: << foreign -> X << 'X' incr >> >> << >> submit
232: >>
233: >>
234:
235: ================================================================================
236:
237: Compilation -> faire un exécutable qui appelle rpl par rpl -S
238:
239: Verification des erreurs mémoire dans le cas d'erreur avant l'appel au
240: séquenceur dans rpl.c
241:
242: Coller un fichier ~/.rpl qui contient les valeurs par défaut des drapeaux
243:
244: 'a(3)+a(3,4)' ne doit pas provoquer d'erreur si a est du type liste ou table.
245: Si a est une liste ou une table : une seule dimension possible !
246:
247: [[ 1 2 ]]3 est valide !
248:
249: Evaluation symbolique des fonction ?
250:
251: SQL sur des données binaires
252:
253: La manière standard de faire est d'utiliser des wchar_t pour représenter les
254: caractères (à distinguer des bytes).
255: Il y a plein de choses dans la bibliothèque standard :
256: - mbtowc et compagnie, et aussi mbrtowc et compagnie, une variante
257: probablement identique dans ton cas
258: - fgetwc, fputwc, fwprintf etc. pour les entrées-sorties
259: - wcs*() qui remplace les fonctions en str*()
260:
261: Vérifier la cohérence des arguments de OPEN
262:
263: TO DO
264: File support : SEEK, SUPPRESS, REWRITE
265:
266: Mettre des tableaux dans les formats binaires
267:
268: Fichier en accès direct -> 12 {} puis entretenir un fichier d'index.
269: Fichiers flow
270:
271: SLOPEFIELD
272:
273: Simplification des expressions : convertir la notation polonaise en
274: arbre.
275:
276: Problème d'indentation de
277: select
278: case then end <- sur la même ligne
CVSweb interface <joel.bertrand@systella.fr>