--- rpl/LIMITATIONS 2011/06/10 11:35:11 1.37 +++ rpl/LIMITATIONS 2013/03/11 11:07:24 1.109 @@ -1,16 +1,128 @@ RESTRICTIONS - Only sequential formatted files are supported. + Only formatted and flow files are supported. + +Utiliser Frama-c + why + alt-argo pour rechercher les erreurs. + +Traiter l'échappement des guilles dans BACKSPACE par une machine à états. +Ajouter la translitération dans l'écriture des fichiers. + +Ajouter un format NATIVE pour les expressions et les fonctions + +À FAIRE : SOCKET DE TYPE FLOW (LENGTH*(*) ET LENGTH*(N)) +SOCKET NON FORMATÉS + +Pour OpenVMS : +Trouver les includes pour : +syslog.h +sys/select.h +sys/un.h +regex.h +termios.h + +Ajouter une évaluation dans GET et PUT 'X' { I } get + +Ajouter STOSIG CLRSIG SIGLOCK SIGUNLOCK SIGQUEUE ISIG WFSIG RCLSIG SIGSTATUS +Mettre un masque des signaux dans structure_processus et les +tableaux des signaux en variable globale (buffer circulaire protégé par un mutex +avec un trylock()). + +rplss signal processus Économisons notre mépris eut égard au nombre de nécessiteux. Chateaubriand. -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 : -- CLUSR -- MEM -- PRUSR -- VARS +Translitération des fichiers (avec un pointeur sur la localisation du fichier +dans la structure du fichier). + +Fait : complexe, entier, liste, réel + +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 + * 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’: @@ -19,120 +131,65 @@ 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’ - - -rpl-conv.c: In function ‘librpl_rplinit’: -rpl-conv.c:3219: error: ‘struct_processus’ has no member named -‘nombre_variables’ -rpl-conv.c:3222: error: ‘struct_processus’ has no member named -‘s_liste_variables’ -rpl-conv.c:3223: error: ‘struct_processus’ has no member named -‘s_liste_variables’ -rpl-conv.c:3226: 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 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. -FONCTION -<< - INTERFACE - ALTERN - RESULT - REQUIRES - END - END ->> -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 +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 << >> +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)