--- rpl/src/rpl.h 2013/03/18 10:35:50 1.210 +++ rpl/src/rpl.h 2013/03/20 17:11:45 1.211 @@ -1025,7 +1025,7 @@ enum t_type { ADR = 0, ALG, BIN, CHN, C SLB, SPH, SQL, TBL, VCX, VIN, VRL }; /* - ADR : adresse sur 32 bits (au moins) non signés (unsigned long) + ADR : adresse sur 64 bits signés. Adresse d'une définition à interpréter. ALG : expression algébrique (struct_liste_chainee *) @@ -1543,8 +1543,8 @@ typedef struct liste_pile_systeme A FORALL : NEXT termine une boucle sur un objet. */ - unsigned long adresse_retour; - unsigned long niveau_courant; + integer8 adresse_retour; + integer8 niveau_courant; struct_liste_chainee *pointeur_objet_retour; } struct_liste_pile_systeme; #endif @@ -1559,7 +1559,7 @@ typedef struct liste_pile_systeme #ifndef RPLARGS typedef union position_variable { - unsigned long adresse; + integer8 adresse; struct_objet *pointeur; } union_position_variable; @@ -1568,7 +1568,7 @@ typedef struct variable unsigned char *nom; unsigned char origine; // P(rogramme) ou E(valuation) - unsigned long niveau; + integer8 niveau; union_position_variable variable_statique; union_position_variable variable_partagee; @@ -1593,7 +1593,7 @@ typedef struct variable_partage unsigned char *nom; unsigned char origine; - unsigned long niveau; + integer8 niveau; union_position_variable variable_partagee; @@ -1620,7 +1620,7 @@ typedef struct variable_statique // Position de création de la variable statique dans le programme ou dans // l'expression. 'origine' vaut 'P' pour programme ou 'E' pour expression. - unsigned long niveau; + integer8 niveau; union_position_variable variable_statique; @@ -1637,7 +1637,7 @@ typedef struct variable_statique typedef struct vecteur { - unsigned long taille; + integer8 taille; unsigned char type; /* C (complex*16), R (real*8), I (integer*8) */ @@ -1653,8 +1653,8 @@ typedef struct vecteur typedef struct matrice { - unsigned long nombre_lignes; - unsigned long nombre_colonnes; + integer8 nombre_lignes; + integer8 nombre_colonnes; unsigned char type; /* C (complex*16), R (real*8), I (integer*8) */ @@ -1670,7 +1670,7 @@ typedef struct matrice typedef struct tableau { - unsigned long nombre_elements; + integer8 nombre_elements; struct_objet **elements; } struct_tableau; @@ -1816,7 +1816,7 @@ typedef struct tableau_variables unsigned char origine; unsigned char *nom; // pointeur sur la struct_variable // réelle et non copie de la chaîne - unsigned long niveau; + integer8 niveau; struct_objet *objet; // pointeur sur l'objet et non copie // de l'objet. @@ -1905,8 +1905,8 @@ typedef struct processus unsigned char traitement_cycle_exit; /*N/E/C*/ unsigned char recherche_type; /*Y/N*/ - unsigned long position_courante; - unsigned long longueur_definitions_chainees; + integer8 position_courante; + integer8 longueur_definitions_chainees; /* Pointeurs sur les instructions */ @@ -1923,13 +1923,13 @@ typedef struct processus struct_liste_chainee *l_base_pile; struct_liste_chainee *l_base_pile_last; - unsigned long hauteur_pile_operationnelle; + integer8 hauteur_pile_operationnelle; /* Piles systemes */ struct_liste_pile_systeme *l_base_pile_systeme; - unsigned long hauteur_pile_systeme; + integer8 hauteur_pile_systeme; /* Gestion des processus */ @@ -2000,8 +2000,8 @@ typedef struct processus int *pointeurs_caracteres_variables; int nombre_caracteres_variables; - unsigned long niveau_courant; - unsigned long niveau_initial; + integer8 niveau_courant; + integer8 niveau_initial; logical1 creation_variables_statiques; logical1 creation_variables_partagees; @@ -2023,7 +2023,7 @@ typedef struct processus struct_liste_chainee *s_bibliotheques; struct_instruction_externe *s_instructions_externes; - unsigned long nombre_instructions_externes; + integer8 nombre_instructions_externes; /* Fichier d'impression */ @@ -2173,23 +2173,23 @@ typedef struct processus /* Traitement des exceptions */ logical1 arret_si_exception; - unsigned int exception; - unsigned int derniere_exception; - unsigned int exception_processus_fils; + int exception; + int derniere_exception; + int exception_processus_fils; /* Traitement des erreurs */ - unsigned int erreur_compilation; - unsigned int erreur_execution; - unsigned int erreur_systeme; + int erreur_compilation; + int erreur_execution; + int erreur_systeme; struct_objet *s_objet_errone; struct_objet *s_objet_erreur; logical1 erreur_scrutation; - volatile unsigned int erreur_systeme_processus_fils; - unsigned int erreur_execution_processus_fils; + volatile int erreur_systeme_processus_fils; + int erreur_execution_processus_fils; pid_t pid_erreur_processus_fils; @@ -2197,13 +2197,13 @@ typedef struct processus integer8 derniere_erreur_fonction_externe; - unsigned int derniere_erreur_systeme; - unsigned int derniere_erreur_execution; - unsigned int derniere_erreur_evaluation; + int derniere_erreur_systeme; + int derniere_erreur_execution; + int derniere_erreur_evaluation; unsigned char *instruction_derniere_erreur; - unsigned long niveau_derniere_erreur; + integer8 niveau_derniere_erreur; logical1 core; logical1 invalidation_message_erreur; @@ -2211,7 +2211,7 @@ typedef struct processus /* Debug */ logical1 debug; - integer8 type_debug; + logical8 type_debug; logical1 debug_programme; logical1 execution_pas_suivant; logical1 traitement_instruction_halt; @@ -2286,7 +2286,7 @@ typedef struct processus unsigned char retour_routine_evaluation; unsigned char *localisation; - unsigned long niveau_recursivite; + integer8 niveau_recursivite; pid_t pid_processus_pere; pthread_t tid_processus_pere; @@ -2322,19 +2322,19 @@ typedef struct processus /* Gestion optimisée de la mémoire */ double estimation_taille_pile_tampon; - unsigned long taille_pile_tampon; + integer8 taille_pile_tampon; struct_liste_chainee *pile_tampon; double estimation_taille_pile_systeme_tampon; - unsigned long taille_pile_systeme_tampon; + integer8 taille_pile_systeme_tampon; struct_liste_pile_systeme *pile_systeme_tampon; - unsigned long taille_pile_objets; + integer8 taille_pile_objets; struct_objet *pile_objets; # define TAILLE_CACHE 1024 - unsigned long *objets_adr[TAILLE_CACHE]; + integer8 *objets_adr[TAILLE_CACHE]; int pointeur_adr; logical8 *objets_bin[TAILLE_CACHE]; @@ -2400,7 +2400,7 @@ typedef struct processus typedef struct fonction { unsigned char *nom_fonction; - unsigned long nombre_arguments; + integer8 nombre_arguments; void (*fonction)(struct_processus *); @@ -2958,8 +2958,7 @@ void instruction_yield(struct_processus #ifndef RPLARGS void affectation_interruptions_logicielles(struct_processus *s_etat_processus); void affichage_pile(struct_processus *s_etat_processus, - struct_liste_chainee *l_element_courant, unsigned long - niveau_courant); + struct_liste_chainee *l_element_courant, integer8 niveau_courant); #endif void *allocation_maillon(struct_processus *s_etat_processus); @@ -2982,7 +2981,7 @@ void conversion_format(struct_processus unsigned char *chaine); void conversion_hms_vers_decimal(real8 *angle); void conversion_majuscule_limitee(unsigned char *chaine_entree, - unsigned char *chaine_sortie, unsigned long longueur); + unsigned char *chaine_sortie, integer8 longueur); void conversion_radians_vers_degres(real8 *angle); void copie_arbre_variables(struct_processus *s_etat_processus, struct_processus *s_nouvel_etat_processus); @@ -2995,11 +2994,11 @@ void determinant(struct_processus *s_eta void *valeur); void deverrouillage_threads_concurrents(struct_processus *s_etat_processus); void ecriture_pile(struct_processus *s_etat_processus, file *flux, - struct_liste_chainee *l_element_courant, unsigned long niveau_courant); + struct_liste_chainee *l_element_courant, integer8 niveau_courant); void ecriture_profil(struct_processus *s_etat_processus); void effacement_pile_systeme(struct_processus *s_etat_processus); void empilement_pile_systeme(struct_processus *s_etat_processus); -void encart(struct_processus *s_etat_processus, unsigned long duree); +void encart(struct_processus *s_etat_processus, integer8 duree); void evaluation_romberg(struct_processus *s_etat_processus, struct_objet *s_expression, unsigned char *variable, real8 *point, real8 *valeur, logical1 *validite); @@ -3020,7 +3019,7 @@ void formateur_elementaire_tex(struct_pr file *fichier, struct_objet *s_objet, unsigned char environnement); void impression_pile(struct_processus *s_etat_processus, struct_liste_chainee *l_element_courant, - unsigned char methode, unsigned long niveau_courant); + unsigned char methode, integer8 niveau_courant); void impression_tex(struct_processus *s_etat_processus); void informations(struct_processus *s_etat_processus); void initialisation_allocateur(struct_processus *s_etat_processus); @@ -3028,7 +3027,7 @@ void initialisation_completion(void); void initialisation_contexte_cas(struct_processus *s_etat_processus); void initialisation_drapeaux(struct_processus *s_etat_processus); void initialisation_generateur_aleatoire(struct_processus *s_etat_processus, - logical1 initialisation_automatique, unsigned long int racine); + logical1 initialisation_automatique, integer8 racine); void initialisation_instructions(struct_processus *s_etat_processus); void initialisation_variables(struct_processus *s_etat_processus); #endif @@ -3097,7 +3096,7 @@ void scrutation_injection(struct_process void scrutation_interruptions(struct_processus *s_etat_processus); void sf(struct_processus *s_etat_processus, unsigned char indice_drapeau); void *surveillance_processus(void *argument); -void swap(void *variable_1, void *variable_2, unsigned long taille_octets); +void swap(void *variable_1, void *variable_2, integer8 taille_octets); void *thread_signaux(void *argument); void trace(struct_processus *s_etat_processus, FILE *flux); void traitement_asynchrone_exceptions_gsl(struct_processus *s_etat_processus); @@ -3105,7 +3104,7 @@ void traitement_exceptions_gsl(const cha int line, int gsl_errno); void traitement_interruptions_logicielles(struct_processus *s_etat_processus); void tri_base_symboles_externes(struct_processus *s_etat_processus); -void tri_vecteur(real8 *vecteur, unsigned long taille); +void tri_vecteur(real8 *vecteur, integer8 taille); void valeurs_propres(struct_processus *s_etat_processus, struct_matrice *s_matrice, struct_vecteur *s_valeurs_propres, @@ -3145,9 +3144,9 @@ int envoi_signal_thread(pthread_t tid, e -------------------------------------------------------------------------------- */ -real8 sommation_vecteur_reel(real8 *vecteur, unsigned long *taille, +real8 sommation_vecteur_reel(real8 *vecteur, integer8 *taille, logical1 *erreur_memoire); -complex16 sommation_vecteur_complexe(complex16 *vecteur, unsigned long *taille, +complex16 sommation_vecteur_complexe(complex16 *vecteur, integer8 *taille, logical1 *erreur_memoire); /* @@ -3169,17 +3168,17 @@ int rplinit(int argc, char *argv[], char #ifndef RPLARGS real8 correlation_statistique(struct_matrice *s_matrice, - unsigned long colonne_1, unsigned long colonne_2, logical1 *erreur); + integer8 colonne_1, integer8 colonne_2, logical1 *erreur); real8 covariance_statistique(struct_matrice *s_matrice, - unsigned long colonne_1, unsigned long colonne_2, + integer8 colonne_1, integer8 colonne_2, unsigned char type, logical1 *erreur); struct_vecteur *ecart_type_statistique(struct_matrice *s_matrice, unsigned char type); struct_vecteur *moyenne_statistique(struct_matrice *s_matrice); struct_vecteur *sommation_colonne_statistique(struct_matrice *s_matrice, - unsigned long colonne); + integer8 colonne); struct_vecteur *sommation_produits_colonnes_statistiques(struct_matrice - *s_matrice, unsigned long colonne_1, unsigned long colonne_2); + *s_matrice, integer8 colonne_1, integer8 colonne_2); struct_vecteur *sommation_statistique(struct_matrice *s_matrice); struct_vecteur *variance_statistique(struct_matrice *s_matrice, unsigned char type); @@ -3205,7 +3204,7 @@ struct_liste_chainee *depilement_pile_op struct_liste_chainee *empilement_pile_operationnelle(struct_rpl_arguments *s_rpl_arguments, struct_objet *s_objet); struct_liste_chainee *sauvegarde_arguments(struct_rpl_arguments - *s_rpl_arguments, unsigned long nombre_arguments); + *s_rpl_arguments, integer8 nombre_arguments); /* -------------------------------------------------------------------------------- @@ -3217,37 +3216,36 @@ struct_liste_chainee *sauvegarde_argumen unsigned char *analyse_algebrique(struct_processus *s_etat_processus, unsigned char *chaine_algebrique, struct_liste_chainee **l_base_liste); unsigned char *analyse_flux(struct_processus *s_etat_processus, - unsigned char *flux, long longueur); + unsigned char *flux, integer8 longueur); unsigned char *chiffrement(const EVP_CIPHER *type_chiffrement, - logical1 encodage, unsigned char *message, unsigned int - longueur_message, unsigned char *clef, unsigned int longueur_clef, + logical1 encodage, unsigned char *message, integer8 longueur_message, + unsigned char *clef, integer8 longueur_clef, unsigned char *vecteur_initialisation, - unsigned int *longueur_message_chiffre); + integer8 *longueur_message_chiffre); unsigned char *compactage(unsigned char *chaine); unsigned char *conversion_majuscule(unsigned char *chaine); unsigned char *creation_nom_fichier(struct_processus *s_etat_processus, unsigned char *chemin); unsigned char *date_compilation(); -unsigned char *extraction_chaine(unsigned char *chaine, unsigned long i, - unsigned long j); +unsigned char *extraction_chaine(unsigned char *chaine, integer8 i, integer8 j); unsigned char *formateur(struct_processus *s_etat_processus, long offset, struct_objet *s_objet); unsigned char *formateur_fichier(struct_processus *s_etat_processus, struct_objet *s_objet, struct_objet *s_format, - long longueur, long longueur_champ, unsigned char format, - unsigned char type, long *longueur_effective, long *recursivite, + integer8 longueur, integer8 longueur_champ, unsigned char format, + unsigned char type, integer8 *longueur_effective, integer8 *recursivite, logical1 export_fichier); unsigned char *formateur_flux(struct_processus *s_etat_processus, - unsigned char *donnees, long *longueur); + unsigned char *donnees, integer8 *longueur); unsigned char *formateur_fichier_nombre(struct_processus *s_etat_processus, void *valeur_numerique, unsigned char type, - long longueur, long longueur_champ, unsigned char format); + integer8 longueur, integer8 longueur_champ, unsigned char format); unsigned char *formateur_fichier_binaire_nombre(struct_processus *s_etat_processus, void *valeur_numerique, unsigned char type_entree, - unsigned char type, long longueur, long *longueur_conversion); + unsigned char type, integer8 longueur, integer8 *longueur_conversion); unsigned char *formateur_fichier_reel(struct_processus *s_etat_processus, void *valeur_numerique, unsigned char type, - long longueur, long longueur_champ, unsigned char format); + integer8 longueur, integer8 longueur_champ, unsigned char format); unsigned char *formateur_nombre(struct_processus *s_etat_processus, void *valeur_numerique, unsigned char type); unsigned char *formateur_reel(struct_processus *s_etat_processus, @@ -3298,7 +3296,7 @@ logical1 destruction_fichier(unsigned ch logical1 empilement(struct_processus *s_etat_processus, struct_liste_chainee **l_base_liste, struct_objet *s_objet); logical1 empilement_pile_last(struct_processus *s_etat_processus, - unsigned long nombre_arguments); + integer8 nombre_arguments); logical1 evaluation(struct_processus *s_etat_processus, struct_objet *s_objet, unsigned char type_evaluation); logical1 initialisation_fichier_acces_direct(struct_processus *s_etat_processus, @@ -3370,9 +3368,9 @@ ssize_t write_atomic(struct_processus *s int alsprintf(unsigned char **strp, const char *fmt, ...); int interruption_violation_access(void *adresse_fautive, int gravite); #ifndef RPLARGS -int liste_variables(struct_processus *s_etat_processus, +integer8 liste_variables(struct_processus *s_etat_processus, struct_tableau_variables *tableau); -int nombre_variables(struct_processus *s_etat_processus); +integer8 nombre_variables(struct_processus *s_etat_processus); int readline_analyse_syntaxique(int count, int key); int readline_effacement(int count, int key); #endif @@ -3499,8 +3497,7 @@ struct_liste_variables_partagees *recher #ifndef RPLARGS struct_arbre *creation_arbre(struct_processus *s_etat_processus, - struct_objet **t_objets, unsigned long indice, - unsigned long indice_maximal); + struct_objet **t_objets, integer8 indice, integer8 indice_maximal); void liberation_arbre(struct_processus *s_etat_processus, struct_arbre *s_noeud); void parcours_arbre(struct_processus *s_etat_processus, struct_arbre *s_noeud);