Diff for /rpl/LIMITATIONS between versions 1.133 and 1.187

version 1.133, 2013/04/01 14:04:43 version 1.187, 2017/06/29 12:33:34
Line 1 Line 1
 RESTRICTIONS  RESTRICTIONS
   
   attention : types EXT
   si erreur dans recherche_type, rechercher les fonctions
   __type_new() dans les bibliothèques en balayant
   (*s_etat_processus).s_bibliotheques.
   
   set[]
   poly[]
   
   Rajouter une option -l pour charger des bibliothèques pour la compilation.
   Elles sont déchargées juste après.
   
   TOKENIZE ne fonctionne pas avec des chaînes qui comportent un \t.
   Idem pour des arguments contenant des parenthèses.
   -> normal, les tokens doivent avoir un sens en RPL/2.
   
   openmp ?
   
   rpl_arguments rend rplexternals.h non réentrant.
   
   Rajouter un type pour les entier, réels et complexes longs
   123~ -> entier long INL
   123_
   123.34E2_53
   
   123.34E2~53 -> flottant long (avec sa précision) RLL
   (123.42E~253, 14~) -> complexe long CXL
   
   Mettre un allocateur dans lib$motif
   (tableau avec une liste chaînée des éléments disponibles, si liste vide, on
   réalloue et on maintient la liste triée.)
   
   Vérifier les __CATCH_SYSTEM_ERROR__ dans rplexternals.h
   
   Ne passe pas sur une socket.
   { "STAT" 0 { { } { 5 55 } { 4 51 } { 3 50 } { 3 51 } { 3 50 } { 17 78 } { 4 52
   } { 3 50 } { 3 50 } } # 257B521B6513F2h }
   Idem avec une table.
   
   
   { 'source' 'deplacement' 'origine' } record
   -> création d'un type 'record'
   Record { 'source' 'deplacement' 'origine' }
   
   { 'nom' } record 'structure' sto
   L'évaluation de structure crée une nouvelle structure <[]> contenant un pointeur
   vers le type 'record' (arbre).
   
   Accès : structure 'nom' get
   
   Mettre l'indicateur de debug dans une pile pour ne pas debugguer les fonctions
   appelées.
   
 Réduire le nombre de pipes entre deux processus.  Réduire le nombre de pipes entre deux processus.
 Remonter une erreur de format en cas de lecture sur un fichier ou une socket  Remonter une erreur de format en cas de lecture sur un fichier ou une socket
 formatée ou non formatée.  formatée ou non formatée.
   
 { <[ 2 { "character*(*)" } ]> } = { <[ "character*(*)" "character*(*)" ]> }  Virer mutex_sections_critiques _avant_ l'exécution de AT_EXIT.
 { <[ 2 { <[ "character*(*)" "standard*(*)" ]> } ]> } =  Faut-il tuer les processus fils avant l'exécution de AT_EXIT ?
   ABORT ne lance pas ATEXIT.
   
   { <[ { "character*(*)" } 2 ]> } = { <[ "character*(*)" "character*(*)" ]> }
   { <[ { <[ "character*(*)" "standard*(*)" ]> 2 } ]> } =
         { <[ <[ "character*(*)" "standard*(*)" ]> <[ "character*(*)"          { <[ <[ "character*(*)" "standard*(*)" ]> <[ "character*(*)"
         "standard*(*)" ]> ]> }          "standard*(*)" ]> ]> }
   
 [[1 2 ]]3 valide  
 [[ 1 2]] valide  
 {{ 3 }} invalide  
 { 5} invalide  
   
 Utiliser Frama-c + why + alt-argo pour rechercher les erreurs.  Utiliser Frama-c + why + alt-argo pour rechercher les erreurs.
   
 Ajouter la translitération dans l'écriture des fichiers.  Ajouter la translitération dans l'écriture des fichiers.
   
 À FAIRE : SOCKET DE TYPE FLOW (LENGTH*(*) ET LENGTH*(N))  À FAIRE : SOCKET DE TYPE FLOW (LENGTH*(*) ET LENGTH*(N))
   
 Pour OpenVMS :  
 Trouver les includes pour :  
 syslog.h  
 sys/select.h  
 sys/un.h  
 regex.h  
 termios.h  
   
 Ajouter une évaluation des listes.  Ajouter une évaluation des listes.
   
 3 'D(4)' sto/save  3 'D(4)' sto/save
Line 48  Chateaubriand. Line 91  Chateaubriand.
 Translitération des fichiers (avec un pointeur sur la localisation du fichier  Translitération des fichiers (avec un pointeur sur la localisation du fichier
 dans la structure du fichier).  dans la structure du fichier).
   
   Traiter BACKSPACE pour les fichiers non formatés.
 Fichiers non formatés : restent à coder pour les écritures :  Fichiers non formatés : restent à coder pour les écritures :
          * 0010 00 00               vecteur integer*1 (dimensions integer*1)  /         * 0010 00 00               vecteur integer*1 (dimensions integer*1)
          * 0010 01 00               vecteur integer*1 (dimensions integer*2)  /         * 0010 01 00               vecteur integer*1 (dimensions integer*2)
          * 0010 10 00               vecteur integer*1 (dimensions integer*4)  /         * 0010 10 00               vecteur integer*1 (dimensions integer*4)
          * 0010 11 00               vecteur integer*1 (dimensions integer*8)  /         * 0010 11 00               vecteur integer*1 (dimensions integer*8)
          * 0010 00 01               vecteur integer*2 (dimensions integer*1)  /         * 0010 00 01               vecteur integer*2 (dimensions integer*1)
          * 0010 01 01               vecteur integer*2 (dimensions integer*2)  /         * 0010 01 01               vecteur integer*2 (dimensions integer*2)
          * 0010 10 01               vecteur integer*2 (dimensions integer*4)  /         * 0010 10 01               vecteur integer*2 (dimensions integer*4)
          * 0010 11 01               vecteur integer*2 (dimensions integer*8)  /         * 0010 11 01               vecteur integer*2 (dimensions integer*8)
          * 0010 00 10               vecteur integer*4 (dimensions integer*1)  /         * 0010 00 10               vecteur integer*4 (dimensions integer*1)
          * 0010 01 10               vecteur integer*4 (dimensions integer*2)  /         * 0010 01 10               vecteur integer*4 (dimensions integer*2)
          * 0010 10 10               vecteur integer*4 (dimensions integer*4)  /         * 0010 10 10               vecteur integer*4 (dimensions integer*4)
          * 0010 11 10               vecteur integer*4 (dimensions integer*8)  /         * 0010 11 10               vecteur integer*4 (dimensions integer*8)
          * 0010 00 11               vecteur integer*8 (dimensions integer*1)  /         * 0010 00 11               vecteur integer*8 (dimensions integer*1)
          * 0010 01 11               vecteur integer*8 (dimensions integer*2)  /         * 0010 01 11               vecteur integer*8 (dimensions integer*2)
          * 0010 10 11               vecteur integer*8 (dimensions integer*4)  /         * 0010 10 11               vecteur integer*8 (dimensions integer*4)
          * 0010 11 11               vecteur integer*8 (dimensions integer*8)  /         * 0010 11 11               vecteur integer*8 (dimensions integer*8)
          * 0011 00 00               matrice integer*1 (dimensions integer*1)  /         * 0011 00 00               matrice integer*1 (dimensions integer*1)
          * 0011 01 00               matrice integer*1 (dimensions integer*2)  /         * 0011 01 00               matrice integer*1 (dimensions integer*2)
          * 0011 10 00               matrice integer*1 (dimensions integer*4)  /         * 0011 10 00               matrice integer*1 (dimensions integer*4)
          * 0011 11 00               matrice integer*1 (dimensions integer*8)  /         * 0011 11 00               matrice integer*1 (dimensions integer*8)
          * 0011 00 01               matrice integer*2 (dimensions integer*1)  /         * 0011 00 01               matrice integer*2 (dimensions integer*1)
          * 0011 01 01               matrice integer*2 (dimensions integer*2)  /         * 0011 01 01               matrice integer*2 (dimensions integer*2)
          * 0011 10 01               matrice integer*2 (dimensions integer*4)  /         * 0011 10 01               matrice integer*2 (dimensions integer*4)
          * 0011 11 01               matrice integer*2 (dimensions integer*8)  /         * 0011 11 01               matrice integer*2 (dimensions integer*8)
          * 0011 00 10               matrice integer*4 (dimensions integer*1)  /         * 0011 00 10               matrice integer*4 (dimensions integer*1)
          * 0011 01 10               matrice integer*4 (dimensions integer*2)  /         * 0011 01 10               matrice integer*4 (dimensions integer*2)
          * 0011 10 10               matrice integer*4 (dimensions integer*4)  /         * 0011 10 10               matrice integer*4 (dimensions integer*4)
          * 0011 11 10               matrice integer*4 (dimensions integer*8)  /         * 0011 11 10               matrice integer*4 (dimensions integer*8)
          * 0011 00 11               matrice integer*8 (dimensions integer*1)  /         * 0011 00 11               matrice integer*8 (dimensions integer*1)
          * 0011 01 11               matrice integer*8 (dimensions integer*2)  /         * 0011 01 11               matrice integer*8 (dimensions integer*2)
          * 0011 10 11               matrice integer*8 (dimensions integer*4)  /         * 0011 10 11               matrice integer*8 (dimensions integer*4)
          * 0011 11 11               matrice integer*8 (dimensions integer*8)  /         * 0011 11 11               matrice integer*8 (dimensions integer*8)
   
          * 1001 0 XXX               table de longueur XXX           * 1001 0 XXX               table de longueur XXX
          * 1001 10 00               table de longueur integer*1           * 1001 10 00               table de longueur integer*1
Line 88  Fichiers non formatés : restent à code Line 132  Fichiers non formatés : restent à code
          * 1001 10 10               table de longueur integer*4           * 1001 10 10               table de longueur integer*4
          * 1001 10 11               table de longueur integer*8           * 1001 10 11               table de longueur integer*8
          *           *
          * 1010 00 10               vecteur real*4 (dimensions integer*1)  /         * 1010 00 10               vecteur real*4 (dimensions integer*1)
          * 1010 01 10               vecteur real*4 (dimensions integer*2)  /         * 1010 01 10               vecteur real*4 (dimensions integer*2)
          * 1010 10 10               vecteur real*4 (dimensions integer*4)  /         * 1010 10 10               vecteur real*4 (dimensions integer*4)
          * 1010 11 10               vecteur real*4 (dimensions integer*8)  /         * 1010 11 10               vecteur real*4 (dimensions integer*8)
          * 1010 00 11               vecteur real*8 (dimensions integer*1)  /         * 1010 00 11               vecteur real*8 (dimensions integer*1)
          * 1010 01 11               vecteur real*8 (dimensions integer*2)  /         * 1010 01 11               vecteur real*8 (dimensions integer*2)
          * 1010 10 11               vecteur real*8 (dimensions integer*4)  /         * 1010 10 11               vecteur real*8 (dimensions integer*4)
          * 1010 11 11               vecteur real*8 (dimensions integer*8)  /         * 1010 11 11               vecteur real*8 (dimensions integer*8)
          * 1011 00 10               vecteur complex*8 (dimensions integer*1)  /         * 1011 00 10               vecteur complex*8 (dimensions integer*1)
          * 1011 01 10               vecteur complex*8 (dimensions integer*2)  /         * 1011 01 10               vecteur complex*8 (dimensions integer*2)
          * 1011 10 10               vecteur complex*8 (dimensions integer*4)  /         * 1011 10 10               vecteur complex*8 (dimensions integer*4)
          * 1011 11 10               vecteur complex*8 (dimensions integer*8)  /         * 1011 11 10               vecteur complex*8 (dimensions integer*8)
          * 1011 00 11               vecteur complex*16 (dimensions integer*1)  /         * 1011 00 11               vecteur complex*16 (dimensions integer*1)
          * 1011 01 11               vecteur complex*16 (dimensions integer*2)  /         * 1011 01 11               vecteur complex*16 (dimensions integer*2)
          * 1011 10 11               vecteur complex*16 (dimensions integer*4)  /         * 1011 10 11               vecteur complex*16 (dimensions integer*4)
          * 1011 11 11               vecteur complex*16 (dimensions integer*8)  /         * 1011 11 11               vecteur complex*16 (dimensions integer*8)
          * 1100 00 10               matrice real*4 (dimensions integer*1)  /         * 1100 00 10               matrice real*4 (dimensions integer*1)
          * 1100 01 10               matrice real*4 (dimensions integer*2)  /         * 1100 01 10               matrice real*4 (dimensions integer*2)
          * 1100 10 10               matrice real*4 (dimensions integer*4)  /         * 1100 10 10               matrice real*4 (dimensions integer*4)
          * 1100 11 10               matrice real*4 (dimensions integer*8)  /         * 1100 11 10               matrice real*4 (dimensions integer*8)
          * 1100 00 11               matrice real*8 (dimensions integer*1)  /         * 1100 00 11               matrice real*8 (dimensions integer*1)
          * 1100 01 11               matrice real*8 (dimensions integer*2)  /         * 1100 01 11               matrice real*8 (dimensions integer*2)
          * 1100 10 11               matrice real*8 (dimensions integer*4)  /         * 1100 10 11               matrice real*8 (dimensions integer*4)
          * 1100 11 11               matrice real*8 (dimensions integer*8)  /         * 1100 11 11               matrice real*8 (dimensions integer*8)
          * 1101 00 10               matrice complex*8 (dimensions integer*1)  /         * 1101 00 10               matrice complex*8 (dimensions integer*1)
          * 1101 01 10               matrice complex*8 (dimensions integer*2)  /         * 1101 01 10               matrice complex*8 (dimensions integer*2)
          * 1101 10 10               matrice complex*8 (dimensions integer*4)  /         * 1101 10 10               matrice complex*8 (dimensions integer*4)
          * 1101 11 10               matrice complex*8 (dimensions integer*8)  /         * 1101 11 10               matrice complex*8 (dimensions integer*8)
          * 1101 00 11               matrice complex*16 (dimensions integer*1)  /         * 1101 00 11               matrice complex*16 (dimensions integer*1)
          * 1101 01 11               matrice complex*16 (dimensions integer*2)  /         * 1101 01 11               matrice complex*16 (dimensions integer*2)
          * 1101 10 11               matrice complex*16 (dimensions integer*4)  /         * 1101 10 11               matrice complex*16 (dimensions integer*4)
          * 1101 11 11               matrice complex*16 (dimensions integer*8)  /         * 1101 11 11               matrice complex*16 (dimensions integer*8)
   
 Utiliser clock() et clock_t pour émuler getrusage sous OS/2  Utiliser clock() et clock_t pour émuler getrusage sous OS/2
   
Line 128  Regarder les d_ep_division_par_zero pour Line 172  Regarder les d_ep_division_par_zero pour
 ->TAG TAG-> DTAG  ->TAG TAG-> DTAG
 ->UNIT UNIT-> DUNIT  ->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  Traiter SIGTERM
 RUN  RUN
 Ajouter MULTICAST (pour les sockets)  Ajouter MULTICAST (pour les sockets)
Line 174  provides Line 209  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)  
   
 IMPORT -> installe à chaud de nouvelles définitions. Écrase les anciennes  IMPORT -> installe à chaud de nouvelles définitions. Écrase les anciennes
 si nécessaire.  si nécessaire.
   
