RESTRICTIONS Only sequential formatted files are supported. Échapper les caractères dans prompt et input. Mettre des integer8 dans toutes les structures Ajouter STOSIG CLRSIG SIGLOCK SIGUNLOCK SIGQUEUE Rajouter le format dans formateur_flux() (pour les fichiers de type flow). Économisons notre mépris eut égard au nombre de nécessiteux. Chateaubriand. Translitération des fichiers (avec un pointeur sur la localisation du fichier dans la structure du fichier). 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 * 1000 0 XXX chaîne de caractères * 1000 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 { "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. 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) IMPORT -> installe à chaud de nouvelles définitions. Écrase les anciennes si nécessaire. Prévoir un drapeau pour tester les interfaces (34) -> désarmé : test des interfaces -> armé : on ne teste rien colorspec pour les couleurs des graphiques de gnuplot TRIGGER attaché à un objet (fonction appelée dès la modification de l'objet) -> vérification de contrainte... Decomposition de Hessenberg dgehrd, zgehrd; dorghr, zunghr for computing P dgehd2.f+dgebal.f Pseudo inverse dgelss, zgelss Tables dans interface_tex Fichiers à accès direct -> entretenir une table en mémoire (hsearch()) Les enregistrements sont de la forme : [Position enregistrement suivant][enregistrement] ADDNODE DELNODE { arguments } << programme >> << interruption >> SUBMIT arg1 ... argn n << programme >> << interruption >> SUBMIT rpl -b (batch) 32 (nombre de threads) 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 du maître. ADDNOTE envoie les variables de niveau 0 au noeud client. SUBMIT envoie l'adresse de création des variables 'foreign' au client // Maître << foreign 1 -> X << << foreign -> X << 'X' incr >> >> << >> submit >> >> ================================================================================ Compilation -> faire un exécutable qui appelle rpl par rpl -S Verification des erreurs mémoire dans le cas d'erreur avant l'appel au séquenceur dans rpl.c Coller un fichier ~/.rpl qui contient les valeurs par défaut des drapeaux '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 ! [[ 1 2 ]]3 est valide ! Evaluation symbolique des fonction ? SQL sur des données binaires La manière standard de faire est d'utiliser des wchar_t pour représenter les caractères (à distinguer des bytes). Il y a plein de choses dans la bibliothèque standard : - mbtowc et compagnie, et aussi mbrtowc et compagnie, une variante probablement identique dans ton cas - fgetwc, fputwc, fwprintf etc. pour les entrées-sorties - wcs*() qui remplace les fonctions en str*() Vérifier la cohérence des arguments de OPEN TO DO File support : SEEK, SUPPRESS, REWRITE Mettre des tableaux dans les formats binaires Fichier en accès direct -> 12 {} puis entretenir un fichier d'index. Fichiers flow SLOPEFIELD Simplification des expressions : convertir la notation polonaise en arbre. Problème d'indentation de select case then end <- sur la même ligne