Diff for /rpl/LIMITATIONS between versions 1.76 and 1.168

version 1.76, 2012/05/16 09:14:04 version 1.168, 2015/03/25 14:45:07
Line 1 Line 1
 RESTRICTIONS  RESTRICTIONS
     Only sequential formatted files are supported.  
   
 Vérifier scrutation_interruptions pour éviter les conditions bizarres  Rajouter un type pour les entier, réels et complexes longs
 (envoi de SIGALRM après la fin de la scrutation et un point bloquant sur  123~ -> entier long INL
 un appel système).  123.34E2~53 -> flottant long (avec sa précision) RLL
 -> ajouter un sémaphore par enregistrement de signal avec un timeout  (123.42E~253, 14~) -> complexe long CXL
 relançant SIGALRM le cas échéant.  
   
 Ajouter une évaluation dans GET et PUT 'X' { I } get  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.
   
   Réduire le nombre de pipes entre deux processus.
   Remonter une erreur de format en cas de lecture sur un fichier ou une socket
   formatée ou non formatée.
   
   Virer mutex_sections_critiques _avant_ l'exécution de AT_EXIT.
   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*(*)"
           "standard*(*)" ]> ]> }
   
   Utiliser Frama-c + why + alt-argo pour rechercher les erreurs.
   
   Ajouter la translitération dans l'écriture des fichiers.
   
   À FAIRE : SOCKET DE TYPE FLOW (LENGTH*(*) ET LENGTH*(N))
   
   Ajouter une évaluation des listes.
   
   3 'D(4)' sto/save
   << 4 D >> L'avant dernier token est un tableau, une liste, un vecteur ou une
   matrice. On teste pour savoir si l'élément existe avec un coup d'évaluation()
   puis on l'enregistre.
   
 Ajouter STOSIG CLRSIG SIGLOCK SIGUNLOCK SIGQUEUE ISIG WFSIG RCLSIG SIGSTATUS  Ajouter STOSIG CLRSIG SIGLOCK SIGUNLOCK SIGQUEUE ISIG WFSIG RCLSIG SIGSTATUS
 Mettre un masque des signaux dans structure_processus et les  Mettre un masque des signaux dans structure_processus et les
 tableaux des signaux en variable globale (buffer circulaire protégé par un mutex  tableaux des signaux en variable globale (buffer circulaire protégé par un mutex
 avec un trylock()).  avec un trylock()).
   
 Exécuter ATEXIT lorsque que SIGTERM  
   
 rplss signal processus  rplss signal processus
   
 Rajouter le format dans formateur_flux() (pour les fichiers de type flow).  
   
 Économisons notre mépris eut égard au nombre de nécessiteux.  Économisons notre mépris eut égard au nombre de nécessiteux.
 Chateaubriand.  Chateaubriand.
   
Line 27  Translitération des fichiers (avec un p Line 56  Translitération des fichiers (avec un p
 dans la structure du fichier).  dans la structure du fichier).
   
 Fichiers non formatés : restent à coder pour les écritures :  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 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)
Line 60  Fichiers non formatés : restent à code Line 88  Fichiers non formatés : restent à code
          * 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)
          * 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 0 XXX               table de longueur XXX
          * 1001 10 00               table de longueur integer*1           * 1001 10 00               table de longueur integer*1
          * 1001 10 01               table de longueur integer*2           * 1001 10 01               table de longueur integer*2
Line 114  Regarder les d_ep_division_par_zero pour Line 135  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 160  provides Line 172  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 204  Pseudo inverse dgelss, zgelss Line 191  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 249  Coller un fichier ~/.rpl qui contient le Line 234  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 270  TO DO Line 253  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.76  
changed lines
  Added in v.1.168


CVSweb interface <joel.bertrand@systella.fr>