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