/*************************************************************************************************************************************/ /* */ /* G E S T I O N A U T O M A T I S E E D E S " B U G S " : */ /* */ /* */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* * * * ** * * * * * ** * */ /* * * * * * * * * * * * * * * * */ /* * * * * * * * * * * * * * */ /* * * * * * * * * * * * * * * * */ /* * * * * * * * * * * * * * * * */ /* * * * * * * * * * * * * * * * * * */ /* * * * * * * * * * * * * * */ /* * * * * * * * * * * * * * * * */ /* * * * * ** * * * * * ** */ /* * * * * * * * * * * * * * * * * * * * * * * */ /* */ /* */ /* ATTENTION : */ /* */ /* Tous les 'BUG_' declares ici doivent */ /* etre repercutes dans 'v $xig/common$STR DEFV.Common.DEFV.Logical._____BUG_'. */ /* */ /* */ /* Author of '$xcp/Bugs$K' : */ /* */ /* Jean-Francois COLONNA (LACTAMME, 1996??????????). */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* I N T E R F A C E ' listG ' : */ /* */ /* */ /* :Debut_listG: */ /* :Fin_listG: */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* D I R E C T I V E S S P E C I F I Q U E S D E C O M P I L A T I O N : */ /* */ /*************************************************************************************************************************************/ @nodefine PRAGMA_CL_____MODULE_NON_OPTIMISABLE /* Introduit le 20040409115527 a cause de 'BUG_SYSTEME_APC_GCC_ExcessPrecisionProblem_02' */ /* qui disparait lorqu'il y a optimisation, mais ATTENTION, cela est en contradiction avec */ /* 'BUG_SYSTEME_APC_GCC_ExcessPrecisionProblem_01' qui lui demande l'optimisation pour se */ /* manifester. Le 20040409134038, j'ai trouve la solution : il suffit de declarer 'Local' */ /* les variables {origine,extremite}, d'ou le 'nodefine'... */ @define PRAGMA_CL_____PAS_DE_LIBRAIRIES_DYNAMIQUES /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* F I C H I E R S D ' I N C L U D E S : */ /* */ /*************************************************************************************************************************************/ #include INCLUDES_MINI /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* P A R A M E T R E S : */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* M A C R O S U T I L E S : */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* F O N C T I O N S U T I L E S : */ /* */ /*************************************************************************************************************************************/ #if ( (defined(SYSTEME_APC_LinuxDebian_GCC)) \ || (defined(SYSTEME_APC_LinuxMandrake_GCC)) \ || (defined(SYSTEME_APC_LinuxRedHat_GCC)) \ || (defined(SYSTEME_APC_LinuxUbuntu_GCC)) \ || (defined(SYSTEME_APC_LinuxUbuntu_ICC)) \ || (defined(SYSTEME_APC_LinuxUlmint_GCC)) \ || (defined(SYSTEME_APC_LinuxUlmint_ICC)) \ ) BFonctionF DEFV(Local,DEFV(Float,INIT(origine,NEGA(FDEUX)))); DEFV(Local,DEFV(Float,INIT(extremite,NEUT(FDEUX)))); /* La declaration 'Local' a ete introduite le 20040409134038 afin de faire se manifester */ /* le probleme qu'il y ait ou pas optimisation... */ DEFV(Common,DEFV(FonctionF,bSCAL___conditionnelle(Zf))) /* Fonction introduite le 20040409134850 afin que le probleme se manifeste meme si */ /* l'option de compilation "-ffloat-store" est presente... */ DEFV(Argument,DEFV(Float,Zf)); /*-----------------------------------------------------------------------------------------------------------------------------------*/ Bblock /*..............................................................................................................................*/ RETU(COND(IFNE(origine,extremite) ,bSCAL(SOUS(Zf,origine) ,SOUS(extremite,origine) ,SOUS(COORDONNEE_BARYCENTRIQUE_MAXIMALE,COORDONNEE_BARYCENTRIQUE_MINIMALE) ) ,SOUS(Zf,origine) ) ); Eblock EFonctionF #Aif ( (defined(SYSTEME_APC_LinuxDebian_GCC)) \ || (defined(SYSTEME_APC_LinuxMandrake_GCC)) \ || (defined(SYSTEME_APC_LinuxRedHat_GCC)) \ || (defined(SYSTEME_APC_LinuxUbuntu_GCC)) \ || (defined(SYSTEME_APC_LinuxUbuntu_ICC)) \ || (defined(SYSTEME_APC_LinuxUlmint_GCC)) \ || (defined(SYSTEME_APC_LinuxUlmint_ICC)) \ ) #Eif ( (defined(SYSTEME_APC_LinuxDebian_GCC)) \ || (defined(SYSTEME_APC_LinuxMandrake_GCC)) \ || (defined(SYSTEME_APC_LinuxRedHat_GCC)) \ || (defined(SYSTEME_APC_LinuxUbuntu_GCC)) \ || (defined(SYSTEME_APC_LinuxUbuntu_ICC)) \ || (defined(SYSTEME_APC_LinuxUlmint_GCC)) \ || (defined(SYSTEME_APC_LinuxUlmint_ICC)) \ ) /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* G E S T I O N A U T O M A T I S E E D E S " B U G S " : */ /* */ /*************************************************************************************************************************************/ BCommande(nombre_d_arguments,arguments) /*-----------------------------------------------------------------------------------------------------------------------------------*/ Bblock /*..............................................................................................................................*/ GET_ARGUMENTS_(nombre_d_arguments ,BLOC(VIDE; ) ); #if ( (defined(SYSTEME_SGIND308_IRIX_CC)) \ || (defined(SYSTEME_SGIND324_IRIX_CC)) \ || (defined(SYSTEME_SGIND3GA_IRIX_CC)) \ || (defined(SYSTEME_SGIND408_IRIX_CC)) \ || (defined(SYSTEME_SGIND424_IRIX_CC)) \ || (defined(SYSTEME_SGIND4GA_IRIX_CC)) \ || (defined(SYSTEME_SGIND508_IRIX_CC)) \ || (defined(SYSTEME_SGIND524_IRIX_CC)) \ || (defined(SYSTEME_SGIND5GA_IRIX_CC)) \ || (defined(SYSTEME_SGIND808_IRIX_CC)) \ || (defined(SYSTEME_SGIND824_IRIX_CC)) \ || (defined(SYSTEME_SGIND8GA_IRIX_CC)) \ || (defined(SYSTEME_SGINDA08_IRIX_CC)) \ || (defined(SYSTEME_SGINDA24_IRIX_CC)) \ || (defined(SYSTEME_SGINDAGA_IRIX_CC)) \ || (defined(SYSTEME_SGO200A1_IRIX_CC)) \ || (defined(SYSTEME_SGO200A2_IRIX_CC)) \ || (defined(SYSTEME_SGO200A4_IRIX_CC)) \ || (defined(SYSTEME_SGO25224_IRIX_CC)) \ || (defined(SYSTEME_SGO252VA_IRIX_CC)) \ || (defined(SYSTEME_SGO252VN_IRIX_CC)) \ || (defined(SYSTEME_SGPCM801_IRIX_CC)) \ || (defined(SYSTEME_SGPCMA01_IRIX_CC)) \ ) begin_nouveau_block # define DIVIDENDE \ NEGA(UN) # define DIVISEUR \ NEUT(UN) DEFV(Float,INIT(quotient1,gDIVI(DIVIDENDE,DIVISEUR))); DEFV(Float,INIT(quotient2,gDIVI(FLOT(DIVIDENDE),FLOT(DIVISEUR)))); /* ATTENTION, bien entendu, il ne faut pas utiliser 'DIVI(...)' mais 'gDIVI(...)'. */ Test(IFNE(quotient1,quotient2)) Bblock DEFINEV("BUG_SYSTEME_SGIND_C_divisions_entieres"); /* Cas ou le compilateur genere mal les constantes issues de divisions entieres (voir a ce */ /* propos 'v $Dbugs/SGIND4GA$D/IRIX$D/CC$D/IntDouble.01$c')... */ Eblock ATes Bblock Eblock ETes # undef DIVISEUR # undef DIVIDENDE end_nouveau_block #Aif ( (defined(SYSTEME_SGIND308_IRIX_CC)) \ || (defined(SYSTEME_SGIND324_IRIX_CC)) \ || (defined(SYSTEME_SGIND3GA_IRIX_CC)) \ || (defined(SYSTEME_SGIND408_IRIX_CC)) \ || (defined(SYSTEME_SGIND424_IRIX_CC)) \ || (defined(SYSTEME_SGIND4GA_IRIX_CC)) \ || (defined(SYSTEME_SGIND508_IRIX_CC)) \ || (defined(SYSTEME_SGIND524_IRIX_CC)) \ || (defined(SYSTEME_SGIND5GA_IRIX_CC)) \ || (defined(SYSTEME_SGIND808_IRIX_CC)) \ || (defined(SYSTEME_SGIND824_IRIX_CC)) \ || (defined(SYSTEME_SGIND8GA_IRIX_CC)) \ || (defined(SYSTEME_SGINDA08_IRIX_CC)) \ || (defined(SYSTEME_SGINDA24_IRIX_CC)) \ || (defined(SYSTEME_SGINDAGA_IRIX_CC)) \ || (defined(SYSTEME_SGO200A1_IRIX_CC)) \ || (defined(SYSTEME_SGO200A2_IRIX_CC)) \ || (defined(SYSTEME_SGO200A4_IRIX_CC)) \ || (defined(SYSTEME_SGO25224_IRIX_CC)) \ || (defined(SYSTEME_SGO252VA_IRIX_CC)) \ || (defined(SYSTEME_SGO252VN_IRIX_CC)) \ || (defined(SYSTEME_SGPCM801_IRIX_CC)) \ || (defined(SYSTEME_SGPCMA01_IRIX_CC)) \ ) #Eif ( (defined(SYSTEME_SGIND308_IRIX_CC)) \ || (defined(SYSTEME_SGIND324_IRIX_CC)) \ || (defined(SYSTEME_SGIND3GA_IRIX_CC)) \ || (defined(SYSTEME_SGIND408_IRIX_CC)) \ || (defined(SYSTEME_SGIND424_IRIX_CC)) \ || (defined(SYSTEME_SGIND4GA_IRIX_CC)) \ || (defined(SYSTEME_SGIND508_IRIX_CC)) \ || (defined(SYSTEME_SGIND524_IRIX_CC)) \ || (defined(SYSTEME_SGIND5GA_IRIX_CC)) \ || (defined(SYSTEME_SGIND808_IRIX_CC)) \ || (defined(SYSTEME_SGIND824_IRIX_CC)) \ || (defined(SYSTEME_SGIND8GA_IRIX_CC)) \ || (defined(SYSTEME_SGINDA08_IRIX_CC)) \ || (defined(SYSTEME_SGINDA24_IRIX_CC)) \ || (defined(SYSTEME_SGINDAGA_IRIX_CC)) \ || (defined(SYSTEME_SGO200A1_IRIX_CC)) \ || (defined(SYSTEME_SGO200A2_IRIX_CC)) \ || (defined(SYSTEME_SGO200A4_IRIX_CC)) \ || (defined(SYSTEME_SGO25224_IRIX_CC)) \ || (defined(SYSTEME_SGO252VA_IRIX_CC)) \ || (defined(SYSTEME_SGO252VN_IRIX_CC)) \ || (defined(SYSTEME_SGPCM801_IRIX_CC)) \ || (defined(SYSTEME_SGPCMA01_IRIX_CC)) \ ) #if ( (defined(SYSTEME_VAX9000_ULTRIX_GCC)) \ ) begin_nouveau_block # define DIVIDENDE \ FZERO DEFV(Float,INIT(diviseur,FQUATRE)); DEFV(Float,INIT(quotient,FLOT__UNDEF)); EGAL(quotient,gDIVI(DIVIDENDE,diviseur)); /* ATTENTION, bien entendu, il ne faut pas utiliser 'DIVI(...)' mais 'gDIVI(...)'. */ Test(IZNE(quotient)) Bblock DEFINEV("BUG_SYSTEME_VAX9000_ULTRIX_GCC_division_de_zero"); /* La division de 0 par une valeur flottante ne donne pas 0, mais apparemment l'inverse */ /* du double du diviseur (voir 'v $Dbugs/VAX9000$D/ULTRIX$D/GCC$D/division.01$c')... */ Eblock ATes Bblock Eblock ETes # undef DIVIDENDE end_nouveau_block #Aif ( (defined(SYSTEME_VAX9000_ULTRIX_GCC)) \ ) #Eif ( (defined(SYSTEME_VAX9000_ULTRIX_GCC)) \ ) begin_nouveau_block # define MOINS_L_INFINI_non_caste \ 0x80000001 # define INFINI_non_caste \ 0x7fffffff DEFV(Float,INIT(valeur,FZERO)); Test(IFINff(valeur,FLOT(MOINS_L_INFINI_non_caste),FLOT(INFINI_non_caste))) /* Evidemment, il ne faut pas utiliser 'MOINS_L_INFINI' et 'INFINI'... */ Bblock Eblock ATes Bblock DEFINEV("BUG_SYSTEME_C_caster_0x"); /* Les constantes hexadecimales devront etre castees par '(int)' dans la procedure */ /* 'v $xig/defin_2$vv$DEF DEFINEX'. */ Eblock ETes # undef INFINI_non_caste # undef MOINS_L_INFINI_non_caste end_nouveau_block #if ( (defined(SYSTEME_APC_LinuxDebian_GCC)) \ ) begin_nouveau_block # define NOM_DU_PORT_exec_tcp \ "PortExecTcp" /* Nom de la variable 'C-Shell' definie dans 'v $FbugsL PortExecTcp'. */ DEFV(RemoteServeur,INIT(POINTERs(caracteristiques_du_serveur_exec_tcp),ADRESSE_NON_ENCORE_DEFINIE)); /* Destine a '_GetServeurByName(...)' pour caracteriser le service demande. */ DEFV(Int,INIT(numero_attendu_pour_le_port,GvalDefaut(NOM_DU_PORT_exec_tcp,ADRESSE_NON_ENCORE_DEFINIE))); /* Recuperation du numero de port que l'on suppose en fait connu... */ EGAL(caracteristiques_du_serveur_exec_tcp,_GetServeurByName("exec","tcp")); /* Recherche du code du serveur "exec/tcp". */ Test(IFNE_chaine(Gvar(NOM_DU_PORT_exec_tcp),VALEUR_D_UNE_VARIABLE_UNDEF)) Bblock Test(IFNE(numero_attendu_pour_le_port,ADRESSE_NON_ENCORE_DEFINIE)) Bblock Test(IFNE(ASI1(caracteristiques_du_serveur_exec_tcp,s_port),numero_attendu_pour_le_port)) Bblock DEFINEV("BUG_SYSTEME_SYSTEME_APC_LinuxDebian_GCC_numero_de_port"); /* Lorsque le port recupere par 'getservbyname(...)' est different de ce que l'on attendait, */ /* on corrige ce que l'on croit etre une erreur (introduit le 19990823131431). */ /* La fonction 'getservbyname(...)' renvoie les numeros de port sur 2 octets qui sont */ /* malheureusement permutes ('v $FbugsL PortExecTcp'). */ /* */ /* Aux dernieres nouvelles ('v $Dcourrier_in/19990827180623 htons'), il ne s'agirait pas */ /* d'une erreur. On trouve dans 'v /usr/include/glib.h swapping' des procedures assurant */ /* les conversions utiles. */ /* */ /* Je conserve malgre tout 'BUG_SYSTEME_SYSTEME_APC_LinuxDebian_GCC_numero_de_port'... */ Eblock ATes Bblock Eblock ETes Eblock ATes Bblock MESSAGE("La variable '"NOM_DU_PORT_exec_tcp"' semble ne pas etre definie (1)."); Eblock ETes Eblock ATes Bblock MESSAGE("La variable '"NOM_DU_PORT_exec_tcp"' semble ne pas etre definie (2)."); Eblock ETes # undef NOM_DU_PORT_exec_tcp end_nouveau_block #Aif ( (defined(SYSTEME_APC_LinuxDebian_GCC)) \ ) #Eif ( (defined(SYSTEME_APC_LinuxDebian_GCC)) \ ) #if ( (defined(SYSTEME_APC_LinuxMandrake_GCC)) \ ) begin_nouveau_block # define NOM_DU_PORT_exec_tcp \ "PortExecTcp" /* Nom de la variable 'C-Shell' definie dans 'v $FbugsL PortExecTcp'. */ DEFV(RemoteServeur,INIT(POINTERs(caracteristiques_du_serveur_exec_tcp),ADRESSE_NON_ENCORE_DEFINIE)); /* Destine a '_GetServeurByName(...)' pour caracteriser le service demande. */ DEFV(Int,INIT(numero_attendu_pour_le_port,GvalDefaut(NOM_DU_PORT_exec_tcp,ADRESSE_NON_ENCORE_DEFINIE))); /* Recuperation du numero de port que l'on suppose en fait connu... */ EGAL(caracteristiques_du_serveur_exec_tcp,_GetServeurByName("exec","tcp")); /* Recherche du code du serveur "exec/tcp". */ Test(IFNE_chaine(Gvar(NOM_DU_PORT_exec_tcp),VALEUR_D_UNE_VARIABLE_UNDEF)) Bblock Test(IFNE(numero_attendu_pour_le_port,ADRESSE_NON_ENCORE_DEFINIE)) Bblock Test(IFNE(ASI1(caracteristiques_du_serveur_exec_tcp,s_port),numero_attendu_pour_le_port)) Bblock DEFINEV("BUG_SYSTEME_SYSTEME_APC_LinuxMandrake_GCC_numero_de_port"); /* Lorsque le port recupere par 'getservbyname(...)' est different de ce que l'on attendait, */ /* on corrige ce que l'on croit etre une erreur (introduit le 19990823131431). */ /* La fonction 'getservbyname(...)' renvoie les numeros de port sur 2 octets qui sont */ /* malheureusement permutes ('v $FbugsL PortExecTcp'). */ /* */ /* Aux dernieres nouvelles ('v $Dcourrier_in/19990827180623 htons'), il ne s'agirait pas */ /* d'une erreur. On trouve dans 'v /usr/include/glib.h swapping' des procedures assurant */ /* les conversions utiles. */ /* */ /* Je conserve malgre tout 'BUG_SYSTEME_SYSTEME_APC_LinuxMandrake_GCC_numero_de_port'... */ Eblock ATes Bblock Eblock ETes Eblock ATes Bblock MESSAGE("La variable '"NOM_DU_PORT_exec_tcp"' semble ne pas etre definie (1)."); Eblock ETes Eblock ATes Bblock MESSAGE("La variable '"NOM_DU_PORT_exec_tcp"' semble ne pas etre definie (2)."); Eblock ETes # undef NOM_DU_PORT_exec_tcp end_nouveau_block #Aif ( (defined(SYSTEME_APC_LinuxMandrake_GCC)) \ ) #Eif ( (defined(SYSTEME_APC_LinuxMandrake_GCC)) \ ) #if ( (defined(SYSTEME_APC_LinuxRedHat_GCC)) \ ) begin_nouveau_block # define NOM_DU_PORT_exec_tcp \ "PortExecTcp" /* Nom de la variable 'C-Shell' definie dans 'v $FbugsL PortExecTcp'. */ DEFV(RemoteServeur,INIT(POINTERs(caracteristiques_du_serveur_exec_tcp),ADRESSE_NON_ENCORE_DEFINIE)); /* Destine a '_GetServeurByName(...)' pour caracteriser le service demande. */ DEFV(Int,INIT(numero_attendu_pour_le_port,GvalDefaut(NOM_DU_PORT_exec_tcp,ADRESSE_NON_ENCORE_DEFINIE))); /* Recuperation du numero de port que l'on suppose en fait connu... */ EGAL(caracteristiques_du_serveur_exec_tcp,_GetServeurByName("exec","tcp")); /* Recherche du code du serveur "exec/tcp". */ Test(IFNE_chaine(Gvar(NOM_DU_PORT_exec_tcp),VALEUR_D_UNE_VARIABLE_UNDEF)) Bblock Test(IFNE(numero_attendu_pour_le_port,ADRESSE_NON_ENCORE_DEFINIE)) Bblock Test(IFNE(ASI1(caracteristiques_du_serveur_exec_tcp,s_port),numero_attendu_pour_le_port)) Bblock DEFINEV("BUG_SYSTEME_SYSTEME_APC_LinuxRedHat_GCC_numero_de_port"); /* Lorsque le port recupere par 'getservbyname(...)' est different de ce que l'on attendait, */ /* on corrige ce que l'on croit etre une erreur (introduit le 19990823131431). */ /* La fonction 'getservbyname(...)' renvoie les numeros de port sur 2 octets qui sont */ /* malheureusement permutes ('v $FbugsL PortExecTcp'). */ /* */ /* Aux dernieres nouvelles ('v $Dcourrier_in/19990827180623 htons'), il ne s'agirait pas */ /* d'une erreur. On trouve dans 'v /usr/include/glib.h swapping' des procedures assurant */ /* les conversions utiles. */ /* */ /* Je conserve malgre tout 'BUG_SYSTEME_SYSTEME_APC_LinuxRedHat_GCC_numero_de_port'... */ Eblock ATes Bblock Eblock ETes Eblock ATes Bblock MESSAGE("La variable '"NOM_DU_PORT_exec_tcp"' semble ne pas etre definie (1)."); Eblock ETes Eblock ATes Bblock MESSAGE("La variable '"NOM_DU_PORT_exec_tcp"' semble ne pas etre definie (2)."); Eblock ETes # undef NOM_DU_PORT_exec_tcp end_nouveau_block #Aif ( (defined(SYSTEME_APC_LinuxRedHat_GCC)) \ ) #Eif ( (defined(SYSTEME_APC_LinuxRedHat_GCC)) \ ) #if ( (defined(SYSTEME_APC_LinuxUbuntu_GCC)) \ || (defined(SYSTEME_APC_LinuxUbuntu_ICC)) \ || (defined(SYSTEME_APC_LinuxUlmint_GCC)) \ || (defined(SYSTEME_APC_LinuxUlmint_ICC)) \ ) begin_nouveau_block # define NOM_DU_PORT_exec_tcp \ "PortExecTcp" /* Nom de la variable 'C-Shell' definie dans 'v $FbugsL PortExecTcp'. */ DEFV(RemoteServeur,INIT(POINTERs(caracteristiques_du_serveur_exec_tcp),ADRESSE_NON_ENCORE_DEFINIE)); /* Destine a '_GetServeurByName(...)' pour caracteriser le service demande. */ DEFV(Int,INIT(numero_attendu_pour_le_port,GvalDefaut(NOM_DU_PORT_exec_tcp,ADRESSE_NON_ENCORE_DEFINIE))); /* Recuperation du numero de port que l'on suppose en fait connu... */ EGAL(caracteristiques_du_serveur_exec_tcp,_GetServeurByName("exec","tcp")); /* Recherche du code du serveur "exec/tcp". */ Test(IFNE_chaine(Gvar(NOM_DU_PORT_exec_tcp),VALEUR_D_UNE_VARIABLE_UNDEF)) Bblock Test(IFNE(numero_attendu_pour_le_port,ADRESSE_NON_ENCORE_DEFINIE)) Bblock Test(IFNE(ASI1(caracteristiques_du_serveur_exec_tcp,s_port),numero_attendu_pour_le_port)) Bblock DEFINEV("BUG_SYSTEME_SYSTEME_APC_LinuxUbuntu_GCC_numero_de_port"); DEFINEV("BUG_SYSTEME_SYSTEME_APC_LinuxUbuntu_ICC_numero_de_port"); DEFINEV("BUG_SYSTEME_SYSTEME_APC_LinuxUlmint_GCC_numero_de_port"); DEFINEV("BUG_SYSTEME_SYSTEME_APC_LinuxUlmint_ICC_numero_de_port"); /* Lorsque le port recupere par 'getservbyname(...)' est different de ce que l'on attendait, */ /* on corrige ce que l'on croit etre une erreur (introduit le 19990823131431). */ /* La fonction 'getservbyname(...)' renvoie les numeros de port sur 2 octets qui sont */ /* malheureusement permutes ('v $FbugsL PortExecTcp'). */ /* */ /* Aux dernieres nouvelles ('v $Dcourrier_in/19990827180623 htons'), il ne s'agirait pas */ /* d'une erreur. On trouve dans 'v /usr/include/glib.h swapping' des procedures assurant */ /* les conversions utiles. */ /* */ /* Je conserve malgre tout 'BUG_SYSTEME_SYSTEME_APC_LinuxUbuntu_GCC_numero_de_port'... */ Eblock ATes Bblock Eblock ETes Eblock ATes Bblock MESSAGE("La variable '"NOM_DU_PORT_exec_tcp"' semble ne pas etre definie (1)."); Eblock ETes Eblock ATes Bblock MESSAGE("La variable '"NOM_DU_PORT_exec_tcp"' semble ne pas etre definie (2)."); Eblock ETes # undef NOM_DU_PORT_exec_tcp end_nouveau_block #Aif ( (defined(SYSTEME_APC_LinuxUbuntu_GCC)) \ || (defined(SYSTEME_APC_LinuxUbuntu_ICC)) \ || (defined(SYSTEME_APC_LinuxUlmint_GCC)) \ || (defined(SYSTEME_APC_LinuxUlmint_ICC)) \ ) #Eif ( (defined(SYSTEME_APC_LinuxUbuntu_GCC)) \ || (defined(SYSTEME_APC_LinuxUbuntu_ICC)) \ || (defined(SYSTEME_APC_LinuxUlmint_GCC)) \ || (defined(SYSTEME_APC_LinuxUlmint_ICC)) \ ) #if ( (defined(SYSTEME_APC_LinuxDebian_GCC)) \ || (defined(SYSTEME_APC_LinuxMandrake_GCC)) \ || (defined(SYSTEME_APC_LinuxRedHat_GCC)) \ || (defined(SYSTEME_APC_LinuxUbuntu_GCC)) \ || (defined(SYSTEME_APC_LinuxUbuntu_ICC)) \ || (defined(SYSTEME_APC_LinuxUlmint_GCC)) \ || (defined(SYSTEME_APC_LinuxUlmint_ICC)) \ ) begin_nouveau_block /* Ceci a ete introduit le 20040227135153... */ Bblock TypedefS(VolatileDouble,CONC(Volatile,Double)) /* Ce type n'a pas etre defini dans 'v $xil/defi_c1$vv$DEF' car il n'a pas a servir */ /* ailleurs qu'ici... */ DEFV(Double,INIT(racine_de_2_80_bits,RACX(FDEUX))); DEFV(VolatileDouble,INIT(racine_de_2_64_bits,FLOT__UNDEF)); EGAL(racine_de_2_64_bits,racine_de_2_80_bits); /* Evidemment 'racine_de_2_80_bits' et 'racine_de_2_64_bits' doivent etre egaux bit a bit, */ /* mais est-ce bien vrai... */ Test(IFNE(racine_de_2_64_bits,racine_de_2_80_bits)) /* Cas ou 'racine_de_2_80_bits' et 'racine_de_2_64_bits' sont differents : */ Bblock DEFINEV("BUG_SYSTEME_APC_GCC_ExcessPrecisionProblem_01"); /* Voir a ce propos 'v $Dbugs/APC$D/LinuxDebian$D/GCC$D/flottant.02$c' par exemple... */ /* */ /* ATTENTION : depuis l'introduction de l'option 'v $Fcompilers -ffloat-store' le */ /* 20040220103647, ce "bug" ne sort plus... */ Eblock ATes Bblock Eblock ETes Eblock end_nouveau_block begin_nouveau_block /* Ceci a ete introduit le 20040409115527 suite au probleme v $xiirs/$Fnota 20040330115702' */ /* qui a ete resolu grace a 'v $xil/defi_c3$vv$DEF GooF' aux environs du 20040425174450. */ Bblock DEFV(FloatInt,Zh); DEFV(Float,INIT(Zf,FLOT__UNDEF)); DEFV(Float,INIT(Zf_01___conditionnel,FLOT__UNDEF)); DEFV(Float,INIT(Zf_01_inconditionnel,FLOT__UNDEF)); /* Variable 'Zf' et ses conversions dans [0,1] conditionnelle et inconditionnelle... */ EGAL(FloatInt_Int_1(Zh),0x68dfd5c4); EGAL(FloatInt_Int_2(Zh),0xbfa61de7); EGAL(Zf,FloatInt_Float(Zh)); /* Definition d'un nombre flottant valant approximativement -0.0431968989868596609 et qui */ /* pose probleme... */ EGAL(Zf_01___conditionnel,SOUS(bSCAL___conditionnelle(Zf),COORDONNEE_BARYCENTRIQUE_CENTRALE)); /* Mise de 'Zf' dans [0,1] de facon conditionnelle. On notera l'usage de 'bSCAL(...)' */ /* (et non pas de 'SCAL(...)') afin de "maitriser" la presence du 'COND(''')' qui est la */ /* source du probleme. La presence de la fonction 'bSCAL___conditionnelle(...)' est */ /* destinee a faire se manifester le probleme meme en presence de l'option de compilation */ /* "-ffloat-store" ; par contre, il ne faut surtout pas declarer la fonction "symetrique" */ /* 'bSCAL_inconditionnelle(...)' qui fait disparaitre le phenomene... */ EGAL(Zf_01_inconditionnel ,SOUS(bSCAL(SOUS(Zf,origine) ,SOUS(extremite,origine) ,SOUS(COORDONNEE_BARYCENTRIQUE_MAXIMALE,COORDONNEE_BARYCENTRIQUE_MINIMALE) ) ,COORDONNEE_BARYCENTRIQUE_CENTRALE ) ); /* Mise de 'Zf' dans [0,1] de facon inconditionnelle. On notera l'usage de 'bSCAL(...)' */ /* (et non pas de 'SCAL(...)') afin de "maitriser" la presence du 'COND(''')' qui est la */ /* source du probleme... */ Test(IFNE(Zf_01___conditionnel,Zf_01_inconditionnel)) /* Cas ou 'Zf_01___conditionnel' et 'Zf_01_inconditionnel' sont differents : */ Bblock DEFINEV("BUG_SYSTEME_APC_GCC_ExcessPrecisionProblem_02"); /* Voir a ce propos 'v $Dbugs/APC$D/LinuxRedHat$D/GCC$D/flottant.21$c' par exemple... */ /* */ /* Ce bug peut etre corrige grace a 'v $xil/defi_c3$vv$DEF GooF'... */ Eblock ATes Bblock Eblock ETes Eblock end_nouveau_block #Aif ( (defined(SYSTEME_APC_LinuxDebian_GCC)) \ || (defined(SYSTEME_APC_LinuxMandrake_GCC)) \ || (defined(SYSTEME_APC_LinuxRedHat_GCC)) \ || (defined(SYSTEME_APC_LinuxUbuntu_GCC)) \ || (defined(SYSTEME_APC_LinuxUbuntu_ICC)) \ || (defined(SYSTEME_APC_LinuxUlmint_GCC)) \ || (defined(SYSTEME_APC_LinuxUlmint_ICC)) \ ) #Eif ( (defined(SYSTEME_APC_LinuxDebian_GCC)) \ || (defined(SYSTEME_APC_LinuxMandrake_GCC)) \ || (defined(SYSTEME_APC_LinuxRedHat_GCC)) \ || (defined(SYSTEME_APC_LinuxUbuntu_GCC)) \ || (defined(SYSTEME_APC_LinuxUbuntu_ICC)) \ || (defined(SYSTEME_APC_LinuxUlmint_GCC)) \ || (defined(SYSTEME_APC_LinuxUlmint_ICC)) \ ) RETU_Commande; Eblock ECommande