--- rpl/LIMITATIONS 2010/03/09 10:15:27 1.11 +++ rpl/LIMITATIONS 2011/06/21 08:01:03 1.39 @@ -4,8 +4,61 @@ RESTRICTIONS Économisons notre mépris eut égard au nombre de nécessiteux. Chateaubriand. -Mettre les variables dans un arbre avec une liste chaîne des niveaux dans -chaque maillon de la pile système. -> version 4.1 +Libérer la mémoire (arbre des variables) à la fin d'un processus et d'un thread +Convertir avec le nouveau système de la gestion de la mémoire : +- READ FLOW (longueur_effective ligne 2815) +rpl/src/'`instructions_w1-conv.c +instructions_w1-conv.c: In function ‘librpl_instruction_write’: +instructions_w1-conv.c:1603: warning: ‘ios’ may be used uninitialized in this +function +instructions_w1-conv.c:431: warning: ‘chaine’ may be used uninitialized in this +function + +interruptions-conv.c: In function ‘librpl_liberation_threads’: +interruptions-conv.c:806: error: ‘struct_processus’ has no member named +‘nombre_variables’ +interruptions-conv.c:809: error: ‘struct_processus’ has no member named +‘s_liste_variables’ +interruptions-conv.c:811: error: ‘struct_processus’ has no member named +‘s_liste_variables’ +interruptions-conv.c:815: error: ‘struct_processus’ has no member named +‘s_liste_variables’ +interruptions-conv.c:818: error: ‘struct_processus’ has no member named +‘s_liste_variables’ +interruptions-conv.c:821: error: ‘struct_processus’ has no member named +‘s_liste_variables’ +interruptions-conv.c:824: error: ‘struct_processus’ has no member named +‘s_liste_variables’ + + +optimisation-conv.c: In function ‘librpl_sequenceur_optimise’: +optimisation-conv.c:75: error: ‘struct_processus’ has no member named +‘nombre_variables’ +optimisation-conv.c:77: error: ‘struct_processus’ has no member named +‘s_liste_variables’ +optimisation-conv.c:82: error: ‘struct_processus’ has no member named +‘s_liste_variables’ +optimisation-conv.c:133: error: ‘struct_processus’ has no member named +‘s_liste_variables’ +optimisation-conv.c:136: error: ‘struct_processus’ has no member named +‘s_liste_variables’ +optimisation-conv.c:151: error: ‘struct_processus’ has no member named +‘s_liste_variables’ +optimisation-conv.c:216: error: ‘struct_processus’ has no member named +‘s_liste_variables’ +optimisation-conv.c:234: error: ‘struct_processus’ has no member named +‘s_liste_variables’ + + +Traiter SIGTERM +RUN +Ajouter MULTICAST (pour les sockets) +Rajouter le test des dépassements pour INCR et DECR + +4.1 -> nouvelle gestion des variables + +Ajouter TeXmacs +Ajouter giac$fonction Dessiner les niveaux sur les graphes { "main" { "default" } { "automatic" 10 } } axes redraw @@ -13,29 +66,55 @@ Ne fonctionne pas... // Teste les interfaces d'entrée et de sortie d'une fonction. Une fonction // peut avoir plusieurs interfaces. -ROUTINE - INTERFACE fonction - ALTERN - integer - real matrix - integer/real/complex vector - table - list - RESULT - type - END - END -REQUIRES -PROVIDES -CONTAINS +FONCTION << + INTERFACE + ALTERN + RESULT + REQUIRES + END + END >> -ROUTINE +fonction + INTERFACE + generic + integer scalar + real matrix + complex vector + table + list + binary + name + string + algebraic + expression + file + socket + library + process + sql + mutex + semaphore + CONSTRAINED + 4 pick size 6 pick size same + RESULT + type + END + + INTERFACE + integer + real matrix + integer/real/complex vector + table + list + RESULT + type + END +REQUIRES + variables globales ou définitions +PROVIDES << - -> I - << - >> >> Traiter les expressions et les noms dans les fichiers. Rajouter un @@ -68,11 +147,22 @@ DELNODE { arguments } << programme >> << interruption >> SUBMIT arg1 ... argn n << programme >> << interruption >> SUBMIT -n BATCH (lance N threads simultanés en boucle) Arrêt lorsque DELNODE est -appelé du noeud maître + +rpl -b (batch) 32 (nombre de threads) FOREIGN (pour les variables) +Côté esclave +foreign -> X Y Z << >> +FVARLOCK +FVARUNLOCK + +Côté maître +foreign -> X Y Z << >> (il faut savoir si on est sur le mêtre ou sur un esclave) + +FOREIGN permet à un esclave d'accéder à une variable partagée +du maître. + ADDNOTE envoie les variables de niveau 0 au noeud client. SUBMIT envoie l'adresse de création des variables 'foreign' au client // Maître @@ -108,8 +198,6 @@ probablement identique dans ton cas - fgetwc, fputwc, fwprintf etc. pour les entrées-sorties - wcs*() qui remplace les fonctions en str*() -FLOW (utilise en lecture FORMAT) - Vérifier la cohérence des arguments de OPEN TO DO