Diff for /rpl/LIMITATIONS between versions 1.23 and 1.112

version 1.23, 2010/06/20 17:06:25 version 1.112, 2013/03/15 11:37:25
Line 1 Line 1
 RESTRICTIONS  RESTRICTIONS
     Only sequential formatted files are supported.      Only formatted and flow files are supported.
   
 Voir test15.rpl  Corriger toutes les ABS() sur des entiers pour tester le cas
   abs(-128) en 8 bits par exemple...
   
 Économisons notre mépris eut égard au nombre de nécessiteux.  Ajouter le format NATIVE pour les expressions et les fonctions.
 Chateaubriand.  
   { "character*(*)" }
   
   { <[ 2 { "character*(*)" } ]> } = { <[ "character*(*)" "character*(*)" ]> }
   { <[ 2 { <[ "character*(*)" "standard*(*)" ]> } ]> } =
           { <[ <[ "character*(*)" "standard*(*)" ]> <[ "character*(*)"
           "standard*(*)" ]> ]> }
   
 Mettre les variables dans un arbre avec une liste chaîne des niveaux dans  Utiliser Frama-c + why + alt-argo pour rechercher les erreurs.
 chaque maillon de la pile système. -> version 4.1  
   
 Mettre les variables dans un arbre mis à plat :  Ajouter la translitération dans l'écriture des fichiers.
 [ niveau 1 ][ niveau 2,1 ][ niveau 2,5 ][ niveau 3,1 ]...  
 avec des pointeur relatifs pour pouvoir copier rapidement par un  
 memcpy() l'ensemble de la structure de description des variables lors  
 d'un spawn.  
   
 Empêcher les interruptions ctrlC dans les appels récursifs (evaluation et  À FAIRE : SOCKET DE TYPE FLOW (LENGTH*(*) ET LENGTH*(N))
 sequenceur)  
 Connexion au terminal de contrôle perdue !  
   
 Routing library unloaded.  Pour OpenVMS :
   Trouver les includes pour :
   syslog.h
   sys/select.h
   sys/un.h
   regex.h
   termios.h
   
 +++Erreur : Type d'argument invalide pour la commande SWAP [27630]  Ajouter une évaluation dans GET et PUT 'X' { I } get
   
 +++Information : Génération du fichier rpl-core [27630]  Ajouter STOSIG CLRSIG SIGLOCK SIGUNLOCK SIGQUEUE ISIG WFSIG RCLSIG SIGSTATUS
 +++Erreur : Type d'argument invalide pour la commande GET [27630]  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()).
   
 +++Erreur : Type d'argument invalide pour la commande >> [27630]  rplss signal processus
 +++Information : Génération du fichier rpl-core [27630]  
   
 +++Erreur : Type d'argument invalide pour la commande > [27630]  Économisons notre mépris eut égard au nombre de nécessiteux.
 +++Information : Génération du fichier rpl-core [27630]  Chateaubriand.
   
 +++Information : Génération du fichier rpl-core [27630]  Translitération des fichiers (avec un pointeur sur la localisation du fichier
 tchaikovski:[~/rpl/cvs/optimisation] > ./serveur.rpl  dans la structure du fichier).
   
 -> toujours une erreur de type _type d'argument invalide_ !  Fichiers non formatés : restent à coder pour les écritures :
            * 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’:
   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  Dessiner les niveaux sur les graphes
 { "main" { "default" } { "automatic" 10 } } axes redraw   { "main" { "default" } { "automatic" 10 } } axes redraw 
 Ne fonctionne pas...  Ne fonctionne pas...
   
   -> I:integer scalar, J:integer scalar << >>
   
 // Teste les interfaces d'entrée et de sortie d'une fonction. Une fonction  // Teste les interfaces d'entrée et de sortie d'une fonction. Une fonction
 // peut avoir plusieurs interfaces.  // peut avoir plusieurs interfaces.
 FONCTION  
 <<  
     INTERFACE  
         ALTERN  
         RESULT  
         REQUIRES  
         END  
     END  
 >>  
   
 fonction  constrained FONCTION
   INTERFACE      interface STANDARD
     generic          integer scalar, generic, real scalar
     integer scalar      returns
     real matrix          real scalar
     complex vector      or
     table          integer scalar
     list      requires
     binary          VARIABLE FONCTION2
     name      end
     string  
     algebraic      interface SPECIFIQUE
     expression          scalar, ...
     file      returns
     socket          scalar
     library      requires
     process      end
     sql  provides
     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  
 <<  <<
 >>  >>
   
   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  Traiter les expressions et les noms dans les fichiers. Rajouter un
 type de format pour les binaires non formatés (LOGICAL)  type de format pour les binaires non formatés (LOGICAL)
   
Line 124  DELNODE Line 225  DELNODE
   
 { arguments } << programme >> << interruption >> SUBMIT  { arguments } << programme >> << interruption >> SUBMIT
 arg1 ... argn n << 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)  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  FOREIGN permet à un esclave d'accéder à une variable partagée
 du maître.  du maître.
   
Line 167  probablement identique dans ton cas Line 276  probablement identique dans ton cas
 - fgetwc, fputwc, fwprintf etc. pour les entrées-sorties  - fgetwc, fputwc, fwprintf etc. pour les entrées-sorties
 - wcs*() qui remplace les fonctions en str*()  - wcs*() qui remplace les fonctions en str*()
   
 FLOW (utilise en lecture FORMAT)  
   
 Vérifier la cohérence des arguments de OPEN  Vérifier la cohérence des arguments de OPEN
   
 TO DO  TO DO

Removed from v.1.23  
changed lines
  Added in v.1.112


CVSweb interface <joel.bertrand@systella.fr>