Annotation of rpl/LIMITATIONS, revision 1.54
1.1 bertrand 1: RESTRICTIONS
2: Only sequential formatted files are supported.
3:
1.52 bertrand 4: Créer une librpl.so pour pouvoir créer des programmes utilisant motif !
1.49 bertrand 5:
1.1 bertrand 6: Économisons notre mépris eut égard au nombre de nécessiteux.
7: Chateaubriand.
8:
1.54 ! bertrand 9: Utiliser clock() et clock_t pour émuler getrusage sous OS/2
! 10:
1.47 bertrand 11: Regarder les d_ep_division_par_zero pour coller un undef à la place.
12:
1.53 bertrand 13: ->TAG TAG-> DTAG
14: ->UNIT UNIT-> DUNIT
15:
1.37 bertrand 16: Convertir avec le nouveau système de la gestion de la mémoire :
17: - READ FLOW (longueur_effective ligne 2815)
18: rpl/src/'`instructions_w1-conv.c
19: instructions_w1-conv.c: In function ‘librpl_instruction_write’:
20: instructions_w1-conv.c:1603: warning: ‘ios’ may be used uninitialized in this
21: function
22: instructions_w1-conv.c:431: warning: ‘chaine’ may be used uninitialized in this
23: function
24:
1.32 bertrand 25: Traiter SIGTERM
1.33 bertrand 26: RUN
1.36 bertrand 27: Ajouter MULTICAST (pour les sockets)
1.37 bertrand 28: Rajouter le test des dépassements pour INCR et DECR
1.33 bertrand 29:
1.36 bertrand 30: Ajouter TeXmacs
1.18 bertrand 31:
1.1 bertrand 32: Dessiner les niveaux sur les graphes
33: { "main" { "default" } { "automatic" 10 } } axes redraw
34: Ne fonctionne pas...
35:
1.48 bertrand 36: -> I:integer scalar, J:integer scalar << >>
37:
1.1 bertrand 38: // Teste les interfaces d'entrée et de sortie d'une fonction. Une fonction
39: // peut avoir plusieurs interfaces.
1.42 bertrand 40:
1.48 bertrand 41: constrained FONCTION
42: interface STANDARD
43: integer scalar, generic, real scalar
1.42 bertrand 44: returns
1.48 bertrand 45: real scalar
46: or
47: integer scalar
1.42 bertrand 48: requires
1.48 bertrand 49: VARIABLE FONCTION2
1.42 bertrand 50: end
51:
1.48 bertrand 52: interface SPECIFIQUE
53: scalar, ...
1.42 bertrand 54: returns
1.48 bertrand 55: scalar
1.42 bertrand 56: requires
57: end
58: provides
1.15 bertrand 59: <<
60: >>
61:
1.42 bertrand 62: Ajouter un champs dans RPN et ADR pour pointer vers une liste.
63:
64: Types :
65: generic
66: scalar (integer/real/complex)
67: vector (integer/real/complex)
68: matrix (integer/real/complex)
69: table
70: list
71: binary
72: name
73: string
74: algebraic
75: expression
76: file
77: socket
78: library
79: process
80: sql
81: mutex
82: semaphore
83:
1.1 bertrand 84: Traiter les expressions et les noms dans les fichiers. Rajouter un
85: type de format pour les binaires non formatés (LOGICAL)
86:
87: IMPORT -> installe à chaud de nouvelles définitions. Écrase les anciennes
88: si nécessaire.
89:
90: Prévoir un drapeau pour tester les interfaces (34)
91: -> désarmé : test des interfaces
92: -> armé : on ne teste rien
93:
94: colorspec pour les couleurs des graphiques de gnuplot
95:
96: TRIGGER attaché à un objet (fonction appelée dès la modification de l'objet)
97: -> vérification de contrainte...
98:
99: Decomposition de Hessenberg dgehrd, zgehrd; dorghr, zunghr for computing P
100: dgehd2.f+dgebal.f
101:
102: Pseudo inverse dgelss, zgelss
103:
104: Tables dans interface_tex
105:
1.8 bertrand 106: Fichiers à accès direct -> entretenir une table en mémoire (hsearch())
1.1 bertrand 107: Les enregistrements sont de la forme :
108: [Position enregistrement suivant][enregistrement]
109: ADDNODE
110: DELNODE
111:
112: { arguments } << programme >> << interruption >> SUBMIT
113: arg1 ... argn n << programme >> << interruption >> SUBMIT
1.28 bertrand 114:
115: rpl -b (batch) 32 (nombre de threads)
1.1 bertrand 116:
117: FOREIGN (pour les variables)
118:
1.27 bertrand 119: Côté esclave
120: foreign -> X Y Z << >>
121: FVARLOCK
122: FVARUNLOCK
123:
124: Côté maître
1.28 bertrand 125: foreign -> X Y Z << >> (il faut savoir si on est sur le mêtre ou sur un esclave)
1.27 bertrand 126:
1.18 bertrand 127: FOREIGN permet à un esclave d'accéder à une variable partagée
128: du maître.
129:
1.1 bertrand 130: ADDNOTE envoie les variables de niveau 0 au noeud client.
131: SUBMIT envoie l'adresse de création des variables 'foreign' au client
132: // Maître
133: << foreign 1 -> X
134: <<
135: << foreign -> X << 'X' incr >> >> << >> submit
136: >>
137: >>
138:
139: ================================================================================
140:
141: Compilation -> faire un exécutable qui appelle rpl par rpl -S
142:
143: Verification des erreurs mémoire dans le cas d'erreur avant l'appel au
144: séquenceur dans rpl.c
145:
146: Coller un fichier ~/.rpl qui contient les valeurs par défaut des drapeaux
147:
148: 'a(3)+a(3,4)' ne doit pas provoquer d'erreur si a est du type liste ou table.
149: Si a est une liste ou une table : une seule dimension possible !
150:
151: [[ 1 2 ]]3 est valide !
152:
153: Evaluation symbolique des fonction ?
154:
155: SQL sur des données binaires
156:
157: La manière standard de faire est d'utiliser des wchar_t pour représenter les
158: caractères (à distinguer des bytes).
159: Il y a plein de choses dans la bibliothèque standard :
160: - mbtowc et compagnie, et aussi mbrtowc et compagnie, une variante
161: probablement identique dans ton cas
162: - fgetwc, fputwc, fwprintf etc. pour les entrées-sorties
163: - wcs*() qui remplace les fonctions en str*()
164:
165: Vérifier la cohérence des arguments de OPEN
166:
167: TO DO
168: File support : SEEK, SUPPRESS, REWRITE
169:
170: Mettre des tableaux dans les formats binaires
171:
172: Fichier en accès direct -> 12 {} puis entretenir un fichier d'index.
173: Fichiers flow
174:
175: SLOPEFIELD
176:
177: Simplification des expressions : convertir la notation polonaise en
178: arbre.
179:
180: Problème d'indentation de
181: select
182: case then end <- sur la même ligne
CVSweb interface <joel.bertrand@systella.fr>