version 1.6, 2010/02/08 19:26:32
|
version 1.13, 2010/03/04 17:42:47
|
Line 1
|
Line 1
|
/* |
/* |
================================================================================ |
================================================================================ |
RPL/2 (R) version 4.0.10 |
RPL/2 (R) version 4.0.12 |
Copyright (C) 1989-2010 Dr. BERTRAND Joël |
Copyright (C) 1989-2010 Dr. BERTRAND Joël |
|
|
This file is part of RPL/2. |
This file is part of RPL/2. |
Line 22
|
Line 22
|
|
|
#ifndef INCLUSION_RPL |
#ifndef INCLUSION_RPL |
#define INCLUSION_RPL |
#define INCLUSION_RPL |
|
|
#define _GNU_SOURCE |
#define _GNU_SOURCE |
|
#define _REENTRANT |
|
|
|
// Nécessaire pour les systèmes qui ne comprennent pas _GNU_SOURCE |
|
#define _XOPEN_SOURCE 500 |
|
|
/* |
/* |
================================================================================ |
================================================================================ |
Line 70
|
Line 75
|
# include "termcap.h" |
# include "termcap.h" |
# include "iconv.h" |
# include "iconv.h" |
|
|
|
# include "openssl/evp.h" |
|
|
# define HAVE_INLINE |
# define HAVE_INLINE |
# define GSL_RANGE_CHECK_OFF |
# define GSL_RANGE_CHECK_OFF |
# include "gsl/gsl_cdf.h" |
# include "gsl/gsl_cdf.h" |
Line 276 typedef unsigned char t_8_bits;
|
Line 283 typedef unsigned char t_8_bits;
|
__VA_ARGS__; fflush(stdout); \ |
__VA_ARGS__; fflush(stdout); \ |
pthread_kill(pthread_self(), SIGBUS); }} while(0) |
pthread_kill(pthread_self(), SIGBUS); }} while(0) |
|
|
|
#define NOTICE(m) \ |
|
do \ |
|
{ \ |
|
ufprintf(stderr, "[%d-%llu] %s() from %s at line %d: %s\n", \ |
|
getpid(), (unsigned long long) pthread_self(), \ |
|
__FUNCTION__, __FILE__, __LINE__, m); \ |
|
fflush(stderr); \ |
|
} while(0) |
|
|
|
#ifdef __GLIBC__ |
|
#include <execinfo.h> |
#define BACKTRACE(n) \ |
#define BACKTRACE(n) \ |
do \ |
do \ |
{ \ |
{ \ |
Line 300 typedef unsigned char t_8_bits;
|
Line 318 typedef unsigned char t_8_bits;
|
fflush(stdout); \ |
fflush(stdout); \ |
pthread_mutex_unlock(&mutex); \ |
pthread_mutex_unlock(&mutex); \ |
} while(0) |
} while(0) |
|
#else |
#define NOTICE(m) \ |
#define BACKTRACE(n) NOTICE("BACKTRACE only defined in glibc") |
do \ |
#endif |
{ \ |
|
ufprintf(stderr, "[%d-%llu] %s() from %s at line %d: %s\n", \ |
|
getpid(), pthread_self(), __FUNCTION__, __FILE__, __LINE__, \ |
|
m); \ |
|
fflush(stderr); \ |
|
} while(0) |
|
|
|
|
|
/* |
/* |
Line 317 typedef unsigned char t_8_bits;
|
Line 329 typedef unsigned char t_8_bits;
|
================================================================================ |
================================================================================ |
*/ |
*/ |
|
|
|
#ifdef DEBUG_MEMOIRE |
|
void *debug_memoire_ajout(size_t taille, const unsigned char *fonction, |
|
unsigned long ligne, const unsigned char *argument); |
|
void *debug_memoire_modification(void *pointeur, size_t taille, |
|
const unsigned char *fonction, unsigned long ligne, |
|
const unsigned char *argument); |
|
void debug_memoire_retrait(void *ptr); |
|
|
|
#define malloc(s) debug_memoire_ajout(s, __FUNCTION__, __LINE__, #s) |
|
#define free(s) debug_memoire_retrait(s) |
|
#define realloc(s, t) debug_memoire_modification(s, t, \ |
|
__FUNCTION__, __LINE__, #t) |
|
#endif |
|
|
#ifdef DEBUG_RETURN |
#ifdef DEBUG_RETURN |
#define return uprintf("[%d] Return from <%s()> at line #%d " \ |
#define return uprintf("[%d] Return from <%s()> at line #%d " \ |
"(%s [%d])\n", (int) getpid(), __FUNCTION__, \ |
"(%s [%d])\n", (int) getpid(), __FUNCTION__, \ |
__LINE__, strerror(errno), errno); fflush(stdout); errno=0; return |
__LINE__, strerror(errno), errno); fflush(stdout); errno = 0; return |
#endif |
#endif |
|
|
#ifdef DEBUG_MUTEX |
#ifdef DEBUG_MUTEX |
Line 996 typedef struct descripteur_thread
|
Line 1022 typedef struct descripteur_thread
|
|
|
struct_objet *argument; |
struct_objet *argument; |
|
|
pid_t pid; |
pid_t pid; |
volatile pthread_t tid; |
volatile pthread_t tid; |
|
|
pthread_t thread_pere; |
pthread_t thread_pere; |
|
|
Line 1331 typedef struct processus
|
Line 1357 typedef struct processus
|
unsigned char *nom_fichier_source; |
unsigned char *nom_fichier_source; |
unsigned char *nom_fichier_historique; |
unsigned char *nom_fichier_historique; |
|
|
|
unsigned char autorisation_conversion_chaine; /*Y/N*/ |
unsigned char autorisation_empilement_programme; /*Y/N*/ |
unsigned char autorisation_empilement_programme; /*Y/N*/ |
unsigned char autorisation_evaluation_nom; /*Y/N*/ |
unsigned char autorisation_evaluation_nom; /*Y/N*/ |
unsigned char evaluation_forcee; /*Y/N*/ |
unsigned char evaluation_forcee; /*Y/N*/ |
Line 1395 typedef struct processus
|
Line 1422 typedef struct processus
|
pthread_t thread_fusible; |
pthread_t thread_fusible; |
pthread_t thread_surveille_par_fusible; |
pthread_t thread_surveille_par_fusible; |
|
|
|
# ifndef Cygwin |
stack_t pile_signal; |
stack_t pile_signal; |
|
# else |
|
# define SA_ONSTACK 0 |
|
# define RTLD_LOCAL 0 |
|
# endif |
|
|
/* Contextes */ |
/* Contextes */ |
|
|
Line 1671 typedef struct processus
|
Line 1703 typedef struct processus
|
|
|
/* Autres */ |
/* Autres */ |
|
|
|
char *rpl_home; |
|
|
gsl_rng *generateur_aleatoire; |
gsl_rng *generateur_aleatoire; |
const gsl_rng_type *type_generateur_aleatoire; |
const gsl_rng_type *type_generateur_aleatoire; |
|
|
Line 2355 void conversion_hms_vers_decimal(real8 *
|
Line 2389 void conversion_hms_vers_decimal(real8 *
|
void conversion_radians_vers_degres(real8 *angle); |
void conversion_radians_vers_degres(real8 *angle); |
void correction_formateur_tex(struct_processus *s_etat_processus, |
void correction_formateur_tex(struct_processus *s_etat_processus, |
unsigned char **ligne); |
unsigned char **ligne); |
|
void debug_memoire_verification(struct_processus *s_etat_processus); |
void depilement_pile_systeme(struct_processus *s_etat_processus); |
void depilement_pile_systeme(struct_processus *s_etat_processus); |
void derivation(struct_processus *s_etat_processus, |
void derivation(struct_processus *s_etat_processus, |
struct_objet **s_expression); |
struct_objet **s_expression); |
Line 2492 complex16 sommation_vecteur_complexe(com
|
Line 2527 complex16 sommation_vecteur_complexe(com
|
*/ |
*/ |
|
|
#ifndef RPLARGS |
#ifndef RPLARGS |
int rplinit(int argc, char *argv[], unsigned char ***resultats); |
int rplinit(int argc, char *argv[], unsigned char ***resultats, char *rpl_home); |
#endif |
#endif |
|
|
/* |
/* |
Line 2595 logical1 analyse_syntaxique(struct_proce
|
Line 2630 logical1 analyse_syntaxique(struct_proce
|
logical1 caracteristiques_fichier(struct_processus *s_etat_processus, |
logical1 caracteristiques_fichier(struct_processus *s_etat_processus, |
unsigned char *nom, logical1 *existence, logical1 *ouverture, |
unsigned char *nom, logical1 *existence, logical1 *ouverture, |
unsigned long *unite); |
unsigned long *unite); |
|
logical1 controle(struct_processus *s_etat_processus, unsigned char *fichier, |
|
unsigned char *type, unsigned char *somme_candidate); |
logical1 creation_variable(struct_processus *s_etat_processus, |
logical1 creation_variable(struct_processus *s_etat_processus, |
struct_variable *s_variable, |
struct_variable *s_variable, |
unsigned char autorisation_creation_variable_statique, |
unsigned char autorisation_creation_variable_statique, |
Line 2674 inline ssize_t write_atomic(struct_proce
|
Line 2711 inline ssize_t write_atomic(struct_proce
|
*/ |
*/ |
|
|
int alsprintf(unsigned char **strp, const char *fmt, ...); |
int alsprintf(unsigned char **strp, const char *fmt, ...); |
|
int tex_fprintf(struct_processus *s_etat_processus, |
|
file *flux, const char *format, ...); |
int transliterated_fprintf(struct_processus *s_etat_processus, file *flux, |
int transliterated_fprintf(struct_processus *s_etat_processus, file *flux, |
const char *format, ...); |
const char *format, ...); |
int valsprintf(unsigned char **strp, const char *fmt, va_list ap); |
int valsprintf(unsigned char **strp, const char *fmt, va_list ap); |