--- rpl/src/instructions_f3.c 2010/05/25 18:09:44 1.12 +++ rpl/src/instructions_f3.c 2013/03/16 11:31:41 1.56 @@ -1,7 +1,7 @@ /* ================================================================================ - RPL/2 (R) version 4.0.16 - Copyright (C) 1989-2010 Dr. BERTRAND Joël + RPL/2 (R) version 4.1.13 + Copyright (C) 1989-2013 Dr. BERTRAND Joël This file is part of RPL/2. @@ -20,7 +20,7 @@ */ -#include "rpl.conv.h" +#include "rpl-conv.h" /* @@ -72,8 +72,8 @@ instruction_format(struct_processus *s_e } printf(" { \"STANDARD*(*)\" }\n"); - printf(" { \"lambda\" 'SEQUENTIAL' 'NEW' 'WRITEONLY' 'FORMATTED' }" - " OPEN FORMAT\n\n"); + printf(" { { \"NAME\" \"lambda\" } \"SEQUENTIAL\" \"NEW\"" + "\"WRITEONLY\" \"FORMATTED\" } OPEN\n FORMAT\n\n"); if ((*s_etat_processus).langue == 'F') { @@ -105,11 +105,9 @@ instruction_format(struct_processus *s_e "\"LOGICAL*8\" }\n"); printf(" { \"REAL*4\", \"REAL*8\" }\n"); printf(" { \"COMPLEX*8\", \"COMPLEX*16\" }\n"); - printf(" { \"CHARACTER\" }\n\n"); + printf(" { \"CHARACTER*(*)\" \"CHARACTER*(%s)\" }\n\n", d_INT); printf(" FLOW\n"); - printf(" { \"CHARACTER*(*)\" }\n"); - printf(" { \"CHARACTER*(%s)\" }\n", d_INT); printf(" { \"LENGTH*(*)\" }\n"); printf(" { \"LENGTH*(%s)\" }\n", d_INT); @@ -542,7 +540,7 @@ instruction_fleche_q(struct_processus *s if (y != 0) { - z = fabs(objectif - (r1 / r2)); + z = abs(objectif - (r1 / r2)); x = ((real8) 1) / y; } else @@ -1629,6 +1627,15 @@ instruction_fleche_num(struct_processus sf(s_etat_processus, 31); } + if (registre_type_evaluation == 'E') + { + sf(s_etat_processus, 35); + } + else + { + cf(s_etat_processus, 35); + } + (*s_etat_processus).erreur_execution = d_ex_manque_argument; return; } @@ -1640,6 +1647,15 @@ instruction_fleche_num(struct_processus sf(s_etat_processus, 31); } + if (registre_type_evaluation == 'E') + { + sf(s_etat_processus, 35); + } + else + { + cf(s_etat_processus, 35); + } + return; } @@ -1653,6 +1669,15 @@ instruction_fleche_num(struct_processus sf(s_etat_processus, 31); } + if (registre_type_evaluation == 'E') + { + sf(s_etat_processus, 35); + } + else + { + cf(s_etat_processus, 35); + } + liberation(s_etat_processus, s_objet); return; } @@ -1788,43 +1813,37 @@ instruction_fuse(struct_processus *s_eta return; } +# ifdef SCHED_OTHER if (pthread_attr_setschedpolicy(&attributs, SCHED_OTHER) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; return; } +# endif +# ifdef PTHREAD_EXPLICIT_SCHED if (pthread_attr_setinheritsched(&attributs, PTHREAD_EXPLICIT_SCHED) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; return; } +# endif +# ifdef PTHREAD_SCOPE_SYSTEM if (pthread_attr_setscope(&attributs, PTHREAD_SCOPE_SYSTEM) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; return; } - -# ifdef DEBUG_MEMOIRE - debug_memoire_verrouillage(); # endif if (pthread_create(&(*s_etat_processus).thread_fusible, &attributs, fusible, s_etat_processus) != 0) { -# ifdef DEBUG_MEMOIRE - debug_memoire_deverrouillage(); -# endif - (*s_etat_processus).erreur_systeme = d_es_processus; return; } - -# ifdef DEBUG_MEMOIRE - debug_memoire_deverrouillage(); -# endif if (pthread_attr_destroy(&attributs) != 0) {