Annotation of rpl/LIMITATIONS, revision 1.31
1.1 bertrand 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:
1.18 bertrand 7: Empêcher les interruptions ctrlC dans les appels récursifs (evaluation et
8: sequenceur)
9: Connexion au terminal de contrôle perdue !
10:
1.31 ! bertrand 11: { 123+ } -> erreur de syntaxe en boucle. Même problème avec les tables.
! 12:
1.18 bertrand 13: Routing library unloaded.
14:
1.1 bertrand 15: Dessiner les niveaux sur les graphes
16: { "main" { "default" } { "automatic" 10 } } axes redraw
17: Ne fonctionne pas...
18:
19: // Teste les interfaces d'entrée et de sortie d'une fonction. Une fonction
20: // peut avoir plusieurs interfaces.
1.15 bertrand 21: FONCTION
22: <<
23: INTERFACE
24: ALTERN
25: RESULT
26: REQUIRES
27: END
28: END
29: >>
30:
1.13 bertrand 31: fonction
32: INTERFACE
1.16 bertrand 33: generic
1.15 bertrand 34: integer scalar
1.13 bertrand 35: real matrix
1.15 bertrand 36: complex vector
1.13 bertrand 37: table
38: list
1.15 bertrand 39: binary
40: name
41: string
42: algebraic
43: expression
44: file
45: socket
46: library
47: process
48: sql
49: mutex
50: semaphore
51: CONSTRAINED
52: 4 pick size 6 pick size same
1.13 bertrand 53: RESULT
54: type
55: END
56:
57: INTERFACE
58: integer
59: real matrix
60: integer/real/complex vector
61: table
62: list
63: RESULT
64: type
1.1 bertrand 65: END
66: REQUIRES
1.15 bertrand 67: variables globales ou définitions
1.1 bertrand 68: PROVIDES
69: <<
70: >>
71:
72: Traiter les expressions et les noms dans les fichiers. Rajouter un
73: type de format pour les binaires non formatés (LOGICAL)
74:
75: IMPORT -> installe à chaud de nouvelles définitions. Écrase les anciennes
76: si nécessaire.
77:
78: Prévoir un drapeau pour tester les interfaces (34)
79: -> désarmé : test des interfaces
80: -> armé : on ne teste rien
81:
82: colorspec pour les couleurs des graphiques de gnuplot
83:
84: TRIGGER attaché à un objet (fonction appelée dès la modification de l'objet)
85: -> vérification de contrainte...
86:
87: Decomposition de Hessenberg dgehrd, zgehrd; dorghr, zunghr for computing P
88: dgehd2.f+dgebal.f
89:
90: Pseudo inverse dgelss, zgelss
91:
92: Tables dans interface_tex
93:
1.8 bertrand 94: Fichiers à accès direct -> entretenir une table en mémoire (hsearch())
1.1 bertrand 95: Les enregistrements sont de la forme :
96: [Position enregistrement suivant][enregistrement]
97: ADDNODE
98: DELNODE
99:
100: { arguments } << programme >> << interruption >> SUBMIT
101: arg1 ... argn n << programme >> << interruption >> SUBMIT
1.28 bertrand 102:
103: rpl -b (batch) 32 (nombre de threads)
1.1 bertrand 104:
105: FOREIGN (pour les variables)
106:
1.27 bertrand 107: Côté esclave
108: foreign -> X Y Z << >>
109: FVARLOCK
110: FVARUNLOCK
111:
112: Côté maître
1.28 bertrand 113: foreign -> X Y Z << >> (il faut savoir si on est sur le mêtre ou sur un esclave)
1.27 bertrand 114:
1.18 bertrand 115: FOREIGN permet à un esclave d'accéder à une variable partagée
116: du maître.
117:
1.1 bertrand 118: ADDNOTE envoie les variables de niveau 0 au noeud client.
119: SUBMIT envoie l'adresse de création des variables 'foreign' au client
120: // Maître
121: << foreign 1 -> X
122: <<
123: << foreign -> X << 'X' incr >> >> << >> submit
124: >>
125: >>
126:
127: ================================================================================
128:
129: Compilation -> faire un exécutable qui appelle rpl par rpl -S
130:
131: Verification des erreurs mémoire dans le cas d'erreur avant l'appel au
132: séquenceur dans rpl.c
133:
134: Coller un fichier ~/.rpl qui contient les valeurs par défaut des drapeaux
135:
136: 'a(3)+a(3,4)' ne doit pas provoquer d'erreur si a est du type liste ou table.
137: Si a est une liste ou une table : une seule dimension possible !
138:
139: [[ 1 2 ]]3 est valide !
140:
141: Evaluation symbolique des fonction ?
142:
143: SQL sur des données binaires
144:
145: La manière standard de faire est d'utiliser des wchar_t pour représenter les
146: caractères (à distinguer des bytes).
147: Il y a plein de choses dans la bibliothèque standard :
148: - mbtowc et compagnie, et aussi mbrtowc et compagnie, une variante
149: probablement identique dans ton cas
150: - fgetwc, fputwc, fwprintf etc. pour les entrées-sorties
151: - wcs*() qui remplace les fonctions en str*()
152:
153: FLOW (utilise en lecture FORMAT)
154:
155: Vérifier la cohérence des arguments de OPEN
156:
157: TO DO
158: File support : SEEK, SUPPRESS, REWRITE
159:
160: Mettre des tableaux dans les formats binaires
161:
162: Fichier en accès direct -> 12 {} puis entretenir un fichier d'index.
163: Fichiers flow
164:
165: SLOPEFIELD
166:
167: Simplification des expressions : convertir la notation polonaise en
168: arbre.
169:
170: Problème d'indentation de
171: select
172: case then end <- sur la même ligne
CVSweb interface <joel.bertrand@systella.fr>