![]() ![]() | ![]() |
Début de la refonte des signaux pour NetBSD.
1: RESTRICTIONS 2: Only formatted and flow files are supported. 3: 4: À FAIRE : SOCKET DE TYPE FLOW (LENGTH*(*) ET LENGTH*(N)) 5: SOCKET NON FORMATÉS 6: 7: Coller envoi_signal_processus() dans un thread dédié avec un pipe entre 8: le gestionnaire de signal et ce thread. À la fin de l'exécution de ce thread 9: (donc après avoir mis en place ce qu'il faut pour les rpl_signaux), on 10: envoie un raise(SIGALRM) 11: 12: Pour OpenVMS : 13: Trouver les includes pour : 14: syslog.h 15: sys/select.h 16: sys/un.h 17: regex.h 18: termios.h 19: 20: Ajouter une évaluation dans GET et PUT 'X' { I } get 21: 22: Ajouter STOSIG CLRSIG SIGLOCK SIGUNLOCK SIGQUEUE ISIG WFSIG RCLSIG SIGSTATUS 23: Mettre un masque des signaux dans structure_processus et les 24: tableaux des signaux en variable globale (buffer circulaire protégé par un mutex 25: avec un trylock()). 26: 27: rplss signal processus 28: 29: Rajouter le format dans formateur_flux() (pour les fichiers de type flow). 30: 31: Économisons notre mépris eut égard au nombre de nécessiteux. 32: Chateaubriand. 33: 34: Translitération des fichiers (avec un pointeur sur la localisation du fichier 35: dans la structure du fichier). 36: 37: Fichiers non formatés : restent à coder pour les écritures : 38: * 0000 XXXX Binaire sur XXXX octets 39: * 0010 00 00 vecteur integer*1 (dimensions integer*1) 40: * 0010 01 00 vecteur integer*1 (dimensions integer*2) 41: * 0010 10 00 vecteur integer*1 (dimensions integer*4) 42: * 0010 11 00 vecteur integer*1 (dimensions integer*8) 43: * 0010 00 01 vecteur integer*2 (dimensions integer*1) 44: * 0010 01 01 vecteur integer*2 (dimensions integer*2) 45: * 0010 10 01 vecteur integer*2 (dimensions integer*4) 46: * 0010 11 01 vecteur integer*2 (dimensions integer*8) 47: * 0010 00 10 vecteur integer*4 (dimensions integer*1) 48: * 0010 01 10 vecteur integer*4 (dimensions integer*2) 49: * 0010 10 10 vecteur integer*4 (dimensions integer*4) 50: * 0010 11 10 vecteur integer*4 (dimensions integer*8) 51: * 0010 00 11 vecteur integer*8 (dimensions integer*1) 52: * 0010 01 11 vecteur integer*8 (dimensions integer*2) 53: * 0010 10 11 vecteur integer*8 (dimensions integer*4) 54: * 0010 11 11 vecteur integer*8 (dimensions integer*8) 55: * 0011 00 00 matrice integer*1 (dimensions integer*1) 56: * 0011 01 00 matrice integer*1 (dimensions integer*2) 57: * 0011 10 00 matrice integer*1 (dimensions integer*4) 58: * 0011 11 00 matrice integer*1 (dimensions integer*8) 59: * 0011 00 01 matrice integer*2 (dimensions integer*1) 60: * 0011 01 01 matrice integer*2 (dimensions integer*2) 61: * 0011 10 01 matrice integer*2 (dimensions integer*4) 62: * 0011 11 01 matrice integer*2 (dimensions integer*8) 63: * 0011 00 10 matrice integer*4 (dimensions integer*1) 64: * 0011 01 10 matrice integer*4 (dimensions integer*2) 65: * 0011 10 10 matrice integer*4 (dimensions integer*4) 66: * 0011 11 10 matrice integer*4 (dimensions integer*8) 67: * 0011 00 11 matrice integer*8 (dimensions integer*1) 68: * 0011 01 11 matrice integer*8 (dimensions integer*2) 69: * 0011 10 11 matrice integer*8 (dimensions integer*4) 70: * 0011 11 11 matrice integer*8 (dimensions integer*8) 71: * 0101 0 XXX nom de longueur XXX 72: * 0101 10 LL nom de longueur integer*LL 73: * 0110 0 XXX expression RPN 74: * 0110 10 LL 75: * 0111 0 XXX expression algébrique 76: * 0111 10 LL 77: * 1000 0 XXX chaîne de caractères 78: * 1000 10 LL 79: * 1001 0 XXX table de longueur XXX 80: * 1001 10 00 table de longueur integer*1 81: * 1001 10 01 table de longueur integer*2 82: * 1001 10 10 table de longueur integer*4 83: * 1001 10 11 table de longueur integer*8 84: * 85: * 1010 00 10 vecteur real*4 (dimensions integer*1) 86: * 1010 01 10 vecteur real*4 (dimensions integer*2) 87: * 1010 10 10 vecteur real*4 (dimensions integer*4) 88: * 1010 11 10 vecteur real*4 (dimensions integer*8) 89: * 1010 00 11 vecteur real*8 (dimensions integer*1) 90: * 1010 01 11 vecteur real*8 (dimensions integer*2) 91: * 1010 10 11 vecteur real*8 (dimensions integer*4) 92: * 1010 11 11 vecteur real*8 (dimensions integer*8) 93: * 1011 00 10 vecteur complex*8 (dimensions integer*1) 94: * 1011 01 10 vecteur complex*8 (dimensions integer*2) 95: * 1011 10 10 vecteur complex*8 (dimensions integer*4) 96: * 1011 11 10 vecteur complex*8 (dimensions integer*8) 97: * 1011 00 11 vecteur complex*16 (dimensions integer*1) 98: * 1011 01 11 vecteur complex*16 (dimensions integer*2) 99: * 1011 10 11 vecteur complex*16 (dimensions integer*4) 100: * 1011 11 11 vecteur complex*16 (dimensions integer*8) 101: * 1100 00 10 matrice real*4 (dimensions integer*1) 102: * 1100 01 10 matrice real*4 (dimensions integer*2) 103: * 1100 10 10 matrice real*4 (dimensions integer*4) 104: * 1100 11 10 matrice real*4 (dimensions integer*8) 105: * 1100 00 11 matrice real*8 (dimensions integer*1) 106: * 1100 01 11 matrice real*8 (dimensions integer*2) 107: * 1100 10 11 matrice real*8 (dimensions integer*4) 108: * 1100 11 11 matrice real*8 (dimensions integer*8) 109: * 1101 00 10 matrice complex*8 (dimensions integer*1) 110: * 1101 01 10 matrice complex*8 (dimensions integer*2) 111: * 1101 10 10 matrice complex*8 (dimensions integer*4) 112: * 1101 11 10 matrice complex*8 (dimensions integer*8) 113: * 1101 00 11 matrice complex*16 (dimensions integer*1) 114: * 1101 01 11 matrice complex*16 (dimensions integer*2) 115: * 1101 10 11 matrice complex*16 (dimensions integer*4) 116: * 1101 11 11 matrice complex*16 (dimensions integer*8) 117: 118: Utiliser clock() et clock_t pour émuler getrusage sous OS/2 119: 120: Regarder les d_ep_division_par_zero pour coller un undef à la place. 121: 122: ->TAG TAG-> DTAG 123: ->UNIT UNIT-> DUNIT 124: 125: Convertir avec le nouveau système de la gestion de la mémoire : 126: - READ FLOW (longueur_effective ligne 2815) 127: rpl/src/'`instructions_w1-conv.c 128: instructions_w1-conv.c: In function ‘librpl_instruction_write’: 129: instructions_w1-conv.c:1603: warning: ‘ios’ may be used uninitialized in this 130: function 131: instructions_w1-conv.c:431: warning: ‘chaine’ may be used uninitialized in this 132: function 133: 134: Traiter SIGTERM 135: RUN 136: Ajouter MULTICAST (pour les sockets) 137: Rajouter le test des dépassements pour INCR et DECR 138: 139: Ajouter TeXmacs 140: 141: Dessiner les niveaux sur les graphes 142: { "main" { "default" } { "automatic" 10 } } axes redraw 143: Ne fonctionne pas... 144: 145: -> I:integer scalar, J:integer scalar << >> 146: 147: // Teste les interfaces d'entrée et de sortie d'une fonction. Une fonction 148: // peut avoir plusieurs interfaces. 149: 150: constrained FONCTION 151: interface STANDARD 152: integer scalar, generic, real scalar 153: returns 154: real scalar 155: or 156: integer scalar 157: requires 158: VARIABLE FONCTION2 159: end 160: 161: interface SPECIFIQUE 162: scalar, ... 163: returns 164: scalar 165: requires 166: end 167: provides 168: << 169: >> 170: 171: Ajouter un champs dans RPN et ADR pour pointer vers une liste. 172: 173: Types : 174: generic 175: scalar (integer/real/complex) 176: vector (integer/real/complex) 177: matrix (integer/real/complex) 178: table 179: list 180: binary 181: name 182: string 183: algebraic 184: expression 185: file 186: socket 187: library 188: process 189: sql 190: mutex 191: semaphore 192: 193: Traiter les expressions et les noms dans les fichiers. Rajouter un 194: type de format pour les binaires non formatés (LOGICAL) 195: 196: IMPORT -> installe à chaud de nouvelles définitions. Écrase les anciennes 197: si nécessaire. 198: 199: Prévoir un drapeau pour tester les interfaces (34) 200: -> désarmé : test des interfaces 201: -> armé : on ne teste rien 202: 203: colorspec pour les couleurs des graphiques de gnuplot 204: 205: TRIGGER attaché à un objet (fonction appelée dès la modification de l'objet) 206: -> vérification de contrainte... 207: 208: Decomposition de Hessenberg dgehrd, zgehrd; dorghr, zunghr for computing P 209: dgehd2.f+dgebal.f 210: 211: Pseudo inverse dgelss, zgelss 212: 213: Tables dans interface_tex 214: 215: Fichiers à accès direct -> entretenir une table en mémoire (hsearch()) 216: Les enregistrements sont de la forme : 217: [Position enregistrement suivant][enregistrement] 218: ADDNODE 219: DELNODE 220: 221: { arguments } << programme >> << interruption >> SUBMIT 222: arg1 ... argn n << programme >> << interruption >> SUBMIT 223: 224: rpl -b (batch) 32 (nombre de threads) 225: 226: FOREIGN (pour les variables) 227: 228: Côté esclave 229: foreign -> X Y Z << >> 230: FVARLOCK 231: FVARUNLOCK 232: 233: Côté maître 234: foreign -> X Y Z << >> (il faut savoir si on est sur le mêtre ou sur un esclave) 235: 236: FOREIGN permet à un esclave d'accéder à une variable partagée 237: du maître. 238: 239: ADDNOTE envoie les variables de niveau 0 au noeud client. 240: SUBMIT envoie l'adresse de création des variables 'foreign' au client 241: // Maître 242: << foreign 1 -> X 243: << 244: << foreign -> X << 'X' incr >> >> << >> submit 245: >> 246: >> 247: 248: ================================================================================ 249: 250: Compilation -> faire un exécutable qui appelle rpl par rpl -S 251: 252: Verification des erreurs mémoire dans le cas d'erreur avant l'appel au 253: séquenceur dans rpl.c 254: 255: Coller un fichier ~/.rpl qui contient les valeurs par défaut des drapeaux 256: 257: 'a(3)+a(3,4)' ne doit pas provoquer d'erreur si a est du type liste ou table. 258: Si a est une liste ou une table : une seule dimension possible ! 259: 260: [[ 1 2 ]]3 est valide ! 261: 262: Evaluation symbolique des fonction ? 263: 264: SQL sur des données binaires 265: 266: La manière standard de faire est d'utiliser des wchar_t pour représenter les 267: caractères (à distinguer des bytes). 268: Il y a plein de choses dans la bibliothèque standard : 269: - mbtowc et compagnie, et aussi mbrtowc et compagnie, une variante 270: probablement identique dans ton cas 271: - fgetwc, fputwc, fwprintf etc. pour les entrées-sorties 272: - wcs*() qui remplace les fonctions en str*() 273: 274: Vérifier la cohérence des arguments de OPEN 275: 276: TO DO 277: File support : SEEK, SUPPRESS, REWRITE 278: 279: Mettre des tableaux dans les formats binaires 280: 281: Fichier en accès direct -> 12 {} puis entretenir un fichier d'index. 282: Fichiers flow 283: 284: SLOPEFIELD 285: 286: Simplification des expressions : convertir la notation polonaise en 287: arbre. 288: 289: Problème d'indentation de 290: select 291: case then end <- sur la même ligne