Line 218  Pseudo inverse dgelss, zgelss Line 228  Pseudo inverse dgelss, zgelss
   
 Tables dans interface_tex  Tables dans interface_tex
   
 Fichiers à accès direct -> entretenir une table en mémoire (hsearch())  Pour le fonctionnement en cluster
 Les enregistrements sont de la forme :  
 [Position enregistrement suivant][enregistrement]  
 ADDNODE  ADDNODE
 DELNODE  DELNODE
   
Line 263  Coller un fichier ~/.rpl qui contient le Line 271  Coller un fichier ~/.rpl qui contient le
 'a(3)+a(3,4)' ne doit pas provoquer d'erreur si a est du type liste ou table.  'a(3)+a(3,4)' ne doit pas provoquer d'erreur si a est du type liste ou table.
 Si a est une liste ou une table : une seule dimension possible !  Si a est une liste ou une table : une seule dimension possible !
   
 [[ 1 2 ]]3 est valide !  
   
 Evaluation symbolique des fonction ?  Evaluation symbolique des fonction ?
   
 SQL sur des données binaires  SQL sur des données binaires
Line 284  TO DO Line 290  TO DO
   
 Mettre des tableaux dans les formats binaires  Mettre des tableaux dans les formats binaires
   
 Fichier en accès direct -> 12 {} puis entretenir un fichier d'index.  
 Fichiers flow  
   
 SLOPEFIELD  SLOPEFIELD
   
 Simplification des expressions : convertir la notation polonaise en  Simplification des expressions : convertir la notation polonaise en

Removed from v.1.133  
changed lines
  Added in v.1.187


CVSweb interface <joel.bertrand@systella.fr>