Bill Allombert on Thu, 02 Feb 2012 19:03:34 +0100 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Please test pari-2.5.1 prerelease 2 |
Dear PARI developers, I have updated the prerelease tarball to fix the bug reported by Jeroen. Please test the new tarball: <http://pari.math.u-bordeaux.fr/pub/pari/snapshots/pari-2.5.1.pre2.tar.gz> Also I am considering whether or not applying the attached patch which work around a compiler problem (gcc PR49330). Cheers, Bill.
commit edae6c3696f08ce64dcf11e475aafefbf0b1a60a Author: bill <bill@ae928d23-7a17-477f-a5ef-102d13978bf2> Date: Mon Aug 15 11:36:14 2011 +0000 Fix MODULES. diff --git a/src/language/init.c b/src/language/init.c index 68b22bc..d077010 100644 --- a/src/language/init.c +++ b/src/language/init.c @@ -76,8 +76,12 @@ entree **varentries; THREAD pari_sp bot, top, avma; THREAD size_t memused; -static void ** MODULES, ** OLDMODULES; -static pari_stack s_MODULES, s_OLDMODULES; +static struct +{ + void ** M; + pari_stack s; +} MODULES, OLDMODULES; + const long functions_tblsz = 135; /* size of functions_hash */ entree **functions_hash, **defaults_hash; @@ -584,17 +588,17 @@ gp_init_entrees(pari_stack *p_A, entree **hash) int gp_init_functions(void) { - return gp_init_entrees(new_fun_set? &s_MODULES: &s_OLDMODULES, functions_hash); + return gp_init_entrees(new_fun_set? &MODULES.s: &OLDMODULES.s, functions_hash); } extern entree functions_basic[], functions_default[]; static void pari_init_functions(void) { - stack_init(&s_MODULES, sizeof(*MODULES),(void**)&MODULES); - stack_pushp(&s_MODULES,functions_basic); - stack_init(&s_OLDMODULES, sizeof(*OLDMODULES),(void**)&OLDMODULES); - stack_pushp(&s_OLDMODULES,oldfonctions); + stack_init(&MODULES.s, sizeof(MODULES.M),(void**)&MODULES.M); + stack_pushp(&MODULES.s,functions_basic); + stack_init(&OLDMODULES.s, sizeof(*OLDMODULES.M),(void**)&OLDMODULES.M); + stack_pushp(&OLDMODULES.s,oldfonctions); functions_hash = (entree**) pari_calloc(sizeof(entree*)*functions_tblsz); pari_fill_hashtable(functions_hash, new_fun_set? functions_basic: oldfonctions); @@ -607,7 +611,7 @@ pari_add_module(entree *ep) { if (new_fun_set) pari_fill_hashtable(functions_hash, ep); - stack_pushp(&s_MODULES, ep); + stack_pushp(&MODULES.s, ep); } void @@ -619,7 +623,7 @@ pari_add_oldmodule(entree *ep) { if (!new_fun_set) pari_fill_hashtable(functions_hash, ep); - stack_pushp(&s_OLDMODULES, ep); + stack_pushp(&OLDMODULES.s, ep); } static void @@ -781,8 +785,8 @@ pari_close_opts(ulong init_opts) free((void*)diffptr); free(current_logfile); free(current_psfile); - stack_delete(&s_MODULES); - stack_delete(&s_OLDMODULES); + stack_delete(&MODULES.s); + stack_delete(&OLDMODULES.s); if (pari_datadir) free(pari_datadir); if (init_opts&INIT_DFTm) { /* delete GP_DATA */