Diff for /rpl/LIMITATIONS between versions 1.31 and 1.205

version 1.31, 2010/12/08 20:58:15 version 1.205, 2019/07/16 08:31:45
Line 1 Line 1
 RESTRICTIONS  RESTRICTIONS
     Only sequential formatted files are supported.  Si(X) dans le retour de giac -> sinus intégral
   
   Coller les exemples dans shared pour le deb.
   
   RECORD => |[ <[ 'index' 'valeur' ]> <[ 203 403 ]> ]|
   -> dans formateur mais pas dans les fichiers ou les sockets
   Rajouter dans les pages d'aide
   
   RUNAS
   
   (/ /) -> polynôme
   
   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
   
   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.
   
   
   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.
   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
   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.  Économisons notre mépris eut égard au nombre de nécessiteux.
 Chateaubriand.  Chateaubriand.
   
 Empêcher les interruptions ctrlC dans les appels récursifs (evaluation et  Translitération des fichiers (avec un pointeur sur la localisation du fichier
 sequenceur)  dans la structure du fichier).
 Connexion au terminal de contrôle perdue !  
   
 { 123+ } -> erreur de syntaxe en boucle. Même problème avec les tables.  Traiter BACKSPACE pour les fichiers non formatés.
   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)
   
            * 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
   
   Traiter SIGTERM
   RUN
   Ajouter MULTICAST (pour les sockets)
   Rajouter le test des dépassements pour INCR et DECR
   
 Routing library unloaded.  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  
 <<  <<
 >>  >>
   
 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 91  Pseudo inverse dgelss, zgelss Line 214  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 136  Coller un fichier ~/.rpl qui contient le Line 257  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 150  probablement identique dans ton cas Line 269  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
Line 159  TO DO Line 276  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.31  
changed lines
  Added in v.1.205


CVSweb interface <joel.bertrand@systella.fr>