--- rpl/LIMITATIONS 2010/03/09 10:15:27 1.11 +++ rpl/LIMITATIONS 2011/11/17 19:29:35 1.56 @@ -4,40 +4,165 @@ 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 +Translitération des fichiers (avec un pointeur sur la localisation du fichier +dans la structure du fichier). + +Fichiers non formatés : restent à coder pour les écritures : + * 0000 XXXX Binaire sur XXXX octets + * 0010 00 00 vecteur integer*1 (dimensions integer*1) + * 0010 01 00 vecteur integer*1 (dimensions integer*2) + * 0010 10 00 vecteur integer*1 (dimensions integer*4) + * 0010 11 00 vecteur integer*1 (dimensions integer*8) + * 0010 00 01 vecteur integer*2 (dimensions integer*1) + * 0010 01 01 vecteur integer*2 (dimensions integer*2) + * 0010 10 01 vecteur integer*2 (dimensions integer*4) + * 0010 11 01 vecteur integer*2 (dimensions integer*8) + * 0010 00 10 vecteur integer*4 (dimensions integer*1) + * 0010 01 10 vecteur integer*4 (dimensions integer*2) + * 0010 10 10 vecteur integer*4 (dimensions integer*4) + * 0010 11 10 vecteur integer*4 (dimensions integer*8) + * 0010 00 11 vecteur integer*8 (dimensions integer*1) + * 0010 01 11 vecteur integer*8 (dimensions integer*2) + * 0010 10 11 vecteur integer*8 (dimensions integer*4) + * 0010 11 11 vecteur integer*8 (dimensions integer*8) + * 0011 00 00 matrice integer*1 (dimensions integer*1) + * 0011 01 00 matrice integer*1 (dimensions integer*2) + * 0011 10 00 matrice integer*1 (dimensions integer*4) + * 0011 11 00 matrice integer*1 (dimensions integer*8) + * 0011 00 01 matrice integer*2 (dimensions integer*1) + * 0011 01 01 matrice integer*2 (dimensions integer*2) + * 0011 10 01 matrice integer*2 (dimensions integer*4) + * 0011 11 01 matrice integer*2 (dimensions integer*8) + * 0011 00 10 matrice integer*4 (dimensions integer*1) + * 0011 01 10 matrice integer*4 (dimensions integer*2) + * 0011 10 10 matrice integer*4 (dimensions integer*4) + * 0011 11 10 matrice integer*4 (dimensions integer*8) + * 0011 00 11 matrice integer*8 (dimensions integer*1) + * 0011 01 11 matrice integer*8 (dimensions integer*2) + * 0011 10 11 matrice integer*8 (dimensions integer*4) + * 0011 11 11 matrice integer*8 (dimensions integer*8) + * 0101 0 XXX nom de longueur XXX + * 0101 10 LL nom de longueur integer*LL + * 0110 0 XXX expression RPN + * 0110 10 LL + * 0111 0 XXX expression algébrique + * 0111 10 LL + * 1000 0 XXX chaîne de caractères + * 1000 10 LL + * 1001 0 XXX table de longueur XXX + * 1001 10 00 table de longueur integer*1 + * 1001 10 01 table de longueur integer*2 + * 1001 10 10 table de longueur integer*4 + * 1001 10 11 table de longueur integer*8 + * + * 1010 00 10 vecteur real*4 (dimensions integer*1) + * 1010 01 10 vecteur real*4 (dimensions integer*2) + * 1010 10 10 vecteur real*4 (dimensions integer*4) + * 1010 11 10 vecteur real*4 (dimensions integer*8) + * 1010 00 11 vecteur real*8 (dimensions integer*1) + * 1010 01 11 vecteur real*8 (dimensions integer*2) + * 1010 10 11 vecteur real*8 (dimensions integer*4) + * 1010 11 11 vecteur real*8 (dimensions integer*8) + * 1011 00 10 vecteur complex*8 (dimensions integer*1) + * 1011 01 10 vecteur complex*8 (dimensions integer*2) + * 1011 10 10 vecteur complex*8 (dimensions integer*4) + * 1011 11 10 vecteur complex*8 (dimensions integer*8) + * 1011 00 11 vecteur complex*16 (dimensions integer*1) + * 1011 01 11 vecteur complex*16 (dimensions integer*2) + * 1011 10 11 vecteur complex*16 (dimensions integer*4) + * 1011 11 11 vecteur complex*16 (dimensions integer*8) + * 1100 00 10 matrice real*4 (dimensions integer*1) + * 1100 01 10 matrice real*4 (dimensions integer*2) + * 1100 10 10 matrice real*4 (dimensions integer*4) + * 1100 11 10 matrice real*4 (dimensions integer*8) + * 1100 00 11 matrice real*8 (dimensions integer*1) + * 1100 01 11 matrice real*8 (dimensions integer*2) + * 1100 10 11 matrice real*8 (dimensions integer*4) + * 1100 11 11 matrice real*8 (dimensions integer*8) + * 1101 00 10 matrice complex*8 (dimensions integer*1) + * 1101 01 10 matrice complex*8 (dimensions integer*2) + * 1101 10 10 matrice complex*8 (dimensions integer*4) + * 1101 11 10 matrice complex*8 (dimensions integer*8) + * 1101 00 11 matrice complex*16 (dimensions integer*1) + * 1101 01 11 matrice complex*16 (dimensions integer*2) + * 1101 10 11 matrice complex*16 (dimensions integer*4) + * 1101 11 11 matrice complex*16 (dimensions integer*8) + +Utiliser clock() et clock_t pour émuler getrusage sous OS/2 + +Regarder les d_ep_division_par_zero pour coller un undef à la place. + +->TAG TAG-> DTAG +->UNIT UNIT-> DUNIT + +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 + +Traiter SIGTERM +RUN +Ajouter MULTICAST (pour les sockets) +Rajouter le test des dépassements pour INCR et DECR + +Ajouter TeXmacs Dessiner les niveaux sur les graphes { "main" { "default" } { "automatic" 10 } } axes redraw Ne fonctionne pas... +-> I:integer scalar, J:integer scalar << >> + // 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 -<< ->> -ROUTINE +constrained FONCTION + interface STANDARD + integer scalar, generic, real scalar + returns + real scalar + or + integer scalar + requires + VARIABLE FONCTION2 + end + + interface SPECIFIQUE + scalar, ... + returns + scalar + requires + end +provides << - -> I - << - >> >> +Ajouter un champs dans RPN et ADR pour pointer vers une liste. + +Types : +generic +scalar (integer/real/complex) +vector (integer/real/complex) +matrix (integer/real/complex) +table +list +binary +name +string +algebraic +expression +file +socket +library +process +sql +mutex +semaphore + Traiter les expressions et les noms dans les fichiers. Rajouter un type de format pour les binaires non formatés (LOGICAL) @@ -68,11 +193,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 +244,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